flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
Loading...
Searching...
No Matches
mac_ibm.hpp File Reference

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)
 

Detailed Description

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.