16 phaseModel& phase =
fluid.movingPhases()[movingPhasei];
24 IOobject::groupName(
"rAU", phase.name()),
27 UEqns[phase.index()].A()
28 +
byDt(
max(phase.residualAlpha() -
alpha, scalar(0))*phase.rho())
65 phaseModel& phase =
fluid.movingPhases()[movingPhasei];
66 MRF.correctBoundaryFlux(phase.U(), phase.phiRef());
70 PtrList<surfaceScalarField> phigFs(
phases.size());
90 -
fluid.surfaceTension(phase)*
mesh.magSf()
107 PtrList<surfaceScalarField> ddtCorrByAs(
fluid.ddtCorrByAs(
rAUs));
111 phaseModel& phase =
fluid.movingPhases()[movingPhasei];
119 IOobject::groupName(
"HbyA", phase.name()),
124 HbyAs[phase.index()] =
127 UEqns[phase.index()].H()
130 max(phase.residualAlpha() -
alpha, scalar(0))
141 IOobject::groupName(
"phiHbyA", phase.name()),
143 - phigFs[phase.index()]
144 - ddtCorrByAs[phase.index()]
153 if (!partialElimination)
155 PtrList<volVectorField> KdUByAs(
fluid.KdUByAs(
rAUs));
156 PtrList<surfaceScalarField> phiKdPhis(
fluid.phiKdPhis(
rAUs));
164 if (phiKdPhis.set(
phasei))
192 if (partialElimination)
194 PtrList<surfaceScalarField> phiKdPhis(
fluid.phiKdPhis(
rAUs));
198 if (phiKdPhis.set(
phasei))
229 surfaceScalarField::Boundary
phib(
phi.boundaryField());
235 alphafs[
phasei].boundaryField()*phase.phi()().boundaryField();
240 p_rgh.boundaryFieldRef(),
243 )/(
mesh.magSf().boundaryField()*rAUf.boundaryField())
248 PtrList<fvScalarMatrix> pEqnComps(
phases.size());
249 PtrList<volScalarField> dmdts(
fluid.dmdts());
256 if (phase.compressible())
262 IOobject::groupName(
"phid", phase.name()),
282 phase.thermo().psi()*
fvm::ddt(p_rgh)
290 pEqnComps[
phasei].relax();
306 + (alpha*phase.thermo().psi()/
rho)
314 if (
fvOptions.appliesToField(rho.name()))
316 tmp<fvScalarMatrix> optEqn =
fvOptions(alpha, rho);
317 if (pEqnComps.set(
phasei))
326 fvm::Su(- (optEqn&rho)/rho, p_rgh).ptr()
334 if (pEqnComps.set(
phasei))
353 while (
pimple.correctNonOrthogonal())
367 if (pEqnComps.set(
phasei))
369 pEqn += pEqnComps[
phasei];
376 mesh.solver(p_rgh.select(
pimple.finalInnerIter()))
381 if (
pimple.finalNonOrthogonalIter())
389 phaseModel& phase =
fluid.movingPhases()[movingPhasei];
396 if (pEqnComps.set(phase.index()))
398 phase.divU(-pEqnComps[phase.index()] &
p_rgh);
405 mSfGradp = pEqnIncomp.flux()/
rAUf;
409 phaseModel& phase =
fluid.movingPhases()[movingPhasei];
416 - phigFs[phase.index()]
420 if (partialElimination)
427 phaseModel& phase =
fluid.movingPhases()[movingPhasei];
429 phase.URef().correctBoundaryConditions();
445 phase.thermoRef().rho() += phase.thermo().psi()*(p_rgh -
p_rgh_0);
451 p_rgh.correctBoundaryConditions();
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Return the correction form of the given matrix.
fvMatrix< scalar > fvScalarMatrix
pimpleNoLoopControl & pimple
PtrList< volScalarField > rAUs
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
multiphaseSystem::phaseModelList & phases
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
GeometricField< vector, fvPatchField, volMesh > volVectorField
tmp< GeometricField< Type, fvPatchField, volMesh > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
surfaceScalarField phid("phid", fvc::interpolate(psi) *(fvc::flux(HbyA)+MRF.zeroFilter(rhorAUf *fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho))))
tmp< GeometricField< Type, fvPatchField, volMesh > > ddt(const dimensioned< Type > dt, const fvMesh &mesh)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
PtrList< surfaceScalarField > phiFs(fluid.phiFs(rAUs))
PtrList< surfaceScalarField > alpharAUfs(phases.size())
const dimensionSet dimForce
const surfaceScalarField & ghf
dimensionedScalar pMin("pMin", dimPressure, fluid)
word name(const complex &)
Return a string representation of a complex.
tmp< volScalarField > byDt(const volScalarField &vf)
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &tvf, const surfaceScalarField &faceFlux, Istream &schemeData)
Interpolate field onto faces using scheme given by Istream.
const dimensionSet dimDensity
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)
surfaceScalarField ghSnGradRho(ghf *fvc::snGrad(rho) *mesh.magSf())
PtrList< fvVectorMatrix > UEqns(fluid.phases().size())
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
setSnGrad< fixedFluxPressureFvPatchScalarField >(p_rgh.boundaryFieldRef(),(phiHbyA.boundaryField() - MRF.relative(phib))/(mesh.magSf().boundaryField() *rAUf.boundaryField()))
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
volScalarField p_rgh_0(p_rgh)
PtrList< surfaceScalarField > phiHbyAs(fluid.phases().size())
const volScalarField & gh
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 dimensionedVector & g
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > snGrad(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
const dimensionSet dimArea(sqr(dimLength))
const dimensionSet dimVelocity