41 namespace functionObjects
70 for (
const label patchi : patchSet_)
73 const vectorField& Sfp = mesh_.Sf().boundaryField()[patchi];
74 const scalarField& magSfp = mesh_.magSf().boundaryField()[patchi];
77 ssp = (-Sfp/magSfp) & Reffp;
92 writeFile(mesh_,
name, typeName,
dict),
116 mesh_.objectRegistry::store(wallShearStressPtr);
137 if (patchSet_.empty())
141 if (isA<wallPolyPatch>(pbm[patchi]))
143 patchSet_.insert(patchi);
147 Info<<
" processing all wall patches" <<
nl <<
endl;
151 Info<<
" processing wall patches: " <<
nl;
153 for (
const label patchi : patchSet_)
155 if (isA<wallPolyPatch>(pbm[patchi]))
157 filteredPatchSet.
insert(patchi);
163 <<
"Requested wall shear stress on non-wall boundary " 164 <<
"type patch: " << pbm[patchi].
name() <<
endl;
170 patchSet_ = filteredPatchSet;
179 auto& wallShearStress =
186 const turbType* modelPtr =
191 calcShearStress(modelPtr->devRhoReff(), wallShearStress);
200 const turbType* modelPtr =
205 calcShearStress(modelPtr->devReff(), wallShearStress);
211 <<
"Unable to find turbulence model in the " 230 for (
const label patchi : patchSet_)
241 writeCurrentTime(file());
250 Log <<
" min/max(" << pp.
name() <<
") = " 251 << minSsp <<
", " << maxSsp <<
endl;
virtual OFstream & file()
Return access to the file (if only 1)
defineTypeNameAndDebug(ObukhovLength, 0)
virtual void writeHeader(Ostream &os, const string &str) const
Write a commented header to stream.
errorManipArg< error, int > exit(error &err, const int errNo=1)
virtual bool read(const dictionary &)
Read the wallShearStress data.
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...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Type gMin(const FieldField< Field, Type > &f)
const word & name() const noexcept
Return the object name.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
constexpr char nl
The newline '\n' character (0x0a)
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.
Ostream & endl(Ostream &os)
Add newline and flush stream.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
wallShearStress(const word &name, const Time &runTime, const dictionary &)
Construct from Time and dictionary.
IncompressibleTurbulenceModel< transportModel > turbulenceModel
Ignore writing from objectRegistry::writeObject()
Templated wrapper class to provide compressible turbulence models thermal diffusivity based thermal t...
const Time & time() const
Return the top-level database.
Abstract base-class for Time/database function objects.
bool insert(const Key &key)
Insert a new entry, not overwriting existing entries.
const ObjectType & lookupObject(const word &fieldName) const
Lookup and return object (eg, a field) from the (sub) objectRegistry.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Macros for easy insertion into run-time selection tables.
const word & name() const noexcept
Return the name of this functionObject.
#define forAll(list, i)
Loop across all elements in list.
virtual bool execute()
Calculate the wall shear-stress.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
virtual void writeCommented(Ostream &os, const string &str) const
Write a commented string to stream.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
static const word propertiesName
Default name of the turbulence properties dictionary.
void calcShearStress(const volSymmTensorField &Reff, volVectorField &shearStress)
Calculate the shear-stress.
A class for handling words, derived from Foam::string.
A List of wordRe with additional matching capabilities.
Computes the wall-shear stress at selected wall patches.
virtual void writeFileHeader(Ostream &os) const
File header information.
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO...
void reset(const dimensionSet &ds)
Copy assign the exponents from the dimensionSet.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
static word timeName(const scalar t, const int precision=precision_)
Return time name of given scalar time formatted with the given precision.
Type gMax(const FieldField< Field, Type > &f)
OBJstream os(runTime.globalPath()/outputName)
addToRunTimeSelectionTable(functionObject, ObukhovLength, dictionary)
virtual bool read(const dictionary &dict)
Read.
virtual bool write()
Write the wall shear-stress.
#define WarningInFunction
Report a warning using Foam::Warning.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
static bool master(const label communicator=worldComm)
Am I the master rank.
const polyBoundaryMesh & patches
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
messageStream Info
Information stream (stdout output on master, null elsewhere)
virtual bool read(const dictionary &dict)
Read optional controls.
labelHashSet patchSet(const UList< wordRe > &patchNames, const bool warnNotFound=true, const bool useGroups=true) const
Return the set of patch IDs corresponding to the given names.
virtual const word & name() const
Return name.
Defines the attributes of an object for which implicit objectRegistry management is supported...
word scopedName(const word &name) const
Return a scoped (prefixed) name.
const fvMesh & mesh_
Reference to the fvMesh.
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
const dimensionSet & dimensions() const noexcept
Return dimensions.
static constexpr const zero Zero
Global zero (0)
virtual void writeTabbed(Ostream &os, const string &str) const
Write a tabbed string to stream.