From 5bd56ebdaf8271c92d442bfc79b4bbd94fe130e4 Mon Sep 17 00:00:00 2001 From: sergio Date: Tue, 22 Feb 2011 11:55:00 +0000 Subject: [PATCH] ENH: grey absorption with multispecies solvers --- .../global/unitConversion/unitConversion.H | 12 ++ .../radiationModels/Make/options | 17 ++- .../radiationModels/radiationModel/P1/P1.C | 2 +- .../greyMeanAbsorptionEmission.C | 117 +++++++++++++----- .../greyMeanAbsorptionEmission.H | 17 +-- .../constant/radiationProperties | 56 +++++++++ .../constant/radiationProperties | 56 +++++++++ 7 files changed, 236 insertions(+), 41 deletions(-) diff --git a/src/OpenFOAM/global/unitConversion/unitConversion.H b/src/OpenFOAM/global/unitConversion/unitConversion.H index 3255a4d805..9913ed3647 100644 --- a/src/OpenFOAM/global/unitConversion/unitConversion.H +++ b/src/OpenFOAM/global/unitConversion/unitConversion.H @@ -53,6 +53,18 @@ inline scalar radToDeg(const scalar rad) return (rad * 180.0/constant::mathematical::pi); } +//- Conversion from atm to Pa +inline scalar atmToPa(const scalar atm) +{ + return (atm * 101035.0); +} + +//- Conversion from atm to Pa +inline scalar paToAtm(const scalar pa) +{ + return (pa / 101035.0); +} + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam diff --git a/src/thermophysicalModels/radiationModels/Make/options b/src/thermophysicalModels/radiationModels/Make/options index 91f332c71f..f9a6356a6d 100644 --- a/src/thermophysicalModels/radiationModels/Make/options +++ b/src/thermophysicalModels/radiationModels/Make/options @@ -3,12 +3,25 @@ EXE_INC = \ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ - -I$(LIB_SRC)/thermophysicalModels/basicSolidThermo/lnInclude + -I$(LIB_SRC)/thermophysicalModels/basicSolidThermo/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude + LIB_LIBS = \ -lfiniteVolume \ -lbasicThermophysicalModels \ -lspecie \ -lbasicSolidThermo \ - -lmeshTools + -lmeshTools \ + -lSLGThermo \ + -lsolidMixtureProperties \ + -lliquidMixtureProperties \ + -lsolidProperties \ + -lliquidProperties + diff --git a/src/thermophysicalModels/radiationModels/radiationModel/P1/P1.C b/src/thermophysicalModels/radiationModels/radiationModel/P1/P1.C index f59b5632f4..907ffc4566 100644 --- a/src/thermophysicalModels/radiationModels/radiationModel/P1/P1.C +++ b/src/thermophysicalModels/radiationModels/radiationModel/P1/P1.C @@ -89,7 +89,7 @@ Foam::radiation::P1::P1(const volScalarField& T) mesh_.time().timeName(), mesh_, IOobject::NO_READ, - IOobject::NO_WRITE + IOobject::AUTO_WRITE ), mesh_, dimensionedScalar("a", dimless/dimLength, 0.0) diff --git a/src/thermophysicalModels/radiationModels/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C b/src/thermophysicalModels/radiationModels/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C index 62c491b104..21dfa9786d 100644 --- a/src/thermophysicalModels/radiationModels/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C +++ b/src/thermophysicalModels/radiationModels/submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C @@ -25,6 +25,8 @@ License #include "greyMeanAbsorptionEmission.H" #include "addToRunTimeSelectionTable.H" +#include "unitConversion.H" +#include "zeroGradientFvPatchFields.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -56,13 +58,15 @@ Foam::radiation::greyMeanAbsorptionEmission::greyMeanAbsorptionEmission coeffsDict_((dict.subDict(typeName + "Coeffs"))), speciesNames_(0), specieIndex_(0), - lookUpTable_ + lookUpTablePtr_(), + thermo_ ( - fileName(coeffsDict_.lookup("lookUpTableFileName")), - mesh.time().constant(), - mesh + mesh, + const_cast + ( + mesh.lookupObject("thermophysicalProperties") + ) ), - thermo_(mesh.lookupObject("thermophysicalProperties")), EhrrCoeff_(readScalar(coeffsDict_.lookup("EhrrCoeff"))), Yj_(nSpecies_) { @@ -83,17 +87,45 @@ Foam::radiation::greyMeanAbsorptionEmission::greyMeanAbsorptionEmission nFunc++; } + if (coeffsDict_.found("lookUpTableFileName")) + { + const word name = coeffsDict_.lookup("lookUpTableFileName"); + if (name != "none") + { + lookUpTablePtr_.set + ( + new interpolationLookUpTable + ( + fileName(coeffsDict_.lookup("lookUpTableFileName")), + mesh.time().constant(), + mesh + ) + ); + + if (!mesh.foundObject("ft")) + { + FatalErrorIn + ( + "Foam::radiation::greyMeanAbsorptionEmission(const" + "dictionary& dict, const fvMesh& mesh)" + ) << "specie ft is not present to use with " + << "lookUpTableFileName " << nl + << exit(FatalError); + } + } + } + // Check that all the species on the dictionary are present in the // look-up table and save the corresponding indices of the look-up table label j = 0; forAllConstIter(HashTable