7 const volScalarField&
alpha = phase;
18 max(
alpha.oldTime(), phase.residualAlpha())
19 *phase.rho()().oldTime()
28 PtrList<surfaceScalarField>
AFfs(
fluid.AFfs());
32 phaseModel& phase =
fluid.movingPhases()[movingPhasei];
37 new surfaceScalarField
39 IOobject::groupName(
"rAUf", phase.name()),
43 + fvc::interpolate(
UEqns[phase.index()].A())
61 max(
alphafs[phase.index()], phase.residualAlpha())
73 volScalarField
rho(
"rho",
fluid.rho());
81 phaseModel& phase =
fluid.movingPhases()[movingPhasei];
82 MRF.correctBoundaryFlux(phase.U(), phase.phiRef());
86 PtrList<surfaceScalarField> phigFs(
phases.size());
105 - (fvc::interpolate(phase.rho() -
rho))*(
g &
mesh.Sf())
106 -
fluid.surfaceTension(phase)*
mesh.magSf()
122 phaseModel& phase =
fluid.movingPhases()[movingPhasei];
127 new surfaceScalarField
129 IOobject::groupName(
"phiHbyA", phase.name()),
132 fvc::flux(
UEqns[phase.index()].H())
134 *byDt(
MRF.absolute(phase.phi()().oldTime()))
136 - phigFs[phase.index()]
140 fluid.fillFields(
"phiHbyA", dimForce/dimDensity/dimVelocity,
phiHbyAs);
143 if (!partialElimination)
145 PtrList<surfaceScalarField> phiKdPhifs(
fluid.phiKdPhifs(
rAUfs));
149 if (phiKdPhifs.set(
phasei))
168 dimensionedScalar(
"phiHbyA", dimArea*dimVelocity, 0)
177 if (partialElimination)
179 PtrList<surfaceScalarField> phiKdPhifs(
fluid.phiKdPhifs(
rAUfs));
183 if (phiKdPhifs.set(
phasei))
193 surfaceScalarField
rAUf
202 dimensionedScalar(
"rAUf", dimensionSet(-1, 3, 1, 0, 0), 0)
214 surfaceScalarField::Boundary
phib(
phi.boundaryField());
220 alphafs[
phasei].boundaryField()*phase.phi()().boundaryField();
225 p_rgh.boundaryFieldRef(),
228 )/(
mesh.magSf().boundaryField()*
rAUf.boundaryField())
233 PtrList<fvScalarMatrix> pEqnComps(
phases.size());
234 PtrList<volScalarField> dmdts(
fluid.dmdts());
238 const volScalarField&
alpha = phase;
239 volScalarField&
rho = phase.thermoRef().rho();
241 if (phase.compressible())
245 surfaceScalarField
phid
247 IOobject::groupName(
"phid", phase.name()),
248 fvc::interpolate(phase.thermo().psi())*phase.phi()
256 fvc::ddt(
alpha,
rho) + fvc::div(phase.alphaRhoPhi())
259 fvc::ddt(
alpha) + fvc::div(phase.alphaPhi()),
267 phase.thermo().psi()*fvm::ddt(
p_rgh)
275 deleteDemandDrivenData
277 pEqnComps[
phasei].faceFluxCorrectionPtr()
280 pEqnComps[
phasei].relax();
289 fvc::ddt(
alpha,
rho) + fvc::div(phase.alphaRhoPhi())
292 (fvc::ddt(
alpha) + fvc::div(phase.alphaPhi())),
297 *correction(fvm::ddt(
p_rgh))
306 if (pEqnComps.set(
phasei))
322 if (pEqnComps.set(
phasei))
341 while (
pimple.correctNonOrthogonal())
344 fvScalarMatrix pEqnIncomp
351 fvScalarMatrix pEqn(pEqnIncomp);
355 if (pEqnComps.set(
phasei))
357 pEqn += pEqnComps[
phasei];
369 if (
pimple.finalNonOrthogonalIter())
373 surfaceScalarField mSfGradp(
"mSfGradp", pEqnIncomp.flux()/
rAUf);
377 phaseModel& phase =
fluid.movingPhases()[movingPhasei];
384 if (pEqnComps.set(phase.index()))
386 phase.divU(-pEqnComps[phase.index()] &
p_rgh);
390 if (partialElimination)
398 mSfGradp = pEqnIncomp.flux()/
rAUf;
402 phaseModel& phase =
fluid.movingPhases()[movingPhasei];
404 phase.URef() = fvc::reconstruct(
MRF.absolute(phase.phi()));
405 phase.URef().correctBoundaryConditions();
421 phase.thermoRef().rho() += phase.thermo().psi()*(
p_rgh -
p_rgh_0);
427 p_rgh.correctBoundaryConditions();
const uniformDimensionedVectorField & g
const surfaceScalarField & ghf
const volScalarField & gh
const dimensionedScalar & pMin
surfaceScalarField phid("phid", fvc::interpolate(psi) *(fvc::flux(HbyA)+MRF.zeroFilter(rhorAUf *fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho))))
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU))
PtrList< fvVectorMatrix > UEqns(fluid.phases().size())
volScalarField p_rgh_0(p_rgh)
surfaceScalarField ghSnGradRho(ghf *fvc::snGrad(rho) *mesh.magSf())
PtrList< surfaceScalarField > phiHbyAs(fluid.phases().size())
setSnGrad< fixedFluxPressureFvPatchScalarField >(p_rgh.boundaryFieldRef(),(phiHbyA.boundaryField() - MRF.relative(phib))/(mesh.magSf().boundaryField() *rAUf.boundaryField()))
PtrList< surfaceScalarField > alphafs(phases.size())
PtrList< surfaceScalarField > alpharAUfs(phases.size())
PtrList< surfaceScalarField > phiFfs(fluid.phiFfs(rAUfs))
PtrList< surfaceScalarField > alphaRho0fs(phases.size())
PtrList< surfaceScalarField > rAUfs
PtrList< surfaceScalarField > AFfs(fluid.AFfs())
multiphaseSystem::phaseModelList & phases
#define forAll(list, i)
Loop across all elements in list.