18 IOobject::groupName(
"rAU", phase.name()),
22 +
max(phase.residualAlpha() -
alpha, scalar(0))
23 *phase.rho()/runTime.deltaT()
40 autoPtr<PtrList<volVectorField>> Fs =
fluid.Fs();
53 IOobject::groupName(
"phiF", phase.name()),
61 autoPtr<PtrList<surfaceScalarField>> phiDs =
fluid.phiDs(
rAUs);
80 IOobject::groupName(
"phiF", phase.name()),
108 MRF.correctBoundaryFlux(phase.U(), phase.phi());
115 IOobject::groupName(
"HbyA", phase.name()),
124 +
max(phase.residualAlpha() -
alpha, scalar(0))
125 *phase.rho()*phase.U().oldTime()/runTime.deltaT()
135 PtrList<surfaceScalarField> phigFs(
phases.size());
148 -
fluid.surfaceTension(phase)*
mesh.magSf()
187 surfaceScalarField::Boundary& phiCorrCoeffBf =
188 phiCorrCoeff.boundaryFieldRef();
196 || isA<cyclicAMIFvPatch>(
mesh.boundary()[
patchi])
199 phiCorrCoeffBf[
patchi] = 0;
208 IOobject::groupName(
"phiHbyA", phase.name()),
216 MRF.absolute(phase.phi().oldTime())
225 phaseSystem::KdTable,
232 const phasePair& pair(
fluid.phasePairs()[KdIter.key()]);
234 const phaseModel*
phase1 = &pair.phase1();
235 const phaseModel*
phase2 = &pair.phase2();
239 if (phase1 == &phase)
243 *
MRF.absolute(phase2->phi());
248 Swap(phase1, phase2);
279 surfaceScalarField::Boundary
phib(
phi.boundaryField());
284 phib +=
alphafs[
phasei].boundaryField()*phase.phi().boundaryField();
289 p_rgh.boundaryFieldRef(),
292 )/(
mesh.magSf().boundaryField()*rAUf.boundaryField())
296 PtrList<fvScalarMatrix> pEqnComps(
phases.size());
301 if (phase.compressible())
310 IOobject::groupName(
"phid", phase.name()),
319 phase.continuityError()
330 phase.thermo().psi()*
fvm::ddt(p_rgh)
340 pEqnComps[
phasei].faceFluxCorrectionPtr()
342 pEqnComps[
phasei].relax();
351 phase.continuityError()
358 + (alpha*phase.thermo().psi()/
rho)
364 if (
fluid.transfersMass(phase))
366 if (pEqnComps.set(
phasei))
386 while (
pimple.correctNonOrthogonal())
400 if (pEqnComps.set(
phasei))
402 pEqn += pEqnComps[
phasei];
409 mesh.solver(p_rgh.select(
pimple.finalInnerIter()))
414 if (
pimple.finalNonOrthogonalIter())
427 if (phase.compressible())
429 phase.divU(-pEqnComps[
phasei] & p_rgh);
436 mSfGradp = pEqnIncomp.flux()/
rAUf;
449 phase.U().correctBoundaryConditions();
465 phase.thermo().rho() += phase.thermo().psi()*(p_rgh -
p_rgh_0);
471 p_rgh.correctBoundaryConditions();
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Return the correction form of the given matrix.
fvMatrix< scalar > fvScalarMatrix
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
multiphaseSystem::phaseModelList & phases
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
const dictionary & pimple
tmp< GeometricField< Type, fvPatchField, volMesh > > Sp(const volScalarField &sp, const GeometricField< Type, fvPatchField, volMesh > &vf)
tmp< surfaceScalarField > interpolate(const RhoType &rho)
GeometricField< vector, fvPatchField, volMesh > volVectorField
tmp< GeometricField< Type, fvPatchField, volMesh > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
const surfaceScalarField & ghf
tmp< GeometricField< Type, fvPatchField, volMesh > > ddt(const dimensioned< Type > dt, const fvMesh &mesh)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
dimensionedScalar pos(const dimensionedScalar &ds)
PtrList< volScalarField > rAUs(fluid.phases().size())
PtrList< surfaceScalarField > alpharAUfs(phases.size())
surfaceScalarField ghSnGradRho(ghf *fvc::snGrad(rho)*mesh.magSf())
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
surfaceScalarField phid("phid", fvc::interpolate(psi)*(fvc::flux(HbyA)+rhorAUf *fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)))
const dimensionedVector & g
setSnGrad< fixedFluxPressureFvPatchScalarField >(p_rgh.boundaryFieldRef(),(phiHbyA.boundaryField()-MRF.relative(phib))/(mesh.magSf().boundaryField()*rAUf.boundaryField()))
dimensionedScalar pMin("pMin", dimPressure, fluid)
word name(const complex &)
Return a string representation of a complex.
PtrList< volVectorField > HbyAs(fluid.phases().size())
PtrList< surfaceScalarField > alphafs(phases.size())
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU))
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh >> reconstruct(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
PtrList< fvVectorMatrix > UEqns(fluid.phases().size())
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const volScalarField & gh
volScalarField p_rgh_0(p_rgh)
PtrList< surfaceScalarField > phiHbyAs(fluid.phases().size())
tmp< GeometricField< Type, fvPatchField, volMesh > > average(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
Area-weighted average a surfaceField creating a volField.
dimensioned< scalar > mag(const dimensioned< Type > &)
tmp< surfaceScalarField > flux(const volVectorField &vvf)
Return the face-flux field obtained from the given volVectorField.
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
tmp< GeometricField< Type, fvPatchField, volMesh > > Su(const GeometricField< Type, fvPatchField, volMesh > &su, const GeometricField< Type, fvPatchField, volMesh > &vf)
void deleteDemandDrivenData(DataPtr &dataPtr)
PtrList< surfaceScalarField > phiFs(phases.size())
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > snGrad(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
const dimensionSet dimArea(sqr(dimLength))
const dimensionSet dimVelocity