51 void Foam::fv::actuationDiskSource::readCoeffs()
53 phaseName_ = coeffs().lookupOrDefault<word>(
"phase",
word::null);
56 coeffs().lookupOrDefault<word>
62 diskDir_ = coeffs().lookup<
vector>(
"diskDir");
63 if (
mag(diskDir_) < vSmall)
66 <<
"disk direction vector is approximately zero" 70 Cp_ = coeffs().lookup<scalar>(
"Cp");
71 Ct_ = coeffs().lookup<scalar>(
"Ct");
72 if (Cp_ <= vSmall || Ct_ <= vSmall)
75 <<
"Cp and Ct must be greater than zero" 79 diskArea_ = coeffs().lookup<scalar>(
"diskArea");
80 if (
magSqr(diskArea_) <= vSmall)
83 <<
"diskArea is approximately zero" 87 upstreamPoint_ = coeffs().lookup<
point>(
"upstreamPoint");
88 upstreamCellId_ =
mesh().findCell(upstreamPoint_);
92 <<
"upstream location " << upstreamPoint_ <<
" not found in mesh" 103 const word& modelType,
108 fvModel(name, modelType, dict, mesh),
109 set_(coeffs(), mesh),
134 const word& fieldName
141 if (set_.V() > vSmall)
143 addActuationDiskAxialInertialResistance
160 const word& fieldName
167 if (set_.V() > vSmall)
169 addActuationDiskAxialInertialResistance
187 const word& fieldName
194 if (set_.V() > vSmall)
196 addActuationDiskAxialInertialResistance
218 set_.topoChange(map);
233 set_.distribute(map);
defineTypeNameAndDebug(fixedTemperatureConstraint, 0)
Class containing mesh-to-mesh mapping information after a mesh distribution where we send parts of me...
errorManipArg< error, int > exit(error &err, const int errNo=1)
virtual void mapMesh(const polyMeshMap &)
Update from another mesh using the given map.
A list of keyword definitions, which are a keyword followed by any number of values (e...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const GeometricField< Type, fvPatchField, volMesh > & psi() const
virtual bool read(const dictionary &dict)
Read source dictionary.
volScalarField alpha(IOobject("alpha", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
actuationDiskSource(const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
Construct from components.
Finite volume model abstract base class.
Vector< scalar > vector
A scalar version of the templated Vector.
Macros for easy insertion into run-time selection tables.
virtual wordList addSupFields() const
Return the list of fields for which the fvModel adds source term.
virtual void addSup(fvMatrix< vector > &eqn, const word &fieldName) const
Source term to momentum equation.
A class representing the concept of a GeometricField of 1 used to avoid unnecessary manipulations for...
A class for handling words, derived from string.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
static word groupName(Name name, const word &group)
static const word null
An empty word.
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.
dimensioned< scalar > magSqr(const dimensioned< Type > &)
virtual bool read(const dictionary &dict)
Read dictionary.
addToRunTimeSelectionTable(fvConstraint, fixedTemperatureConstraint, dictionary)
List< word > wordList
A List of words.
vector point
Point is a vector.
Mesh data needed to do the Finite Volume discretisation.
static Vector< scalar > uniform(const scalar &s)
Return a VectorSpace with all elements = s.
dimensioned< scalar > mag(const dimensioned< Type > &)
T returnReduce(const T &Value, const BinaryOp &bop, const int tag=Pstream::msgType(), const label comm=UPstream::worldComm)
virtual void distribute(const polyDistributionMap &)
Redistribute or update using the given distribution map.
Class containing mesh-to-mesh mapping information.
virtual void topoChange(const polyTopoChangeMap &)
Update topology using the given map.
virtual bool movePoints()
Update for mesh motion.