Safe Haskell | None |
---|

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.

# Documentation

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.