|
flow 0.4.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
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. | |
| using peclet::flow::IMem = typedef Kokkos::DefaultExecutionSpace::memory_space |
Definition at line 19 of file cut_cell_ibm.hpp.
Definition at line 81 of file cut_cell_ibm.hpp.
Definition at line 3670 of file flow_ibm.hpp.
Definition at line 88 of file ghost_projection.hpp.
| typedef Kokkos::View< const float *, CCMem > peclet::flow::MConst |
Definition at line 23 of file mac_approx_projection.hpp.
| using peclet::flow::BExec = typedef Kokkos::DefaultExecutionSpace |
Definition at line 17 of file mac_bc.hpp.
| using peclet::flow::BMem = typedef BExec::memory_space |
Definition at line 18 of file mac_bc.hpp.
| using peclet::flow::BField = typedef Kokkos::View<double*, BMem> |
Definition at line 19 of file mac_bc.hpp.
| using peclet::flow::CCExec = typedef Kokkos::DefaultExecutionSpace |
Definition at line 20 of file mac_cutcell.hpp.
| using peclet::flow::CCMem = typedef CCExec::memory_space |
Definition at line 21 of file mac_cutcell.hpp.
| using peclet::flow::CCField = typedef Kokkos::View<double*, CCMem> |
Definition at line 22 of file mac_cutcell.hpp.
Definition at line 23 of file mac_cutcell.hpp.
| using peclet::flow::MReal = typedef float |
Definition at line 51 of file mac_cutcell_mg.hpp.
| using peclet::flow::FPV = typedef Kokkos::View<MReal*, CCMem> |
Definition at line 52 of file mac_cutcell_mg.hpp.
Definition at line 53 of file mac_cutcell_mg.hpp.
| using peclet::flow::mreal = typedef float |
Definition at line 22 of file mac_ibm.hpp.
| using peclet::flow::Exec = typedef Kokkos::DefaultExecutionSpace |
Definition at line 18 of file mac_reductions.hpp.
| using peclet::flow::Mem = typedef Exec::memory_space |
Definition at line 19 of file mac_reductions.hpp.
| using peclet::flow::DField = typedef Kokkos::View<double*, Mem> |
Definition at line 20 of file mac_reductions.hpp.
Definition at line 21 of file mac_reductions.hpp.
| using peclet::flow::SExec = typedef Kokkos::DefaultExecutionSpace |
Definition at line 19 of file mac_stencils.hpp.
| using peclet::flow::SMem = typedef SExec::memory_space |
Definition at line 20 of file mac_stencils.hpp.
| using peclet::flow::SField = typedef Kokkos::View<double*, SMem> |
Definition at line 21 of file mac_stencils.hpp.
Definition at line 22 of file mac_stencils.hpp.
| using peclet::flow::TExec = typedef Kokkos::DefaultExecutionSpace |
Definition at line 16 of file mac_transfer.hpp.
| using peclet::flow::TMem = typedef TExec::memory_space |
Definition at line 17 of file mac_transfer.hpp.
| using peclet::flow::TField = typedef Kokkos::View<double*, TMem> |
Definition at line 18 of file mac_transfer.hpp.
Definition at line 19 of file mac_transfer.hpp.
| anonymous enum : int |
| Enumerator | |
|---|---|
| kCaMomentum | |
| kCaMg | |
Definition at line 201 of file mac_cutcell_mg.hpp.
|
strong |
| Enumerator | |
|---|---|
| LinearMix | |
| BoussinesqForce | |
| ArrheniusMu | |
| Table1D | |
Definition at line 25 of file property_closures.hpp.
|
strong |
| Enumerator | |
|---|---|
| Periodic | |
| Neumann | |
| Dirichlet | |
Definition at line 33 of file scalar_transport.hpp.
| float peclet::flow::poly_D | ( | float | xi | ) |
Definition at line 22 of file cut_cell_ibm.hpp.
Referenced by ibmFillEntry().
| float peclet::flow::poly_N_nb | ( | float | xi | ) |
Definition at line 25 of file cut_cell_ibm.hpp.
Referenced by ibmFillEntry().
| float peclet::flow::poly_Nc | ( | float | xi | ) |
Definition at line 28 of file cut_cell_ibm.hpp.
Referenced by ibmFillEntry().
| float peclet::flow::poly_Nbc | ( | float | ) |
Definition at line 31 of file cut_cell_ibm.hpp.
Referenced by ibmFillEntry().
| float peclet::flow::poly_D_avg | ( | float | xi | ) |
Definition at line 34 of file cut_cell_ibm.hpp.
Referenced by ibmFillEntry().
| float peclet::flow::poly_Nnb_avg | ( | float | xi | ) |
Definition at line 37 of file cut_cell_ibm.hpp.
Referenced by ibmFillEntry().
| float peclet::flow::poly_Nc_avg | ( | float | xi | ) |
Definition at line 40 of file cut_cell_ibm.hpp.
Referenced by ibmFillEntry().
| float peclet::flow::poly_Nbc_avg | ( | float | ) |
Definition at line 43 of file cut_cell_ibm.hpp.
Referenced by ibmFillEntry().
| 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().
| 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().
| 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().
| 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().
| 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().
| 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().
| 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().
| 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().
| 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().
| 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().
|
inline |
Definition at line 228 of file cut_cell_ibm.hpp.
References AC, and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::buildAdvStencil(), main(), and peclet::flow::Solver< Grid >::rebuildStencils().
|
inline |
Definition at line 255 of file cut_cell_ibm.hpp.
References AC, and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::buildAdvStencilVar(), and peclet::flow::Solver< Grid >::rebuildStencils().
|
inline |
Definition at line 284 of file cut_cell_ibm.hpp.
References AC, and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::buildAdvStencil(), peclet::flow::Solver< Grid >::buildAdvStencilVar(), main(), and peclet::flow::Solver< Grid >::rebuildStencils().
|
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().
Definition at line 90 of file ghost_projection.hpp.
References peclet::flow::GpOverlayT< Space >::cell, peclet::flow::GpOverlayT< Space >::coupled, 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, and peclet::flow::GpOverlayT< Space >::wm_n2.
Referenced by peclet::flow::Solver< Grid >::setSolid().
| int peclet::flow::gpWrap | ( | int | v, |
| int | n | ||
| ) |
Definition at line 105 of file ghost_projection.hpp.
Referenced by buildGpOverlay(), gpApplyDelta(), and gpDivergDelta().
|
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().
|
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().
|
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.
|
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().
|
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().
|
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().
|
inline |
Definition at line 30 of file mac_approx_projection.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
| 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().
| 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().
|
inline |
Definition at line 143 of file mac_approx_projection.hpp.
References ccSampleExt(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::setSolid().
|
inline |
Definition at line 202 of file mac_approx_projection.hpp.
References ibmFillEntry(), and wallAwareFaceValue().
Referenced by peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 235 of file mac_approx_projection.hpp.
References ibmFillEntry(), and wallAwareFaceStencil().
Referenced by peclet::flow::Solver< Grid >::buildRhs(), peclet::flow::Solver< Grid >::buildRhsForced(), and peclet::flow::Solver< Grid >::project().
Definition at line 268 of file mac_approx_projection.hpp.
References ccSampleExt(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::setSolid().
|
inline |
Definition at line 306 of file mac_approx_projection.hpp.
References ccSampleExt(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::buildRhs().
Definition at line 368 of file mac_approx_projection.hpp.
References ibmFillEntry().
Referenced by 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().
|
inline |
Definition at line 480 of file mac_approx_projection.hpp.
References embedDirichletGradient(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::buildRhs().
|
inline |
Definition at line 523 of file mac_approx_projection.hpp.
References AC, and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::buildRhs().
Definition at line 539 of file mac_approx_projection.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 558 of file mac_approx_projection.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::buildRhs().
|
inline |
Definition at line 582 of file mac_approx_projection.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::buildRhs(), peclet::flow::Solver< Grid >::buildRhsForced(), and peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 603 of file mac_approx_projection.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::buildRhs(), peclet::flow::Solver< Grid >::buildRhsForced(), and peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 630 of file mac_approx_projection.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::buildRhs(), peclet::flow::Solver< Grid >::buildRhsForced(), and peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 651 of file mac_approx_projection.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 684 of file mac_approx_projection.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 38 of file mac_bc.hpp.
References peclet::flow::bcdetail::axisDims(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::applyVelocityBcCompTo(), and main().
|
inline |
Definition at line 90 of file mac_bc.hpp.
References peclet::flow::bcdetail::axisDims(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::applyVelocityBcCompTo().
Definition at line 120 of file mac_bc.hpp.
References peclet::flow::bcdetail::axisDims(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::applyVelocityBcCompTo(), peclet::flow::Solver< Grid >::maxOpenDivergence(), and peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 142 of file mac_bc.hpp.
References peclet::flow::bcdetail::axisDims(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::applyVelocityBcCompTo().
|
inline |
Definition at line 172 of file mac_bc.hpp.
References peclet::flow::bcdetail::axisDims(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::setupBcDiffusion().
Definition at line 193 of file mac_bc.hpp.
References peclet::flow::bcdetail::axisDims(), and ibmFillEntry().
Referenced by peclet::flow::CutcellMG::applyOutflowGhost(), and peclet::flow::Solver< Grid >::project().
Definition at line 215 of file mac_bc.hpp.
References peclet::flow::bcdetail::axisDims(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
Definition at line 234 of file mac_bc.hpp.
References peclet::flow::bcdetail::axisDims(), and ibmFillEntry().
Referenced by peclet::flow::CutcellMG::applyBoundaryOpenness(), and bcZeroOpenness().
Definition at line 250 of file mac_bc.hpp.
References bcSetOpenness(), and ibmFillEntry().
Referenced by main(), and peclet::flow::Solver< Grid >::setSolid().
| 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().
Definition at line 55 of file mac_cutcell.hpp.
References F, ibmFillEntry(), peclet::flow::C3::x, peclet::flow::C3::y, and peclet::flow::C3::z.
Referenced by buildCellFraction(), buildFaceCentroidDist(), ccFaceOpen(), ccFaceOpenMS(), fvViscousApply(), ibmCleanFluidMask(), ibmSolidMask(), and ibmVolfrac().
| 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().
Definition at line 92 of file mac_cutcell.hpp.
References ibmFillEntry().
Referenced by 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().
|
inline |
Definition at line 151 of file mac_cutcell.hpp.
References ccFaceOpen(), ccFaceOpenMS(), ibmFillEntry(), peclet::flow::C3::x, peclet::flow::C3::y, and peclet::flow::C3::z.
Referenced by main(), and peclet::flow::Solver< Grid >::setSolid().
|
inline |
Definition at line 190 of file mac_cutcell.hpp.
Referenced by hostRunSerial().
Definition at line 198 of file mac_cutcell.hpp.
References hostSerialCellCutoff(), and ibmFillEntry().
Referenced by ccFor3(), cutcellSmoothColor(), and cutcellSmoothColorBox().
Definition at line 211 of file mac_cutcell.hpp.
References hostRunSerial(), and ibmFillEntry().
Referenced by applyCutcellOp(), peclet::flow::Solver< Grid >::buildRhs(), divergOpen(), projectCorrect(), prolongAdd(), residualCutcell(), residualCutcellBox(), and restrictAvg().
Definition at line 233 of file mac_cutcell.hpp.
References ibmFillEntry().
Referenced by peclet::flow::CutcellMG::dot(), and peclet::flow::CutcellMG::maxabs().
|
inline |
Definition at line 58 of file mac_cutcell_mg.hpp.
References F, ibmFillEntry(), peclet::flow::C3::x, peclet::flow::C3::y, and peclet::flow::C3::z.
Referenced by peclet::flow::CutcellMG::setOpenness().
|
inline |
Definition at line 90 of file mac_cutcell_mg.hpp.
References AC, ccFor3(), and ibmFillEntry().
Referenced by peclet::flow::CutcellMG::graphAmgSolveBottom(), DistMG::vcycle(), and peclet::flow::CutcellMG::vcycleImpl().
|
inline |
Definition at line 107 of file mac_cutcell_mg.hpp.
References AC, ccFor3(), and ibmFillEntry().
Referenced by peclet::flow::CutcellMG::vcycleImpl().
|
inline |
Definition at line 128 of file mac_cutcell_mg.hpp.
References ccFor3(), ibmFillEntry(), peclet::flow::C3::x, peclet::flow::C3::y, and peclet::flow::C3::z.
Referenced by peclet::flow::VelocityMG::restrictAdvVelocities(), peclet::flow::VelocityMG::setStaircase(), peclet::flow::VelocityMG::vcycle(), DistMG::vcycle(), and peclet::flow::CutcellMG::vcycleImpl().
|
inline |
Definition at line 147 of file mac_cutcell_mg.hpp.
References ccFor3(), ibmFillEntry(), peclet::flow::C3::x, peclet::flow::C3::y, and peclet::flow::C3::z.
Referenced by peclet::flow::VelocityMG::vcycle(), DistMG::vcycle(), and peclet::flow::CutcellMG::vcycleImpl().
|
inline |
Definition at line 179 of file mac_cutcell_mg.hpp.
Referenced by peclet::flow::CutcellMG::init(), and peclet::flow::CutcellMG::vcycle().
|
inline |
Definition at line 186 of file mac_cutcell_mg.hpp.
|
inline |
Definition at line 202 of file mac_cutcell_mg.hpp.
References kCaMg, and kCaMomentum.
Definition at line 30 of file mac_ibm.hpp.
References ibmFillEntry().
Referenced by ibmCleanFluidMask().
|
inline |
Definition at line 45 of file mac_ibm.hpp.
Definition at line 96 of file mac_ibm.hpp.
References ccSampleExt(), ibmFillEntry(), peclet::flow::C3::x, peclet::flow::C3::y, and peclet::flow::C3::z.
Referenced by main(), and peclet::flow::Solver< Grid >::smoothComp().
Definition at line 110 of file mac_ibm.hpp.
References ccSampleExt(), ibmFillEntry(), peclet::flow::C3::x, peclet::flow::C3::y, and peclet::flow::C3::z.
Referenced by main(), and peclet::flow::Solver< Grid >::setSolid().
Definition at line 123 of file mac_ibm.hpp.
References ccSampleExt(), ibmFillEntry(), ibmIsCut(), peclet::flow::C3::x, peclet::flow::C3::y, and peclet::flow::C3::z.
Referenced by peclet::flow::Solver< Grid >::smoothComp().
|
inline |
Definition at line 147 of file mac_ibm.hpp.
References AC, ibmFillEntry(), peclet::flow::C3::x, peclet::flow::C3::y, and peclet::flow::C3::z.
Referenced by ibmRbgsSweep(), main(), peclet::flow::VelocityMG::smooth(), and peclet::flow::Solver< Grid >::smoothComp().
|
inline |
Definition at line 202 of file mac_ibm.hpp.
References AC, ibmFillEntry(), peclet::flow::C3::x, peclet::flow::C3::y, and peclet::flow::C3::z.
Referenced by peclet::flow::Solver< Grid >::smoothComp().
|
inline |
Definition at line 270 of file mac_ibm.hpp.
References AC, ibmFillEntry(), peclet::flow::C3::x, and peclet::flow::C3::y.
Referenced by peclet::flow::VelocityMG::smooth(), and peclet::flow::Solver< Grid >::smoothComp().
|
inline |
Definition at line 305 of file mac_ibm.hpp.
References AC, ibmFillEntry(), peclet::flow::C3::x, and peclet::flow::C3::y.
Referenced by peclet::flow::Solver< Grid >::smoothComp().
|
inline |
Definition at line 344 of file mac_ibm.hpp.
References AC, ibmFillEntry(), and ibmRbgsStencilColor().
Referenced by main().
Definition at line 21 of file mac_mg.hpp.
References ibmFillEntry(), and N.
Referenced by peclet::flow::MgPoisson::computeResidual(), peclet::flow::MgPoisson::smooth(), and peclet::flow::MgPoisson::vcycle().
|
inline |
Definition at line 24 of file mac_pressure.hpp.
References AC, and ibmFillEntry().
Referenced by DistMG::init(), main(), and peclet::flow::CutcellMG::setOpenness().
|
inline |
Definition at line 49 of file mac_pressure.hpp.
References ccFor3(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::maxOpenDivergence(), and peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 65 of file mac_pressure.hpp.
References AC, hostRunSerial(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::advanceScalars(), peclet::flow::CutcellMG::smooth(), and DistMG::smooth().
|
inline |
Definition at line 120 of file mac_pressure.hpp.
References AC, hostRunSerial(), and ibmFillEntry().
Referenced by peclet::flow::CutcellMG::smooth().
|
inline |
Definition at line 178 of file mac_pressure.hpp.
References AC, ccFor3(), and ibmFillEntry().
Referenced by peclet::flow::CutcellMG::matvecOverlap().
|
inline |
Definition at line 194 of file mac_pressure.hpp.
References AC, and ibmFillEntry().
Referenced by peclet::flow::CutcellMG::matvecOverlap().
|
inline |
Definition at line 215 of file mac_pressure.hpp.
References ccFor3(), and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 231 of file mac_pressure.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 251 of file mac_pressure.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 273 of file mac_pressure.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::maxPorousResidual(), and peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 295 of file mac_pressure.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 317 of file mac_pressure.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 341 of file mac_pressure.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 362 of file mac_pressure.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
|
inline |
Definition at line 384 of file mac_pressure.hpp.
References ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::project().
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().
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().
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().
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().
Definition at line 28 of file mac_stencils.hpp.
Referenced by peclet::flow::MgPoisson::computeResidual(), diffSmoothColor(), diffSmoothColorDu(), divergence(), peclet::flow::MgPoisson::maxAbsInner(), poisSmoothColor(), peclet::flow::MgPoisson::removeMean(), and peclet::flow::MgPoisson::smoothColor().
|
inline |
Definition at line 37 of file mac_stencils.hpp.
References diffSmoothColor(), ibmFillEntry(), and L3().
Referenced by diffSmoothColor(), peclet::flow::FlowReference::diffuseComp(), main(), and peclet::flow::Solver< Grid >::smoothComp().
|
inline |
Definition at line 72 of file mac_stencils.hpp.
References ibmFillEntry(), and L3().
Referenced by peclet::flow::Solver< Grid >::smoothComp().
Definition at line 118 of file mac_stencils.hpp.
References ibmFillEntry(), and L3().
Referenced by poisSweep().
Definition at line 134 of file mac_stencils.hpp.
References ibmFillEntry(), and L3().
Referenced by main(), peclet::flow::FlowReference::maxDivU(), and peclet::flow::FlowReference::step().
Definition at line 146 of file mac_stencils.hpp.
References poisSmoothColor().
Referenced by main(), and peclet::flow::FlowReference::step().
|
inline |
Definition at line 26 of file mac_transfer.hpp.
References ibmFillEntry(), peclet::flow::T3::x, peclet::flow::T3::y, and peclet::flow::T3::z.
Referenced by main(), and peclet::flow::MgPoisson::vcycle().
Definition at line 48 of file mac_transfer.hpp.
References F, and ibmFillEntry().
Referenced by prolong().
|
inline |
Definition at line 67 of file mac_transfer.hpp.
References ibmFillEntry(), trilerp(), peclet::flow::T3::x, peclet::flow::T3::y, and peclet::flow::T3::z.
Referenced by main(), and peclet::flow::MgPoisson::vcycle().
Definition at line 83 of file mac_transfer.hpp.
References ibmFillEntry().
Referenced by main(), and peclet::flow::FlowReference::step().
|
inline |
Definition at line 33 of file mac_velocity_mg.hpp.
References AC, and ibmFillEntry().
Referenced by peclet::flow::VelocityMG::vcycle().
|
inline |
Definition at line 58 of file mac_velocity_mg.hpp.
References ibmFillEntry(), peclet::flow::C3::x, peclet::flow::C3::y, and peclet::flow::C3::z.
Referenced by peclet::flow::VelocityMG::vcycle().
|
inline |
Definition at line 91 of file mac_velocity_mg.hpp.
References AC, and ibmFillEntry().
Referenced by peclet::flow::VelocityMG::setStaircase().
|
inline |
Definition at line 121 of file mac_velocity_mg.hpp.
References AC, sadv::fou_operator_aniso(), and ibmFillEntry().
Referenced by peclet::flow::VelocityMG::buildUpwindCoarse().
|
inline |
Definition at line 148 of file mac_velocity_mg.hpp.
References AC, and ibmFillEntry().
Referenced by peclet::flow::VelocityMG::setDomainBcOp().
Definition at line 171 of file mac_velocity_mg.hpp.
References AC, and ibmFillEntry().
Referenced by peclet::flow::VelocityMG::setDomainBcOp().
Definition at line 190 of file mac_velocity_mg.hpp.
References ibmFillEntry().
Referenced by peclet::flow::VelocityMG::fillProlongBcGhosts().
Definition at line 216 of file mac_velocity_mg.hpp.
References ibmFillEntry().
Referenced by peclet::flow::VelocityMG::setDomainBcOp().
Definition at line 228 of file mac_velocity_mg.hpp.
References ibmFillEntry().
Referenced by peclet::flow::VelocityMG::setStaircase().
Definition at line 238 of file mac_velocity_mg.hpp.
References ibmFillEntry().
Referenced by peclet::flow::VelocityMG::vcycle().
Definition at line 44 of file property_closures.hpp.
References ArrheniusMu, BoussinesqForce, ibmFillEntry(), and LinearMix.
Referenced by peclet::flow::Solver< Grid >::updateProperties().
|
inline |
Definition at line 54 of file scalar_transport.hpp.
References AC, and ibmFillEntry().
Referenced by peclet::flow::Solver< Grid >::advanceScalars().
|
inline |
Definition at line 80 of file scalar_transport.hpp.
References sadv::fou_flux(), ibmFillEntry(), sadv::sou(), and sadv::tvd().
Referenced by peclet::flow::Solver< Grid >::advanceScalars().
|
inline |
Definition at line 40 of file star_elimination.hpp.
References peclet::flow::StarOverlay::a, and peclet::flow::StarOverlay::cell.
Referenced by peclet::flow::Solver< Grid >::setSolid().
| int peclet::flow::starWrap | ( | int | v, |
| int | n | ||
| ) |
Definition at line 47 of file star_elimination.hpp.
Referenced by starApplyDelta(), and starCorrectFaces().
|
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().
|
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().
|
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().