76#ifndef PECLET_CORE_VOF_CUTCELL_HPP
77#define PECLET_CORE_VOF_CUTCELL_HPP
79#include <Kokkos_Core.hpp>
112 for (
int d = 0;
d < 3; ++
d)
177 const double aa = a < 0.0 ? -a : a;
185 const double cc = c < 0.0 ? 0.0 : (c > 1.0 ? 1.0 : c);
212 return i - (g + n) + 1;
220 const int m = a > b ? a : b;
221 return m > c ?
m : c;
double vofCutFluxClamp(double fluxMag, double sweep, double epsDon, double cDon)
Weymouth's admissible flux interval, generalized to a cut donor cell — the cut-cell twin of momentum_...
VofFillState
Band-fill state, stored per cell on the colour block.
@ kVofFillPass0
pass k marks kVofFillPass0 + k, i.e. 2, 3, 4
double vofCutCourant(double openness, double a, double eps)
The boundedness-relevant Courant number of a face against a cell (rule 2).
constexpr double kVofCourantEpsFloor
Below this the interface-local Courant number stops being amplified by 1/eps (rule 2): a cut cell at ...
double vofCutFlux(double openness, double rawFlux)
The openness-weighted geometric flux (1): one number per face, used with opposite signs by the two ne...
bool vofIsSolidCell(double eps, const double oLo[3], const double oHi[3])
Is this cell SOLID? eps == 0 and every one of the six faces closed.
constexpr double kVofEpsFloor
The smallest fluid volume buildCellFraction's 4³ subsampling can resolve (one subcell of 64).
bool vofFillReadable(unsigned char state, int k)
Is state readable by pass k (1-based)? Fluid always; a solid cell only if an EARLIER pass filled it.
VofCellKind
Cell classification on the colour block.
@ kVofSolid
eps == 0 AND all six faces closed: no colour, filled for the stencils
@ kVofFluid
carries colour; eps_eff > 0; at least one open face OR eps > 0
double vofEpsEff(double eps, bool solid)
The effective fluid volume of a cell (rule 1).
int vofGhostDepth(int x, int y, int z, int g, int nx, int ny, int nz)
Ghost depth of a cell = the max over the three axes.
double vofClipCut(double c, double epsEff, double &moved)
The clip of rule 3, returned as the CLIPPED value; moved receives the liquid VOLUME the clip created ...
int vofGhostDepth1(int i, int g, int n)
Ghost depth of an index on one axis of an extended block: 0 for an inner cell, growing outward.
Kokkos::View< T *, MemSpace > View
1D device array.