46 phiName_(
dict.lookupOrDefault<
word>(
"phi",
"phi")),
47 rhoName_(
dict.lookupOrDefault<
word>(
"rho",
"rho")),
51 if (
dict.found(
"value"))
72 <<
"unphysical lInf specified (lInf < 0)" <<
nl
94 phiName_(ptf.phiName_),
95 rhoName_(ptf.rhoName_),
96 fieldInf_(ptf.fieldInf_),
109 phiName_(ptpsf.phiName_),
110 rhoName_(ptpsf.rhoName_),
111 fieldInf_(ptpsf.fieldInf_),
123 this->db().objectRegistry::template lookupObject<surfaceScalarField>
127 this->patch().template lookupPatchField<surfaceScalarField, scalar>
135 this->patch().template lookupPatchField<volScalarField, scalar>
140 return phip/(rhop*this->patch().magSf());
144 return phip/this->patch().magSf();
157 const fvMesh& mesh = this->internalField().
mesh();
161 mesh.
schemes().
ddt(this->internalField().name())
163 scalar deltaT = this->db().time().deltaTValue();
166 this->db().objectRegistry::template
167 lookupObject<VolField<Type>>
169 this->internalField().name()
199 this->valueFraction() = (1.0 +
k)/(1.0 +
alpha +
k);
210 this->valueFraction() = (1.5 +
k)/(1.5 +
alpha +
k);
234 this->valueFraction() = (1.0 +
k)/(1.0 +
alpha +
k);
240 <<
" on patch " << this->patch().name()
241 <<
" of field " << this->internalField().name()
242 <<
" in file " << this->internalField().objectPath()
256 this->valueFraction() = 1.0/(1.0 +
alpha);
266 this->valueFraction() = 1.5/(1.5 +
alpha);
284 this->valueFraction() = 1.0/(1.0 +
alpha);
290 <<
"\n on patch " << this->patch().name()
291 <<
" of field " << this->internalField().name()
292 <<
" in file " << this->internalField().objectPath()
306 writeEntryIfDifferent<word>(os,
"phi",
"phi", phiName_);
307 writeEntryIfDifferent<word>(os,
"rho",
"rho", rhoName_);
Macros for easy insertion into run-time selection tables.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const dimensionSet & dimensions() const
Return dimensions.
Pre-declare SubField and related Field type.
Generic GeometricField class.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
const FieldType & oldTime() const
Return the old time field.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
This boundary condition provides an advective outflow condition, based on solving DDt(W,...
advectiveFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
virtual void write(Ostream &) const
Write.
scalar lInf_
Relaxation length-scale.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
Type fieldInf_
Field value of the far-field.
virtual tmp< scalarField > advectionSpeed() const
Calculate and return the advection speed at the boundary.
A list of keyword definitions, which are a keyword followed by any number of values (e....
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
bool readIfPresent(const word &, T &, bool recursive=false, bool patternMatch=true) const
Find an entry if present, and assign to T.
Abstract base class for field mapping.
Mesh data needed to do the Finite Volume discretisation.
const fvSchemes & schemes() const
Return the fvSchemes.
const polyMesh & mesh() const
Return reference to polyMesh.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
const DimensionedField< Type, volMesh > & internalField() const
Return dimensioned internal field reference.
virtual void write(Ostream &) const
Write.
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
virtual void operator=(const UList< Type > &)
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
const fvPatch & patch() const
Return patch.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
virtual const word & name() const
Return name.
ITstream & ddt(const word &name) const
Second-oder Crank-Nicolson implicit ddt using the current and previous time-step fields as well as th...
Basic first-order Euler implicit/explicit ddt using only the current and previous time-step values.
Second-order backward-differencing ddt using the current and two previous time-step values.
Local time-step first-order Euler implicit/explicit ddt.
static const volScalarField & localRDeltaT(const fvMesh &mesh)
Return the reciprocal of the local time-step.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
This boundary condition provides a base class for 'mixed' type boundary conditions,...
virtual Field< Type > & refValue()
virtual scalarField & valueFraction()
virtual Field< Type > & refGrad()
A class for managing temporary objects.
A class for handling words, derived from string.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
volScalarField alpha(IOobject("alpha", runTime.name(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
errorManipArg< error, int > exit(error &err, const int errNo=1)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const dimensionSet dimMassFlux
const dimensionSet dimLength
void writeEntry(Ostream &os, const HashTable< T, Key, Hash > &ht)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)