openfoam/applications/test
Henry Weller c52e4b58a1 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 STYLE: uniform 'Test-' prefix for all applications/test 2010-11-23 16:26:04 +01:00
BinSum STYLE: Updates to erroneous copyright dates - applications 2013-03-13 09:45:16 +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 GIT: Repo update 2014-12-11 08:35: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 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
dictionary GIT: Repo update 2014-12-11 08:35:10 +00:00
Dictionary Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
dimensionedType dimensionedType: Added missing cmpt functions 2013-07-04 10:00:44 +01:00
Distribution Update code to use the simpler C++11 template syntax 2016-01-10 19:20:16 +00:00
DLList BUG: mantis #157: swapUp/swapDown changed when considering first/last element 2012-01-11 09:48:45 +00:00
DynamicField Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
dynamicIndexedOctree STYLE: Fix some typos 2012-12-11 16:38:39 +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 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01: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 STYLE: uniform 'Test-' prefix for all applications/test 2010-11-23 16:26:04 +01:00
fieldDependency Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01: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 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01: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 COMP: Test apps: make compile 2013-01-17 11:06:38 +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 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01: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 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
HashSet Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01: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 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
io Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
ISLList Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
IStringStream Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
labelRanges Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
liquid Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01: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 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01: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 COMP: Applications/test: clean build 2011-06-08 15:37:11 +01:00
memInfo Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
mesh boundaryField() -> boundaryFieldRef() 2016-04-24 22:07:37 +01:00
mkdir Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
momentOfInertia Standardized cell, patch and face loop index names 2016-04-25 10:28:32 +01:00
mvBak Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
NamedEnum Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01: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 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
PackedList Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01: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 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
PackedList4 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01: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 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
POSIX Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
prefixOSstream Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
primitivePatch Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
pTraits Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
PtrList ENH: Update tests for PtrList and sort 2013-09-25 10:11:36 +01: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 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01: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 ENH: Update tests for PtrList and sort 2013-09-25 10:11:36 +01:00
speed Removed use of the deprecated "register" keyword 2015-06-30 10:26:44 +01:00
sphericalTensorField Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
spline GIT: Repo update 2014-12-11 08:35:10 +00:00
StaticHashTable Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
string STYLE: various: small coding issues 2013-10-14 14:48:05 +01:00
stringList Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
symmTensorField Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01: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 tensor2D: Added specialisation for the outerProduct of Vector2D to enable outer product operation 2012-02-01 12:30:16 +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 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
tokenize Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
triTet STYLE: uniform 'Test-' prefix for all applications/test 2010-11-23 16:26:04 +01:00
Tuple2 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
UDictionary Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
UIndirectList Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
UniformField UniformField: New field type 2013-09-27 22:47:59 +01:00
vector STYLE: uniform 'Test-' prefix for all applications/test 2010-11-23 16:26:04 +01: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