28 PtrList<surfaceScalarField>
AFfs(
fluid.AFfs());
30 PtrList<surfaceScalarField>
rAUfs;
35 IOobject::groupName(
"rAUf",
phase1.name()),
48 IOobject::groupName(
"rAUf",
phase2.name()),
63 PtrList<surfaceScalarField>
phiFfs(
fluid.phiFfs(rAUfs));
83 IOobject::groupName(
"alpharAUf",
phase1.name()),
89 IOobject::groupName(
"alpharAUf",
phase2.name()),
123 IOobject::groupName(
"phiHbyA",
phase1.name()),
137 IOobject::groupName(
"phiHbyA",
phase2.name()),
150 PtrList<surfaceScalarField> phiKdPhifs(
fluid.phiKdPhifs(rAUfs));
161 MRF.makeRelative(phiHbyA);
175 p_rgh.boundaryFieldRef(),
177 phiHbyA.boundaryField()
182 )/(
mesh.magSf().boundaryField()*rAUf.boundaryField())
186 tmp<fvScalarMatrix> pEqnComp1, pEqnComp2;
187 if (
phase1.compressible())
193 IOobject::groupName(
"phid",
phase1.name()),
211 pEqnComp1.ref().relax();
223 if (
phase2.compressible())
229 IOobject::groupName(
"phid",
phase2.name()),
247 pEqnComp2.ref().relax();
265 if (pEqnComp1.valid())
267 pEqnComp1.ref() -= (optEqn1 &
rho1)/
rho1;
271 pEqnComp1 =
fvm::Su(- (optEqn1 &
rho1)/rho1, p_rgh);
277 if (pEqnComp2.valid())
279 pEqnComp2.ref() -= (optEqn2 &
rho2)/
rho2;
283 pEqnComp2 =
fvm::Su(- (optEqn2 &
rho2)/rho2, p_rgh);
290 PtrList<volScalarField> dmdts(
fluid.dmdts());
293 if (pEqnComp1.valid())
295 pEqnComp1.ref() -= dmdts[0]/
rho1;
304 if (pEqnComp2.valid())
306 pEqnComp2.ref() -= dmdts[1]/
rho2;
318 while (
pimple.correctNonOrthogonal())
329 if (pEqnComp1.valid())
334 if (pEqnComp2.valid())
342 mesh.solver(p_rgh.select(
pimple.finalInnerIter()))
346 if (
pimple.finalNonOrthogonalIter())
350 phi = phiHbyA + pEqnIncomp.flux();
354 phiHbyA1 + alpharAUf1*mSfGradp
359 phiHbyA2 + alpharAUf2*mSfGradp
364 ((phi2s + rAUf2*
Kdf*phi1s) - (phi1s + rAUf1*
Kdf*phi2s))
365 /(1 - rAUf1*rAUf2*
sqr(
Kdf))
372 U1.correctBoundaryConditions();
376 U2.correctBoundaryConditions();
380 if (pEqnComp1.valid())
382 phase1.divU(-pEqnComp1 & p_rgh);
384 if (pEqnComp2.valid())
386 phase2.divU(-pEqnComp2 & p_rgh);
404 p_rgh.correctBoundaryConditions();
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Return the correction form of the given matrix.
fvMatrix< scalar > fvScalarMatrix
const surfaceScalarField & alphaPhi2
pimpleNoLoopControl & pimple
surfaceScalarField & phi2
const surfaceScalarField alpharAUf2(fvc::interpolate(max(alpha2, phase2.residualAlpha()) *rAU2))
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
const surfaceScalarField & alphaPhi1
surfaceScalarField & phi1
PtrList< surfaceScalarField > AFfs(fluid.AFfs())
tmp< GeometricField< Type, fvPatchField, volMesh > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
const surfaceScalarField alphaf2("alphaf2", scalar(1) - alphaf1)
tmp< GeometricField< Type, fvPatchField, volMesh > > ddt(const dimensioned< Type > dt, const fvMesh &mesh)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
surfaceScalarField phir(fvc::flux(UdmModel.Udm()))
const volScalarField & alpha1
surfaceScalarField alphaRhof10("alphaRhof10", fvc::interpolate(max(alpha1.oldTime(), phase1.residualAlpha()) *rho1.oldTime()))
PtrList< surfaceScalarField > rAUfs
const surfaceScalarField & ghf
dimensionedScalar pMin("pMin", dimPressure, fluid)
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.
surfaceScalarField alphaRhof20("alphaRhof20", fvc::interpolate(max(alpha2.oldTime(), phase2.residualAlpha()) *rho2.oldTime()))
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())
setSnGrad< fixedFluxPressureFvPatchScalarField >(p_rgh.boundaryFieldRef(),(phiHbyA.boundaryField() - MRF.relative(phib))/(mesh.magSf().boundaryField() *rAUf.boundaryField()))
volScalarField p_rgh_0(p_rgh)
const surfaceScalarField Kdf("Kdf", fluid.Kdf())
const volScalarField & gh
dimensioned< scalar > mag(const dimensioned< Type > &)
const dimensionedScalar & rho2
tmp< surfaceScalarField > flux(const volVectorField &vvf)
Return the face-flux field obtained from the given volVectorField.
const surfaceScalarField & phiFf2
const surfaceScalarField & phiFf1
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
const dimensionedVector & g
const dimensionedScalar & rho1
PtrList< surfaceScalarField > phiFfs(fluid.phiFfs(rAUfs))
const surfaceScalarField alphaf1("alphaf1", fvc::interpolate(alpha1))
const surfaceScalarField alpharAUf1(fvc::interpolate(max(alpha1, phase1.residualAlpha()) *rAU1))
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > snGrad(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)