60 int main(
int argc,
char *argv[])
64 "Calculate the equilibrium level of carbon monoxide." 73 Info<<
nl <<
"Reading thermodynamic data IOdictionary" <<
endl;
90 const scalar
T = 3000.0;
93 thermo O2(thermoData.subDict(
"O2")); O2 *= O2.W();
97 thermo H2(thermoData.subDict(
"H2")); H2 *= H2.W();
98 thermo OH(thermoData.subDict(
"OH")); OH *= OH.W();
99 thermo H(thermoData.subDict(
"H"));
H *=
H.W();
100 thermo O(thermoData.subDict(
"O")); O *= O.W();
103 thermo CO2(thermoData.subDict(
"CO2")); CO2 *= CO2.W();
105 thermo CO(thermoData.subDict(
"CO")); CO *= CO.W();
111 new thermo(CO2 == CO + 0.5*O2)
130 for (
const thermo& react : EQreactions)
132 Info<<
"Kc(EQreactions) = " << react.Kc(P,
T) <<
endl;
static void noFunctionObjects(bool addWithOption=false)
Remove '-noFunctionObjects' option and ignore any occurrences.
static void addNote(const string ¬e)
Add extra notes for the usage information.
void append(const T * &elem)
Add copy at back of list.
constexpr char nl
The newline '\n' character (0x0a)
Ostream & endl(Ostream &os)
Add newline and flush stream.
static void noParallel()
Remove the parallel options.
Thermodynamics mapping class to expose the absolute enthalpy functions.
Ignore writing from objectRegistry::writeObject()
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
psiReactionThermo & thermo
Functions used by OpenFOAM that are specific to POSIX compliant operating systems and need to be repl...
Template class for non-intrusive linked PtrLists.
scalar W() const
Molecular weight [kg/kmol].
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
Istream and Ostream manipulators taking arguments.
const word & constant() const noexcept
Return constant name.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Non-intrusive singly-linked pointer list.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Defines the attributes of an object for which implicit objectRegistry management is supported...
volScalarField H(IOobject("H", runTime.timeName(), mesh.thisDb(), IOobject::NO_READ, IOobject::AUTO_WRITE), mesh, dimensionedScalar(dimLength, Zero))
Do not request registration (bool: false)