42 thermo.
T().
mesh().time().constant(),
50 if (!chemistryDict.
isDict(
"chemistryType"))
53 <<
"Template parameter based chemistry solver selection is no " 54 <<
"longer supported. Please create a chemistryType dictionary" 55 <<
"instead." <<
endl <<
endl <<
"For example, the entry:" <<
endl 56 <<
" chemistrySolver ode<chemistryModel<" 57 <<
"rhoChemistryModel,sutherland<specie<janaf<perfectGas>," 58 <<
"sensibleInternalEnergy>>>>" <<
endl <<
endl <<
"becomes:" 64 chemistryDict.
subDict(
"chemistryType");
66 const word solverName =
69 {
"solver",
"chemistrySolver"}
78 chemistryTypeDictNew.
add(
"solver", solverName);
79 chemistryTypeDictNew.
add(
"method", methodName);
81 Info<<
"Selecting chemistry solver " << chemistryTypeDictNew <<
endl;
83 const word chemSolverNameName =
84 solverName +
'<' + methodName +
'<' + thermo.
thermoName() +
">>";
86 typename thermoConstructorTable::iterator cstrIter =
87 thermoConstructorTablePtr_->find(chemSolverNameName);
89 if (cstrIter == thermoConstructorTablePtr_->end())
93 dynamicCode::allowSystemOperations
94 && !dynamicCode::resolveTemplate(basicChemistryModel::typeName).empty()
99 basicThermo::thermoNameComponents(thermo.
thermoName())
102 substitutions.
append({
"solver", solverName});
103 substitutions.
append({
"method", methodName});
107 basicChemistryModel::typeName,
111 cstrIter = thermoConstructorTablePtr_->find(chemSolverNameName);
113 if (cstrIter == thermoConstructorTablePtr_->end())
116 <<
"Compilation and linkage of " 117 << basicChemistryModel::typeName <<
" type " <<
nl 118 <<
"chemistryType" << chemistryTypeDict <<
nl <<
nl 125 <<
"Unknown " << typeName_() <<
" type " << chemistryTypeDictNew
128 const wordList names(thermoConstructorTablePtr_->sortedToc());
131 thisCmpts.
append(word::null);
132 thisCmpts.append(word::null);
135 basicThermo::splitThermoName(thermo.
thermoName(), 5)
140 validNames[0][0] =
"solver";
141 validNames[0][1] =
"method";
144 const wordList cmpts(basicThermo::splitThermoName(names[i], 7));
157 <<
"Valid " << validNames[0][0] <<
'/' << validNames[0][1]
158 <<
" combinations for this thermodynamic model are:" 166 validCmpts[0][0] =
"solver";
167 validCmpts[0][1] =
"method";
168 validCmpts[0][2] =
"transport";
169 validCmpts[0][3] =
"thermo";
170 validCmpts[0][4] =
"equationOfState";
171 validCmpts[0][5] =
"specie";
172 validCmpts[0][6] =
"energy";
175 validCmpts.
append(basicThermo::splitThermoName(names[i], 7));
179 <<
"All " << validCmpts[0][0] <<
'/' << validCmpts[0][1]
180 <<
"/thermodynamics combinations are:" #define forAll(list, i)
Loop across all elements in list.
fluidReactionThermo & thermo
static word phasePropertyName(const word &name, const word &phaseName)
Name of a property for a given phase.
errorManipArg< error, int > exit(error &err, const int errNo=1)
A list of keyword definitions, which are a keyword followed by any number of values (e...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
virtual word thermoName() const =0
Name of the thermo physics.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Base-class for multi-component fluid thermodynamic properties.
bool isDict(const word &) const
Check if entry is a sub-dictionary.
bool add(entry *, bool mergeEntry=false)
Add a new entry.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
const dictionary & subDict(const word &) const
Find and return a sub-dictionary.
static autoPtr< basicChemistryModel > New(const fluidReactionThermo &thermo)
Select based on fluid reaction thermo.
A List obtained as a section of another List.
A class for handling words, derived from string.
void append(const T &)
Append an element at the end of the list.
void printTable(const List< wordList > &, List< string::size_type > &, Ostream &)
const Mesh & mesh() const
Return mesh.
List< word > wordList
A List of words.
Extends base chemistry model by adding a thermo package, and ODE functions. Introduces chemistry equa...
T lookupOrDefault(const word &, const T &, bool recursive=false, bool patternMatch=true) const
Find and return a T,.
virtual const volScalarField & T() const =0
Temperature [K].
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
ITstream & lookupBackwardsCompatible(const wordList &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream, trying a list of keywords.