51 this->refValue() =
Zero;
52 this->refGrad() =
Zero;
53 this->valueFraction() = 0.0;
67 phiName_(ptf.phiName_),
68 rhoName_(ptf.rhoName_),
69 fieldInf_(ptf.fieldInf_),
88 if (dict.
found(
"value"))
100 this->refValue() = *
this;
101 this->refGrad() =
Zero;
102 this->valueFraction() = 0.0;
106 dict.
lookup(
"fieldInf") >> fieldInf_;
113 ) <<
"unphysical lInf specified (lInf < 0)" <<
nl 114 <<
" on patch " << this->patch().name()
115 <<
" of field " << this->internalField().name()
116 <<
" in file " << this->internalField().objectPath()
145 phiName_(ptpsf.phiName_),
146 rhoName_(ptpsf.rhoName_),
147 fieldInf_(ptpsf.fieldInf_),
159 this->db().objectRegistry::template lookupObject<surfaceScalarField>
163 this->patch().template lookupPatchField<surfaceScalarField, scalar>
171 this->patch().template lookupPatchField<volScalarField, scalar>
176 return phip/(rhop*this->patch().magSf());
180 return phip/this->patch().magSf();
193 const fvMesh&
mesh = this->internalField().mesh();
197 mesh.
ddtScheme(this->internalField().name())
199 scalar deltaT = this->db().time().deltaTValue();
202 this->db().objectRegistry::template
203 lookupObject<GeometricField<Type, fvPatchField, volMesh>>
205 this->internalField().name()
235 this->valueFraction() = (1.0 +
k)/(1.0 + alpha + k);
246 this->valueFraction() = (1.5 +
k)/(1.5 + alpha + k);
254 fv::localEulerDdt::localRDeltaT(mesh);
270 this->valueFraction() = (1.0 +
k)/(1.0 + alpha + k);
276 <<
" on patch " << this->patch().name()
277 <<
" of field " << this->internalField().name()
278 <<
" in file " << this->internalField().objectPath()
292 this->valueFraction() = 1.0/(1.0 +
alpha);
302 this->valueFraction() = 1.5/(1.5 +
alpha);
310 fv::localEulerDdt::localRDeltaT(mesh);
320 this->valueFraction() = 1.0/(1.0 +
alpha);
326 <<
"\n on patch " << this->patch().name()
327 <<
" of field " << this->internalField().name()
328 <<
" in file " << this->internalField().objectPath()
342 this->
template writeEntryIfDifferent<word>(os,
"phi",
"phi", phiName_);
343 this->
template writeEntryIfDifferent<word>(os,
"rho",
"rho", rhoName_);
347 os.writeKeyword(
"fieldInf") << fieldInf_ << token::END_STATEMENT <<
nl;
348 os.writeKeyword(
"lInf") << lInf_ << token::END_STATEMENT <<
nl;
351 this->writeEntry(
"value", os);
Local time-step first-order Euler implicit/explicit ddt.
Second-oder Crank-Nicolson implicit ddt using the current and previous time-step fields as well as th...
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
errorManipArg< error, int > exit(error &err, const int errNo=1)
A list of keyword definitions, which are a keyword followed by any number of values (e...
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
word phiName_
Name of the flux transporting the field.
scalar lInf_
Relaxation length-scale.
word rhoName_
Name of the density field used to normalise the mass flux.
void size(const label)
Override size to be inconsistent with allocated storage.
Type fieldInf_
Field value of the far-field.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
This boundary condition provides a base class for 'mixed' type boundary conditions, i.e. conditions that mix fixed value and patch-normal gradient conditions.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
label k
Boltzmann constant.
virtual tmp< scalarField > advectionSpeed() const
Calculate and return the advection speed at the boundary.
Macros for easy insertion into run-time selection tables.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual void write(Ostream &) const
Write.
const GeometricField< Type, PatchField, GeoMesh > & oldTime() const
Return old time field.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
Pre-declare SubField and related Field type.
A class for handling words, derived from string.
bool readIfPresent(const word &, T &, bool recursive=false, bool patternMatch=true) const
Find an entry if present, and assign to T.
advectiveFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
Foam::fvPatchFieldMapper.
bool found(const word &, bool recursive=false, bool patternMatch=true) const
Search dictionary for given keyword.
Second-order backward-differencing ddt using the current and two previous time-step values...
const dimensionSet & dimensions() const
Return dimensions.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
const dimensionSet dimDensity
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
Mesh data needed to do the Finite Volume discretisation.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
This boundary condition provides an advective outflow condition, based on solving DDt(psi...
A class for managing temporary objects.
Basic first-order Euler implicit/explicit ddt using only the current and previous time-step values...
ITstream & ddtScheme(const word &name) const
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
T lookupOrDefault(const word &, const T &, bool recursive=false, bool patternMatch=true) const
Find and return a T,.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
const dimensionSet dimArea(sqr(dimLength))
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
const dimensionSet dimVelocity