diff --git a/etc/caseDicts/postProcessing/fields/massFractions b/etc/caseDicts/postProcessing/fields/massFractions new file mode 100644 index 0000000000..e5486bd677 --- /dev/null +++ b/etc/caseDicts/postProcessing/fields/massFractions @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +------------------------------------------------------------------------------- +Description + Calculates mass-fraction fields from mole-fraction fields, or moles fields, + and a multicomponent thermo. + +\*---------------------------------------------------------------------------*/ + +type massFractions; +libs ("libmulticomponentThermophysicalModels.so"); + +executeControl writeTime; +writeControl writeTime; + +// ************************************************************************* // diff --git a/etc/caseDicts/postProcessing/fields/moleFractions b/etc/caseDicts/postProcessing/fields/moleFractions new file mode 100644 index 0000000000..e6d157e1ea --- /dev/null +++ b/etc/caseDicts/postProcessing/fields/moleFractions @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +------------------------------------------------------------------------------- +Description + Calculates mole-fraction fields from the mass-fraction fields of a + multicomponent thermo. + +\*---------------------------------------------------------------------------*/ + +type moleFractions; +libs ("libmulticomponentThermophysicalModels.so"); + +executeControl writeTime; +writeControl writeTime; + +// ************************************************************************* // diff --git a/src/thermophysicalModels/multicomponentThermo/Make/files b/src/thermophysicalModels/multicomponentThermo/Make/files index c107dbd4bc..a1ff0a4902 100644 --- a/src/thermophysicalModels/multicomponentThermo/Make/files +++ b/src/thermophysicalModels/multicomponentThermo/Make/files @@ -16,6 +16,7 @@ derivedFvPatchFields/fixedUnburntEnthalpy/fixedUnburntEnthalpyFvPatchScalarField derivedFvPatchFields/gradientUnburntEnthalpy/gradientUnburntEnthalpyFvPatchScalarField.C derivedFvPatchFields/mixedUnburntEnthalpy/mixedUnburntEnthalpyFvPatchScalarField.C -functionObjects/moleFractions/moleFractionsFunctionObjects.C +functionObjects/moleFractions/moleFractions.C +functionObjects/massFractions/massFractions.C LIB = $(FOAM_LIBBIN)/libmulticomponentThermophysicalModels diff --git a/src/thermophysicalModels/multicomponentThermo/functionObjects/massFractions/massFractions.C b/src/thermophysicalModels/multicomponentThermo/functionObjects/massFractions/massFractions.C new file mode 100644 index 0000000000..2210913dfa --- /dev/null +++ b/src/thermophysicalModels/multicomponentThermo/functionObjects/massFractions/massFractions.C @@ -0,0 +1,251 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2023 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "massFractions.H" +#include "fluidMulticomponentThermo.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace functionObjects +{ + defineTypeNameAndDebug(massFractions, 0); + addToRunTimeSelectionTable(functionObject, massFractions, dictionary); +} +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::functionObjects::massFractions::massFractions +( + const word& name, + const Time& runTime, + const dictionary& dict +) +: + fvMeshFunctionObject(name, runTime, dict), + phaseName_(dict.lookupOrDefault("phase", word::null)), + Y_() +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::functionObjects::massFractions::~massFractions() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +bool Foam::functionObjects::massFractions::read(const dictionary& dict) +{ + return true; +} + + +bool Foam::functionObjects::massFractions::execute() +{ + // A multicomponent thermo should not exist for this context, as the + // following would create a different, inconsistent definition of the + // composition of an existing thermo model + const word thermoName = + IOobject::groupName(physicalProperties::typeName, phaseName_); + if (mesh_.foundObject(thermoName)) + { + FatalErrorInFunction + << "Cannot create mass fractions. Mass fractions already exist " + << "within the multicomponent thermo model, \"" << thermoName + << "\"." << exit(FatalError); + } + + // Read Ydefault if it exists + typeIOobject YdefaultIo + ( + "Ydefault", + time_.name(), + mesh_, + IOobject::READ_IF_PRESENT, + IOobject::NO_WRITE, + false + ); + const bool YdefaultIoExists = YdefaultIo.headerOk(); + const volScalarField Ydefault + ( + YdefaultIo, + mesh_, + dimensionedScalar(dimless, 0) + ); + + // Back up Ydefault if it exists + if (YdefaultIoExists) + { + fileHandler().cp + ( + YdefaultIo.filePath(), + YdefaultIo.path(false)/"molesToMassFractions:" + YdefaultIo.name() + ); + } + + // Write Ydefault out again, but limited to a value of small. This prevents + // errors in construction of the thermo if no non-default fractions exist + { + volScalarField YdefaultLim(Ydefault); + YdefaultLim.max(small); + YdefaultLim.write(); + } + + // Construct a multicomponent thermo + autoPtr thermoPtr = + fluidMulticomponentThermo::New(mesh_); + fluidMulticomponentThermo& thermo = thermoPtr(); + const PtrList& Y = thermo.composition().Y(); + + // Restore the original Ydefault if it exists, and create a new Ydefault if + // it does not + if (YdefaultIoExists) + { + fileHandler().mv + ( + YdefaultIo.path(false)/"molesToMassFractions:" + YdefaultIo.name(), + YdefaultIo.filePath() + ); + } + else + { + Ydefault.write(); + } + + // One-mole constant for conversions + static const dimensionedScalar oneMole(dimMoles, 1); + + // Construct lists of specie molar mass, fields of specie mass, and a field + // of total mass + List W(Y.size()); + PtrList m(Y.size()); + volScalarField mTotal + ( + IOobject("mTotal", time_.name(), mesh_), + mesh_, + dimensionedScalar(dimMass, 0) + ); + bool fromMoleFractions = false, fromMoles = false; + forAll(Y, i) + { + W[i].dimensions().reset(dimMass/dimMoles); + W[i].value() = thermo.composition().Wi(i); + + typeIOobject YIo + ( + Y[i].name(), + time_.name(), + mesh_, + IOobject::MUST_READ + ); + typeIOobject XIo + ( + "X_" + Y[i].name(), + time_.name(), + mesh_, + IOobject::MUST_READ + ); + typeIOobject nIo + ( + "n_" + Y[i].name(), + time_.name(), + mesh_, + IOobject::MUST_READ + ); + + // Check consistency of input + if (YIo.headerOk()) + { + FatalErrorInFunction + << "Mass fraction field " << YIo.name() + << " already exists on disk" << exit(FatalError); + } + fromMoleFractions = fromMoleFractions || XIo.headerOk(); + fromMoles = fromMoles || nIo.headerOk(); + if (fromMoleFractions && fromMoles) + { + FatalErrorInFunction + << "Mole fraction fields and moles fields " + << " both found on disk" + << exit(FatalError); + } + + // Sum the contributions + if (XIo.headerOk()) + { + m.set(i, W[i]*oneMole*volScalarField(XIo, mesh_)); + } + if (nIo.headerOk()) + { + m.set(i, W[i]*volScalarField(nIo, mesh_)); + } + if (XIo.headerOk() || nIo.headerOk()) + { + mTotal += m[i]; + } + } + + // Steal the thermo's mass fraction fields and delete the thermo + Y_.transfer(thermo.composition().Y()); + thermoPtr.clear(); + + // Divide the specie masses by the total mass to get the mass fractions + forAll(Y_, i) + { + if (m.set(i)) + { + Y_[i] == m[i]/mTotal; + } + else + { + Y_.set(i, nullptr); + } + } + + return true; +} + + +bool Foam::functionObjects::massFractions::write() +{ + forAll(Y_, i) + { + if (Y_.set(i)) + { + Y_[i].write(); + } + } + + return true; +} + + +// ************************************************************************* // diff --git a/src/thermophysicalModels/multicomponentThermo/functionObjects/massFractions/massFractions.H b/src/thermophysicalModels/multicomponentThermo/functionObjects/massFractions/massFractions.H new file mode 100644 index 0000000000..3b0a6d249b --- /dev/null +++ b/src/thermophysicalModels/multicomponentThermo/functionObjects/massFractions/massFractions.H @@ -0,0 +1,138 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2023 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::functionObjects::massFractions + +Description + This function object calculates mass-fraction fields from mole-fraction or + moles fields present on disk. This is intended to be used for + initialisation where mole-fractions are known. If any mass fraction fields + are found (other than Ydefault) then an error will be generated and the + fields will not be overwritten. The names of the mole-fraction fields are + obtained from the corresponding mass-fraction fields prepended by "X_", and + the moles fields are prepended by "n_". Either mole-fraction fields or + moles fields should be present, not both. + + Example of function object specification: + \verbatim + massFractions + { + type massFractions; + } + \endverbatim + + Optionally, the name of the phase can be specified for multiphase cases. + +See also + Foam::functionObjects::fvMeshFunctionObject + +SourceFiles + massFractions.C + +\*---------------------------------------------------------------------------*/ + +#ifndef functionObjects_massFractions_H +#define functionObjects_massFractions_H + +#include "fvMeshFunctionObject.H" +#include "volFieldsFwd.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace functionObjects +{ + +/*---------------------------------------------------------------------------*\ + Class massFractions Declaration +\*---------------------------------------------------------------------------*/ + +class massFractions +: + public functionObjects::fvMeshFunctionObject +{ + // Private Data + + //- Optional phase name + word phaseName_; + + //- Species mass fractions + PtrList Y_; + + +public: + + //- Runtime type information + TypeName("massFractions"); + + + // Constructors + + //- Construct from Time and dictionary + massFractions(const word& name, const Time& t, const dictionary& dict); + + //- Disallow default bitwise copy construction + massFractions(const massFractions&) = delete; + + + //- Destructor + virtual ~massFractions(); + + + // Member Functions + + //- Read the massFractions data + virtual bool read(const dictionary&); + + //- Return the list of fields required + virtual wordList fields() const + { + return wordList::null(); + } + + //- Calculate the mass-fraction fields + virtual bool execute(); + + //- The mass-fraction fields auto-write + virtual bool write(); + + + // Member Operators + + //- Disallow default bitwise assignment + void operator=(const massFractions&) = delete; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace functionObjects +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractions.C b/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractions.C index a9a0054d8a..ced413272a 100644 --- a/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractions.C +++ b/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractions.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2016-2022 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2016-2023 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -24,41 +24,24 @@ License \*---------------------------------------------------------------------------*/ #include "moleFractions.H" -#include "basicThermo.H" +#include "fluidMulticomponentThermo.H" +#include "addToRunTimeSelectionTable.H" -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // -template -void Foam::moleFractions::calculateMoleFractions() +namespace Foam { - const ThermoType& thermo = - mesh_.lookupObject - ( - IOobject::groupName(physicalProperties::typeName, phaseName_) - ); - - const PtrList& Y = thermo.composition().Y(); - - const volScalarField W(thermo.W()); - - forAll(Y, i) - { - const dimensionedScalar Wi - ( - "Wi", - dimMass/dimMoles, - thermo.composition().Wi(i) - ); - - X_[i] = W*Y[i]/Wi; - } +namespace functionObjects +{ + defineTypeNameAndDebug(moleFractions, 0); + addToRunTimeSelectionTable(functionObject, moleFractions, dictionary); +} } // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -template -Foam::moleFractions::moleFractions +Foam::functionObjects::moleFractions::moleFractions ( const word& name, const Time& runTime, @@ -66,19 +49,45 @@ Foam::moleFractions::moleFractions ) : fvMeshFunctionObject(name, runTime, dict), - phaseName_(dict.lookupOrDefault("phase", word::null)) + phaseName_(dict.lookupOrDefault("phase", word::null)), + X_() +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::functionObjects::moleFractions::~moleFractions() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +bool Foam::functionObjects::moleFractions::read(const dictionary& dict) { - const word dictName + return true; +} + + +bool Foam::functionObjects::moleFractions::execute() +{ + // Lookup or construct a multicomponent thermo. Lookup is likely to be + // appropriate if this is being used at run-time. Construction if this is + // being called as a one-off post-process. + const word thermoName = + IOobject::groupName(physicalProperties::typeName, phaseName_); + autoPtr thermoPtr ( - IOobject::groupName(physicalProperties::typeName, phaseName_) + mesh_.foundObject(thermoName) + ? autoPtr(nullptr) + : fluidMulticomponentThermo::New(mesh_) ); + const fluidMulticomponentThermo& thermo = + mesh_.lookupObject(thermoName); - if (mesh_.foundObject(dictName)) + // Construct mole fraction fields corresponding to the mass fraction fields + const PtrList& Y = thermo.composition().Y(); + if (X_.empty()) { - const ThermoType& thermo = mesh_.lookupObject(dictName); - - const PtrList& Y = thermo.composition().Y(); - X_.setSize(Y.size()); forAll(Y, i) @@ -99,60 +108,29 @@ Foam::moleFractions::moleFractions ) ); } - - calculateMoleFractions(); } - else + + // Get the mixture molar mass + const volScalarField W(thermo.W()); + + // Calculate the mole fractions + forAll(Y, i) { - if (phaseName_ != word::null) - { - FatalErrorInFunction - << "Cannot find thermodynamics model of type " - << ThermoType::typeName - << " for phase " - << phaseName_ - << exit(FatalError); - } - else - { - FatalErrorInFunction - << "Cannot find thermodynamics model of type " - << ThermoType::typeName - << exit(FatalError); - } + const dimensionedScalar Wi + ( + "Wi", + dimMass/dimMoles, + thermo.composition().Wi(i) + ); + + X_[i] = Y[i]*W/Wi; } -} - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -Foam::moleFractions::~moleFractions() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template -bool Foam::moleFractions::read -( - const dictionary& dict -) -{ return true; } -template -bool Foam::moleFractions::execute() -{ - calculateMoleFractions(); - return true; -} - - -template -bool Foam::moleFractions::write() +bool Foam::functionObjects::moleFractions::write() { forAll(X_, i) { diff --git a/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractions.H b/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractions.H index 87ad6b92fa..5df7be18f6 100644 --- a/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractions.H +++ b/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractions.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2016-2022 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2016-2023 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -22,31 +22,20 @@ License along with OpenFOAM. If not, see . Class - Foam::moleFractions + Foam::functionObjects::moleFractions Description This function object calculates mole-fraction fields from the mass-fraction - fields of the psi/rhoMulticomponentThermo and caches them for output and - further post-processing. - - The names of the mole-fraction fields are obtained from the corresponding - mass-fraction fields prepended by "X_" + fields of the multicomponent thermo. The names of the mole-fraction fields + are obtained from the corresponding mass-fraction fields prepended by "X_". Example of function object specification: \verbatim moleFractions { - type psiMulticomponentThermoMoleFractions; + type moleFractions; } \endverbatim - or - \verbatim - moleFractions - { - type rhoMulticomponentThermoMoleFractions; - } - \endverbatim - depending on the thermodynamics package used in the solver. Optionally, the name of the phase can be specified for multiphase cases. @@ -58,8 +47,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef moleFractions_H -#define moleFractions_H +#ifndef functionObjects_moleFractions_H +#define functionObjects_moleFractions_H #include "fvMeshFunctionObject.H" #include "volFieldsFwd.H" @@ -68,29 +57,24 @@ SourceFiles namespace Foam { +namespace functionObjects +{ /*---------------------------------------------------------------------------*\ Class moleFractions Declaration \*---------------------------------------------------------------------------*/ -template class moleFractions : public functionObjects::fvMeshFunctionObject { // Private Data - //- Species mole fractions - PtrList X_; - //- Optional phase name word phaseName_; - - // Private Member Functions - - //- Calculate the mole fraction fields - virtual void calculateMoleFractions(); + //- Species mole fractions + PtrList X_; public: @@ -102,12 +86,7 @@ public: // Constructors //- Construct from Time and dictionary - moleFractions - ( - const word& name, - const Time& t, - const dictionary& dict - ); + moleFractions(const word& name, const Time& t, const dictionary& dict); //- Disallow default bitwise copy construction moleFractions(const moleFractions&) = delete; @@ -144,16 +123,11 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +} // End namespace functionObjects } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#ifdef NoRepository - #include "moleFractions.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - #endif // ************************************************************************* // diff --git a/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractionsFunctionObjects.C b/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractionsFunctionObjects.C deleted file mode 100644 index 94647e2b89..0000000000 --- a/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractionsFunctionObjects.C +++ /dev/null @@ -1,63 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2016-2022 OpenFOAM Foundation - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM. If not, see . - -\*---------------------------------------------------------------------------*/ - -#include "moleFractionsFunctionObjects.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTemplateTypeNameAndDebugWithName - ( - psiMulticomponentThermoMoleFractionsFunctionObject, - "psiMulticomponentThermoMoleFractions", - 0 - ); - - addToRunTimeSelectionTable - ( - functionObject, - psiMulticomponentThermoMoleFractionsFunctionObject, - dictionary - ); - - defineTemplateTypeNameAndDebugWithName - ( - rhoMulticomponentThermoMoleFractionsFunctionObject, - "rhoMulticomponentThermoMoleFractions", - 0 - ); - - addToRunTimeSelectionTable - ( - functionObject, - rhoMulticomponentThermoMoleFractionsFunctionObject, - dictionary - ); -} - - -// ************************************************************************* // diff --git a/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractionsFunctionObjects.H b/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractionsFunctionObjects.H deleted file mode 100644 index df42460556..0000000000 --- a/src/thermophysicalModels/multicomponentThermo/functionObjects/moleFractions/moleFractionsFunctionObjects.H +++ /dev/null @@ -1,64 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2016-2022 OpenFOAM Foundation - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM. If not, see . - -Typedef - Foam::psiMulticomponentThermoMoleFractionsFunctionObject - -Description - Instantiate the moleFractions functionObject for psiMulticomponentThermo - -Typedef - Foam::rhoMulticomponentThermoMoleFractionsFunctionObject - -Description - Instantiate the moleFractions functionObject for rhoMulticomponentThermo - -SourceFiles - moleFractionsFunctionObjects.C - -\*---------------------------------------------------------------------------*/ - -#ifndef moleFractionsFunctionObjects_H -#define moleFractionsFunctionObjects_H - -#include "moleFractions.H" -#include "psiMulticomponentThermo.H" -#include "rhoMulticomponentThermo.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - typedef moleFractions - psiMulticomponentThermoMoleFractionsFunctionObject; - - typedef moleFractions - rhoMulticomponentThermoMoleFractionsFunctionObject; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* //