43 fixedValueFvPatchVectorField(
p, iF),
44 filmRegionName_(
"surfaceFilmProperties"),
60 fixedValueFvPatchVectorField(ptf,
p, iF, mapper),
61 filmRegionName_(ptf.filmRegionName_),
62 GammaMean_(ptf.GammaMean_.
clone()),
64 omega_(ptf.omega_.
clone())
76 fixedValueFvPatchVectorField(
p, iF,
dict),
79 dict.getOrDefault<
word>(
"filmRegion",
"surfaceFilmProperties")
93 fixedValueFvPatchVectorField(fmfrpvf),
94 filmRegionName_(fmfrpvf.filmRegionName_),
95 GammaMean_(fmfrpvf.GammaMean_.
clone()),
96 a_(fmfrpvf.a_.
clone()),
97 omega_(fmfrpvf.omega_.
clone())
108 fixedValueFvPatchVectorField(fmfrpvf, iF),
109 filmRegionName_(fmfrpvf.filmRegionName_),
110 GammaMean_(fmfrpvf.GammaMean_.clone()),
112 omega_(fmfrpvf.omega_.
clone())
125 const label patchi = patch().index();
129 const regionModels::regionModel& region =
130 db().time().lookupObject<regionModels::regionModel>(filmRegionName_);
132 const regionModels::surfaceFilmModels::kinematicSingleLayer& film =
135 const regionModels::surfaceFilmModels::kinematicSingleLayer&
145 if (patch().size() && (
max(
mag(gTan)) < SMALL))
148 <<
"is designed to operate on patches inclined with respect to "
155 const vectorField nHatp(nHat.boundaryField()[patchi].patchInternalField());
158 nTan /=
mag(nTan) + ROOTVSMALL;
169 const scalar t = db().time().timeOutputValue();
171 const scalar GMean = GammaMean_->value(t);
172 const scalar a = a_->value(t);
173 const scalar omega = omega_->value(t);
178 const scalarField mup(
mu.boundaryField()[patchi].patchInternalField());
181 const scalarField rhop(
rho.boundaryField()[patchi].patchInternalField());
187 fixedValueFvPatchVectorField::updateCoeffs();
198 os.writeEntryIfDifferent<
word>
201 "surfaceFilmProperties",
204 GammaMean_->writeData(
os);
206 omega_->writeData(
os);
219 inclinedFilmNusseltInletVelocityFvPatchVectorField
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...
Top level data entry class for use in dictionaries. Provides a mechanism to specify a variable as a c...
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A FieldMapper for finite-volume patch fields.
virtual void write(Ostream &) const
Write.
void writeValueEntry(Ostream &os) const
Write *this field as a "value" entry.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Film velocity boundary condition for inclined films that imposes a sinusoidal perturbation on top of ...
virtual void write(Ostream &) const
Write.
virtual tmp< fvPatchField< vector > > clone() const
Return a clone.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
inclinedFilmNusseltInletVelocityFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &)
Construct from patch and internal field.
const Type & lookupObject(const word &name, const bool recursive=false) const
Lookup and return const reference to the object of the given Type. Fatal if not found or the wrong ty...
Base class for region models.
const Time & time() const noexcept
Return the reference to the time database.
Kinematic form of single-cell layer surface film model.
A class for handling words, derived from Foam::string.
OBJstream os(runTime.globalPath()/outputName)
#define makePatchTypeField(PatchTypeField, typePatchTypeField)
Define a concrete fvPatchField type and add to run-time tables Example, (fvPatchScalarField,...
#define WarningInFunction
Report a warning using Foam::Warning.
constexpr scalar twoPi(2 *M_PI)
const dimensionedScalar G
Newtonian constant of gravitation.
const std::string patch
OpenFOAM patch number as a std::string.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
GeometricField< vector, fvPatchField, volMesh > volVectorField
GeometricField< scalar, fvPatchField, volMesh > volScalarField
dimensionedScalar sin(const dimensionedScalar &ds)
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Ostream & endl(Ostream &os)
Add newline and flush stream.
tmp< faMatrix< Type > > operator==(const faMatrix< Type > &, const faMatrix< Type > &)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
Field< vector > vectorField
Specialisation of Field<T> for vector.
scalarField Re(const UList< complex > &cmplx)
Extract real component.
dimensionedScalar cbrt(const dimensionedScalar &ds)
fvPatchField< vector > fvPatchVectorField