6 IOobject::groupName(
"rAU",
phase1.name()),
15 IOobject::groupName(
"rAU",
phase2.name()),
42 tmp<surfaceScalarField>
DbyA1 51 tmp<surfaceScalarField>
DbyA2 73 if (implicitPhasePressure)
95 IOobject::groupName(
"HbyA",
phase1.name()),
108 IOobject::groupName(
"HbyA",
phase2.name()),
150 surfaceScalarField::Boundary& phiCorrCoeff1Bf =
151 phiCorrCoeff1.boundaryFieldRef();
153 surfaceScalarField::Boundary& phiCorrCoeff2Bf =
154 phiCorrCoeff2.boundaryFieldRef();
162 || isA<cyclicAMIFvPatch>(
mesh.boundary()[
patchi])
165 phiCorrCoeff1Bf[
patchi] = 0;
166 phiCorrCoeff2Bf[
patchi] = 0;
174 IOobject::groupName(
"phiHbyA",
phase1.name()),
178 *(
MRF.absolute(
phi1.oldTime()) - fvc::flux(
U1.oldTime()))
186 IOobject::groupName(
"phiHbyA",
phase2.name()),
190 *(
MRF.absolute(
phi2.oldTime()) - fvc::flux(
U2.oldTime()))
207 MRF.makeRelative(phiHbyA);
219 p_rgh.boundaryFieldRef(),
221 phiHbyA.boundaryField()
226 )/(
mesh.magSf().boundaryField()*rAUf.boundaryField())
229 tmp<fvScalarMatrix> pEqnComp1;
230 tmp<fvScalarMatrix> pEqnComp2;
234 if (
phase1.compressible())
240 IOobject::groupName(
"phid",
phase1.name()),
259 pEqnComp1.ref().relax();
276 if (
phase2.compressible())
282 IOobject::groupName(
"phid",
phase2.name()),
301 pEqnComp2.ref().relax();
318 if (
fluid.transfersMass())
320 if (pEqnComp1.valid())
329 if (pEqnComp2.valid())
343 while (
pimple.correctNonOrthogonal())
355 if (pEqnComp1.valid())
360 if (pEqnComp2.valid())
368 mesh.solver(p_rgh.select(
pimple.finalInnerIter()))
373 if (
pimple.finalNonOrthogonalIter())
375 phi = phiHbyA + pEqnIncomp.flux();
388 phiHbyA2 + alpharAUf2*mSfGradp
393 ((phi1s + rAUKd1*phi2s) - (phi2s + rAUKd2*phi1s))
402 if (pEqnComp1.valid())
404 phase1.divU(-pEqnComp1 & p_rgh);
406 if (pEqnComp2.valid())
408 phase2.divU(-pEqnComp2 & p_rgh);
414 mSfGradp = pEqnIncomp.flux()/
rAUf;
437 U1.correctBoundaryConditions();
441 U2.correctBoundaryConditions();
460 p_rgh.correctBoundaryConditions();
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Return the correction form of the given matrix.
fvMatrix< scalar > fvScalarMatrix
tmp< surfaceScalarField > phiF2
volVectorField F(fluid.F())
surfaceScalarField alphaf1("alphaf1", fvc::interpolate(alpha1))
surfaceScalarField alpharAUf2(fvc::interpolate(max(alpha2, phase2.residualAlpha()) *rAU2))
surfaceScalarField & phi2
volScalarField rAU2(IOobject::groupName("rAU", phase2.name()), 1.0/(U2Eqn.A()+byDt(max(phase2.residualAlpha() - alpha2, scalar(0)) *rho2)))
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
surfaceScalarField & alphaPhi2
const dictionary & pimple
const surfaceScalarField & alphaPhi1
surfaceScalarField & phi1
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
tmp< surfaceScalarField > DbyA1(fvc::interpolate(rAU1 *(D+phase1.turbulence().pPrime())))
volScalarField Kd(fluid.Kd())
surfaceScalarField snGradAlpha1(fvc::snGrad(alpha1) *mesh.magSf())
surfaceScalarField phir(fvc::flux(UdmModel.Udm()))
dimensionedScalar pos0(const dimensionedScalar &ds)
const dimensionedVector & g
dimensionedScalar pMin("pMin", dimPressure, fluid)
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 rAUf("rAUf", fvc::interpolate(rAU))
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh >> reconstruct(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
tmp< surfaceScalarField > phiF1
surfaceScalarField ghSnGradRho(ghf *fvc::snGrad(rho) *mesh.magSf())
surfaceScalarField alpharAUf1(fvc::interpolate(max(alpha1, phase1.residualAlpha()) *rAU1))
setSnGrad< fixedFluxPressureFvPatchScalarField >(p_rgh.boundaryFieldRef(),(phiHbyA.boundaryField() - MRF.relative(phib))/(mesh.magSf().boundaryField() *rAUf.boundaryField()))
const volScalarField & gh
volScalarField p_rgh_0(p_rgh)
tmp< surfaceScalarField > DbyA2(fvc::interpolate(rAU2 *(D+phase2.turbulence().pPrime())))
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 > &)
const dimensionedScalar & rho2
volScalarField rAU1(IOobject::groupName("rAU", phase1.name()), 1.0/(U1Eqn.A()+byDt(max(phase1.residualAlpha() - alpha1, scalar(0)) *rho1)))
tmp< surfaceScalarField > flux(const volVectorField &vvf)
Return the face-flux field obtained from the given volVectorField.
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
surfaceScalarField alphaf2("alphaf2", scalar(1) - alphaf1)
const dimensionedScalar & rho1
void deleteDemandDrivenData(DataPtr &dataPtr)
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > snGrad(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)