|
flow
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
flow — host-facing Kokkos IBM Navier-Stokes solver (drop-in flow-style API). More...
#include <array>#include <cmath>#include <cstring>#include <Kokkos_Core.hpp>#include <memory>#include <vector>#include "face_props.hpp"#include "grid_layout.hpp"#include "mac_approx_projection.hpp"#include "mac_cutcell_mg.hpp"#include "mac_ibm.hpp"#include "mac_pressure.hpp"#include "mac_stencils.hpp"#include "mac_velocity_mg.hpp"#include "peclet/core/field/field_set.hpp"#include "property_closures.hpp"#include "scalar_transport.hpp"#include "staggered_advection.hpp"Go to the source code of this file.
Classes | |
| class | peclet::flow::Solver< Grid > |
Namespaces | |
| namespace | peclet |
| namespace | peclet::flow |
Typedefs | |
| using | peclet::flow::IbmSolver = Solver< Staggered > |
flow — host-facing Kokkos IBM Navier-Stokes solver (drop-in flow-style API).
Assembles the validated cut-cell IBM operators into a runnable solver on a fully-periodic MAC box with immersed SDF solids: per-component backward-Euler implicit diffusion with the Robust-Scaled cut-cell no-slip stencil (buildIbmOverlay + ibmBuildDiffusion + ibmModifyStencil + ibmSolidMask + ibmRbgsSweep), then a rotational incremental-pressure Chorin projection through the open-face-weighted cut-cell pressure Poisson (buildCutcellOp + divergOpen, solved by CG with the constant null space projected out, then projectCorrect; P += (rho/dt)*phi - mu*div(u*) matching CUDA press_update_k). Schemes are a FAITHFUL port of the CUDA flow (point-value cut-cell IBM = ibm_geometry_ext_k<0>; rotational pressure): the velocity field matches CUDA to ~1e-13 (machine precision). Physical units (rho/mu/dt + body force). std::vector setters/getters so a pybind module can drive it. The verify_poiseuille / verify_periodic_spheres mechanism (k matches CUDA to all printed digits), on any backend. NOTE (faithfulness items, see memory): the CG uses a diagonal preconditioner where CUDA uses RB-GS-preconditioned MG-PCG (same converged solution); the pressure operator is stored double where CUDA uses float mreal – to reconcile in a later port pass.
Definition in file flow_ibm.hpp.