33 void Foam::solvers::incompressibleMultiphaseVoF::alphaSolve
40 const word alphaScheme(
"div(phi,alpha)");
41 const word alpharScheme(
"div(phirb,alpha)");
44 phic =
min(cAlpha*phic,
max(phic));
46 UPtrList<const volScalarField> alphas(
phases.size());
47 PtrList<surfaceScalarField> alphaPhis(
phases.size());
51 const incompressibleVoFphase&
alpha =
phases[phasei];
53 alphas.set(phasei, &
alpha);
60 "phi" +
alpha.name() +
"Corr",
74 incompressibleVoFphase& alpha2 =
phases[phasej];
76 if (&alpha2 == &
alpha)
continue;
134 Info<<
alpha.name() <<
" volume fraction, min, max = "
143 Info<<
"Phase-sum volume fraction, min, max = "
144 << sumAlpha.weightedAverage(
mesh.
V()).value()
145 <<
' ' <<
min(sumAlpha).value()
146 <<
' ' <<
max(sumAlpha).value()
184 alphaPtrs[phasei] = &phases[phasei];
194 !(++alphaSubCycle).end();
198 rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi;
CMULES: Multidimensional universal limiter for explicit corrected implicit solution.
#define forAll(list, i)
Loop across all elements in list.
const label nAlphaSubCycles(alphaControls.lookup< label >("nAlphaSubCycles"))
const dictionary & alphaControls
Generic GeometricField class.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
IOobject(const word &name, const fileName &instance, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true)
Construct from name, instance, registry, io options.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
dimensionedScalar deltaT() const
Return time step.
A list of keyword definitions, which are a keyword followed by any number of values (e....
const Type & value() const
Return const reference to value.
const word & name() const
Return const reference to name.
const Time & time() const
Return the top-level database.
const DimensionedField< scalar, volMesh > & V() const
Return cell volumes.
const surfaceScalarField & magSf() const
Return cell face area magnitudes.
tmp< surfaceScalarField > nHatf(const volScalarField &alpha1, const volScalarField &alpha2) const
const fvMesh & mesh
Region mesh.
const surfaceScalarField & phi
Reference to the mass-flux field.
surfaceScalarField rhoPhi
Mass flux field.
virtual void alphaPredictor()
Solve for the phase-fractions.
UPtrListDictionary< incompressibleVoFphase > & phases
Reference to the phases.
incompressibleMultiphaseVoFMixture & mixture
The compressible two-phase mixture.
Perform a subCycleTime on a field or list of fields.
Calculate the face-flux of the given field.
volScalarField alpha(IOobject("alpha", runTime.name(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
void explicitSolve(const RdeltaTType &rDeltaT, const RhoType &rho, volScalarField &psi, const surfaceScalarField &phiPsi, const SpType &Sp, const SuType &Su)
void limit(const RdeltaTType &rDeltaT, const RhoType &rho, const volScalarField &psi, const surfaceScalarField &phi, surfaceScalarField &phiPsi, const SpType &Sp, const SuType &Su, const PsiMaxType &psiMax, const PsiMinType &psiMin, const bool returnCorr)
void limitSum(UPtrList< scalarField > &phiPsiCorrs)
tmp< SurfaceField< typename innerProduct< vector, Type >::type > > flux(const VolField< Type > &vf)
Return the face-flux field obtained from the given volVectorField.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
const dimensionSet dimless
SurfaceField< scalar > surfaceScalarField
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
VolField< scalar > volScalarField
dimensioned< scalar > mag(const dimensioned< Type > &)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.