flow 0.4.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
Loading...
Searching...
No Matches
peclet::flow Namespace Reference

Namespaces

namespace  bcdetail
 

Classes

struct  B3
 
struct  C3
 
struct  Closure
 
struct  Colocated
 
class  CutcellMG
 
struct  Ext3
 
struct  FieldFaceProps
 
class  FlowReference
 
struct  GpOverlayT
 Per-overlay-row SoA. More...
 
struct  I3
 
struct  IbmOverlayT
 
class  MgPoisson
 
struct  Off3
 
struct  ScalarField
 
class  Solver
 
struct  Staggered
 
struct  StarOverlay
 One entry per eliminated solid-centered cell: packed INNER flat index + the apertures of its (up to 6) faces to FLUID-CENTERED axis neighbours (order: +x,-x,+y,-y,+z,-z; 0 where the neighbour is solid-centered or the face is closed). More...
 
struct  SumMax
 {sum, max|.|} reduction value. More...
 
struct  T3
 
struct  UniformFaceProps
 
struct  VarFaceProps
 
class  VelocityMG
 

Typedefs

using IMem = Kokkos::DefaultExecutionSpace::memory_space
 
using IbmOverlay = IbmOverlayT< IMem >
 
using IbmSolver = Solver< Staggered >
 
using GpOverlay = GpOverlayT< CCMem >
 
using MConst = Kokkos::View< const float *, CCMem >
 
using BExec = Kokkos::DefaultExecutionSpace
 
using BMem = BExec::memory_space
 
using BField = Kokkos::View< double *, BMem >
 
using CCExec = Kokkos::DefaultExecutionSpace
 
using CCMem = CCExec::memory_space
 
using CCField = Kokkos::View< double *, CCMem >
 
using CCConst = Kokkos::View< const double *, CCMem >
 
using MReal = float
 
using FPV = Kokkos::View< MReal *, CCMem >
 
using FPC = Kokkos::View< const MReal *, CCMem >
 
using mreal = float
 
using Exec = Kokkos::DefaultExecutionSpace
 
using Mem = Exec::memory_space
 
using DField = Kokkos::View< double *, Mem >
 
using DConst = Kokkos::View< const double *, Mem >
 
using SExec = Kokkos::DefaultExecutionSpace
 
using SMem = SExec::memory_space
 
using SField = Kokkos::View< double *, SMem >
 
using SConst = Kokkos::View< const double *, SMem >
 
using TExec = Kokkos::DefaultExecutionSpace
 
using TMem = TExec::memory_space
 
using TField = Kokkos::View< double *, TMem >
 
using TConst = Kokkos::View< const double *, TMem >
 

Enumerations

enum  : int { kCaMomentum = 1 , kCaMg = 2 }
 
enum class  ClosureKind { LinearMix , BoussinesqForce , ArrheniusMu , Table1D }
 
enum class  ScalarBc { Periodic = 0 , Neumann = 1 , Dirichlet = 2 }
 

Functions

float poly_D (float xi)
 
float poly_N_nb (float xi)
 
float poly_Nc (float xi)
 
float poly_Nbc (float)
 
float poly_D_avg (float xi)
 
float poly_Nnb_avg (float xi)
 
float poly_Nc_avg (float xi)
 
float poly_Nbc_avg (float)
 
float poly_D_sandwich (float xi_m, float xi_p)
 
float poly_N_c_sandwich (float xi_m, float xi_p)
 
float poly_Nbc_pp_sw (float xi_m, float xi_p)
 
float poly_Nbc_mp_sw (float xi_m, float xi_p)
 
float poly_D_sandwich_avg (float xi_m, float xi_p)
 
float poly_N_c_sandwich_avg (float xi_m, float xi_p)
 
float poly_Nbc_pp_sw_avg (float xi_m, float xi_p)
 
float poly_Nbc_mp_sw_avg (float xi_m, float xi_p)
 
template<int SCHEME, class OV >
void ibmFillEntry (const OV &o, int list_idx, int c_idx, float sdf_c, const float sdf_n[6], int bc_type, const float *thEx)
 
template<int SCHEME, class OV >
void ibmFillEntry (const OV &o, int list_idx, int c_idx, float sdf_c, const float sdf_n[6], int bc_type)
 
void ibmBuildDiffusion (Kokkos::View< float *, IMem > AC, Kokkos::View< float *, IMem > AW, Kokkos::View< float *, IMem > AE, Kokkos::View< float *, IMem > AS, Kokkos::View< float *, IMem > AN, Kokkos::View< float *, IMem > AB, Kokkos::View< float *, IMem > AT, int ex, int ey, int ez, double beta, double idiag)
 
template<class FaceProps >
void ibmBuildDiffusionVar (Kokkos::View< float *, IMem > AC, Kokkos::View< float *, IMem > AW, Kokkos::View< float *, IMem > AE, Kokkos::View< float *, IMem > AS, Kokkos::View< float *, IMem > AN, Kokkos::View< float *, IMem > AB, Kokkos::View< float *, IMem > AT, int ex, int ey, int ez, int g, FaceProps fp)
 
void ibmModifyStencil (Kokkos::View< float *, IMem > AC, Kokkos::View< float *, IMem > AW, Kokkos::View< float *, IMem > AE, Kokkos::View< float *, IMem > AS, Kokkos::View< float *, IMem > AN, Kokkos::View< float *, IMem > AB, Kokkos::View< float *, IMem > AT, Kokkos::View< double *, IMem > a_inhom, Kokkos::View< double *, IMem > rhs_scale, const IbmOverlay &ibm, int numActive, float u_bc_val)
 
void gpCenterGrad (CCField out, CCConst p, CCConst sdf, int axis, C3 e, int g, bool grad2a=false)
 Directional cell-center gradient (collocated ghost path) of a cell field p whose solid-centered rows are DECOUPLED (hold 0): central difference where both axis neighbours are fluid-centered; 2nd-order one-sided toward the fluid where a neighbour center is solid ((-3p_i + 4p_{i+1} - p_{i+2})/2, falling back to the 2-point one-sided when the +/-2 cell is solid too); 0 when sandwiched.
 
GpOverlay gpMakeOverlay (long n)
 
int gpWrap (int v, int n)
 
int buildGpOverlay (CCConst sdf, C3 ext, int g, C3 nn, const GpOverlay &ov, Kokkos::View< int *, CCMem > idMap, Kokkos::View< int, CCMem > counter, int matrixOrder=2, int rhsOrder=2, CCConst tx=CCConst(), CCConst ty=CCConst(), CCConst tz=CCConst(), bool useGhost=false)
 Build the overlay over the inner grid nn from the cell-centered sdf on the extended block (ext, ghost width g).
 
void gpBinaryOpenness (CCField ox, CCField oy, CCField oz, CCConst sdf, C3 ext)
 Binary openness for the symmetric MG surrogate, on the extended-block layout of buildOpenness: o(face) = 1 iff the face point is fluid AND both adjacent cell centers are fluid, else 0.
 
void gpApplyDelta (CCField y, CCConst x, const GpOverlay &ov, int nOv, C3 nn, C3 extY, int gbY, C3 extX, int gbX, bool useGhost=false)
 Overlay matvec correction: y(r) = rho_r * (y(r) + closure-face phi terms), where y currently holds the binary-openness (COUPLED-part) matvec.
 
void gpDivergDelta (CCField d, CCConst u, CCConst v, CCConst w, const GpOverlay &ov, int nOv, C3 nn, C3 extb, int gb, bool useGhost=false)
 Overlay divergence correction: d(r) = rho_r * (d(r) + closure/BC/explicit face values), where d currently holds the binary-openness divergence (divergOpen on the binary fields: COUPLED faces only).
 
int gpDebugLevel ()
 0 = off (default). Read once per call; cheap enough, and keeps the flag hot-swappable in tests.
 
void gpDebugReport (const GpOverlay &ov, int nRows, C3 nn, Kokkos::View< int *, CCMem > idMap, int rank=0)
 Census + optional per-row dump of the built overlay.
 
void centerToFace (CCField uf, CCField vf, CCField wf, CCConst U, CCConst V, CCConst W, C3 e, int g)
 
int wallAwareFaceStencil (CCConst sdf, long i, long sa, int cFace, int eAxis, double xcen, long idx[3], double w[3])
 
double wallAwareFaceValue (CCConst U, CCConst sdf, long i, long sa, int cFace, int eAxis, double xcen)
 
void buildFaceCentroidDist (CCField xcx, CCField xcy, CCField xcz, CCConst sdf, C3 e)
 
void centerToFaceWallAware (CCField uf, CCField vf, CCField wf, CCConst U, CCConst V, CCConst W, CCConst sdf, CCConst xcx, CCConst xcy, CCConst xcz, bool useCen, C3 e, int g)
 
void transposeGradWallAware (CCField out, CCConst p, CCConst sdf, CCConst o, CCConst xc, bool useCen, int axis, C3 e, int g)
 
void buildCellFraction (CCField cs, CCConst sdf, C3 e, int g)
 
void fvViscousApply (CCField Lu, CCConst U, CCConst sdf, CCConst cs, CCConst ox, CCConst oy, CCConst oz, double mu, double idt, C3 e, int g)
 
double eQuad (double xx, double a1, double a2, double a3)
 
double embedDirichletGradient (CCConst U, CCConst sdf, C3 e, int x, int y, int z, double nx, double ny, double nz, double px, double py, double pz)
 
void embedViscousApply (CCField Lu, CCConst U, CCConst sdf, CCConst cs, CCConst ox, CCConst oy, CCConst oz, double mu, double idt, C3 e, int g)
 
void stencilMatvec (CCField y, CCConst u, MConst AC, MConst AW, MConst AE, MConst AS, MConst AN, MConst AB, MConst AT, C3 e, int g)
 
void subtractField (CCField u, CCConst d, C3 e, int g)
 
void centerGradOpen (CCField out, CCConst p, CCConst o, int axis, C3 e, int g)
 
void centerGradAperture (CCField out, CCConst p, CCConst o, int axis, C3 e, int g)
 
void centerGradApertureScaled (CCField out, CCConst p, CCConst ox, CCConst oy, CCConst oz, int axis, C3 e, int g)
 
void centerGradOpenCapped (CCField out, CCConst p, CCConst o, int axis, double omin, C3 e, int g)
 
void projectCorrectCenterOpen (CCField u, CCField v, CCField w, CCConst phi, CCConst ox, CCConst oy, CCConst oz, C3 e, int g)
 
