41 template<
class RAUfType>
59 p.boundaryField().size(),
60 zeroGradientFvPatchScalarField::typeName
66 if (
p.boundaryField()[
patchi].fixesValue())
68 pcorrTypes[
patchi] = fixedValueFvPatchScalarField::typeName;
115 phi -= pcorrEqn.
flux();
121 template<
class RAUfType>
138 p.boundaryField().size(),
139 zeroGradientFvPatchScalarField::typeName
145 if (
p.boundaryField()[
patchi].fixesValue())
147 pcorrTypes[
patchi] = fixedValueFvPatchScalarField::typeName;
183 phi += pcorrEqn.
flux();
Flux correction functions to ensure continuity.
#define forAll(list, i)
Loop across all elements in list.
For cases which do no have a pressure boundary adjust the balance of fluxes to obey continuity....
const Mesh & mesh() const
Return mesh.
Generic GeometricField class.
bool needReference() const
Does the field need a reference level for solution.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const word & name() const
Return name.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
bool valid() const
Return true if the autoPtr valid (ie, the pointer is set)
const word & name() const
Return const reference to name.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
SolverPerformance< Type > solve(const dictionary &)
Solve segregated or coupled returning the solution statistics.
tmp< SurfaceField< Type > > flux() const
Return the face-flux field from the matrix.
void setReference(const label celli, const Type &value, const bool forceReference=false)
Set reference level for solution.
Mesh data needed to do the Finite Volume discretisation.
const Time & time() const
Return the top-level database.
const fvSchemes & schemes() const
Return the fvSchemes.
void setFluxRequired(const word &name) const
Non-orthogonal solution control class. Provides non-orthogonal-loop control methods.
bool correctNonOrthogonal(const bool finalIter=false)
Non-orthogonal corrector loop.
bool finalNonOrthogonalIter() const
Flag to indicate the last non-orthogonal iteration.
Provides controls for the pressure reference in closed-volume simulations.
label refCell() const
Return the cell in which the reference pressure is set.
Calculate the divergence of the given field.
Calculate the mesh motion flux and convert fluxes from absolute to relative and back.
Calculate the matrix for the first temporal derivative.
Calculate the matrix for the laplacian of the field.
const volScalarField & psi
volScalarField rAU(1.0/UEqn.A())
void CorrectPhi(surfaceScalarField &phi, const volVectorField &U, const volScalarField &p, const RAUfType &rAU, const autoPtr< volScalarField > &divU, const pressureReference &pressureReference, nonOrthogonalSolutionControl &pcorrControl)
tmp< VolField< Type > > ddt(const dimensioned< Type > dt, const fvMesh &mesh)
tmp< VolField< Type > > laplacian(const VolField< Type > &vf, const word &name)
tmp< VolField< Type > > div(const SurfaceField< Type > &ssf)
void makeAbsolute(surfaceScalarField &phi, const volVectorField &U)
Make the given flux absolute.
void makeRelative(surfaceScalarField &phi, const volVectorField &U)
Make the given flux relative.