62 void Foam::fv::semiImplicitSource::readCoeffs()
75 new unknownTypeFunction1(
"explicit", iter().
dict())
87 void Foam::fv::semiImplicitSource::addSupType
95 Info<<
"semiImplicitSource<" << pTraits<Type>::typeName
96 <<
">::addSup for source " <<
name() <<
endl;
99 const scalar t = mesh().time().userTimeValue();
101 const VolField<Type>&
psi = eqn.psi();
103 VolInternalField<Type>
Su
107 name() + fieldName +
"Su",
108 mesh().time().
name(),
130 case volumeMode::specific:
136 UIndirectList<Type>(
Su, set_.cells()) =
137 fieldSu_[fieldName]->value<Type>(t)/VDash;
143 name() + fieldName +
"Sp",
144 mesh().time().
name(),
153 Su.dimensions()/
psi.dimensions(),
160 UIndirectList<scalar>(
Sp, set_.cells()) =
161 fieldSp_[fieldName]->value(t)/VDash;
168 void Foam::fv::semiImplicitSource::addSupType
172 const word& fieldName
175 return this->addSup(eqn, fieldName);
180 void Foam::fv::semiImplicitSource::addSupType
185 const word& fieldName
188 return this->addSup(eqn, fieldName);
197 const word& modelType,
203 set_(mesh, coeffs()),
220 return fieldSu_.toc();
233 fv::semiImplicitSource
246 set_.topoChange(map);
261 set_.distribute(map);
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
Macros for easy insertion into run-time selection tables.
static autoPtr< Function1< Type > > New(const word &name, const dictionary &dict)
Selector.
DimensionedField< Type, GeoMesh > 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 keyword definitions, which are a keyword followed by any number of values (e....
Mesh data needed to do the Finite Volume discretisation.
Finite volume model abstract base class.
const dictionary & coeffs() const
Return dictionary.
virtual bool read(const dictionary &dict)
Read source dictionary.
Semi-implicit source, described using an input dictionary. The injection rate coefficients are specif...
virtual bool movePoints()
Update for mesh motion.
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 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.
A special matrix type and solver, designed for finite volume solutions of scalar equations.
#define IMPLEMENT_FV_MODEL_ADD_RHO_SUP(Type, modelType)
#define IMPLEMENT_FV_MODEL_ADD_SUP(Type, modelType)
#define IMPLEMENT_FV_MODEL_ADD_ALPHA_RHO_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 > &)
Ostream & endl(Ostream &os)
Add newline and flush stream.
word name(const bool)
Return a word representation of a bool.
FOR_ALL_FIELD_TYPES(DefineContiguousFvWallLocationDataType)
const dimensionSet dimVolume
VolField< scalar > volScalarField