39 scalar omegaWallFunctionFvPatchScalarField::tolerance_ = 1
e-1;
58 if (isA<omegaWallFunctionFvPatchScalarField>(bf[
patchi]))
105 if (isA<omegaWallFunctionFvPatchScalarField>(bf[
patchi]))
107 omegaPatches.append(patchi);
112 label celli = faceCells[i];
142 refCast<const omegaWallFunctionFvPatchScalarField>(bf[
patchi]);
216 const scalar Cmu5 =
sqrt(nutw.
Cmu());
222 const scalar w = cornerWeights[facei];
224 const scalar
Rey = y[facei]*
sqrt(k[celli])/nuw[facei];
230 const scalar lamFrac =
exp(-Rey/11);
231 const scalar turbFrac = 1 - lamFrac;
233 const scalar uStar =
sqrt 235 lamFrac*nuw[facei]*magGradUw[facei] + turbFrac*Cmu5*k[celli]
238 const scalar omegaVis = 6*nuw[facei]/(
beta1_*
sqr(y[facei]));
239 const scalar omegaLog = uStar/(Cmu5*nutw.
kappa()*y[facei]);
241 omega0[celli] += w*(lamFrac*omegaVis + turbFrac*omegaLog);
249 *
sqr(uStar*magGradUw[facei]*y[facei]/uPlus)
257 const scalar omegaVis = 6*nuw[facei]/(
beta1_*
sqr(y[facei]));
259 omega0[celli] += w*omegaVis;
261 G0[celli] += w*G[celli];
265 const scalar uStar =
sqrt(Cmu5*k[celli]);
266 const scalar omegaLog = uStar/(Cmu5*nutw.
kappa()*y[facei]);
268 omega0[celli] += w*omegaLog;
272 sqr(uStar*magGradUw[facei]*y[facei]/uPlus)
402 momentumTransportModel::typeName,
432 scalar& w = weights[facei];
438 const scalar w = weights[facei];
441 G[celli] = (1 - w)*G[celli] + w*G0[celli];
442 omega[celli] = (1 - w)*omega[celli] + w*omega0[celli];
466 scalar& w = weights[facei];
const char *const group
Group name for atomic constants.
bool changing() const
Is mesh changing (topology changing and/or moving)
virtual tmp< volScalarField > nu() const
Return the laminar viscosity.
#define forAll(list, i)
Loop across all elements in list.
bool empty() const
Return true if the UList is empty (ie, size() is zero)
Switch blended_
Blending switch (defaults to false)
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual void write(Ostream &) const
Write.
virtual tmp< Field< Type > > snGrad() const
Return patch-normal gradient.
dimensionedScalar log(const dimensionedScalar &ds)
label index() const
Return the index of this patch in the fvBoundaryMesh.
A list of keyword definitions, which are a keyword followed by any number of values (e...
omegaWallFunctionFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
bool updated() const
Return true if the boundary condition has already been updated.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar sqrt(const dimensionedScalar &ds)
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
dimensionedScalar pow025(const dimensionedScalar &ds)
A simple wrapper around bool so that it can be read as a word: true/false, on/off, yes/no, y/n, t/f, or none/any.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
virtual void createAveragingWeights()
Create the averaging weights for cells which are bounded by.
const dimensionSet dimless
label k
Boltzmann constant.
const Time & time() const
Return the top-level database.
bool manipulatedMatrix() const
Return true if the matrix has already been manipulated.
const Type & lookupObject(const word &name) const
Lookup and return the object of the given Type.
const volScalarField::Boundary & y() const
Return the near wall distance.
scalar Cmu() const
Return Cmu.
Macros for easy insertion into run-time selection tables.
virtual void operator==(const fvPatchField< Type > &)
scalarField & G(bool init=false)
Return non-const access to the master's G field.
static const nutWallFunctionFvPatchScalarField & nutw(const momentumTransportModel &turbModel, const label patchi)
Return the nut patchField for the given wall patch.
This boundary condition provides a turbulent kinematic viscosity condition when using wall functions...
virtual omegaWallFunctionFvPatchScalarField & omegaPatch(const label patchi)
Helper function to return non-const access to an omega patch.
dimensionedScalar exp(const dimensionedScalar &ds)
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
static word timeName(const scalar, const int precision=curPrecision_)
Return time name of given scalar time.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
virtual const labelUList & faceCells() const
Return faceCells.
static word groupName(Name name, const word &group)
scalar E() const
Return E.
Foam::fvPatchFieldMapper.
virtual void write(Ostream &) const
Write.
static scalar tolerance_
Tolerance used in weighted calculations.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
virtual void manipulateMatrix(fvMatrix< Type > &matrix)
Manipulate matrix.
bool initialised_
Initialised flag.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
const fvPatch & patch() const
Return patch.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
virtual void calculate(const momentumTransportModel &turbModel, const List< scalar > &cornerWeights, const fvPatch &patch, scalarField &G, scalarField &omega)
Calculate the omega and G.
virtual tmp< Field< Type > > patchInternalField() const
Return internal field next to patch as patch field.
const Mesh & mesh() const
Return mesh.
List< List< scalar > > cornerWeights_
List of averaging corner weights.
void writeEntry(Ostream &os, const HashTable< T, Key, Hash > &ht)
scalarField G_
Local copy of turbulence G field.
virtual tmp< volScalarField > k() const =0
Return the turbulence kinetic energy.
Abstract base class for turbulence models (RAS, LES and laminar).
label size() const
Return the number of elements in the UPtrList.
scalarField & omega(bool init=false)
Return non-const access to the master's omega field.
void setValues(const labelUList &cells, const ListType< Type > &values)
Set solution in given cells to the specified values.
void setSize(const label)
Reset size of List.
const volVectorField & U() const
Access function to velocity field.
This boundary condition provides a wall constraint on turbulnce specific dissipation, omega for both low and high Reynolds number turbulence models.
T lookupOrDefault(const word &, const T &, bool recursive=false, bool patternMatch=true) const
Find and return a T,.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const dimensionedScalar G0
Conductance quantum: default SI units: [S].
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
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...
const objectRegistry & db() const
Return local objectRegistry.
dimensioned< scalar > mag(const dimensioned< Type > &)
virtual void setMaster()
Set the master patch - master is responsible for updating all.
const doubleScalar e
Elementary charge.
word GName() const
Helper function to return the name of the turbulence G field.
static scalar yPlusLam(const scalar kappa, const scalar E)
Calculate the Y+ at the edge of the laminar sublayer.
A class for managing temporary objects.
label master_
Master patch ID.
virtual label & master()
Return non-const access to the master patch ID.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
virtual void manipulateMatrix(fvMatrix< scalar > &matrix)
Manipulate matrix.
makePatchTypeField(fvPatchScalarField, atmBoundaryLayerInletEpsilonFvPatchScalarField)
label size() const
Return the number of elements in the UList.
scalarField omega_
Local copy of turbulence omega field.
scalar kappa() const
Return kappa.
scalar beta1_
beta1 coefficient
virtual void calculateTurbulenceFields(const momentumTransportModel &turbModel, scalarField &G0, scalarField &omega0)
Main driver to calculate the turbulence fields.
const DimensionedField< Type, volMesh > & internalField() const
Return dimensioned internal field reference.