Skip to content
Snippets Groups Projects
Commit 6e59e9a7 authored by Sergio Ferraris's avatar Sergio Ferraris
Browse files

ENH: Adding thermal multi layers to externalWallHeatFluxTemperatureFvPatchScalarField

parent fede5058
No related merge requests found
......@@ -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:
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment