45 const bool isTopoField,
46 const scalar minSetValue
63 const scalar minSetValue
70 forAll(zones_.fixedPorousZoneIDs(), zI)
72 const label
cellZoneID = zones_.fixedPorousZoneIDs()[zI];
81 zones_.fixedPorousValues()[zI] : scalar(0)
86 for (label
cellZoneID : zones_.fixedZeroPorousZoneIDs())
97 scalar averageVol(
gAverage(mesh_.V().field()));
98 const Vector<label>& geometricD = mesh_.geometricD();
99 const boundBox& bounds = mesh_.bounds();
102 if (geometricD[iDir] == -1)
104 averageVol /= bounds.span()[iDir];
107 scalar radius =
pow(averageVol, scalar(1)/scalar(mesh_.nGeometricD()));
108 Info<<
"Computed a mean radius of " << radius <<
endl;
115 Foam::regularisationPDE::regularisationPDE
125 growFromWalls_(
dict.getOrDefault<bool>(
"growFromWalls", false))
138 const word modelType =
141 auto* ctorPtr = dictionaryConstructorTable(modelType);
143 Info<<
"regularisationPDE type " << modelType <<
endl;
152 *dictionaryConstructorTablePtr_
156 return autoPtr<regularisationPDE>
void size(const label n)
Older name for setAddressableSize.
errorManipArg< error, int > exit(error &err, const int errNo=1)
A list of keyword definitions, which are a keyword followed by a number of values (eg...
void append(const T &val)
Append an element at the end of the list.
A class that holds the data needed to identify things (zones, patches) in a dynamic mesh...
static autoPtr< regularisationPDE > New(const fvMesh &mesh, const dictionary &dict, const topOZones &zones)
Construct and return the selected regularisationPDE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Base class for selecting the regulatisation PDE.
#define forAll(list, i)
Loop across all elements in list.
List< T > values(const HashTable< T, Key, Hash > &tbl, const bool doSort=false)
List of values from HashTable, optionally sorted.
scalar computeRadius()
Compute smoothing radius, if not directly given.
const GeometricField< Type, fvPatchField, volMesh > & psi(const label i=0) const
Return psi.
A class for handling words, derived from Foam::string.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
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.
void setValues(fvScalarMatrix &bTildaEqn, const bool isTopoField, const scalar minSetValue=Zero)
Set fixed bTilda values.
defineRunTimeSelectionTable(reactionRateFlameArea, dictionary)
defineTypeNameAndDebug(combustionModel, 0)
DynamicID< cellZoneMesh > cellZoneID
Foam::cellZoneID.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Type gAverage(const FieldField< Field, Type > &f)
Mesh data needed to do the Finite Volume discretisation.
const cellZoneMesh & cellZones() const noexcept
Return cell zone mesh.
messageStream Info
Information stream (stdout output on master, null elsewhere)
void setValues(const labelUList &cellLabels, const Type &value)
Set solution in given cells to the specified value and eliminate the corresponding equations from the...
T getOrDefault(const word &keyword, const T &deflt, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a T, or return the given default value. FatalIOError if it is found and the number of...
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...