4 volVectorField::Boundary& bfld =
U.boundaryFieldRef();
7 if (bfld[patchi].fixesValue())
9 bfld[patchi].initEvaluate();
13 surfaceScalarField::Boundary& phiBfld =
phi.boundaryFieldRef();
16 if (bfld[patchi].fixesValue())
18 bfld[patchi].evaluate();
22 &
mesh.Sf().boundaryField()[patchi];
29 p_rgh.boundaryField().size(),
30 fvPatchFieldBase::zeroGradientType()
33 for (label i=0; i<
p_rgh.boundaryField().size(); i++)
35 if (
p_rgh.boundaryField()[i].fixesValue())
37 pcorrTypes[i] = fixedValueFvPatchScalarField::typeName;
52 dimensionedScalar(
p_rgh.dimensions(), Zero),
58 fvc::makeRelative(
phi,
U);
60 fvc::makeAbsolute(
phi,
U);
65 dimensionedScalar
rAUf(
"rAUf", dimTime/
rho.dimensions(), 1.0);
71 while (
pimple.correctNonOrthogonal())
76 labelList refCells(nZones, -1);
77 labelList refZones(nZones, -1);
84 refCells[zoneId] == -1
85 &&
cellTypes[cellI] == cellCellStencil::CALCULATED
86 && refZones[zoneId] == -1
89 refCells[zoneId] = cellI;
90 refZones[zoneId] = zoneId;
94 fvScalarMatrix pcorrEqn
101 DynamicList<label> validCells(refCells.size());
104 if (refCells[zoneId] != -1)
106 validCells.push_back(refCells[zoneId]);
110 pcorrEqn.setReferences
128 mesh.fvMesh::solve(pcorrEqn, d);
130 if (
pimple.finalNonOrthogonalIter())
132 phi -= pcorrEqn.flux();
wordList pcorrTypes(p.boundaryField().size(), fvPatchFieldBase::zeroGradientType())
volScalarField pcorr(IOobject("pcorr", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE), mesh, dimensionedScalar(p.dimensions(), Zero), pcorrTypes)
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU))
adjustPhi(phiHbyA, U, p_rgh)
const cellCellStencilObject & overlap
const labelIOList & zoneIDs
List< word > wordList
List of word.
const labelUList & cellTypes
#define forAll(list, i)
Loop across all elements in list.