Hey there, I’m Adam Drees. I work as a Scrum Master and Embedded Software Engineer at Emerson where I develop software and firmware used on industrial controllers. I am currently located in Charlottesville, VA.

Previously, I worked as a Simulation Project Engineer with Emerson in Saint Louis, MO. I worked in the field of process simulation and control. My focus was building low-cost process simulations used for agricultural processing plants, pulp and paper, water/wastewater treatment and power generation. I also worked as an instructor who taught control engineers how to develop and maintain simulations.

In 2013, I earned a B.S in Mechanical Engineering at Missouri University of Science and Technology. From 2014 to 2018, I attended Computer Science courses at University of Missouri-Saint Louis. In 2021, I graduated from Georgia Institute of Technology with a M.S. in Computer Science.

My hobbies include rock climbing, mountain biking, hiking, and skiing.

In this video, I present on the paper Leave Your Phone at the Door: Side Channels that Reveal Factory Floor Secrets. This presentation is part is for the Cyber-Physical Systems Security class I am attending at Georgia Tech. The paper can be found at this link.

Working on my undergraduate degree in Mechanical Engineering, my favorite class was heat transfer. For a class project, I built a simple simulation that showed convection for a randomly generated temperature field. At the time, I didn’t have enough programming skills to build a quality simulation. The purpose of this is to revisit that project with my improved science and programming skills. Along the way, I will teach the math behind building the model. The first step will be to research the fundamental equations for this system.

Problem Definition

In this project, we will model a compressible fluid. Natural convection forces will affect the fluid. The simulation will model the transient behavior of a starting temperature or input heat. The simulation will be 2-Dimensional to display the results easier. Lastly, the model will use constant Cartesian cell structure to simplify the problem.

A conservation of energy equation was developed by including conduction, convection and external heat to the first law of thermodynamics

The ideal gas law will be used to determine pressure

Finite Difference Approximation

A finite difference approximation will be used to solve the fluid state at future time intervals. A small time step and cell size will be desired to maximize accuracy. Central difference approximations will be used to reduce any directional biases.

When using a finite difference, we can encounter a problem. The grid below uses the same cells to represent both pressure and velocity.

Since we are using a central difference approximation, the velocities of center square is based on the pressure difference between it’s neighbors. We can see how the equation does not compare the squares current pressure between it’s neighbor squares.

If there is not a pressure differential between the 2 opposite neighbor cells then we do not get flow. As a result, a checkerboard pattern will emerge. The image below shows a possible solution.

This solution solves the governing equations but creates a system that is unrealistic. In a real system, we would see flow from the 4-pressure elements into the 2-pressure elements.

A better solution uses different, overlapping areas for the pressures and velocities. In the improved solution, the pressures exist in each area of the grid and the velocities represent the flows between the pressure cells. This solution is represented below.

Solved Equations

With our improved grid model, we can finally solve the governing equations using a finite difference approximation. The following equations can calculate the next simulation conditions based on the current conditions.

Navier-Stokes equations for velocity

Conservation of mass for density

Conservation of energy for temperature

Ideal gas law for pressure

These equations can directly be used in our simulation. Beyond these equations, we will have to consider the boundary conditions. The boundaries can be modeled in many different ways so we will review them later. With all that in mind, we can begin the design and development of our simulation.