64 label
zoneID = cellZones.findZoneID(zoneName);
80 nbrMesh.faceNeighbour(),
91 <<
"Unable to create porous cellZone " << zoneName
92 <<
": zone already exists"
116 const word& modelType,
122 porosityPtr_(nullptr),
124 UName_(coeffs_.getOrDefault<
word>(
"U",
"U")),
125 muName_(coeffs_.getOrDefault<
word>(
"mu",
"thermo:mu"))
145 const auto& nbrMesh = mesh_.time().lookupObject<
fvMesh>(nbrRegionName_);
154 nbrMesh.time().timeName(),
164 meshInterp().mapSrcToTgt
173 porosityPtr_->addResistance(nbrEqn);
199 const auto& nbrMesh = mesh_.time().lookupObject<
fvMesh>(nbrRegionName_);
208 nbrMesh.time().timeName(),
218 meshInterp().mapSrcToTgt
232 nbrMesh.time().timeName(),
246 nbrMesh.time().timeName(),
258 meshInterp().mapSrcToTgt
260 rho.primitiveField(),
266 meshInterp().mapSrcToTgt
273 porosityPtr_->addResistance(nbrEqn, rhoNbr, muNbr);
294 coeffs_.readIfPresent(
"U", UName_);
295 coeffs_.readIfPresent(
"mu", muName_);
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
void setSize(const label n)
Alias for resize()
void resize(const label len)
Adjust allocated size of list.
const T * set(const label i) const
void setSize(const label newLen)
Same as resize()
virtual bool read()
Re-read model coefficients if they have changed.
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
void size(const label n)
Older name for setAddressableSize.
label size() const noexcept
The number of elements in the list.
void clearAddressing()
Clear addressing.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A special matrix type and solver, designed for finite volume solutions of scalar equations....
const dimensionSet & dimensions() const noexcept
const GeometricField< Type, fvPatchField, volMesh > & psi(const label i=0) const
Return psi.
Field< Type > & source() noexcept
Mesh data needed to do the Finite Volume discretisation.
const Time & time() const
Return the top-level database.
Applies inter-region explicit porosity source.
void initialise()
Initialise.
word UName_
Name of operand velocity field.
autoPtr< porosityModel > porosityPtr_
Run-time selectable porosity model.
virtual void addSup(fvMatrix< vector > &eqn, const label fieldi)
Vector.
bool firstIter_
First iteration.
Intermediate class for handling inter-region exchanges.
word nbrRegionName_
Name of the neighbour region to map.
Base abstract class for handling finite volume options (i.e. fvOption).
bool active_
Source active flag.
const fvMesh & mesh_
Reference to the mesh database.
wordList fieldNames_
Field names to apply source to - populated by derived models.
dictionary coeffs_
Dictionary containing source coefficients.
void resetApplied()
Resize/reset applied flag list for all fieldNames_ entries.
const word name_
Source name.
const Type & lookupObject(const word &name, const bool recursive=false) const
A class for handling words, derived from Foam::string.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
const volScalarField & mu
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
A special matrix type and solver, designed for finite volume solutions of scalar equations.
const labelIOList & zoneID
const dimensionSet dimViscosity
errorManip< error > abort(error &err)
static constexpr const zero Zero
Global zero (0)
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
const dimensionSet dimDensity