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