Go to the documentation of this file.
45 interRegionExplicitPorositySource,
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"))
129 fieldNames_.resize(1, UName_);
145 const auto& nbrMesh = mesh_.time().lookupObject<
fvMesh>(nbrRegionName_);
154 nbrMesh.time().timeName(),
164 meshInterp().mapSrcToTgt
173 porosityPtr_->addResistance(nbrEqn);
180 Udiag.setSize(eqn.diag().size(), 0.0);
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(),
262 rhoNbr.primitiveFieldRef()
266 meshInterp().mapSrcToTgt
270 muNbr.primitiveFieldRef()
273 porosityPtr_->addResistance(nbrEqn, rhoNbr, muNbr);
280 Udiag.setSize(eqn.diag().size(), 0.0);
294 coeffs_.readIfPresent(
"U", UName_);
295 coeffs_.readIfPresent(
"mu", muName_);
Defines the attributes of an object for which implicit objectRegistry management is supported,...
word nbrRegionName_
Name of the neighbour region to map.
A class for handling words, derived from Foam::string.
const dimensionedScalar mu
Atomic mass unit.
static constexpr const zero Zero
Global zero (0)
const dimensionSet dimDensity
void resetApplied()
Resize/reset applied flag list for all fieldNames_ entries.
const dimensionSet & dimensions() const
bool firstIter_
First iteration.
const word name_
Source name.
const fvMesh & mesh_
Reference to the mesh database.
virtual bool read(const dictionary &dict)
Read dictionary.
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.
A special matrix type and solver, designed for finite volume solutions of scalar equations.
virtual void addSup(fvMatrix< vector > &eqn, const label fieldi)
Vector.
Intermediate class for handling inter-region exchanges.
dictionary coeffs_
Dictionary containing source coefficients.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
autoPtr< porosityModel > porosityPtr_
Run-time selectable porosity model.
const Type & lookupObject(const word &name, const bool recursive=false) const
const dimensionSet dimViscosity
const GeometricField< Type, fvPatchField, volMesh > & psi(const label i=0) const
Return psi.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Macros for easy insertion into run-time selection tables.
const labelIOList & zoneID
Mesh data needed to do the Finite Volume discretisation.
errorManip< error > abort(error &err)
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field.
interRegionExplicitPorositySource(const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
Construct from components.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
const Time & time() const
Return the top-level database.
defineTypeNameAndDebug(atmAmbientTurbSource, 0)
addToRunTimeSelectionTable(option, atmAmbientTurbSource, dictionary)
static autoPtr< porosityModel > New(const word &name, const fvMesh &mesh, const dictionary &dict, const word &cellZoneName=word::null)
Selector.
void clearAddressing()
Clear addressing.
void initialise()
Initialise.
virtual bool read(const dictionary &dict)
Read dictionary.