kbladin / Fluid_Simulation

Self advection, external force and pressure solve to a velocity field represented by a MaC grid.

Home Page:http://kbladin.se/dmt_projects/fluid_simulation.php

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fluid_Simulation

Implemented

  • Staggered MAC Grid
  • Different advection schemes
    • Semi Lagrangian advection with
      • Bilinear interpolation
      • Runge Kutta and Euler solver
    • PIC advection with bilinear interpolation
    • FLIP advection with bilinear interpolation
    • PIC / FLIP combination
  • Pressure solve using the conjugate gradient method with the linear algebra library "Eigen"
  • Enforce Dirichlet boundary condition
  • Marker particles for air/fluid separation
  • Velocity extension using brute force search through grid

Examples:

Youtube video of real time simulation:

Real time fluid simulation

Not Yet Implemented

  • Adaptive time steps
  • Vorticity confinement
  • Make sure marker particles are outside of obstacles
  • Other interpolation alternatives (quadratic, cubic, Catmull Rom)
  • Other air/fluid separation techniques (for example level set)
  • 3D simulation

About

Self advection, external force and pressure solve to a velocity field represented by a MaC grid.

http://kbladin.se/dmt_projects/fluid_simulation.php

License:MIT License


Languages

Language:C++ 90.2%Language:CMake 7.7%Language:C 1.1%Language:GLSL 1.0%