|
flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
flow — portable (Kokkos) IBM geometric fields + variable-coefficient RB-GS smoother. More...
#include <Kokkos_Core.hpp>#include <type_traits>#include "cut_cell_ibm.hpp"#include "mac_cutcell.hpp"#include "mac_cutcell_mg.hpp"#include "policy.hpp"Go to the source code of this file.
Classes | |
| struct | peclet::flow::Off3 |
Namespaces | |
| namespace | peclet |
| namespace | peclet::flow |
Typedefs | |
| using | peclet::flow::mreal = MReal |
| using | peclet::flow::IbmOverlay = IbmOverlayT< IMem, mreal > |
| using | peclet::flow::GpOverlayMReal = GpOverlayReal< mreal > |
Functions | |
| template<class Real > | |
| bool | peclet::flow::ibmIsCut (Real sc, const Real sn[6]) |
| template<int SCHEME> | |
| int | peclet::flow::buildIbmOverlay (CCConst sdf, C3 ext, int g, Off3 off, int bc_type, const IbmOverlay &ov, Kokkos::View< int *, CCMem > idMap, Kokkos::View< int, CCMem > counter, CCConst tx=CCConst(), CCConst ty=CCConst(), CCConst tz=CCConst(), C3 nn=C3{0, 0, 0}, mreal slipLambda=mreal(0), int comp=-1, Kokkos::View< int, CCMem > sandwichSkipped=Kokkos::View< int, CCMem >(), mreal hpx=mreal(1), mreal hpy=mreal(1), mreal hpz=mreal(1)) |
slipLambda (WO-V6b, in CELLS, 0 = the validated no-slip closure) + comp (which velocity component this overlay carries: 0/1/2, -1 = none) turn the tangential wall Dirichlet datum into a NAVIER condition u_t(wall) = lambda du_t/dn. | |
| void | peclet::flow::ibmVolfrac (CCField theta, CCConst sdf, C3 ext, Off3 off, bool aniso=false, double hpx=1.0, double hpy=1.0, double hpz=1.0, double wx=1.0, double wy=1.0, double wz=1.0) |
| void | peclet::flow::ibmSolidMask (CCField mask, CCConst sdf, C3 ext, Off3 off) |
| void | peclet::flow::ibmCleanFluidMask (CCField m, CCConst sdf, C3 ext, Off3 off) |
| template<class MC > | |
| void | peclet::flow::ibmRbgsStencilColor (CCField x, CCConst b, MC AC, MC AW, MC AE, MC AS, MC AN, MC AB, MC AT, CCConst solidmask, C3 ext, C3 og, int g, int color) |
| template<class MC > | |
| double | peclet::flow::ibmRbgsStencilColorDu (CCField x, CCConst b, MC AC, MC AW, MC AE, MC AS, MC AN, MC AB, MC AT, CCConst solidmask, C3 ext, C3 og, int g, int color) |
| template<class MC > | |
| void | peclet::flow::ibmRbgsStencilColorBox (CCField x, CCConst b, MC AC, MC AW, MC AE, MC AS, MC AN, MC AB, MC AT, CCConst solidmask, C3 ext, C3 og, int color, C3 rlo, C3 rhi, C3 slo, C3 shi) |
| template<class MC > | |
| double | peclet::flow::ibmRbgsStencilColorDuBox (CCField x, CCConst b, MC AC, MC AW, MC AE, MC AS, MC AN, MC AB, MC AT, CCConst solidmask, C3 ext, C3 og, int color, C3 rlo, C3 rhi, C3 slo, C3 shi) |
| void | peclet::flow::ibmRbgsSweep (CCField x, CCConst b, MConst AC, MConst AW, MConst AE, MConst AS, MConst AN, MConst AB, MConst AT, CCConst solidmask, C3 ext, C3 og, int g) |
flow — portable (Kokkos) IBM geometric fields + variable-coefficient RB-GS smoother.
Kokkos port of the self-contained pieces of mac_ibm.cuh: cut-cell detection (ibm_is_cut), the staggered SDF gather, volume fraction (ibm_volfrac_k), solid + clean-fluid masks, and the variable-coefficient Red-Black Gauss-Seidel smoother (ibm_rbgs_stencil_k) for the IBM-modified momentum operator (mixed precision: float matrix coefficients, double iterate). The Robust-Scaled overlay BUILD (ibm_geometry/modify_stencil with the IBM_Data SoA + poly_*) is the heavier piece, left for a dedicated follow-up. Reuses the cut-cell SDF sampler. Runs on any Kokkos backend.
Definition in file mac_ibm.hpp.