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