void projectCorrectCenter (CCField u, CCField v, CCField w, CCConst phi, CCConst ox, CCConst oy, CCConst oz, C3 e, int g)
 
void bcVelocityComp (BField f, B3 ext, int g, int a, int s, int comp, double wall, int fold, BField prof=BField(), int prof_nc=0)
 
void bcVelocityColocated (BField f, B3 ext, int g, int a, int s, double wall, int comp=0, BField prof=BField(), int prof_nc=0)
 
void bcNeumannGhost (BField f, B3 ext, int g, int a, int s)
 
void bcOutflowComp (BField f, B3 ext, int g, int a, int s, int comp, int fold)
 
void bcDiffusionFold (BField dcorr, BField brhs, B3 ext, int g, int a, int s, double dval, double bval)
 
void bcZeroPressureGhost (BField phi, B3 ext, int g, int a, int s)
 
void bcCorrectOutflow (BField f, BField phi, B3 ext, int g, int a)
 
void bcSetOpenness (BField oa, B3 ext, int g, int a, int s, double val)
 
void bcZeroOpenness (BField oa, B3 ext, int g, int a, int s)
 
double ccFractionCore (double sd, double sxp, double sxm, double syp, double sym, double szp, double szm, int type, double dx, double dy, double dz)
 
double ccSampleExt (CCConst sdf, C3 ext, double x, double y, double z)
 
double ccFaceOpen (CCConst sdf, C3 ext, double fx, double fy, double fz, int type, double dx, double dy, double dz)
 
double ccTriFrac (double a, double b, double c)
 
double ccFaceOpenMS (CCConst sdf, C3 ext, double fx, double fy, double fz, int type)
 
void buildOpenness (CCField ox, CCField oy, CCField oz, CCConst sdf, C3 ext, double dx, double dy, double dz, int order=1)
 
long hostSerialCellCutoff ()
 
bool hostRunSerial (long cells)
 
template<class F >
void ccFor3 (const char *name, C3 lo, C3 hi, F f)
 
template<class F , class R >
void ccReduce3 (const char *name, C3 lo, C3 hi, F f, R &&reducer)
 
void coarsenOpenAvg (CCField oxc, CCField oyc, CCField ozc, CCConst oxf, CCConst oyf, CCConst ozf, C3 cext, C3 fext, int gc, int gf, C3 cinner, C3 ratio)
 
void residualCutcell (CCField r, CCConst x, CCConst b, FPC AC, FPC AW, FPC AE, FPC AS, FPC AN, FPC AB, FPC AT, C3 e, int g)
 
void residualCutcellBox (CCField r, CCConst x, CCConst b, FPC AC, FPC AW, FPC AE, FPC AS, FPC AN, FPC AB, FPC AT, C3 e, C3 rlo, C3 rhi, C3 slo, C3 shi)
 
void restrictAvg (CCField coarse, CCConst fine, C3 cext, C3 fext, int gc, int gf, C3 cinner, C3 ratio)
 
void prolongAdd (CCField fine, CCConst coarse, C3 fext, C3 cext, int gf, int gc, C3 finner, C3 ratio)
 
int mgDebugLevel ()
 
int mgDebugSolves ()
 
int caSmoothingMode ()
 
bool ibmIsCut (float sc, const float sn[6])
 
template<int SCHEME>
int 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})
 
void ibmVolfrac (CCField theta, CCConst sdf, C3 ext, Off3 off)
 
void ibmSolidMask (CCField mask, CCConst sdf, C3 ext, Off3 off)
 
void ibmCleanFluidMask (CCField m, CCConst sdf, C3 ext, Off3 off)
 
void ibmRbgsStencilColor (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, int color)
 
double ibmRbgsStencilColorDu (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, int color)
 
void ibmRbgsStencilColorBox (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 color, C3 rlo, C3 rhi, C3 slo, C3 shi)
 
double ibmRbgsStencilColorDuBox (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 color, C3 rlo, C3 rhi, C3 slo, C3 shi)
 
void 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)
 
void mgPeriodicFill (SField f, I3 e, int N, int g)
 
template<class OpV >
void buildCutcellOp (OpV AC, OpV AW, OpV AE, OpV AS, OpV AN, OpV AB, OpV AT, CCConst ox, CCConst oy, CCConst oz, C3 e, int g, double gfx, double gfy, double gfz)
 
void divergOpen (CCConst u, CCConst v, CCConst w, CCConst ox, CCConst oy, CCConst oz, CCField d, C3 e, int g)
 
template<class OpV >
void cutcellSmoothColor (CCField phi, CCConst b, OpV AC, OpV AW, OpV AE, OpV AS, OpV AN, OpV AB, OpV AT, C3 e, C3 og, int g, int color)
 
template<class OpV >
void cutcellSmoothColorBox (CCField phi, CCConst b, OpV AC, OpV AW, OpV AE, OpV AS, OpV AN, OpV AB, OpV AT, C3 e, C3 og, int color, C3 rlo, C3 rhi, C3 slo, C3 shi)
 
template<class OpV >
void applyCutcellOp (CCField y, CCConst x, OpV AC, OpV AW, OpV AE, OpV AS, OpV AN, OpV AB, OpV AT, C3 e, int g)
 
template<class OpV >
void applyCutcellOpBox (CCField y, CCConst x, OpV AC, OpV AW, OpV AE, OpV AS, OpV AN, OpV AB, OpV AT, C3 e, C3 rlo, C3 rhi, C3 slo, C3 shi)
 
void projectCorrect (CCField u, CCField v, CCField w, CCConst phi, C3 e, int g)
 
void projectCorrectVar (CCField u, CCField v, CCField w, CCConst phi, CCConst rho, double rho0, C3 e, int g)
 
void buildRhoCoeff (CCField cx, CCField cy, CCField cz, CCConst ox, CCConst oy, CCConst oz, CCConst rho, double rho0, C3 e, int g)
 
void divergOpenEps (CCConst u, CCConst v, CCConst w, CCConst ox, CCConst oy, CCConst oz, CCConst eps, CCField d, C3 e, int g)
 
void buildPorousCoeff (CCField cx, CCField cy, CCField cz, CCConst ox, CCConst oy, CCConst oz, CCConst eps, C3 e, int g)
 
void buildPorousCoeffDrag (CCField cx, CCField cy, CCField cz, CCConst ox, CCConst oy, CCConst oz, CCConst eps, CCConst beta, double idt, C3 e, int g)
 
void buildPorousCoeffCons (CCField cx, CCField cy, CCField cz, CCConst ox, CCConst oy, CCConst oz, CCConst eps, CCConst beta, bool useBeta, double rhoidt, C3 e, int g)
 
void projectCorrectPorousCons (CCField u, CCField v, CCField w, CCConst phi, CCConst eps, CCConst beta, bool useBeta, double rhoidt, C3 e, int g)
 
void projectCorrectPorousDrag (CCField u, CCField v, CCField w, CCConst phi, CCConst beta, double idt, C3 e, int g)
 
std::size_t innerToExt (long c, Ext3 ext, int ghost, Ext3 inner)
 
SumMax localSumMax (DConst f, Ext3 ext, int ghost, Ext3 inner)
 Local sum and max|.| over the inner cells.
 
double localDot (DConst a, DConst b, Ext3 ext, int ghost, Ext3 inner)
 Local inner product <a,b> over the inner cells.
 
void subtractAll (DField f, double m)
 Subtract a constant from EVERY cell of the extended block (the mean-removal scatter).
 
long L3 (int x, int y, int z, I3 e)
 
void diffSmoothColor (SField c, SConst b, I3 e, I3 og, int g, double beta, double Ac, int color, SConst dcorr)
 
double diffSmoothColorDu (SField c, SConst b, I3 e, I3 og, int g, double beta, double Ac, int color, SConst dcorr)
 
void poisSmoothColor (SField phi, SConst d, I3 e, I3 og, int g, int color)
 
void divergence (SConst u, SConst v, SConst w, SField d, I3 e, int g)
 
void poisSweep (SField phi, SConst d, I3 e, I3 og, int g)
 
void restrict_ (TField coarse, TConst fine, T3 cext, T3 fext, int g, T3 cinner, T3 ratio)
 
double trilerp (TConst c, double x, double y, double z, T3 cext)
 
void prolong (TField fine, TConst coarse, T3 fext, T3 cext, int g, T3 finner, T3 ratio)
 
void correct (TField u, TField v, TField w, TConst phi, T3 e, int g)
 
void residualVarPin (CCField r, CCConst x, CCConst b, FPC AC, FPC AW, FPC AE, FPC AS, FPC AN, FPC AB, FPC AT, CCConst pin, C3 e, int g)
 
void prolongMasked (CCField fine, CCConst coarse, CCConst mask, C3 fext, C3 cext, int g, C3 finner, C3 ratio, double eps)
 
void buildVelocityStaircase (FPV AC, FPV AW, FPV AE, FPV AS, FPV AN, FPV AB, FPV AT, CCConst theta, C3 e, int g, double bx, double by, double bz, double thresh, double idiag)
 
void buildAdvCoarse (FPV AC, FPV AW, FPV AE, FPV AS, FPV AN, FPV AB, FPV AT, CCConst U, CCConst V, CCConst W, int comp, C3 e, int g, double bx, double by, double bz, double fouw, double sx, double sy, double sz, double idiag)
 
void buildConstAniso (FPV AC, FPV AW, FPV AE, FPV AS, FPV AN, FPV AB, FPV AT, C3 e, double bx, double by, double bz, double idiag)
 
void boundaryFold (FPV AC, C3 e, int g, int a, int s, double beta)
 
void fillBcGhost (CCField x, C3 e, int g, int a, int s, int dirichlet)
 
void zeroPlane (CCField m, C3 e, int axis, int idx)
 
void thresholdMask (CCField m, CCConst theta, double thresh)
 
void mulMask (CCField r, CCConst m)
 
void applyClosure (const Closure &cl, C3 e, int g)
 
void scalarBuildDiffusionOpen (CCField AC, CCField AW, CCField AE, CCField AS, CCField AN, CCField AB, CCField AT, CCConst ox, CCConst oy, CCConst oz, double D, double idt, C3 e, int g)
 
void scalarBuildRhs (CCField b, CCConst cOld, CCConst U, CCConst V, CCConst W, CCConst ox, CCConst oy, CCConst oz, double idt, int scheme, C3 e, int g)
 
StarOverlay starMakeOverlay (long n)
 
int starWrap (int v, int n)
 
int buildStarOverlay (CCConst sdf, CCConst ox, CCConst oy, CCConst oz, C3 ext, int g, C3 nn, const StarOverlay &ov, Kokkos::View< int, CCMem > counter)
 Count + fill the star overlay from the cell-centered sdf and the ORIGINAL (unfiltered) apertures on the extended block (ext, ghost width g); nn = inner extents.
 
void starApplyDelta (CCField y, CCConst x, const StarOverlay &ov, int nOv, C3 nn, C3 extY, int gY, C3 extX, int gX)
 y += S_star x over the inner cells of the (extY, gY) block, x read from the (extX, gX) block, both periodic via inner-grid wrap.
 
void starCorrectFaces (CCField uf, CCField vf, CCField wf, CCConst phi, const StarOverlay &ov, int nOv, C3 nn, C3 ext, int g, C3 extP, int gP)
 Fix the face correction at fluid|solid faces: projectCorrect applied -(phi_hi - phi_lo) with the solid side's (decoupled) phi = 0; the mode-B correction wants the solid value phibar_s.
 

Typedef Documentation

◆ IMem

using peclet::flow::IMem = typedef Kokkos::DefaultExecutionSpace::memory_space

Definition at line 19 of file cut_cell_ibm.hpp.

◆ IbmOverlay

◆ IbmSolver

◆ GpOverlay

◆ MConst

typedef Kokkos::View< const float *, CCMem > peclet::flow::MConst

Definition at line 23 of file mac_approx_projection.hpp.

◆ BExec

using peclet::flow::BExec = typedef Kokkos::DefaultExecutionSpace

Definition at line 17 of file mac_bc.hpp.

◆ BMem

using peclet::flow::BMem = typedef BExec::memory_space

Definition at line 18 of file mac_bc.hpp.

◆ BField

Definition at line 19 of file mac_bc.hpp.

◆ CCExec

using peclet::flow::CCExec = typedef Kokkos::DefaultExecutionSpace

Definition at line 20 of file mac_cutcell.hpp.

◆ CCMem

using peclet::flow::CCMem = typedef CCExec::memory_space

Definition at line 21 of file mac_cutcell.hpp.

◆ CCField

Definition at line 22 of file mac_cutcell.hpp.

◆ CCConst

Definition at line 23 of file mac_cutcell.hpp.

◆ MReal

Definition at line 51 of file mac_cutcell_mg.hpp.

◆ FPV

Definition at line 52 of file mac_cutcell_mg.hpp.

◆ FPC

Definition at line 53 of file mac_cutcell_mg.hpp.

◆ mreal

Definition at line 22 of file mac_ibm.hpp.

◆ Exec

using peclet::flow::Exec = typedef Kokkos::DefaultExecutionSpace

Definition at line 18 of file mac_reductions.hpp.

◆ Mem

using peclet::flow::Mem = typedef Exec::memory_space

Definition at line 19 of file mac_reductions.hpp.

◆ DField

Definition at line 20 of file mac_reductions.hpp.

◆ DConst

Definition at line 21 of file mac_reductions.hpp.

◆ SExec

using peclet::flow::SExec = typedef Kokkos::DefaultExecutionSpace

Definition at line 19 of file mac_stencils.hpp.

◆ SMem

using peclet::flow::SMem = typedef SExec::memory_space

Definition at line 20 of file mac_stencils.hpp.

◆ SField

Definition at line 21 of file mac_stencils.hpp.

◆ SConst

Definition at line 22 of file mac_stencils.hpp.

◆ TExec

using peclet::flow::TExec = typedef Kokkos::DefaultExecutionSpace

Definition at line 16 of file mac_transfer.hpp.

◆ TMem

using peclet::flow::TMem = typedef TExec::memory_space

Definition at line 17 of file mac_transfer.hpp.

◆ TField

Definition at line 18 of file mac_transfer.hpp.

◆ TConst

Definition at line 19 of file mac_transfer.hpp.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum : int
Enumerator
kCaMomentum 
kCaMg 

Definition at line 201 of file mac_cutcell_mg.hpp.

◆ ClosureKind

Enumerator
LinearMix 
BoussinesqForce 
ArrheniusMu 
Table1D 

Definition at line 25 of file property_closures.hpp.

◆ ScalarBc

Enumerator
Periodic 
Neumann 
Dirichlet 

Definition at line 33 of file scalar_transport.hpp.

Function Documentation

◆ poly_D()

float peclet::flow::poly_D ( float  xi)

Definition at line 22 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_N_nb()

float peclet::flow::poly_N_nb ( float  xi)

Definition at line 25 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_Nc()

float peclet::flow::poly_Nc ( float  xi)

Definition at line 28 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_Nbc()

float peclet::flow::poly_Nbc ( float  )

Definition at line 31 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_D_avg()

float peclet::flow::poly_D_avg ( float  xi)

Definition at line 34 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_Nnb_avg()

float peclet::flow::poly_Nnb_avg ( float  xi)

Definition at line 37 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_Nc_avg()

float peclet::flow::poly_Nc_avg ( float  xi)

Definition at line 40 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_Nbc_avg()

float peclet::flow::poly_Nbc_avg ( float  )

Definition at line 43 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_D_sandwich()

float peclet::flow::poly_D_sandwich ( float  xi_m,
float  xi_p 
)

Definition at line 46 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_N_c_sandwich()

float peclet::flow::poly_N_c_sandwich ( float  xi_m,
float  xi_p 
)

Definition at line 49 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_Nbc_pp_sw()

float peclet::flow::poly_Nbc_pp_sw ( float  xi_m,
float  xi_p 
)

Definition at line 52 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_Nbc_mp_sw()

float peclet::flow::poly_Nbc_mp_sw ( float  xi_m,
float  xi_p 
)

Definition at line 55 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_D_sandwich_avg()

float peclet::flow::poly_D_sandwich_avg ( float  xi_m,
float  xi_p 
)

Definition at line 58 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_N_c_sandwich_avg()

float peclet::flow::poly_N_c_sandwich_avg ( float  xi_m,
float  xi_p 
)

Definition at line 61 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_Nbc_pp_sw_avg()

float peclet::flow::poly_Nbc_pp_sw_avg ( float  xi_m,
float  xi_p 
)

Definition at line 64 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ poly_Nbc_mp_sw_avg()

float peclet::flow::poly_Nbc_mp_sw_avg ( float  xi_m,
float  xi_p 
)

Definition at line 67 of file cut_cell_ibm.hpp.

Referenced by ibmFillEntry().

◆ ibmFillEntry() [1/2]

template<int SCHEME, class OV >
void peclet::flow::ibmFillEntry ( const OV &  o,
int  list_idx,
int  c_idx,
float  sdf_c,
const float  sdf_n[6],
int  bc_type,
const float *  thEx 
)

Definition at line 89 of file cut_cell_ibm.hpp.

References poly_D(), poly_D_avg(), poly_D_sandwich(), poly_D_sandwich_avg(), poly_N_c_sandwich(), poly_N_c_sandwich_avg(), poly_N_nb(), poly_Nbc(), poly_Nbc_avg(), poly_Nbc_mp_sw(), poly_Nbc_mp_sw_avg(), poly_Nbc_pp_sw(), poly_Nbc_pp_sw_avg(), poly_Nc(), poly_Nc_avg(), and poly_Nnb_avg().

Referenced by peclet::flow::Solver< Grid >::addDragDiagonal(), peclet::flow::Solver< Grid >::advanceScalars(), peclet::flow::Staggered::advect(), peclet::flow::Colocated::advect(), peclet::flow::Staggered::advect_fou(), peclet::flow::Colocated::advect_fou(), peclet::flow::Staggered::advect_sou(), peclet::flow::Colocated::advect_sou(), peclet::flow::CutcellMG::agglomerateBottom(), peclet::flow::Solver< Grid >::allocateBlock(), peclet::flow::Solver< Grid >::applyBackflowStab(), peclet::flow::CutcellMG::applyBoundaryOpenness(), applyClosure(), applyCutcellOp(), applyCutcellOpBox(), peclet::flow::Solver< Grid >::applyScalarBcFace(), peclet::flow::Solver< Grid >::applyVelocityBcComp(), peclet::flow::Solver< Grid >::applyVelocityBcCompTo(), peclet::flow::bcdetail::axisDims(), peclet::flow::CutcellMG::axpy(), peclet::flow::CutcellMG::aypx(), bcCorrectOutflow(), bcDiffusionFold(), bcNeumannGhost(), bcOutflowComp(), bcSetOpenness(), bcVelocityColocated(), bcVelocityComp(), bcZeroOpenness(), bcZeroPressureGhost(), peclet::flow::FieldFaceProps::beta(), peclet::flow::VarFaceProps::beta(), boundaryFold(), buildAdvCoarse(), peclet::flow::Solver< Grid >::buildAdvStencil(), peclet::flow::Solver< Grid >::buildAdvStencilVar(), peclet::flow::CutcellMG::buildAmg(), buildCellFraction(), buildConstAniso(), buildCutcellOp(), buildFaceCentroidDist(), buildGpOverlay(), buildOpenness(), buildPorousCoeff(), buildPorousCoeffCons(), buildPorousCoeffDrag(), buildRhoCoeff(), peclet::flow::FlowReference::buildRhs(), peclet::flow::Solver< Grid >::buildRhs(), peclet::flow::Solver< Grid >::buildRhsForced(), peclet::flow::Solver< Grid >::buildRhsVar(), buildStarOverlay(), peclet::flow::VelocityMG::buildUpwindCoarse(), buildVelocityStaircase(), ccFaceOpen(), ccFaceOpenMS(), ccFor3(), ccFractionCore(), ccReduce3(), ccSampleExt(), ccTriFrac(), centerGradAperture(), centerGradApertureScaled(), centerGradOpen(), centerGradOpenCapped(), centerToFace(), centerToFaceWallAware(), coarsenOpenAvg(), peclet::flow::Solver< Grid >::computeDivAdv(), peclet::flow::MgPoisson::computeResidual(), peclet::flow::Solver< Grid >::copyBlockShifted(), peclet::flow::Solver< Grid >::copyInner(), peclet::flow::FlowReference::copyInner(), correct(), cutcellSmoothColor(), cutcellSmoothColorBox(), diffSmoothColor(), diffSmoothColorDu(), peclet::flow::FlowReference::diffuseComp(), divergence(), divergOpen(), divergOpenEps(), peclet::flow::CutcellMG::dot(), embedDirichletGradient(), embedViscousApply(), eQuad(), peclet::flow::CutcellMG::estimateEigenvalues(), peclet::flow::Solver< Grid >::exchangeFieldAdd(), peclet::flow::Solver< Grid >::fillAxis(), peclet::flow::FlowReference::fillAxis(), peclet::flow::CutcellMG::fillAxis(), peclet::flow::VelocityMG::fillAxis(), fillBcGhost(), peclet::flow::Solver< Grid >::fillGhosts(), peclet::flow::Solver< Grid >::fillGhostsFaces(), peclet::flow::Solver< Grid >::fillPorousEpsGhosts(), peclet::flow::VelocityMG::fillProlongBcGhosts(), peclet::flow::Solver< Grid >::fillPropGhosts(), peclet::flow::Solver< Grid >::fillVelGhosts(), peclet::flow::Solver< Grid >::fillVelGhostsTo(), peclet::flow::Solver< Grid >::filterCellField(), peclet::flow::FlowReference::FlowReference(), peclet::flow::Staggered::fou_operator(), peclet::flow::Colocated::fou_operator(), fvViscousApply(), peclet::flow::Solver< Grid >::gatherInner(), peclet::flow::Solver< Grid >::getFaceVelocity(), peclet::flow::Solver< Grid >::getOpennessProj(), peclet::flow::Solver< Grid >::getPressure(), peclet::flow::Solver< Grid >::globalResolution(), gpApplyDelta(), gpBinaryOpenness(), gpCenterGrad(), gpDebugReport(), gpDivergDelta(), peclet::flow::CutcellMG::graphAmgSolveBottom(), hostRunSerial(), hostVel(), hostZeroOpen(), ibmBuildDiffusion(), ibmBuildDiffusionVar(), ibmCleanFluidMask(), ibmFillEntry(), ibmIsCut(), ibmModifyStencil(), ibmRbgsStencilColor(), ibmRbgsStencilColorBox(), ibmRbgsStencilColorDu(), ibmRbgsStencilColorDuBox(), ibmRbgsSweep(), ibmSolidMask(), ibmVolfrac(), peclet::flow::VarFaceProps::idiag(), peclet::flow::CutcellMG::init(), peclet::flow::VelocityMG::init(), innerToExt(), l3(), l3(), peclet::flow::CutcellMG::level(), peclet::flow::VelocityMG::level(), peclet::flow::CutcellMG::lin(), localDot(), localSumMax(), main(), peclet::flow::Solver< Grid >::makeFaceProps(), peclet::flow::CutcellMG::maskSolid(), peclet::flow::Solver< Grid >::maskVelocity(), peclet::flow::CutcellMG::matvecOverlap(), peclet::flow::CutcellMG::maxabs(), peclet::flow::Solver< Grid >::maxAbsDiffInner(), peclet::flow::MgPoisson::maxAbsInner(), peclet::flow::Solver< Grid >::maxOpenDivergence(), peclet::flow::Solver< Grid >::maxPorousResidual(), mgPeriodicFill(), peclet::flow::MgPoisson::MgPoisson(), peclet::flow::Solver< Grid >::minMuInner(), mulMask(), peclet::flow::Solver< Grid >::patchScalarDirichletFace(), peclet::flow::CutcellMG::pcgAmg(), poisSmoothColor(), peclet::flow::Solver< Grid >::pressureBcGhost(), peclet::flow::Solver< Grid >::project(), projectCorrect(), projectCorrectCenter(), projectCorrectCenterOpen(), projectCorrectPorousCons(), projectCorrectPorousDrag(), projectCorrectVar(), prolong(), prolongAdd(), prolongMasked(), peclet::flow::FlowReference::reduceInner(), peclet::flow::Solver< Grid >::reduceMaxAbsInner(), peclet::flow::FlowReference::removeMean(), peclet::flow::CutcellMG::removeMean(), peclet::flow::MgPoisson::removeMean(), residualCutcell(), residualCutcellBox(), residualVarPin(), restrict_(), peclet::flow::VelocityMG::restrictAdvVelocities(), restrictAvg(), run(), scalarBuildDiffusionOpen(), scalarBuildRhs(), peclet::flow::CutcellMG::scale(), peclet::flow::Solver< Grid >::scatterInner(), peclet::flow::Solver< Grid >::setAdvection(), peclet::flow::FlowReference::setAdvection(), peclet::flow::Solver< Grid >::setApertureOrder(), peclet::flow::VelocityMG::setBC(), peclet::flow::VelocityMG::setBcApplyL0(), peclet::flow::Solver< Grid >::setBodyForce(), peclet::flow::FlowReference::setBodyForce(), peclet::flow::CutcellMG::setBoundaryConditions(), peclet::flow::Solver< Grid >::setDeferredCorrection(), peclet::flow::Solver< Grid >::setDensityMode(), peclet::flow::Solver< Grid >::setDomainBc(), peclet::flow::VelocityMG::setDomainBcOp(), peclet::flow::Solver< Grid >::setDomainBcProfile(), peclet::flow::Solver< Grid >::setExactCrossings(), peclet::flow::Solver< Grid >::setFaceInterp(), peclet::flow::Solver< Grid >::setFluidOnlyConstraint(), peclet::flow::Solver< Grid >::setGhostProjection(), peclet::flow::CutcellMG::setGraphAmgBottom(), peclet::flow::Solver< Grid >::setImplicitAdvection(), peclet::flow::Solver< Grid >::setIncrementalPressure(), peclet::flow::FlowReference::setIterations(), peclet::flow::CutcellMG::setOpenness(), peclet::flow::Solver< Grid >::setOuterTolerance(), peclet::flow::Solver< Grid >::setPorousConservative(), peclet::flow::Solver< Grid >::setPorousContinuity(), peclet::flow::Solver< Grid >::setPorousDepsDt(), peclet::flow::Solver< Grid >::setPressureChebyshev(), peclet::flow::Solver< Grid >::setPressureGeometry(), peclet::flow::Solver< Grid >::setPressureGraphAmg(), peclet::flow::Solver< Grid >::setPressureIterations(), peclet::flow::Solver< Grid >::setPressureLevels(), peclet::flow::FlowReference::setPressureMultigrid(), peclet::flow::Solver< Grid >::setPressurePcg(), peclet::flow::Solver< Grid >::setPressureWarmstart(), peclet::flow::Solver< Grid >::setPropertyMode(), peclet::flow::Solver< Grid >::setPropertyModel(), peclet::flow::Solver< Grid >::setPropertyTable(), peclet::flow::Solver< Grid >::setRotationalFilter(), peclet::flow::Solver< Grid >::setRotationalPressure(), peclet::flow::Solver< Grid >::setRotationalWallWeight(), peclet::flow::Solver< Grid >::setScalarBc(), peclet::flow::Solver< Grid >::setSolid(), peclet::flow::VelocityMG::setStaircase(), peclet::flow::Solver< Grid >::setupBcDiffusion(), peclet::flow::Solver< Grid >::setVariableRotational(), peclet::flow::Solver< Grid >::setVelocityIterations(), peclet::flow::Solver< Grid >::setVelocityMultigrid(), peclet::flow::Solver< Grid >::setVelocityTolerance(), peclet::flow::MgPoisson::smooth(), peclet::flow::VelocityMG::smooth(), peclet::flow::CutcellMG::smooth(), peclet::flow::MgPoisson::smoothColor(), peclet::flow::Solver< Grid >::smoothComp(), peclet::flow::VelocityMG::solve(), peclet::flow::MgPoisson::solve(), peclet::flow::CutcellMG::solveChebyshev(), starApplyDelta(), starCorrectFaces(), stencilMatvec(), peclet::flow::Solver< Grid >::step(), peclet::flow::FlowReference::step(), peclet::flow::Solver< Grid >::strideOf(), subtractAll(), subtractField(), thresholdMask(), transposeGradWallAware(), trilerp(), peclet::flow::Solver< Grid >::updateEpsRho(), peclet::flow::Solver< Grid >::updateProperties(), peclet::flow::Solver< Grid >::uploadVelocity(), peclet::flow::VelocityMG::vcycle(), peclet::flow::CutcellMG::vcycle(), peclet::flow::MgPoisson::vcycle(), peclet::flow::CutcellMG::vcycleImpl(), peclet::flow::Solver< Grid >::velSweepLoop(), wallAwareFaceStencil(), wallAwareFaceValue(), and zeroPlane().

◆ ibmFillEntry() [2/2]

template<int SCHEME, class OV >
void peclet::flow::ibmFillEntry ( const OV &  o,
int  list_idx,
int  c_idx,
float  sdf_c,
const float  sdf_n[6],
int  bc_type 
)

Definition at line 221 of file cut_cell_ibm.hpp.

References ibmFillEntry().

◆ ibmBuildDiffusion()

void peclet::flow::ibmBuildDiffusion ( Kokkos::View< float *, IMem AC,
Kokkos::View< float *, IMem AW,
Kokkos::View< float *, IMem AE,
Kokkos::View< float *, IMem AS,
Kokkos::View< float *, IMem AN,
Kokkos::View< float *, IMem AB,
Kokkos::View< float *, IMem AT,
int  ex,
int  ey,
int  ez,
double  beta,
double  idiag 
)
inline

◆ ibmBuildDiffusionVar()

template<class FaceProps >
void peclet::flow::ibmBuildDiffusionVar ( Kokkos::View< float *, IMem AC,
Kokkos::View< float *, IMem AW,
Kokkos::View< float *, IMem AE,
Kokkos::View< float *, IMem AS,
Kokkos::View< float *, IMem AN,
Kokkos::View< float *, IMem AB,
Kokkos::View< float *, IMem AT,
int  ex,
int  ey,
int  ez,
int  g,
FaceProps  fp 
)
inline

◆ ibmModifyStencil()

void peclet::flow::ibmModifyStencil ( Kokkos::View< float *, IMem AC,
Kokkos::View< float *, IMem AW,
Kokkos::View< float *, IMem AE,
Kokkos::View< float *, IMem AS,
Kokkos::View< float *, IMem AN,
Kokkos::View< float *, IMem AB,
Kokkos::View< float *, IMem AT,
Kokkos::View< double *, IMem a_inhom,
Kokkos::View< double *, IMem rhs_scale,
const IbmOverlay ibm,
int  numActive,
float  u_bc_val 
)
inline

◆ gpCenterGrad()

void peclet::flow::gpCenterGrad ( CCField  out,
CCConst  p,
CCConst  sdf,
int  axis,
C3  e,
int  g,
bool  grad2a = false 
)
inline

Directional cell-center gradient (collocated ghost path) of a cell field p whose solid-centered rows are DECOUPLED (hold 0): central difference where both axis neighbours are fluid-centered; 2nd-order one-sided toward the fluid where a neighbour center is solid ((-3p_i + 4p_{i+1} - p_{i+2})/2, falling back to the 2-point one-sided when the +/-2 cell is solid too); 0 when sandwiched.

Never reads a solid cell's value — reading the decoupled 0 is a GAUGE-DEPENDENT O(1) gradient error (measured in tests/study/ghost_collocated_apriori.py [C2]: the mode-0 central difference grows O(1/h) at cut cells, the openness-weighted kernels are O(1)/O(h); this operator is O(h^2) and exactly gauge-invariant). Serves both the incremental -grad(P^n) predictor and the projection's cell correction. The sdf must be the PROJECTION's view (the fragmentation-guarded sdfGp), so pocket cells whose phi rows are decoupled are not read either. grad2a selects the Guy–Fogelson "gradient 2a" one-sided branch (JCP 2005, eq. 95): the gradient is linearly EXTRAPOLATED from the two interior central differences, g_i = 2 g_{i+1} - g_{i+2} = (-2 p_i + p_{i+1} + 2 p_{i+2} - p_{i+3})/2, instead of formed by quadratic extrapolation of the pressure ((-3 p_i + 4 p_{i+1} - p_{i+2})/2 — their "gradient 2"). Both are 2nd order, but gradient 2 amplifies the highest-frequency (checkerboard) mode at the boundary row and is the combination their stability analysis shows to be unstable under the rotational pressure update on a cell-centered approximate projection — the exact scheme family of this solver. Gradient 2a annihilates that mode. When the +/-3 cell is not fluid, grad2a falls back to the 2-point one-sided difference (their stable "gradient 1"), never to gradient 2. Default off: byte-identical to the shipped gauge-exact scheme.

Definition at line 39 of file gauge_exact_gradient.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::buildRhs(), peclet::flow::Solver< Grid >::buildRhsForced(), and peclet::flow::Solver< Grid >::project().

◆ gpMakeOverlay()

◆ gpWrap()

int peclet::flow::gpWrap ( int  v,
int  n 
)

Definition at line 105 of file ghost_projection.hpp.

Referenced by buildGpOverlay(), gpApplyDelta(), and gpDivergDelta().

◆ buildGpOverlay()

int peclet::flow::buildGpOverlay ( CCConst  sdf,
C3  ext,
int  g,
C3  nn,
const GpOverlay ov,
Kokkos::View< int *, CCMem idMap,
Kokkos::View< int, CCMem counter,
int  matrixOrder = 2,
int  rhsOrder = 2,
CCConst  tx = CCConst(),
CCConst  ty = CCConst(),
CCConst  tz = CCConst(),
bool  useGhost = false 
)
inline

Build the overlay over the inner grid nn from the cell-centered sdf on the extended block (ext, ghost width g).

Neighbor access: single-rank wraps periodically over the inner grid (so the +/-2 reach never depends on g); useGhost (distributed) reads straight offsets into the exchanged halo instead — requires g >= 2 and current sdf ghosts. The MDRange covers this rank's inner cells only, which IS the gp-row ownership under MPI. Overlay arrays must be sized for the worst case; returns the row count. idMap (size nn.x*nn.y*nn.z) gets slot or -1. (Exact crossings tx/ty/tz are inner-sized with wrap access — single-rank only, not lifted.)

Definition at line 117 of file ghost_projection.hpp.

References peclet::flow::GpOverlayT< Space >::cell, peclet::flow::GpOverlayT< Space >::coupled, F, gpWrap(), ibmFillEntry(), peclet::flow::GpOverlayT< Space >::rescale, peclet::flow::GpOverlayT< Space >::state, peclet::flow::GpOverlayT< Space >::th, peclet::flow::GpOverlayT< Space >::w_bc, peclet::flow::GpOverlayT< Space >::w_n1, peclet::flow::GpOverlayT< Space >::w_n2, peclet::flow::GpOverlayT< Space >::wm_n1, peclet::flow::GpOverlayT< Space >::wm_n2, peclet::flow::C3::x, and peclet::flow::C3::y.

Referenced by peclet::flow::Solver< Grid >::setSolid().

◆ gpBinaryOpenness()

void peclet::flow::gpBinaryOpenness ( CCField  ox,
CCField  oy,
CCField  oz,
CCConst  sdf,
C3  ext 
)
inline

Binary openness for the symmetric MG surrogate, on the extended-block layout of buildOpenness: o(face) = 1 iff the face point is fluid AND both adjacent cell centers are fluid, else 0.

buildCutcellOp on this field gives exactly the COUPLED part of the ghost operator; the whole CutcellMG hierarchy (coarsening, smoothing, GraphAMG bottom) runs on it unchanged.

Definition at line 206 of file ghost_projection.hpp.

References ibmFillEntry(), peclet::flow::C3::x, peclet::flow::C3::y, and peclet::flow::C3::z.

Referenced by peclet::flow::Solver< Grid >::setSolid().

◆ gpApplyDelta()

void peclet::flow::gpApplyDelta ( CCField  y,
CCConst  x,
const GpOverlay ov,
int  nOv,
C3  nn,
C3  extY,
int  gbY,
C3  extX,
int  gbX,
bool  useGhost = false 
)
inline

Overlay matvec correction: y(r) = rho_r * (y(r) + closure-face phi terms), where y currently holds the binary-openness (COUPLED-part) matvec.

y lives on the (extY, gbY) block, x on the (extX, gbX) block — identical single-rank (both the g=1 MG block), but distributed the +/-2 couplings need a g=2 halo, so x is the caller's staged g=2 copy while y stays on the MG block. Neighbor access: single-rank wraps over the inner grid nn; useGhost reads straight offsets into x's exchanged halo (requires gbX >= 2). Face at relative index m couples cells (i+m-1, i+m); the div coefficient c = sgn*w contributes A x += -c*x(i+m) + c*x(i+m-1) => delta = sgn*w*(x_cm - x_cp). Distinct rows per thread: no atomics.

Definition at line 234 of file ghost_projection.hpp.

References peclet::flow::GpOverlayT< Space >::cell, peclet::flow::GpOverlayT< Space >::coupled, gpWrap(), ibmFillEntry(), peclet::flow::GpOverlayT< Space >::rescale, peclet::flow::GpOverlayT< Space >::state, peclet::flow::GpOverlayT< Space >::wm_n1, and peclet::flow::GpOverlayT< Space >::wm_n2.

◆ gpDivergDelta()

void peclet::flow::gpDivergDelta ( CCField  d,
CCConst  u,
CCConst  v,
CCConst  w,
const GpOverlay ov,
int  nOv,
C3  nn,
C3  extb,
int  gb,
bool  useGhost = false 
)
inline

Overlay divergence correction: d(r) = rho_r * (d(r) + closure/BC/explicit face values), where d currently holds the binary-openness divergence (divergOpen on the binary fields: COUPLED faces only).

u/v/w and d live on the solver block (extents extb, ghost width gb). u_bc = 0 (v1 stationary walls). Neighbor access: single-rank wraps over the inner grid nn; useGhost (distributed) reads straight offsets into the exchanged velocity halo (reach -1..+2, gb >= 2). Rows with no phi coupling are zeroed (decoupled). Used identically for the RHS div(u*) and the post-correction diagnostic — the diagnostic IS the residual.

Definition at line 280 of file ghost_projection.hpp.

References peclet::flow::GpOverlayT< Space >::cell, peclet::flow::GpOverlayT< Space >::coupled, gpWrap(), ibmFillEntry(), peclet::flow::GpOverlayT< Space >::rescale, peclet::flow::GpOverlayT< Space >::state, peclet::flow::GpOverlayT< Space >::w_n1, and peclet::flow::GpOverlayT< Space >::w_n2.

Referenced by peclet::flow::Solver< Grid >::maxOpenDivergence(), and peclet::flow::Solver< Grid >::project().

◆ gpDebugLevel()

int peclet::flow::gpDebugLevel ( )
inline

0 = off (default). Read once per call; cheap enough, and keeps the flag hot-swappable in tests.

Definition at line 46 of file ghost_projection_debug.hpp.

Referenced by gpDebugReport(), and peclet::flow::Solver< Grid >::setSolid().

◆ gpDebugReport()

void peclet::flow::gpDebugReport ( const GpOverlay ov,
int  nRows,
C3  nn,
Kokkos::View< int *, CCMem idMap,
int  rank = 0 
)
inline

Census + optional per-row dump of the built overlay.

nn is the inner grid, nRows the row count returned by buildGpOverlay, idMap the inner-cell -> row map (-1 = no row). rank only labels the output. Host-side; copies the overlay out of device memory once.

Definition at line 54 of file ghost_projection_debug.hpp.

References peclet::flow::GpOverlayT< Space >::cell, peclet::flow::GpOverlayT< Space >::coupled, gpDebugLevel(), ibmFillEntry(), peclet::flow::GpOverlayT< Space >::rescale, rhoAt(), peclet::flow::GpOverlayT< Space >::state, peclet::flow::GpOverlayT< Space >::th, peclet::flow::GpOverlayT< Space >::w_n1, peclet::flow::GpOverlayT< Space >::w_n2, peclet::flow::GpOverlayT< Space >::wm_n1, and peclet::flow::GpOverlayT< Space >::wm_n2.

Referenced by peclet::flow::Solver< Grid >::setSolid().

◆ centerToFace()

void peclet::flow::centerToFace ( CCField  uf,
CCField  vf,
CCField  wf,
CCConst  U,
CCConst  V,
CCConst  W,
C3  e,
int  g 
)
inline

Definition at line 30 of file mac_approx_projection.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::project().

◆ wallAwareFaceStencil()

int peclet::flow::wallAwareFaceStencil ( CCConst  sdf,
long  i,
long  sa,
int  cFace,
int  eAxis,
double  xcen,
long  idx[3],
double  w[3] 
)

Definition at line 68 of file mac_approx_projection.hpp.

References ibmFillEntry().

Referenced by transposeGradWallAware(), and wallAwareFaceValue().

◆ wallAwareFaceValue()

double peclet::flow::wallAwareFaceValue ( CCConst  U,
CCConst  sdf,
long  i,
long  sa,
int  cFace,
int  eAxis,
double  xcen 
)

Definition at line 126 of file mac_approx_projection.hpp.

References ibmFillEntry(), and wallAwareFaceStencil().

Referenced by centerToFaceWallAware().

◆ buildFaceCentroidDist()

void peclet::flow::buildFaceCentroidDist ( CCField  xcx,
CCField  xcy,
CCField  xcz,
CCConst  sdf,
C3  e 
)
inline

Definition at line 143 of file mac_approx_projection.hpp.

References ccSampleExt(), and ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::setSolid().

◆ centerToFaceWallAware()

void peclet::flow::centerToFaceWallAware ( CCField  uf,
CCField  vf,
CCField  wf,
CCConst  U,
CCConst  V,
CCConst  W,
CCConst  sdf,
CCConst  xcx,
CCConst  xcy,
CCConst  xcz,
bool  useCen,
C3  e,
int  g 
)
inline

◆ transposeGradWallAware()

void peclet::flow::transposeGradWallAware ( CCField  out,
CCConst  p,
CCConst  sdf,
CCConst  o,
CCConst  xc,
bool  useCen,
int  axis,
C3  e,
int  g 
)
inline

◆ buildCellFraction()

void peclet::flow::buildCellFraction ( CCField  cs,
CCConst  sdf,
C3  e,
int  g 
)
inline

Definition at line 268 of file mac_approx_projection.hpp.

References ccSampleExt(), and ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::setSolid().

◆ fvViscousApply()

void peclet::flow::fvViscousApply ( CCField  Lu,
CCConst  U,
CCConst  sdf,
CCConst  cs,
CCConst  ox,
CCConst  oy,
CCConst  oz,
double  mu,
double  idt,
C3  e,
int  g 
)
inline

Definition at line 306 of file mac_approx_projection.hpp.

References ccSampleExt(), and ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::buildRhs().

◆ eQuad()

double peclet::flow::eQuad ( double  xx,
double  a1,
double  a2,
double  a3 
)

Definition at line 368 of file mac_approx_projection.hpp.

References ibmFillEntry().

Referenced by embedDirichletGradient().

◆ embedDirichletGradient()

double peclet::flow::embedDirichletGradient ( CCConst  U,
CCConst  sdf,
C3  e,
int  x,
int  y,
int  z,
double  nx,
double  ny,
double  nz,
double  px,
double  py,
double  pz 
)

Definition at line 383 of file mac_approx_projection.hpp.

References eQuad(), and ibmFillEntry().

Referenced by embedViscousApply().

◆ embedViscousApply()

void peclet::flow::embedViscousApply ( CCField  Lu,
CCConst  U,
CCConst  sdf,
CCConst  cs,
CCConst  ox,
CCConst  oy,
CCConst  oz,
double  mu,
double  idt,
C3  e,
int  g 
)
inline

◆ stencilMatvec()

void peclet::flow::stencilMatvec ( CCField  y,
CCConst  u,
MConst  AC,
MConst  AW,
MConst  AE,
MConst  AS,
MConst  AN,
MConst  AB,
MConst  AT,
C3  e,
int  g 
)
inline

Definition at line 523 of file mac_approx_projection.hpp.

References AC, and ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::buildRhs().

◆ subtractField()

void peclet::flow::subtractField ( CCField  u,
CCConst  d,
C3  e,
int  g 
)
inline

Definition at line 539 of file mac_approx_projection.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::project().

◆ centerGradOpen()

void peclet::flow::centerGradOpen ( CCField  out,
CCConst  p,
CCConst  o,
int  axis,
C3  e,
int  g 
)
inline

Definition at line 558 of file mac_approx_projection.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::buildRhs().

◆ centerGradAperture()

void peclet::flow::centerGradAperture ( CCField  out,
CCConst  p,
CCConst  o,
int  axis,
C3  e,
int  g 
)
inline

◆ centerGradApertureScaled()

void peclet::flow::centerGradApertureScaled ( CCField  out,
CCConst  p,
CCConst  ox,
CCConst  oy,
CCConst  oz,
int  axis,
C3  e,
int  g 
)
inline

◆ centerGradOpenCapped()

void peclet::flow::centerGradOpenCapped ( CCField  out,
CCConst  p,
CCConst  o,
int  axis,
double  omin,
C3  e,
int  g 
)
inline

◆ projectCorrectCenterOpen()

void peclet::flow::projectCorrectCenterOpen ( CCField  u,
CCField  v,
CCField  w,
CCConst  phi,
CCConst  ox,
CCConst  oy,
CCConst  oz,
C3  e,
int  g 
)
inline

Definition at line 651 of file mac_approx_projection.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::project().

◆ projectCorrectCenter()

void peclet::flow::projectCorrectCenter ( CCField  u,
CCField  v,
CCField  w,
CCConst  phi,
CCConst  ox,
CCConst  oy,
CCConst  oz,
C3  e,
int  g 
)
inline

Definition at line 684 of file mac_approx_projection.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::project().

◆ bcVelocityComp()

void peclet::flow::bcVelocityComp ( BField  f,
B3  ext,
int  g,
int  a,
int  s,
int  comp,
double  wall,
int  fold,
BField  prof = BField(),
int  prof_nc = 0 
)
inline

◆ bcVelocityColocated()

void peclet::flow::bcVelocityColocated ( BField  f,
B3  ext,
int  g,
int  a,
int  s,
double  wall,
int  comp = 0,
BField  prof = BField(),
int  prof_nc = 0 
)
inline

◆ bcNeumannGhost()

void peclet::flow::bcNeumannGhost ( BField  f,
B3  ext,
int  g,
int  a,
int  s 
)
inline

◆ bcOutflowComp()

void peclet::flow::bcOutflowComp ( BField  f,
B3  ext,
int  g,
int  a,
int  s,
int  comp,
int  fold 
)
inline

◆ bcDiffusionFold()

void peclet::flow::bcDiffusionFold ( BField  dcorr,
BField  brhs,
B3  ext,
int  g,
int  a,
int  s,
double  dval,
double  bval 
)
inline

◆ bcZeroPressureGhost()

void peclet::flow::bcZeroPressureGhost ( BField  phi,
B3  ext,
int  g,
int  a,
int  s 
)
inline

◆ bcCorrectOutflow()

void peclet::flow::bcCorrectOutflow ( BField  f,
BField  phi,
B3  ext,
int  g,
int  a 
)
inline

◆ bcSetOpenness()

void peclet::flow::bcSetOpenness ( BField  oa,
B3  ext,
int  g,
int  a,
int  s,
double  val 
)
inline

◆ bcZeroOpenness()

void peclet::flow::bcZeroOpenness ( BField  oa,
B3  ext,
int  g,
int  a,
int  s 
)
inline

Definition at line 250 of file mac_bc.hpp.

References bcSetOpenness(), and ibmFillEntry().

Referenced by main(), and peclet::flow::Solver< Grid >::setSolid().

◆ ccFractionCore()

double peclet::flow::ccFractionCore ( double  sd,
double  sxp,
double  sxm,
double  syp,
double  sym,
double  szp,
double  szm,
int  type,
double  dx,
double  dy,
double  dz 
)

Definition at line 31 of file mac_cutcell.hpp.

References ibmFillEntry().

Referenced by ccFaceOpen(), and main().

◆ ccSampleExt()

◆ ccFaceOpen()

double peclet::flow::ccFaceOpen ( CCConst  sdf,
C3  ext,
double  fx,
double  fy,
double  fz,
int  type,
double  dx,
double  dy,
double  dz 
)

Definition at line 76 of file mac_cutcell.hpp.

References ccFractionCore(), ccSampleExt(), and ibmFillEntry().

Referenced by buildOpenness().

◆ ccTriFrac()

double peclet::flow::ccTriFrac ( double  a,
double  b,
double  c 
)

Definition at line 92 of file mac_cutcell.hpp.

References ibmFillEntry().

Referenced by ccFaceOpenMS().

◆ ccFaceOpenMS()

double peclet::flow::ccFaceOpenMS ( CCConst  sdf,
C3  ext,
double  fx,
double  fy,
double  fz,
int  type 
)

Definition at line 120 of file mac_cutcell.hpp.

References ccSampleExt(), ccTriFrac(), and ibmFillEntry().

Referenced by buildOpenness().

◆ buildOpenness()

void peclet::flow::buildOpenness ( CCField  ox,
CCField  oy,
CCField  oz,
CCConst  sdf,
C3  ext,
double  dx,
double  dy,
double  dz,
int  order = 1 
)
inline

◆ hostSerialCellCutoff()

long peclet::flow::hostSerialCellCutoff ( )
inline

Definition at line 190 of file mac_cutcell.hpp.

Referenced by hostRunSerial().

◆ hostRunSerial()

bool peclet::flow::hostRunSerial ( long  cells)
inline

Definition at line 198 of file mac_cutcell.hpp.

References hostSerialCellCutoff(), and ibmFillEntry().

Referenced by ccFor3(), cutcellSmoothColor(), and cutcellSmoothColorBox().

◆ ccFor3()

template<class F >
void peclet::flow::ccFor3 ( const char name,
C3  lo,
C3  hi,
F  f 
)
inline

◆ ccReduce3()

template<class F , class R >
void peclet::flow::ccReduce3 ( const char name,
C3  lo,
C3  hi,
F  f,
R &&  reducer 
)
inline

Definition at line 233 of file mac_cutcell.hpp.

References ibmFillEntry().

Referenced by peclet::flow::CutcellMG::dot(), and peclet::flow::CutcellMG::maxabs().

◆ coarsenOpenAvg()

void peclet::flow::coarsenOpenAvg ( CCField  oxc,
CCField  oyc,
CCField  ozc,
CCConst  oxf,
CCConst  oyf,
CCConst  ozf,
C3  cext,
C3  fext,
int  gc,
int  gf,
C3  cinner,
C3  ratio 
)
inline

◆ residualCutcell()

void peclet::flow::residualCutcell ( CCField  r,
CCConst  x,
CCConst  b,
FPC  AC,
FPC  AW,
FPC  AE,
FPC  AS,
FPC  AN,
FPC  AB,
FPC  AT,
C3  e,
int  g 
)
inline

