75 const word& modelType,
81 modelType_(modelType),
103 <<
"Selecting finite volume model type " << modelType <<
endl;
109 dictionaryConstructorTablePtr_
112 dictionaryConstructorTable::iterator cstrIter =
113 dictionaryConstructorTablePtr_->find(modelType);
115 if (cstrIter == dictionaryConstructorTablePtr_->end())
118 <<
"Unknown fvModel " << modelType <<
nl <<
nl 119 <<
"Valid fvModels are:" <<
nl 120 << dictionaryConstructorTablePtr_->sortedToc()
126 cstrIter()(
name, modelType, coeffs,
mesh)
145 return findIndex(addSupFields(), fieldName) != -1;
#define IMPLEMENT_FV_MODEL_ADD_ALPHA_RHO_SUP(Type, modelType)
Ostream & indent(Ostream &os)
Indent stream.
virtual void updateMesh(const mapPolyMesh &)
Update for mesh changes.
errorManipArg< error, int > exit(error &err, const int errNo=1)
virtual ~fvModel()
Destructor.
A list of keyword definitions, which are a keyword followed by any number of values (e...
virtual wordList addSupFields() const
Return the list of fields for which the fvModel adds source term.
virtual bool read(const dictionary &dict)
Read source dictionary.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Finite volume model abstract base class.
virtual void preUpdateMesh()
Prepare for mesh update.
static const List< word > & null()
Return a null List.
dlLibraryTable libs
Table of loaded dynamic libraries.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
const dictionary & optionalSubDict(const word &) const
Find and return a sub-dictionary if found.
A class for handling words, derived from string.
static autoPtr< fvModel > New(const word &name, const dictionary &dict, const fvMesh &mesh)
Return a reference to the selected fvModel.
virtual bool addsSupToField(const word &fieldName) const
Return true if the fvModel adds a source term to the given.
fvModel(const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
Construct from components.
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.
#define IMPLEMENT_FV_MODEL_ADD_SUP(Type, modelType)
defineRunTimeSelectionTable(reactionRateFlameArea, dictionary)
defineTypeNameAndDebug(combustionModel, 0)
void addSupType(fvMatrix< Type > &eqn, const word &fieldName) const
Add a source term to an equation.
Ostream & decrIndent(Ostream &os)
Decrement the indent level.
label findIndex(const ListType &, typename ListType::const_reference, const label start=0)
Find first occurrence of given element and return index,.
bool open(const fileName &libName, const bool verbose=true)
Open the named library, optionally with warnings if problems occur.
word name(const complex &)
Return a string representation of a complex.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
#define IMPLEMENT_FV_MODEL_ADD_RHO_SUP(Type, modelType)
Mesh data needed to do the Finite Volume discretisation.
virtual void correct()
Correct the fvModel.
FOR_ALL_FIELD_TYPES(IMPLEMENT_FV_MODEL_ADD_SUP, fvModel)
virtual bool movePoints()
Update for mesh motion.
Ostream & incrIndent(Ostream &os)
Increment the indent level.
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.