44 mixedFvPatchVectorField(
p, iF),
51 valueFraction() = 0.0;
64 mixedFvPatchVectorField(ptf,
p, iF, mapper),
65 phiName_(ptf.phiName_),
66 rhoName_(ptf.rhoName_),
67 inletDir_(ptf.inletDir_, mapper)
79 mixedFvPatchVectorField(
p, iF),
80 phiName_(
dict.getOrDefault<
word>(
"phi",
"phi")),
81 rhoName_(
dict.getOrDefault<
word>(
"rho",
"rho")),
82 inletDir_(
"inletDirection",
dict,
p.size())
88 valueFraction() = 0.0;
98 mixedFvPatchVectorField(pivpvf),
99 phiName_(pivpvf.phiName_),
100 rhoName_(pivpvf.rhoName_),
101 inletDir_(pivpvf.inletDir_)
112 mixedFvPatchVectorField(pivpvf, iF),
113 phiName_(pivpvf.phiName_),
114 rhoName_(pivpvf.rhoName_),
115 inletDir_(pivpvf.inletDir_)
126 mixedFvPatchVectorField::autoMap(m);
127 inletDir_.autoMap(m);
137 mixedFvPatchVectorField::rmap(ptf, addr);
140 refCast<const pressureDirectedInletOutletVelocityFvPatchVectorField>
143 inletDir_.
rmap(tiptf.inletDir_, addr);
156 tmp<vectorField>
n =
patch().nf();
157 tmp<scalarField> ndmagS = (
n & inletDir_)*
patch().magSf();
161 refValue() = inletDir_*phip/ndmagS;
167 refValue() = inletDir_*phip/(rhop*ndmagS);
172 <<
"dimensions of phi are not correct" 173 <<
"\n on patch " << this->
patch().name()
174 <<
" of field " << this->internalField().name()
175 <<
" in file " << this->internalField().objectPath()
179 valueFraction() =
neg(phip);
181 mixedFvPatchVectorField::updateCoeffs();
193 inletDir_.writeEntry(
"inletDirection",
os);
200 void Foam::pressureDirectedInletOutletVelocityFvPatchVectorField::operator=
207 lerp(pvf, inletDir_*(inletDir_ & pvf), valueFraction())
219 pressureDirectedInletOutletVelocityFvPatchVectorField
fvPatchField< vector > fvPatchVectorField
errorManipArg< error, int > exit(error &err, const int errNo=1)
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
A list of keyword definitions, which are a keyword followed by a number of values (eg...
pressureDirectedInletOutletVelocityFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &)
Construct from patch and internal field.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
void writeValueEntry(Ostream &os) const
Write *this field as a "value" entry.
virtual void write(Ostream &) const
Write.
virtual void readDict(const dictionary &dict)
Read dictionary entries.
dimensionedScalar neg(const dimensionedScalar &ds)
Macros for easy insertion into run-time selection tables.
virtual void rmap(const fvPatchVectorField &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
const dimensionSet dimVolume(pow3(dimLength))
A class for handling words, derived from Foam::string.
A FieldMapper for finite-volume patch fields.
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
Ostream & writeEntryIfDifferent(const word &key, const T &value1, const T &value2)
Write a keyword/value entry only when the two values differ.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
OBJstream os(runTime.globalPath()/outputName)
dimensioned< Type > lerp(const dimensioned< Type > &a, const dimensioned< Type > &b, const scalar t)
virtual void write(Ostream &) const
Write.
This velocity inlet/outlet boundary condition is applied to velocity boundaries where the pressure is...
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const std::string patch
OpenFOAM patch number as a std::string.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
makePatchTypeField(fvPatchScalarField, atmBoundaryLayerInletEpsilonFvPatchScalarField)
static constexpr const zero Zero
Global zero (0)