#fluid #physics #cfd #aerospace

flow2d_rs

A computational fluid dynamics (CFD) library

1 unstable release

0.1.0 Nov 6, 2023

#581 in Science

MIT license

46KB
940 lines

flow2d-rs

Computational fluid dynamics library written in Rust

https://github.com/1n0r1/flow2d-rs/assets/80285371/36516766-5e4f-436e-8b6b-90dad9e28668

Backward facing step

backward facing step

Cylinder cross flow

cylinder cross flow

Lid-driven cavity

lid-driven cavity

Features

  • 2D viscous incompressible Newtonian fluid flow
  • Solve Navier-Stokes equations using Euler's Method on staggered grid
  • Solve Poisson equation with Successive Over-relaxation method
  • Calculate and visualize pressure, speed and stream function
  • Different types of boundary conditions:
    • Moving no-slip boundary condition
    • Free slip boundary condition
    • Inflow and outflow condition
  • Planned features:
    • Contour plot for stream function
    • Free boundary value simulation
    • HDF5 data export
    • Use other method to solve Poisson equation (possibly Multigrid)
    • Optimize to run on GPU
    • Energy/Heat flow simulation
    • Extension to 3D
  • The theory and algorithm can be found in Numerical simulation in fluid dynamics: a practical introduction[1]

Quick start

  git clone https://github.com/1n0r1/flow2d-rs.git
  cd flow2d-rs
  cargo run --example gui

Refer to ./src/presets.rs for setting up other simulations.

Dependencies

References

Michael Griebel, Thomas Dornseifer, and Tilman Neunhoeffer. 1998. Numerical simulation in fluid dynamics: a practical introduction. SIAM

Dependencies

~1.5MB
~25K SLoC