mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Adding thermal multi layers to externalWallHeatFluxTemperatureFvPatchScalarField
This commit is contained in:
@ -69,8 +69,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField
|
||||
q_(p.size(), 0.0),
|
||||
h_(p.size(), 0.0),
|
||||
Ta_(p.size(), 0.0),
|
||||
thicknessLayer_(0),
|
||||
kappaLayer_(0)
|
||||
thicknessLayers_(),
|
||||
kappaLayers_()
|
||||
{
|
||||
this->refValue() = 0.0;
|
||||
this->refGrad() = 0.0;
|
||||
@ -93,8 +93,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField
|
||||
q_(ptf.q_, mapper),
|
||||
h_(ptf.h_, mapper),
|
||||
Ta_(ptf.Ta_, mapper),
|
||||
thicknessLayer_(ptf.thicknessLayer_),
|
||||
kappaLayer_(ptf.kappaLayer_)
|
||||
thicknessLayers_(ptf.thicknessLayers_),
|
||||
kappaLayers_(ptf.kappaLayers_)
|
||||
{}
|
||||
|
||||
|
||||
@ -112,8 +112,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField
|
||||
q_(p.size(), 0.0),
|
||||
h_(p.size(), 0.0),
|
||||
Ta_(p.size(), 0.0),
|
||||
thicknessLayer_(dict.lookupOrDefault<scalar>("thicknessLayer", 0.0)),
|
||||
kappaLayer_(dict.lookupOrDefault<scalar>("kappaLayer", 0.0))
|
||||
thicknessLayers_(),
|
||||
kappaLayers_()
|
||||
{
|
||||
if (dict.found("q") && !dict.found("h") && !dict.found("Ta"))
|
||||
{
|
||||
@ -125,6 +125,11 @@ externalWallHeatFluxTemperatureFvPatchScalarField
|
||||
mode_ = fixedHeatTransferCoeff;
|
||||
h_ = scalarField("h", dict, p.size());
|
||||
Ta_ = scalarField("Ta", dict, p.size());
|
||||
if (dict.found("thicknessLayers"))
|
||||
{
|
||||
dict.lookup("thicknessLayers") >> thicknessLayers_;
|
||||
dict.lookup("kappaLayers") >> kappaLayers_;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -176,8 +181,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField
|
||||
q_(tppsf.q_),
|
||||
h_(tppsf.h_),
|
||||
Ta_(tppsf.Ta_),
|
||||
thicknessLayer_(tppsf.thicknessLayer_),
|
||||
kappaLayer_(tppsf.kappaLayer_)
|
||||
thicknessLayers_(tppsf.thicknessLayers_),
|
||||
kappaLayers_(tppsf.kappaLayers_)
|
||||
{}
|
||||
|
||||
|
||||
@ -194,8 +199,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField
|
||||
q_(tppsf.q_),
|
||||
h_(tppsf.h_),
|
||||
Ta_(tppsf.Ta_),
|
||||
thicknessLayer_(tppsf.thicknessLayer_),
|
||||
kappaLayer_(tppsf.kappaLayer_)
|
||||
thicknessLayers_(tppsf.thicknessLayers_),
|
||||
kappaLayers_(tppsf.kappaLayers_)
|
||||
{}
|
||||
|
||||
|
||||
@ -252,7 +257,19 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
|
||||
}
|
||||
case fixedHeatTransferCoeff:
|
||||
{
|
||||
q = (Ta_ - Tp)*(1.0/h_ + thicknessLayer_/(kappaLayer_ + VSMALL));
|
||||
scalar totalSolidRes = 0.0;
|
||||
if (thicknessLayers_.size() > 0)
|
||||
{
|
||||
forAll (thicknessLayers_, iLayer)
|
||||
{
|
||||
const scalar l = thicknessLayers_[iLayer];
|
||||
if (l > 0.0)
|
||||
{
|
||||
totalSolidRes += kappaLayers_[iLayer]/l;
|
||||
}
|
||||
}
|
||||
}
|
||||
q = (Ta_ - Tp)*(1.0/h_ + totalSolidRes);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@ -308,9 +325,6 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::write
|
||||
{
|
||||
mixedFvPatchScalarField::write(os);
|
||||
temperatureCoupledBase::write(os);
|
||||
os.writeKeyword("thicknessLayer")<< thicknessLayer_
|
||||
<< token::END_STATEMENT << nl;
|
||||
os.writeKeyword("kappaLayer")<< kappaLayer_ << token::END_STATEMENT << nl;
|
||||
|
||||
switch (mode_)
|
||||
{
|
||||
@ -323,6 +337,10 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::write
|
||||
{
|
||||
h_.writeEntry("h", os);
|
||||
Ta_.writeEntry("Ta", os);
|
||||
os.writeKeyword("thicknessLayers")<< thicknessLayers_
|
||||
<< token::END_STATEMENT << nl;
|
||||
os.writeKeyword("kappaLayers")<< kappaLayers_
|
||||
<< token::END_STATEMENT << nl;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
||||
@ -26,8 +26,9 @@ Class
|
||||
|
||||
Description
|
||||
This boundary condition supplies a heat flux condition for temperature
|
||||
on an external wall.Optional thin thermal layer resistance can be
|
||||
specified through thicknessLayer and kappaLayer entries.
|
||||
on an external wall. Optional thin thermal layer resistances can be
|
||||
specified through thicknessLayers and kappaLayers entries for the
|
||||
fixed heat transfer coefficient mode.
|
||||
|
||||
The condition can operate in two modes:
|
||||
\li fixed heat transfer coefficient: supply h and Ta
|
||||
@ -52,8 +53,8 @@ Description
|
||||
q uniform 1000; // heat flux / [W/m2]
|
||||
Ta uniform 300.0; // ambient temperature /[K]
|
||||
h uniform 10.0; // heat transfer coeff /[W/Km2]
|
||||
thicknessLayer 0.001 // thickness of layer [m]
|
||||
kappaLayer 0.0 // thermal conductivity of
|
||||
thicknessLayers (0.1 0.2 0.3 0.4); // thickness of layer [m]
|
||||
kappaLayers (1 2 3 4) // thermal conductivity of
|
||||
// layer [W/m/K]
|
||||
value uniform 300.0; // initial temperature / [K]
|
||||
kappaName none;
|
||||
@ -118,11 +119,11 @@ private:
|
||||
//- Ambient temperature / [K]
|
||||
scalarField Ta_;
|
||||
|
||||
//- Thickness of the thin wall
|
||||
scalar thicknessLayer_;
|
||||
//- Thickness of layers
|
||||
scalarList thicknessLayers_;
|
||||
|
||||
//- Thermal conductivity of the thin wall
|
||||
scalar kappaLayer_;
|
||||
//- Conductivity of layers
|
||||
scalarList kappaLayers_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user