|
flow
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
flow — device property closures: material properties / body forces as functions of fields. More...
Go to the source code of this file.
Classes | |
| struct | peclet::flow::Closure |
Namespaces | |
| namespace | peclet |
| namespace | peclet::flow |
Enumerations | |
| enum class | peclet::flow::ClosureKind { peclet::flow::LinearMix , peclet::flow::BoussinesqForce , peclet::flow::ArrheniusMu , peclet::flow::Table1D } |
Functions | |
| void | peclet::flow::applyClosure (const Closure &cl, C3 e, int g) |
flow — device property closures: material properties / body forces as functions of fields.
A closure writes one target cell field (a material property like rho/mu, or a momentum body-force component) as a pointwise function of one or two input fields (a transported scalar, pressure, a phase fraction). Dispatch is a host-side enum switch launching ONE dedicated Kokkos kernel per closure kind — no per-cell Python, no device virtual dispatch. The Solver applies its closure list in registration order at the top of step() (properties frozen over the step; segregated coupling).
This is the seam for field–field coupling: Boussinesq buoyancy (force from temperature), temperature-dependent viscosity (Arrhenius), composition-dependent density (linear mixture), and tabulated properties. A user escape hatch (set_field on a property) bypasses closures entirely.
Definition in file property_closures.hpp.