OpenFOAM-5.x/applications/test
Henry Weller abc50e214c thermophysicalModels: Changed specie thermodynamics from mole to mass basis
The fundamental properties provided by the specie class hierarchy were
mole-based, i.e. provide the properties per mole whereas the fundamental
properties provided by the liquidProperties and solidProperties classes are
mass-based, i.e. per unit mass.  This inconsistency made it impossible to
instantiate the thermodynamics packages (rhoThermo, psiThermo) used by the FV
transport solvers on liquidProperties.  In order to combine VoF with film and/or
Lagrangian models it is essential that the physical propertied of the three
representations of the liquid are consistent which means that it is necessary to
instantiate the thermodynamics packages on liquidProperties.  This requires
either liquidProperties to be rewritten mole-based or the specie classes to be
rewritten mass-based.  Given that most of OpenFOAM solvers operate
mass-based (solve for mass-fractions and provide mass-fractions to sub-models it
is more consistent and efficient if the low-level thermodynamics is also
mass-based.

This commit includes all of the changes necessary for all of the thermodynamics
in OpenFOAM to operate mass-based and supports the instantiation of
thermodynamics packages on liquidProperties.

Note that most users, developers and contributors to OpenFOAM will not notice
any difference in the operation of the code except that the confusing

    nMoles     1;

entries in the thermophysicalProperties files are no longer needed or used and
have been removed in this commet.  The only substantial change to the internals
is that species thermodynamics are now "mixed" with mass rather than mole
fractions.  This is more convenient except for defining reaction equilibrium
thermodynamics for which the molar rather than mass composition is usually know.
The consequence of this can be seen in the adiabaticFlameT, equilibriumCO and
equilibriumFlameT utilities in which the species thermodynamics are
pre-multiplied by their molecular mass to effectively convert them to mole-basis
to simplify the definition of the reaction equilibrium thermodynamics, e.g. in
equilibriumCO

    // Reactants (mole-based)
    thermo FUEL(thermoData.subDict(fuelName)); FUEL *= FUEL.W();

    // Oxidant (mole-based)
    thermo O2(thermoData.subDict("O2")); O2 *= O2.W();
    thermo N2(thermoData.subDict("N2")); N2 *= N2.W();

    // Intermediates (mole-based)
    thermo H2(thermoData.subDict("H2")); H2 *= H2.W();

    // Products (mole-based)
    thermo CO2(thermoData.subDict("CO2")); CO2 *= CO2.W();
    thermo H2O(thermoData.subDict("H2O")); H2O *= H2O.W();
    thermo CO(thermoData.subDict("CO")); CO *= CO.W();

    // Product dissociation reactions

    thermo CO2BreakUp
    (
        CO2 == CO + 0.5*O2
    );

    thermo H2OBreakUp
    (
        H2O == H2 + 0.5*O2
    );

Please report any problems with this substantial but necessary rewrite of the
thermodynamic at https://bugs.openfoam.org

Henry G. Weller
CFD Direct Ltd.
2017-02-17 11:22:14 +00:00
..
alloc Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
BinSum Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
callback applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
Circulator Rename circulators to be consistent with the standard OpenFOAM class naming convention 2015-08-06 16:54:47 +01:00
codeStream Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
CompactIOList Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
CompactListList UList: Rationalize assignment (shallow-copy vs deep-copy) 2016-04-03 10:26:05 +01:00
cyclic applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
delete Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
dictionary Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
Dictionary Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
dimensionedType Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
Distribution Update code to use the simpler C++11 template syntax 2016-01-10 19:20:16 +00:00
DLList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
DynamicField Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
dynamicIndexedOctree Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
DynamicList Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
ensightFoamReader Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
error Completed update ...ErrorIn -> ...ErrorInFunction 2015-11-11 09:03:39 +00:00
extendedStencil Standardized cell, patch and face loop index names 2016-04-25 10:28:32 +01:00
Field Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
fieldDependency Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
fieldMapping GeometricField: Renamed internalField() -> primitiveField() and dimensionedInternalField() -> internalField() 2016-04-30 21:40:09 +01:00
fileName Test-fileName: Added recent etcFiles.H 2016-08-05 17:25:56 +01:00
fileNameClean Rationalized the keyword to specify a file name in a dictionary to 'file' 2017-01-07 09:38:54 +00:00
findCell-octree Rationalize position searching and add cell->tet decomposition as the default cell-search algorithm 2015-02-25 10:57:06 +00:00
findSphereFeatureEdges-octree Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
findTimes Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
FixedList FixedList: Added void operator=(std::initializer_list<T>) 2016-08-11 22:02:05 +01:00
foamVersion Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
Function1 Rename DataEntry -> Function1 2016-02-08 16:18:07 +00:00
fvc applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
fvSolutionCombine Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
GAMGAgglomeration GeometricField: Renamed internalField() -> primitiveField() and dimensionedInternalField() -> internalField() 2016-04-30 21:40:09 +01:00
globalIndex Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
globalMeshData Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
graph Removed trailing blank lines 2017-01-19 20:17:47 +00:00
graphXi Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
Hashing Update code to use the simpler C++11 template syntax 2016-01-10 19:20:16 +00:00
HashingSpeed C++11: Replaced the C NULL with the safer C++11 nullptr 2016-08-05 17:19:38 +01:00
HashPtrTable Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
HashSet Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
HashTable HashTable: Added void operator=(std::initializer_list<Tuple2<Key, T>>) 2016-08-11 21:41:55 +01:00
HashTable2 HashTable: Added C++11 initializer_list constructor 2016-08-05 22:30:26 +01:00
HashTable3 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
hexRef8 GeometricField: Renamed internalField() -> primitiveField() and dimensionedInternalField() -> internalField() 2016-04-30 21:40:09 +01:00
IndirectList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
io Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
ISLList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
IStringStream Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
labelRanges Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
liquid Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
List List: Added void operator=(std::initializer_list<T>) 2016-08-09 20:36:32 +01:00
ListOps pplications/test/ListOps/Make/options: Removed extraneous backslash 2016-02-08 16:33:56 +00:00
Map Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
mappedPatch GeometricField: Renamed internalField() -> primitiveField() and dimensionedInternalField() -> internalField() 2016-04-30 21:40:09 +01:00
Matrix LUscalarMatrix: Added processor-local matrix inverse function 2016-07-17 14:44:50 +01:00
maxMem Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
memInfo Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
mesh boundaryField() -> boundaryFieldRef() 2016-04-24 22:07:37 +01:00
mkdir Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
momentOfInertia Standardized cell, patch and face loop index names 2016-04-25 10:28:32 +01:00
mvBak Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
NamedEnum Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
nullObject Resolve issues relating to compilation with clang-3.5.0 2014-12-15 22:38:10 +00:00
ODE Matrix: Added (i, j) addressing to allow support for addressing blocks of the matrix 2016-03-20 19:44:29 +00:00
OStringStream Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
PackedList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
PackedList1 Test-PackedList1: Removed chained assigments 2016-02-08 16:30:00 +00:00
PackedList2 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
PackedList3 Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
PackedList4 Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
parallel Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
parallel-communicators Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
parallel-nonBlocking Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
passiveParticle vector::zero -> Zero 2016-04-16 18:34:41 +01:00
PatchEdgeFaceWave Standardized cell, patch and face loop index names 2016-04-25 10:28:32 +01:00
patchRegion Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
PatchTools Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
PointEdgeWave Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
pointField vector::zero -> Zero 2016-04-16 18:34:41 +01:00
Polynomial Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
POSIX Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
prefixOSstream Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
primitivePatch Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
pTraits Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
PtrList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
PtrListDictionary PtrListDictionary: New form of Dictionary in which the list type is PtrList rather than a linked-list 2015-09-16 21:26:26 +01:00
quaternion quaternion/septernion: Added multi- quaternion/septernion averaging 2016-04-16 15:59:05 +01:00
reconstruct applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
regex C++11: Replaced the C NULL with the safer C++11 nullptr 2016-08-05 17:19:38 +01:00
rigidBodyDynamics applications/test/rigidBodyDynamics/pendulumAndSpring: Another slightly more complex test 2016-04-17 15:47:03 +01:00
router Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
sha1 Updated headers 2015-02-04 16:33:02 +00:00
simpleMatrix Matrix: Added (i, j) addressing to allow support for addressing blocks of the matrix 2016-03-20 19:44:29 +00:00
sizeof Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
slicedField applications/test: Updated include and link options 2015-07-16 14:37:19 +01:00
SLList LList, SLList: Added construction from and assignment to initializer_list 2016-08-12 10:01:41 +01:00
sort Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
speed Removed use of the deprecated "register" keyword 2015-06-30 10:26:44 +01:00
sphericalTensorField Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
spline Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
StaticHashTable Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
string Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
stringList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
symmTensorField Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
syncTools Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
tensor messageStream: Added DebugInfo and DebugInFunction: 2016-03-04 11:30:13 +00:00
tensor2D Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
tetTetOverlap applications: Update ...ErrorIn -> ...ErrorInFunction 2015-11-10 17:53:31 +00:00
thermoMixture thermophysicalModels: Changed specie thermodynamics from mole to mass basis 2017-02-17 11:22:14 +00:00
tmpField Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
tokenize Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
triTet Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
Tuple2 Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
UDictionary Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
UIndirectList Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
UniformField Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
vector Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00
vectorTools applications/test: Updated to compile with Clang-3.5 2015-02-04 16:32:36 +00:00
volField GeometricField, volFields: Added experimental member function ".v()" and perfix operator "~" 2016-04-26 20:45:53 +01:00
volPointInterpolation boundaryField() -> boundaryFieldRef() 2016-04-24 22:07:37 +01:00
wallDist Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
wordRe Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
xfer Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00