mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Adding multiband absorptivity and solar load working with FVDOM
This commit is contained in:
@ -40,7 +40,7 @@ submodels/absorptionEmissionModel/binaryAbsorptionEmission/binaryAbsorptionEmiss
|
||||
submodels/absorptionEmissionModel/greyMeanAbsorptionEmission/greyMeanAbsorptionEmission.C
|
||||
submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C
|
||||
submodels/absorptionEmissionModel/greyMeanSolidAbsorptionEmission/greyMeanSolidAbsorptionEmission.C
|
||||
submodels/absorptionEmissionModel/multiBandSolidAbsorptionEmission/multiBandSolidAbsorptionEmission.C
|
||||
submodels/absorptionEmissionModel/multiBandAbsorptionEmission/multiBandAbsorptionEmission.C
|
||||
submodels/boundaryRadiationProperties/boundaryRadiationProperties.C
|
||||
submodels/boundaryRadiationProperties/boundaryRadiationPropertiesPatch.C
|
||||
|
||||
|
||||
@ -218,10 +218,10 @@ updateCoeffs()
|
||||
// Looking for primary heat flux single band
|
||||
Ir += patch().lookupPatchField<volScalarField,scalar>
|
||||
(
|
||||
dom.primaryFluxName_ + "_" + name(lambdaId - 1)
|
||||
dom.primaryFluxName_ + "_" + name(lambdaId)
|
||||
);
|
||||
|
||||
word qSecName = dom.relfectedFluxName_ + "_" + name(lambdaId - 1);
|
||||
word qSecName = dom.relfectedFluxName_ + "_" + name(lambdaId);
|
||||
|
||||
if (this->db().foundObject<volScalarField>(qSecName))
|
||||
{
|
||||
|
||||
@ -188,18 +188,18 @@ void Foam::radiation::fvDOM::initialise()
|
||||
|
||||
Info<< endl;
|
||||
|
||||
this->readIfPresent("useSolarLoad", useSolarLoad_);
|
||||
coeffs_.readIfPresent("useSolarLoad", useSolarLoad_);
|
||||
|
||||
if (useSolarLoad_)
|
||||
{
|
||||
const dictionary& solarDict = this->subDict("solarLoarCoeffs");
|
||||
const dictionary& solarDict = this->subDict("solarLoadCoeffs");
|
||||
solarLoad_.reset(new solarLoad(solarDict, T_));
|
||||
|
||||
if (solarLoad_->nBands() > 1)
|
||||
if (solarLoad_->nBands() != this->nBands())
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Requested solar radiation with fvDOM. Using "
|
||||
<< "more than one band for the solar load is not allowed"
|
||||
<< "different number of bands for the solar load is not allowed"
|
||||
<< abort(FatalError);
|
||||
}
|
||||
|
||||
|
||||
@ -88,14 +88,23 @@ void Foam::radiation::radiationModel::initialise()
|
||||
{
|
||||
solverFreq_ = max(1, lookupOrDefault<label>("solverFreq", 1));
|
||||
|
||||
absorptionEmission_.reset
|
||||
(
|
||||
absorptionEmissionModel::New(*this, mesh_).ptr()
|
||||
);
|
||||
if (this->found("absorptionEmissionModel"))
|
||||
{
|
||||
absorptionEmission_.reset
|
||||
(
|
||||
absorptionEmissionModel::New(*this, mesh_).ptr()
|
||||
);
|
||||
}
|
||||
|
||||
scatter_.reset(scatterModel::New(*this, mesh_).ptr());
|
||||
if (this->found("scatterModel"))
|
||||
{
|
||||
scatter_.reset(scatterModel::New(*this, mesh_).ptr());
|
||||
}
|
||||
|
||||
soot_.reset(sootModel::New(*this, mesh_).ptr());
|
||||
if (this->found("sootModel"))
|
||||
{
|
||||
soot_.reset(sootModel::New(*this, mesh_).ptr());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2015 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2015-2019 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -23,7 +23,7 @@ License
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "multiBandSolidAbsorptionEmission.H"
|
||||
#include "multiBandAbsorptionEmission.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
@ -32,12 +32,12 @@ namespace Foam
|
||||
{
|
||||
namespace radiation
|
||||
{
|
||||
defineTypeNameAndDebug(multiBandSolidAbsorptionEmission, 0);
|
||||
defineTypeNameAndDebug(multiBandAbsorptionEmission, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
absorptionEmissionModel,
|
||||
multiBandSolidAbsorptionEmission,
|
||||
multiBandAbsorptionEmission,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
@ -46,8 +46,7 @@ namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::radiation::multiBandSolidAbsorptionEmission::
|
||||
multiBandSolidAbsorptionEmission
|
||||
Foam::radiation::multiBandAbsorptionEmission::multiBandAbsorptionEmission
|
||||
(
|
||||
const dictionary& dict,
|
||||
const fvMesh& mesh
|
||||
@ -67,15 +66,15 @@ multiBandSolidAbsorptionEmission
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::radiation::multiBandSolidAbsorptionEmission::
|
||||
~multiBandSolidAbsorptionEmission()
|
||||
Foam::radiation::multiBandAbsorptionEmission::
|
||||
~multiBandAbsorptionEmission()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::radiation::multiBandSolidAbsorptionEmission::aCont
|
||||
Foam::radiation::multiBandAbsorptionEmission::aCont
|
||||
(
|
||||
const label bandI
|
||||
) const
|
||||
@ -102,7 +101,7 @@ Foam::radiation::multiBandSolidAbsorptionEmission::aCont
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::radiation::multiBandSolidAbsorptionEmission::eCont
|
||||
Foam::radiation::multiBandAbsorptionEmission::eCont
|
||||
(
|
||||
const label bandI
|
||||
) const
|
||||
@ -129,7 +128,7 @@ Foam::radiation::multiBandSolidAbsorptionEmission::eCont
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::radiation::multiBandSolidAbsorptionEmission::ECont
|
||||
Foam::radiation::multiBandAbsorptionEmission::ECont
|
||||
(
|
||||
const label bandI
|
||||
) const
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2015 OpenCFD Ltd.
|
||||
\\ / A nd | Copyright (C) 2015-2019 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -22,23 +22,23 @@ License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Class
|
||||
Foam::radiation::multiBandSolidAbsorptionEmission
|
||||
Foam::radiation::multiBandAbsorptionEmission
|
||||
|
||||
Group
|
||||
grpRadiationAbsorptionEmissionSubModels
|
||||
|
||||
Description
|
||||
|
||||
multiBandSolidAbsorptionEmission radiation absorption/emission for solids.
|
||||
multiBandAbsorptionEmission radiation absorption/emission for solids.
|
||||
|
||||
|
||||
SourceFiles
|
||||
multiBandSolidAbsorptionEmission.C
|
||||
multiBandAbsorptionEmission.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef multiBandSolidAbsorptionEmission_H
|
||||
#define multiBandSolidAbsorptionEmission_H
|
||||
#ifndef multiBandAbsorptionEmission_H
|
||||
#define multiBandAbsorptionEmission_H
|
||||
|
||||
#include "absorptionEmissionModel.H"
|
||||
|
||||
@ -50,10 +50,10 @@ namespace radiation
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class multiBandSolidAbsorptionEmission Declaration
|
||||
Class multiBandAbsorptionEmission Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class multiBandSolidAbsorptionEmission
|
||||
class multiBandAbsorptionEmission
|
||||
:
|
||||
public absorptionEmissionModel
|
||||
{
|
||||
@ -85,13 +85,13 @@ private:
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("multiBandSolidAbsorptionEmission");
|
||||
TypeName("multiBandAbsorptionEmission");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from components
|
||||
multiBandSolidAbsorptionEmission
|
||||
multiBandAbsorptionEmission
|
||||
(
|
||||
const dictionary& dict,
|
||||
const fvMesh& mesh
|
||||
@ -99,7 +99,7 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~multiBandSolidAbsorptionEmission();
|
||||
virtual ~multiBandAbsorptionEmission();
|
||||
|
||||
|
||||
// Member Functions
|
||||
@ -22,7 +22,7 @@ radiationModel none;//opaqueSolid;
|
||||
|
||||
absorptionEmissionModel none;
|
||||
|
||||
multiBandSolidAbsorptionEmissionCoeffs
|
||||
multiBandAbsorptionEmissionCoeffs
|
||||
{
|
||||
absorptivity (0.3 0.7);
|
||||
emissivity (0.3 0.7);
|
||||
|
||||
@ -18,15 +18,9 @@ FoamFile
|
||||
|
||||
radiation off;
|
||||
|
||||
radiationModel none;//opaqueSolid;
|
||||
radiationModel none;
|
||||
|
||||
absorptionEmissionModel none;//multiBandSolidAbsorptionEmission;
|
||||
|
||||
multiBandSolidAbsorptionEmissionCoeffs
|
||||
{
|
||||
absorptivity (0.1 0.1);
|
||||
emissivity (0.1 0.1);
|
||||
}
|
||||
absorptionEmissionModel none;
|
||||
|
||||
scatterModel none;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user