34 template<
class CompType,
class ThermoType>
44 const word methodName(tabulationDict.
get<
word>(
"method"));
46 Info<<
"Selecting chemistry tabulation method " << methodName <<
endl;
47 const word methodTypeName
50 +
'<' + CompType::typeName +
',' + ThermoType::typeName() +
'>' 53 const auto& cnstrTable = *(dictionaryConstructorTablePtr_);
55 auto* ctorPtr = cnstrTable.lookup(methodTypeName,
nullptr);
61 constexpr
const int nCmpt = 7;
89 wordList cmpts(basicThermo::splitThermoName(validName, nCmpt));
97 validCmpts.
append(std::move(cmpts));
109 if (validCmpts.
size() > 1)
112 <<
"All " << validCmpts[0][0] <<
'/' << validCmpts[0][1]
113 <<
"/thermoPhysics combinations:" <<
nl <<
nl;
void size(const label n)
Older name for setAddressableSize.
List< word > names(const UPtrList< T > &list, const UnaryMatchPredicate &matcher)
List of names generated by calling name() for each list item and filtered for matches.
errorManipArg< error, int > exit(error &err, const int errNo=1)
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Ostream & printTable(const UList< wordList > &tbl, List< std::string::size_type > &columnWidths, Ostream &os, bool headerSeparator=true)
Print a List of wordList as a table.
constexpr char nl
The newline '\n' character (0x0a)
bool empty() const noexcept
True if List is empty (ie, size() is zero)
Ostream & endl(Ostream &os)
Add newline and flush stream.
BasicChemistryModel< psiReactionThermo > & chemistry
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a T. FatalIOError if not found, or if the number of tokens is incorrect.
#define FatalErrorInLookup(lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalError.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
A class for handling words, derived from Foam::string.
void append(const T &val)
Copy append an element to the end of this list.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
static autoPtr< chemistryTabulationMethod > New(const IOdictionary &dict, TDACChemistryModel< CompType, ThermoType > &chemistry)