TODO: Project Decription here
- uses
boost::units
to help ensure correctness - uses a custom multi-resolution simulator implementation to ensure there is higher resolution in areas of greater change
- simple run
git clone --recursive [email protected]:garethellis0/simple_cfd.git
to get this project with its dependencies
- Bring in the multi-resolution simulator as a submodule, instead of just as files
-
Model "Euler Equations" https://en.wikipedia.org/wiki/Euler_equations_(fluid_dynamics)(decided to just go right for Navier-Stokes, not much harder and gives better results) - Model "Navier-Stokes" https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations and solve for velocity (somewhat done, modeled Navier-Stokes with slight compressability via a pressure approx. from velocity)
- Extract pressure from Navier-Stokes velocity field
- Clean up the simulator rendering code and change the render model to allow for update steps longer then the render cycle time
- Build an (programmatic) interface for adding obstacles
- Come up with a better visualisation scheme
- Change the update model to use interpolation and generate a totally new simulator each time, instead of just updating the existing one (prep for dynamic mesh generation)
- Implement basic mesh generation (higher resolution in areas that need it)
- Build a basic GUI for setting up the configuration parameters (min/max mesh resolution, update time step, etc.)
- Add basic GUI for adding obstacles (maybe upload PNG's drawn in paint?)
- Implement automatic step-sizes (basically make sure the Courant-Friedrichs-Lewy condition is satisfied at each step)
- The Navier-Stokes is just a generalized version of the Euler equations
- When the pressure change over a timestep exceeds a threshold for a point, split that point (and vice versa, merge points with little change)
June 2nd, 2018: August 30th, 2018 (took a bit of a break...):