2D Fluid Simulator

August 22, 2025 · View on GitHub

baundary_condition_2_dye baundary_condition_2_norm

Features

  • Finite Difference Method (MAC Method)
  • Advection Scheme
    • Upwind Differencing
    • Kawamura-Kuwahara
    • CIP (Constrained Interpolation Profile)
  • Flow Visualization
    • Norm (Velocity) and Pressure
    • Pressure
    • Vorticity
    • Dye
  • Vorticity Confinement

Setup

Run the following command in an environment with the uv project management tool installed:

uv sync

GeForce GTX 1080 or higher recommended.

Usage

  • Boundary Condition 1, ReynoldsNumber = 1000, dt = 0.0005, VorticityConfinement is Disable
    uv run main.py -re 1000 -dt 0.0005 -vc 0.0
    
    Press V key switches the flow visualization method. dt is automatically determined even if not specified, but should be small for divergence.
  • Boundary Condition 2, resolution = 800
    uv run main.py -bc 2 -res 800
    
    Boundary conditions can be specified from 1 to 6
  • Boundary Condition 3, ReynoldsNumber = 10810^{8}, resolution = 800, VorticityConfinement = 10
    uv run main.py -bc 3 -re 100000000 -res 800 -vc 10
    
  • Help
    uv run main.py -h
    
  • for CPU
    uv run main.py -dt 0.0005 -cpu
    

Screenshots

Flow Visualization

  • Norm and Pressure norm_and_pressure
  • Pressure pressure
  • Vorticity vorticity
  • Dye dye

Vorticity Confinement

  • Disable no_vorticity_confinement
  • Enable vorticity_confinement

References