◆ residualCutcellBox()

void peclet::flow::residualCutcellBox ( CCField  r,
CCConst  x,
CCConst  b,
FPC  AC,
FPC  AW,
FPC  AE,
FPC  AS,
FPC  AN,
FPC  AB,
FPC  AT,
C3  e,
C3  rlo,
C3  rhi,
C3  slo,
C3  shi 
)
inline

Definition at line 107 of file mac_cutcell_mg.hpp.

References AC, ccFor3(), and ibmFillEntry().

Referenced by peclet::flow::CutcellMG::vcycleImpl().

◆ restrictAvg()

void peclet::flow::restrictAvg ( CCField  coarse,
CCConst  fine,
C3  cext,
C3  fext,
int  gc,
int  gf,
C3  cinner,
C3  ratio 
)
inline

◆ prolongAdd()

void peclet::flow::prolongAdd ( CCField  fine,
CCConst  coarse,
C3  fext,
C3  cext,
int  gf,
int  gc,
C3  finner,
C3  ratio 
)
inline

◆ mgDebugLevel()

int peclet::flow::mgDebugLevel ( )
inline

◆ mgDebugSolves()

int peclet::flow::mgDebugSolves ( )
inline

Definition at line 186 of file mac_cutcell_mg.hpp.

◆ caSmoothingMode()

int peclet::flow::caSmoothingMode ( )
inline

Definition at line 202 of file mac_cutcell_mg.hpp.

References kCaMg, and kCaMomentum.

◆ ibmIsCut()

bool peclet::flow::ibmIsCut ( float  sc,
const float  sn[6] 
)

Definition at line 30 of file mac_ibm.hpp.

References ibmFillEntry().

Referenced by ibmCleanFluidMask().

◆ buildIbmOverlay()

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} 
)
inline

Definition at line 45 of file mac_ibm.hpp.

◆ ibmVolfrac()

void peclet::flow::ibmVolfrac ( CCField  theta,
CCConst  sdf,
C3  ext,
Off3  off 
)
inline

◆ ibmSolidMask()

void peclet::flow::ibmSolidMask ( CCField  mask,
CCConst  sdf,
C3  ext,
Off3  off 
)
inline

◆ ibmCleanFluidMask()

void peclet::flow::ibmCleanFluidMask ( CCField  m,
CCConst  sdf,
C3  ext,
Off3  off 
)
inline

◆ ibmRbgsStencilColor()

void peclet::flow::ibmRbgsStencilColor ( 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,
int  color 
)
inline

◆ ibmRbgsStencilColorDu()

double peclet::flow::ibmRbgsStencilColorDu ( 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,
int  color 
)
inline

◆ ibmRbgsStencilColorBox()

void peclet::flow::ibmRbgsStencilColorBox ( 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  color,
C3  rlo,
C3  rhi,
C3  slo,
C3  shi 
)
inline

◆ ibmRbgsStencilColorDuBox()

double peclet::flow::ibmRbgsStencilColorDuBox ( 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  color,
C3  rlo,
C3  rhi,
C3  slo,
C3  shi 
)
inline

◆ ibmRbgsSweep()

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 
)
inline

Definition at line 344 of file mac_ibm.hpp.

References AC, ibmFillEntry(), and ibmRbgsStencilColor().

Referenced by main().

◆ mgPeriodicFill()

void peclet::flow::mgPeriodicFill ( SField  f,
I3  e,
int  N,
int  g 
)
inline

◆ buildCutcellOp()

template<class OpV >
void peclet::flow::buildCutcellOp ( OpV  AC,
OpV  AW,
OpV  AE,
OpV  AS,
OpV  AN,
OpV  AB,
OpV  AT,
CCConst  ox,
CCConst  oy,
CCConst  oz,
C3  e,
int  g,
double  gfx,
double  gfy,
double  gfz 
)
inline

Definition at line 24 of file mac_pressure.hpp.

References AC, and ibmFillEntry().

Referenced by DistMG::init(), main(), and peclet::flow::CutcellMG::setOpenness().

◆ divergOpen()

void peclet::flow::divergOpen ( CCConst  u,
CCConst  v,
CCConst  w,
CCConst  ox,
CCConst  oy,
CCConst  oz,
CCField  d,
C3  e,
int  g 
)
inline

◆ cutcellSmoothColor()

template<class OpV >
void peclet::flow::cutcellSmoothColor ( CCField  phi,
CCConst  b,
OpV  AC,
OpV  AW,
OpV  AE,
OpV  AS,
OpV  AN,
OpV  AB,
OpV  AT,
C3  e,
C3  og,
int  g,
int  color 
)
inline

◆ cutcellSmoothColorBox()

template<class OpV >
void peclet::flow::cutcellSmoothColorBox ( CCField  phi,
CCConst  b,
OpV  AC,
OpV  AW,
OpV  AE,
OpV  AS,
OpV  AN,
OpV  AB,
OpV  AT,
C3  e,
C3  og,
int  color,
C3  rlo,
C3  rhi,
C3  slo,
C3  shi 
)
inline

Definition at line 120 of file mac_pressure.hpp.

References AC, hostRunSerial(), and ibmFillEntry().

Referenced by peclet::flow::CutcellMG::smooth().

◆ applyCutcellOp()

template<class OpV >
void peclet::flow::applyCutcellOp ( CCField  y,
CCConst  x,
OpV  AC,
OpV  AW,
OpV  AE,
OpV  AS,
OpV  AN,
OpV  AB,
OpV  AT,
C3  e,
int  g 
)
inline

Definition at line 178 of file mac_pressure.hpp.

References AC, ccFor3(), and ibmFillEntry().

Referenced by peclet::flow::CutcellMG::matvecOverlap().

◆ applyCutcellOpBox()

template<class OpV >
void peclet::flow::applyCutcellOpBox ( CCField  y,
CCConst  x,
OpV  AC,
OpV  AW,
OpV  AE,
OpV  AS,
OpV  AN,
OpV  AB,
OpV  AT,
C3  e,
C3  rlo,
C3  rhi,
C3  slo,
C3  shi 
)
inline

Definition at line 194 of file mac_pressure.hpp.

References AC, and ibmFillEntry().

Referenced by peclet::flow::CutcellMG::matvecOverlap().

◆ projectCorrect()

void peclet::flow::projectCorrect ( CCField  u,
CCField  v,
CCField  w,
CCConst  phi,
C3  e,
int  g 
)
inline

Definition at line 215 of file mac_pressure.hpp.

References ccFor3(), and ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::project().

◆ projectCorrectVar()

void peclet::flow::projectCorrectVar ( CCField  u,
CCField  v,
CCField  w,
CCConst  phi,
CCConst  rho,
double  rho0,
C3  e,
int  g 
)
inline

Definition at line 231 of file mac_pressure.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::project().

◆ buildRhoCoeff()

void peclet::flow::buildRhoCoeff ( CCField  cx,
CCField  cy,
CCField  cz,
CCConst  ox,
CCConst  oy,
CCConst  oz,
CCConst  rho,
double  rho0,
C3  e,
int  g 
)
inline

Definition at line 251 of file mac_pressure.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::project().

◆ divergOpenEps()

void peclet::flow::divergOpenEps ( CCConst  u,
CCConst  v,
CCConst  w,
CCConst  ox,
CCConst  oy,
CCConst  oz,
CCConst  eps,
CCField  d,
C3  e,
int  g 
)
inline

◆ buildPorousCoeff()

void peclet::flow::buildPorousCoeff ( CCField  cx,
CCField  cy,
CCField  cz,
CCConst  ox,
CCConst  oy,
CCConst  oz,
CCConst  eps,
C3  e,
int  g 
)
inline

Definition at line 295 of file mac_pressure.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::project().

◆ buildPorousCoeffDrag()

void peclet::flow::buildPorousCoeffDrag ( CCField  cx,
CCField  cy,
CCField  cz,
CCConst  ox,
CCConst  oy,
CCConst  oz,
CCConst  eps,
CCConst  beta,
double  idt,
C3  e,
int  g 
)
inline

Definition at line 317 of file mac_pressure.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::project().

◆ buildPorousCoeffCons()

void peclet::flow::buildPorousCoeffCons ( CCField  cx,
CCField  cy,
CCField  cz,
CCConst  ox,
CCConst  oy,
CCConst  oz,
CCConst  eps,
CCConst  beta,
bool  useBeta,
double  rhoidt,
C3  e,
int  g 
)
inline

Definition at line 341 of file mac_pressure.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::project().

◆ projectCorrectPorousCons()

void peclet::flow::projectCorrectPorousCons ( CCField  u,
CCField  v,
CCField  w,
CCConst  phi,
CCConst  eps,
CCConst  beta,
bool  useBeta,
double  rhoidt,
C3  e,
int  g 
)
inline

Definition at line 362 of file mac_pressure.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::project().

◆ projectCorrectPorousDrag()

void peclet::flow::projectCorrectPorousDrag ( CCField  u,
CCField  v,
CCField  w,
CCConst  phi,
CCConst  beta,
double  idt,
C3  e,
int  g 
)
inline

Definition at line 384 of file mac_pressure.hpp.

References ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::project().

◆ innerToExt()

std::size_t peclet::flow::innerToExt ( long  c,
Ext3  ext,
int  ghost,
Ext3  inner 
)

Definition at line 39 of file mac_reductions.hpp.

References ibmFillEntry(), peclet::flow::Ext3::x, and peclet::flow::Ext3::y.

Referenced by localDot(), and localSumMax().

◆ localSumMax()

SumMax peclet::flow::localSumMax ( DConst  f,
Ext3  ext,
int  ghost,
Ext3  inner 
)
inline

Local sum and max|.| over the inner cells.

Definition at line 48 of file mac_reductions.hpp.

References ibmFillEntry(), innerToExt(), peclet::flow::Ext3::x, peclet::flow::Ext3::y, and peclet::flow::Ext3::z.

Referenced by main().

◆ localDot()

double peclet::flow::localDot ( DConst  a,
DConst  b,
Ext3  ext,
int  ghost,
Ext3  inner 
)
inline

Local inner product <a,b> over the inner cells.

Definition at line 67 of file mac_reductions.hpp.

References ibmFillEntry(), innerToExt(), peclet::flow::Ext3::x, peclet::flow::Ext3::y, and peclet::flow::Ext3::z.

