dsmc- DSMC library for rarefied gas dynamics

Safe HaskellNone



DSMC is an algorithm used for simulating rarefied gas flows.

You define the simulation domain, the body inside this domain, gas flow parameters and several other options. DSMC iteratively models the behaviour of gas molecules according to time and space decoupling scheme for the Boltzmann equation. The result of simulation is a field of macroscopic parameters across the simulation domain.



motion :: ParallelSeeds -> Body -> Time -> Surface -> Ensemble -> (Ensemble, ParallelSeeds)Source

Collisionless motion step.



:: Domain 
-> Body 
-> Flow 
-> Time

Time step.

-> Bool

If true, start with empty domain. Add initial particle distribution to the domain otherwise.

-> Double

Source reservoir extrusion.

-> Double

Steadiness epsilon.

-> Int

Step count limit in steady regime.

-> Surface

Model for surface of body.

-> (Double, Double, Double)

Spatial steps in X, Y, Z of grid used for macroscopic parameter sampling.

-> Int

Use that many test points to calculate volume of every cell wrt body. Depends on Knudsen number calculated from cell size.

-> Int

Split Lagrangian step into that many independent parallel processes.

-> IO (Int, Ensemble, MacroField) 

Perform DSMC simulation, return total iterations count, final particle distribution and field of averaged macroscopic parameters.

This is an IO action since system entropy source is polled for seeds.