59 void Foam::fv::semiImplicitSource::readCoeffs(
const dictionary&
dict)
72 new unknownTypeFunction1
75 mesh().time().userUnits(),
82 new unknownTypeFunction1
85 mesh().time().userUnits(),
94 void Foam::fv::semiImplicitSource::addSupType
96 const VolField<Type>& field,
101 fieldSu_[field.name()]->template setValueUnits<Type>
105 fieldSp_[field.name()]->template setValueUnits<scalar>
107 eqn.dimensions()/eqn.psi().dimensions()
112 const VolField<Type>&
psi = eqn.psi();
114 VolInternalField<Type>
Su
118 name() + field.name() +
"Su",
141 case volumeMode::specific:
147 UIndirectList<Type>(
Su, zone_.zone()) =
148 fieldSu_[field.name()]->template value<Type>(t)/VDash;
154 name() + field.name() +
"Sp",
164 Su.dimensions()/
psi.dimensions(),
171 UIndirectList<scalar>(
Sp, zone_.zone()) =
172 fieldSp_[field.name()]->template value<scalar>(t)/VDash;
179 void Foam::fv::semiImplicitSource::addSupType
182 const VolField<Type>& field,
186 return addSup(field, eqn);
191 void Foam::fv::semiImplicitSource::addSupType
195 const VolField<Type>& field,
199 return addSup(field, eqn);
208 const word& modelType,
231 return fieldSu_.toc();
238 fv::semiImplicitSource
245 fv::semiImplicitSource
252 fv::semiImplicitSource
265 zone_.topoChange(map);
280 zone_.distribute(map);
288 zone_.read(coeffs(
dict));
289 readCoeffs(coeffs(
dict));
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
Macros for easy insertion into run-time selection tables.
DimensionedField< Type, GeoMesh, PrimitiveField > Internal
Type of the internal field from which this GeometricField is derived.
Initialise the NamedEnum HashTable from the static list of names.
Enum read(Istream &) const
Read a word from Istream and return the corresponding.
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
const Type & value() const
Return const reference to value.
Mesh data needed to do the Finite Volume discretisation.
const Time & time() const
Return the top-level database.
Finite volume model abstract base class.
static const dictionary & coeffs(const word &modelType, const dictionary &)
Return the coefficients sub-dictionary for a given model type.
virtual bool read(const dictionary &dict)
Read source dictionary.
const word & keyword() const
Return name as the keyword.
const fvMesh & mesh() const
Return const access to the mesh database.
Semi-implicit source, described using an input dictionary. The injection rate coefficients are specif...
virtual wordList addSupFields() const
Return the list of fields for which the fvModel adds source term.
virtual void topoChange(const polyTopoChangeMap &)
Update topology using the given map.
virtual void distribute(const polyDistributionMap &)
Redistribute or update using the given distribution map.
virtual bool movePoints()
Add a source term to an equation.
virtual bool read(const dictionary &dict)
Read source dictionary.
virtual ~semiImplicitSource()
Destructor.
virtual void mapMesh(const polyMeshMap &)
Update from another mesh using the given map.
volumeMode
Enumeration for volume types.
semiImplicitSource(const word &name, const word &modelType, const fvMesh &mesh, const dictionary &dict)
Construct from components.
static const NamedEnum< volumeMode, 2 > volumeModeNames_
Property type names.
Class containing mesh-to-mesh mapping information after a mesh distribution where we send parts of me...
Class containing mesh-to-mesh mapping information.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
A class for handling words, derived from string.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
A special matrix type and solver, designed for finite volume solutions of scalar equations.
#define IMPLEMENT_FV_MODEL_ADD_FIELD_SUP(Type, modelType)
#define IMPLEMENT_FV_MODEL_ADD_ALPHA_RHO_FIELD_SUP(Type, modelType)
#define IMPLEMENT_FV_MODEL_ADD_RHO_FIELD_SUP(Type, modelType)
Calculate the matrix for implicit and explicit sources.
const volScalarField & psi
volScalarField alpha(IOobject("alpha", runTime.name(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
addToRunTimeSelectionTable(fvConstraint, bound, dictionary)
defineTypeNameAndDebug(bound, 0)
tmp< VolField< Type > > Su(const VolField< Type > &su, const VolField< Type > &vf)
tmp< VolField< Type > > Sp(const volScalarField &sp, const VolField< Type > &vf)
tmp< surfaceScalarField > absolute(const tmp< surfaceScalarField > &tphi, const volVectorField &U)
Return the given relative flux in absolute form.
tmp< fvMatrix< Type > > SuSp(const volScalarField::Internal &, const VolField< Type > &)
const dimensionSet dimVolume
VolField< scalar > volScalarField
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
FOR_ALL_FIELD_TYPES(makeFieldSourceTypedef)