Referenced by main().

◆ subtractAll()

void peclet::flow::subtractAll ( DField  f,
double  m 
)
inline

Subtract a constant from EVERY cell of the extended block (the mean-removal scatter).

Definition at line 83 of file mac_reductions.hpp.

References ibmFillEntry().

Referenced by main().

◆ L3()

◆ diffSmoothColor()

void peclet::flow::diffSmoothColor ( SField  c,
SConst  b,
I3  e,
I3  og,
int  g,
double  beta,
double  Ac,
int  color,
SConst  dcorr 
)
inline

◆ diffSmoothColorDu()

double peclet::flow::diffSmoothColorDu ( SField  c,
SConst  b,
I3  e,
I3  og,
int  g,
double  beta,
double  Ac,
int  color,
SConst  dcorr 
)
inline

Definition at line 72 of file mac_stencils.hpp.

References ibmFillEntry(), and L3().

Referenced by peclet::flow::Solver< Grid >::smoothComp().

◆ poisSmoothColor()

void peclet::flow::poisSmoothColor ( SField  phi,
SConst  d,
I3  e,
I3  og,
int  g,
int  color 
)
inline

Definition at line 118 of file mac_stencils.hpp.

References ibmFillEntry(), and L3().

Referenced by poisSweep().

◆ divergence()

void peclet::flow::divergence ( SConst  u,
SConst  v,
SConst  w,
SField  d,
I3  e,
int  g 
)
inline

◆ poisSweep()

void peclet::flow::poisSweep ( SField  phi,
SConst  d,
I3  e,
I3  og,
int  g 
)
inline

Definition at line 146 of file mac_stencils.hpp.

References poisSmoothColor().

Referenced by main(), and peclet::flow::FlowReference::step().

◆ restrict_()

void peclet::flow::restrict_ ( TField  coarse,
TConst  fine,
T3  cext,
T3  fext,
int  g,
T3  cinner,
T3  ratio 
)
inline

◆ trilerp()

double peclet::flow::trilerp ( TConst  c,
double  x,
double  y,
double  z,
T3  cext 
)

Definition at line 48 of file mac_transfer.hpp.

References F, and ibmFillEntry().

Referenced by prolong().

◆ prolong()

void peclet::flow::prolong ( TField  fine,
TConst  coarse,
T3  fext,
T3  cext,
int  g,
T3  finner,
T3  ratio 
)
inline

◆ correct()

void peclet::flow::correct ( TField  u,
TField  v,
TField  w,
TConst  phi,
T3  e,
int  g 
)
inline

Definition at line 83 of file mac_transfer.hpp.

References ibmFillEntry().

Referenced by main(), and peclet::flow::FlowReference::step().

◆ residualVarPin()

void peclet::flow::residualVarPin ( CCField  r,
CCConst  x,
CCConst  b,
FPC  AC,
FPC  AW,
FPC  AE,
FPC  AS,
FPC  AN,
FPC  AB,
FPC  AT,
CCConst  pin,
C3  e,
int  g 
)
inline

Definition at line 33 of file mac_velocity_mg.hpp.

References AC, and ibmFillEntry().

Referenced by peclet::flow::VelocityMG::vcycle().

◆ prolongMasked()

void peclet::flow::prolongMasked ( CCField  fine,
CCConst  coarse,
CCConst  mask,
C3  fext,
C3  cext,
int  g,
C3  finner,
C3  ratio,
double  eps 
)
inline

◆ buildVelocityStaircase()

void peclet::flow::buildVelocityStaircase ( FPV  AC,
FPV  AW,
FPV  AE,
FPV  AS,
FPV  AN,
FPV  AB,
FPV  AT,
CCConst  theta,
C3  e,
int  g,
double  bx,
double  by,
double  bz,
double  thresh,
double  idiag 
)
inline

Definition at line 91 of file mac_velocity_mg.hpp.

References AC, and ibmFillEntry().

Referenced by peclet::flow::VelocityMG::setStaircase().

◆ buildAdvCoarse()

void peclet::flow::buildAdvCoarse ( FPV  AC,
FPV  AW,
FPV  AE,
FPV  AS,
FPV  AN,
FPV  AB,
FPV  AT,
CCConst  U,
CCConst  V,
CCConst  W,
int  comp,
C3  e,
int  g,
double  bx,
double  by,
double  bz,
double  fouw,
double  sx,
double  sy,
double  sz,
double  idiag 
)
inline

◆ buildConstAniso()

void peclet::flow::buildConstAniso ( FPV  AC,
FPV  AW,
FPV  AE,
FPV  AS,
FPV  AN,
FPV  AB,
FPV  AT,
C3  e,
double  bx,
double  by,
double  bz,
double  idiag 
)
inline

Definition at line 148 of file mac_velocity_mg.hpp.

References AC, and ibmFillEntry().

Referenced by peclet::flow::VelocityMG::setDomainBcOp().

◆ boundaryFold()

void peclet::flow::boundaryFold ( FPV  AC,
C3  e,
int  g,
int  a,
int  s,
double  beta 
)
inline

Definition at line 171 of file mac_velocity_mg.hpp.

References AC, and ibmFillEntry().

Referenced by peclet::flow::VelocityMG::setDomainBcOp().

◆ fillBcGhost()

void peclet::flow::fillBcGhost ( CCField  x,
C3  e,
int  g,
int  a,
int  s,
int  dirichlet 
)
inline

Definition at line 190 of file mac_velocity_mg.hpp.

References ibmFillEntry().

Referenced by peclet::flow::VelocityMG::fillProlongBcGhosts().

◆ zeroPlane()

void peclet::flow::zeroPlane ( CCField  m,
C3  e,
int  axis,
int  idx 
)
inline

Definition at line 216 of file mac_velocity_mg.hpp.

References ibmFillEntry().

Referenced by peclet::flow::VelocityMG::setDomainBcOp().

◆ thresholdMask()

void peclet::flow::thresholdMask ( CCField  m,
CCConst  theta,
double  thresh 
)
inline

Definition at line 228 of file mac_velocity_mg.hpp.

References ibmFillEntry().

Referenced by peclet::flow::VelocityMG::setStaircase().

◆ mulMask()

void peclet::flow::mulMask ( CCField  r,
CCConst  m 
)
inline

Definition at line 238 of file mac_velocity_mg.hpp.

References ibmFillEntry().

Referenced by peclet::flow::VelocityMG::vcycle().

◆ applyClosure()

void peclet::flow::applyClosure ( const Closure cl,
C3  e,
int  g 
)
inline

◆ scalarBuildDiffusionOpen()

void peclet::flow::scalarBuildDiffusionOpen ( CCField  AC,
CCField  AW,
CCField  AE,
CCField  AS,
CCField  AN,
CCField  AB,
CCField  AT,
CCConst  ox,
CCConst  oy,
CCConst  oz,
double  D,
double  idt,
C3  e,
int  g 
)
inline

Definition at line 54 of file scalar_transport.hpp.

References AC, and ibmFillEntry().

Referenced by peclet::flow::Solver< Grid >::advanceScalars().

◆ scalarBuildRhs()

void peclet::flow::scalarBuildRhs ( CCField  b,
CCConst  cOld,
CCConst  U,
CCConst  V,
CCConst  W,
CCConst  ox,
CCConst  oy,
CCConst  oz,
double  idt,
int  scheme,
C3  e,
int  g 
)
inline

◆ starMakeOverlay()

StarOverlay peclet::flow::starMakeOverlay ( long  n)
inline

◆ starWrap()

int peclet::flow::starWrap ( int  v,
int  n 
)

Definition at line 47 of file star_elimination.hpp.

Referenced by starApplyDelta(), and starCorrectFaces().

◆ buildStarOverlay()

int peclet::flow::buildStarOverlay ( CCConst  sdf,
CCConst  ox,
CCConst  oy,
CCConst  oz,
C3  ext,
int  g,
C3  nn,
const StarOverlay ov,
Kokkos::View< int, CCMem counter 
)
inline

Count + fill the star overlay from the cell-centered sdf and the ORIGINAL (unfiltered) apertures on the extended block (ext, ghost width g); nn = inner extents.

Single-rank periodic (neighbour access wraps over the inner grid). Pass ov with capacity >= the count of a prior sizing call (fill = ov.cell.extent(0) > 0). Returns the row count via the host copy of counter.

Definition at line 57 of file star_elimination.hpp.

References peclet::flow::StarOverlay::a, peclet::flow::StarOverlay::cell, ibmFillEntry(), peclet::flow::C3::x, and peclet::flow::C3::y.

Referenced by peclet::flow::Solver< Grid >::setSolid().

◆ starApplyDelta()

void peclet::flow::starApplyDelta ( CCField  y,
CCConst  x,
const StarOverlay ov,
int  nOv,
C3  nn,
C3  extY,
int  gY,
C3  extX,
int  gX 
)
inline

y += S_star x over the inner cells of the (extY, gY) block, x read from the (extX, gX) block, both periodic via inner-grid wrap.

Sign convention of applyCutcellOp (positive-definite): row i gains a_si (x_i - phibar_s). Atomic adds (several stars can touch one row).

Definition at line 99 of file star_elimination.hpp.

References peclet::flow::StarOverlay::a, peclet::flow::StarOverlay::cell, ibmFillEntry(), and starWrap().

◆ starCorrectFaces()

void peclet::flow::starCorrectFaces ( CCField  uf,
CCField  vf,
CCField  wf,
CCConst  phi,
const StarOverlay ov,
int  nOv,
C3  nn,
C3  ext,
int  g,
C3  extP,
int  gP 
)
inline

Fix the face correction at fluid|solid faces: projectCorrect applied -(phi_hi - phi_lo) with the solid side's (decoupled) phi = 0; the mode-B correction wants the solid value phibar_s.

Difference per face: +phibar_s when s is the LOW cell, -phibar_s when s is the HIGH cell. Each such face has exactly one solid side (both-solid faces carry no constraint), so no atomics. phi is read on the (extP, gP) block; the face fields live on the (ext, g) block with the o(i)-is-low-face convention (face k=+side of s == low face of the + neighbour).

Definition at line 142 of file star_elimination.hpp.

References peclet::flow::StarOverlay::a, peclet::flow::StarOverlay::cell, ibmFillEntry(), starWrap(), peclet::flow::C3::x, and peclet::flow::C3::y.

Referenced by peclet::flow::Solver< Grid >::project().