From 7ffcc682628b74da2a26be4d3eb4fa1be5ba9a33 Mon Sep 17 00:00:00 2001 From: chenzhenyi-123 Date: Mon, 6 Jan 2025 16:44:12 +0800 Subject: [PATCH 1/3] add radiation model --- src/radiationModels/Make/files | 46 ++ src/radiationModels/Make/options | 20 + .../absorptionEmissionModel.C | 183 +++++ .../absorptionEmissionModel.H | 191 +++++ .../absorptionEmissionModelNew.C | 58 ++ .../absorptionEmissionModels/binary/binary.C | 139 ++++ .../absorptionEmissionModels/binary/binary.H | 127 ++++ .../constantAbsorptionEmission.C | 119 +++ .../constantAbsorptionEmission.H | 130 ++++ .../greyMean/greyMean.C | 267 +++++++ .../greyMean/greyMean.H | 199 +++++ .../greyMeanSolid/greyMeanSolid.C | 205 +++++ .../greyMeanSolid/greyMeanSolid.H | 164 ++++ .../noAbsorptionEmission.C | 70 ++ .../noAbsorptionEmission.H | 85 +++ .../wideBand/wideBand.C | 312 ++++++++ .../wideBand/wideBand.H | 242 ++++++ .../MarshakRadiationFvPatchScalarField.C | 216 ++++++ .../MarshakRadiationFvPatchScalarField.H | 204 +++++ ...iationFixedTemperatureFvPatchScalarField.C | 216 ++++++ ...iationFixedTemperatureFvPatchScalarField.H | 208 ++++++ ...iffusiveRadiationMixedFvPatchScalarField.C | 284 +++++++ ...iffusiveRadiationMixedFvPatchScalarField.H | 206 +++++ ...veViewFactorFixedValueFvPatchScalarField.C | 206 +++++ ...veViewFactorFixedValueFvPatchScalarField.H | 201 +++++ .../radiationCoupledBase.C | 231 ++++++ .../radiationCoupledBase.H | 167 +++++ ...iffusiveRadiationMixedFvPatchScalarField.C | 289 +++++++ ...iffusiveRadiationMixedFvPatchScalarField.H | 199 +++++ .../fvOptions/radiation/radiation.C | 96 +++ .../fvOptions/radiation/radiation.H | 128 ++++ .../createIncompressibleRadiationModel.H | 40 + .../include/createRadiationModel.H | 1 + src/radiationModels/radiationModels/P1/P1.C | 284 +++++++ src/radiationModels/radiationModels/P1/P1.H | 138 ++++ .../fvDOM/absorptionCoeffs/absorptionCoeffs.C | 79 ++ .../fvDOM/absorptionCoeffs/absorptionCoeffs.H | 140 ++++ .../absorptionCoeffs/absorptionCoeffsI.H | 64 ++ .../blackBodyEmission/blackBodyEmission.C | 291 ++++++++ .../blackBodyEmission/blackBodyEmission.H | 156 ++++ .../radiationModels/fvDOM/fvDOM.C | 567 ++++++++++++++ .../radiationModels/fvDOM/fvDOM.H | 266 +++++++ .../radiationModels/fvDOM/fvDOMI.H | 119 +++ .../radiativeIntensityRay.C | 295 ++++++++ .../radiativeIntensityRay.H | 232 ++++++ .../radiativeIntensityRayI.H | 120 +++ .../radiationModels/noRadiation/noRadiation.C | 112 +++ .../radiationModels/noRadiation/noRadiation.H | 114 +++ .../radiationModels/opaqueSolid/opaqueSolid.C | 109 +++ .../radiationModels/opaqueSolid/opaqueSolid.H | 112 +++ .../radiationModel/radiationModel.C | 261 +++++++ .../radiationModel/radiationModel.H | 264 +++++++ .../radiationModel/radiationModelNew.C | 103 +++ .../radiationModels/viewFactor/viewFactor.C | 704 ++++++++++++++++++ .../radiationModels/viewFactor/viewFactor.H | 191 +++++ .../radiationModels/viewFactor/viewFactorI.H | 32 + .../constantScatter/constantScatter.C | 85 +++ .../constantScatter/constantScatter.H | 106 +++ .../scatterModels/noScatter/noScatter.C | 76 ++ .../scatterModels/noScatter/noScatter.H | 91 +++ .../scatterModels/scatterModel/scatterModel.C | 59 ++ .../scatterModels/scatterModel/scatterModel.H | 116 +++ .../scatterModel/scatterModelNew.C | 59 ++ .../mixtureFraction/mixtureFraction.C | 172 +++++ .../mixtureFraction/mixtureFraction.H | 180 +++++ .../mixtureFraction/mixtureFractions.C | 35 + .../sootModels/noSoot/noSoot.C | 81 ++ .../sootModels/noSoot/noSoot.H | 97 +++ .../sootModels/sootModel/makeSootTypes.H | 61 ++ .../sootModels/sootModel/sootModel.C | 59 ++ .../sootModels/sootModel/sootModel.H | 147 ++++ .../sootModels/sootModel/sootModelNew.C | 67 ++ 72 files changed, 11693 insertions(+) create mode 100644 src/radiationModels/Make/files create mode 100644 src/radiationModels/Make/options create mode 100644 src/radiationModels/absorptionEmissionModels/absorptionEmissionModel/absorptionEmissionModel.C create mode 100644 src/radiationModels/absorptionEmissionModels/absorptionEmissionModel/absorptionEmissionModel.H create mode 100644 src/radiationModels/absorptionEmissionModels/absorptionEmissionModel/absorptionEmissionModelNew.C create mode 100644 src/radiationModels/absorptionEmissionModels/binary/binary.C create mode 100644 src/radiationModels/absorptionEmissionModels/binary/binary.H create mode 100644 src/radiationModels/absorptionEmissionModels/constantAbsorptionEmission/constantAbsorptionEmission.C create mode 100644 src/radiationModels/absorptionEmissionModels/constantAbsorptionEmission/constantAbsorptionEmission.H create mode 100644 src/radiationModels/absorptionEmissionModels/greyMean/greyMean.C create mode 100644 src/radiationModels/absorptionEmissionModels/greyMean/greyMean.H create mode 100644 src/radiationModels/absorptionEmissionModels/greyMeanSolid/greyMeanSolid.C create mode 100644 src/radiationModels/absorptionEmissionModels/greyMeanSolid/greyMeanSolid.H create mode 100644 src/radiationModels/absorptionEmissionModels/noAbsorptionEmission/noAbsorptionEmission.C create mode 100644 src/radiationModels/absorptionEmissionModels/noAbsorptionEmission/noAbsorptionEmission.H create mode 100644 src/radiationModels/absorptionEmissionModels/wideBand/wideBand.C create mode 100644 src/radiationModels/absorptionEmissionModels/wideBand/wideBand.H create mode 100644 src/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.C create mode 100644 src/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.H create mode 100644 src/radiationModels/derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.C create mode 100644 src/radiationModels/derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.H create mode 100644 src/radiationModels/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C create mode 100644 src/radiationModels/derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.H create mode 100644 src/radiationModels/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C create mode 100644 src/radiationModels/derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.H create mode 100644 src/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.C create mode 100644 src/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.H create mode 100644 src/radiationModels/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C create mode 100644 src/radiationModels/derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.H create mode 100644 src/radiationModels/fvOptions/radiation/radiation.C create mode 100644 src/radiationModels/fvOptions/radiation/radiation.H create mode 100644 src/radiationModels/include/createIncompressibleRadiationModel.H create mode 100644 src/radiationModels/include/createRadiationModel.H create mode 100644 src/radiationModels/radiationModels/P1/P1.C create mode 100644 src/radiationModels/radiationModels/P1/P1.H create mode 100644 src/radiationModels/radiationModels/fvDOM/absorptionCoeffs/absorptionCoeffs.C create mode 100644 src/radiationModels/radiationModels/fvDOM/absorptionCoeffs/absorptionCoeffs.H create mode 100644 src/radiationModels/radiationModels/fvDOM/absorptionCoeffs/absorptionCoeffsI.H create mode 100644 src/radiationModels/radiationModels/fvDOM/blackBodyEmission/blackBodyEmission.C create mode 100644 src/radiationModels/radiationModels/fvDOM/blackBodyEmission/blackBodyEmission.H create mode 100644 src/radiationModels/radiationModels/fvDOM/fvDOM.C create mode 100644 src/radiationModels/radiationModels/fvDOM/fvDOM.H create mode 100644 src/radiationModels/radiationModels/fvDOM/fvDOMI.H create mode 100644 src/radiationModels/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C create mode 100644 src/radiationModels/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.H create mode 100644 src/radiationModels/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRayI.H create mode 100644 src/radiationModels/radiationModels/noRadiation/noRadiation.C create mode 100644 src/radiationModels/radiationModels/noRadiation/noRadiation.H create mode 100644 src/radiationModels/radiationModels/opaqueSolid/opaqueSolid.C create mode 100644 src/radiationModels/radiationModels/opaqueSolid/opaqueSolid.H create mode 100644 src/radiationModels/radiationModels/radiationModel/radiationModel.C create mode 100644 src/radiationModels/radiationModels/radiationModel/radiationModel.H create mode 100644 src/radiationModels/radiationModels/radiationModel/radiationModelNew.C create mode 100644 src/radiationModels/radiationModels/viewFactor/viewFactor.C create mode 100644 src/radiationModels/radiationModels/viewFactor/viewFactor.H create mode 100644 src/radiationModels/radiationModels/viewFactor/viewFactorI.H create mode 100644 src/radiationModels/scatterModels/constantScatter/constantScatter.C create mode 100644 src/radiationModels/scatterModels/constantScatter/constantScatter.H create mode 100644 src/radiationModels/scatterModels/noScatter/noScatter.C create mode 100644 src/radiationModels/scatterModels/noScatter/noScatter.H create mode 100644 src/radiationModels/scatterModels/scatterModel/scatterModel.C create mode 100644 src/radiationModels/scatterModels/scatterModel/scatterModel.H create mode 100644 src/radiationModels/scatterModels/scatterModel/scatterModelNew.C create mode 100644 src/radiationModels/sootModels/mixtureFraction/mixtureFraction.C create mode 100644 src/radiationModels/sootModels/mixtureFraction/mixtureFraction.H create mode 100644 src/radiationModels/sootModels/mixtureFraction/mixtureFractions.C create mode 100644 src/radiationModels/sootModels/noSoot/noSoot.C create mode 100644 src/radiationModels/sootModels/noSoot/noSoot.H create mode 100644 src/radiationModels/sootModels/sootModel/makeSootTypes.H create mode 100644 src/radiationModels/sootModels/sootModel/sootModel.C create mode 100644 src/radiationModels/sootModels/sootModel/sootModel.H create mode 100644 src/radiationModels/sootModels/sootModel/sootModelNew.C diff --git a/src/radiationModels/Make/files b/src/radiationModels/Make/files new file mode 100644 index 000000000..c0560197b --- /dev/null +++ b/src/radiationModels/Make/files @@ -0,0 +1,46 @@ +/* Radiation model */ +radiationModels/radiationModel/radiationModel.C +radiationModels/radiationModel/radiationModelNew.C +radiationModels/noRadiation/noRadiation.C +radiationModels/P1/P1.C +radiationModels/fvDOM/fvDOM.C +radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C +radiationModels/fvDOM/blackBodyEmission/blackBodyEmission.C +radiationModels/fvDOM/absorptionCoeffs/absorptionCoeffs.C +radiationModels/viewFactor/viewFactor.C +radiationModels/opaqueSolid/opaqueSolid.C + +/* Scatter model */ +scatterModels/scatterModel/scatterModel.C +scatterModels/scatterModel/scatterModelNew.C +scatterModels/noScatter/noScatter.C +scatterModels/constantScatter/constantScatter.C + +/* Absorption/Emission model */ +absorptionEmissionModels/absorptionEmissionModel/absorptionEmissionModel.C +absorptionEmissionModels/absorptionEmissionModel/absorptionEmissionModelNew.C +absorptionEmissionModels/noAbsorptionEmission/noAbsorptionEmission.C +absorptionEmissionModels/constantAbsorptionEmission/constantAbsorptionEmission.C +absorptionEmissionModels/binary/binary.C +absorptionEmissionModels/greyMean/greyMean.C +absorptionEmissionModels/wideBand/wideBand.C +/*absorptionEmissionModels/greyMeanSolid/greyMeanSolid.C*/ + +/* Soot model */ +sootModels/sootModel/sootModel.C +sootModels/sootModel/sootModelNew.C +sootModels/mixtureFraction/mixtureFractions.C +sootModels/noSoot/noSoot.C + +/* Boundary conditions */ +derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.C +derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.C +derivedFvPatchFields/greyDiffusiveRadiation/greyDiffusiveRadiationMixedFvPatchScalarField.C +derivedFvPatchFields/wideBandDiffusiveRadiation/wideBandDiffusiveRadiationMixedFvPatchScalarField.C +derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.C +derivedFvPatchFields/greyDiffusiveViewFactor/greyDiffusiveViewFactorFixedValueFvPatchScalarField.C + +/* fvOptions */ +fvOptions/radiation/radiation.C + +LIB = $(DF_LIBBIN)/libdfRadiationModels diff --git a/src/radiationModels/Make/options b/src/radiationModels/Make/options new file mode 100644 index 000000000..9a06a92c2 --- /dev/null +++ b/src/radiationModels/Make/options @@ -0,0 +1,20 @@ +EXE_INC = \ + -I$(LIB_SRC)/transportModels/compressible/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ + -I$(DF_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \ + -I$(DF_SRC)/thermophysicalModels/SLGThermo/lnInclude \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(DF_SRC)/dfCanteraMixture/lnInclude \ + -I$(CANTERA_ROOT)/include + +LIB_LIBS = \ + -lcompressibleTransportModels \ + -lfiniteVolume \ + -lmeshTools \ + -L$(DF_LIBBIN) \ + -ldfCanteraMixture \ + -ldfThermophysicalProperties \ + -ldfSLGThermo \ + -ldfFluidThermophysicalModels diff --git a/src/radiationModels/absorptionEmissionModels/absorptionEmissionModel/absorptionEmissionModel.C b/src/radiationModels/absorptionEmissionModels/absorptionEmissionModel/absorptionEmissionModel.C new file mode 100644 index 000000000..871bcf081 --- /dev/null +++ b/src/radiationModels/absorptionEmissionModels/absorptionEmissionModel/absorptionEmissionModel.C @@ -0,0 +1,183 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2011-2019 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 "absorptionEmissionModel.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + namespace radiationModels + { + defineTypeNameAndDebug(absorptionEmissionModel, 0); + defineRunTimeSelectionTable(absorptionEmissionModel, dictionary); + } +} + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::radiationModels::absorptionEmissionModel::absorptionEmissionModel +( + const dictionary& dict, + const fvMesh& mesh +) +: + dict_(dict), + mesh_(mesh) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * // + +Foam::radiationModels::absorptionEmissionModel::~absorptionEmissionModel() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +Foam::tmp +Foam::radiationModels::absorptionEmissionModel::a(const label bandI) const +{ + return aDisp(bandI) + aCont(bandI); +} + + +Foam::tmp +Foam::radiationModels::absorptionEmissionModel::aCont(const label bandI) const +{ + return volScalarField::New + ( + "aCont", + mesh_, + dimensionedScalar(dimless/dimLength, 0) + ); +} + + +Foam::tmp +Foam::radiationModels::absorptionEmissionModel::aDisp(const label bandI) const +{ + return volScalarField::New + ( + "aDisp", + mesh_, + dimensionedScalar(dimless/dimLength, 0) + ); +} + + +Foam::tmp +Foam::radiationModels::absorptionEmissionModel::e(const label bandI) const +{ + return eDisp(bandI) + eCont(bandI); +} + + +Foam::tmp +Foam::radiationModels::absorptionEmissionModel::eCont(const label bandI) const +{ + return volScalarField::New + ( + "eCont", + mesh_, + dimensionedScalar(dimless/dimLength, 0) + ); +} + + +Foam::tmp +Foam::radiationModels::absorptionEmissionModel::eDisp(const label bandI) const +{ + return volScalarField::New + ( + "eDisp", + mesh_, + dimensionedScalar(dimless/dimLength, 0) + ); +} + + +Foam::tmp +Foam::radiationModels::absorptionEmissionModel::E(const label bandI) const +{ + return EDisp(bandI) + ECont(bandI); +} + + +Foam::tmp +Foam::radiationModels::absorptionEmissionModel::ECont(const label bandI) const +{ + return volScalarField::New + ( + "ECont", + mesh_, + dimensionedScalar(dimMass/dimLength/pow3(dimTime), 0) + ); +} + + +Foam::tmp +Foam::radiationModels::absorptionEmissionModel::EDisp(const label bandI) const +{ + return volScalarField::New + ( + "EDisp", + mesh_, + dimensionedScalar(dimMass/dimLength/pow3(dimTime), 0) + ); +} + + +Foam::label Foam::radiationModels::absorptionEmissionModel::nBands() const +{ + return pTraits