# heat loss through wall : how to?

 Register Blogs Members List Search Today's Posts Mark Forums Read

 May 22, 2013, 12:17 heat loss through wall : how to? #1 Member   Camille Join Date: Oct 2012 Posts: 54 Rep Power: 5 Dear OFoamers, I'm trying to simulate a premixed mathane combustion in a cylindrical burner with XiFoam with OF 2.1.1. My chamber is a cylindre and I suppose the flow to be axisymmetric so I sat the geometry as a 2-D case with only a wedge of a cylindre. Now I'd like to take into account the heat loss through the wall. Could you please tell me what is the best way to do that? I hesitate between : 1. wallHeatTransfer Tinf 293 K alphaWall = 26 W/mK (it is sainless steel) value uniform 293 K 2. set a fixedGradient gradient uniform dTdr where dT/dr = Q/(A*k) with Q the heat flux, A the surface of the exchange between gas and water and k = alphaWall, the thermal conductivity . 3. other any better suggestion? Thank in advance Cam

 May 22, 2013, 12:31 #2 Member   Daniel Pielmeier Join Date: Apr 2012 Posts: 96 Rep Power: 6 I would prefer wallHeatTransfer over fixedGradient. I also had to choose between the two. If I remember correctly while monitoring the heat flux over the boundary the wallHeatFlux was correct from the beginning but for the fixedGradient it took some time/iterations for the boundary condition to be obeyed. In my case this was externalWallHeatFlux vs. fixedGradient.

 May 22, 2013, 13:25 #3 Member   Camille Join Date: Oct 2012 Posts: 54 Rep Power: 5 Well thank you for your response . I'll try this. Could you tell me what's the difference between wallHeatTransfer and externalWallHeatTransfer? which one do I have to use in my case? it's to take into account the non adiabaticity of the burner. Are the next values correct? Tinf uniform 293; alphaWall uniform 26; value uniform 293 ; I don't understand what is the difference between Tinf and value? (whereas both seems to be required)

May 22, 2013, 13:54
#4
Member

Camille
Join Date: Oct 2012
Posts: 54
Rep Power: 5
I've just tried this and it does not seems to works I have many errors.. Maybe my other boundaries conditions aren't well defined?

first I have error such that the T is out of bound for the use of the JANAF coefficient :

Quote:
 Courant Number mean: 0.000551277 max: 0.576794 deltaT = 3.07848e-07 Time = 0.0298926 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 PIMPLE: iteration 1 DILUPBiCG: Solving for Ux, Initial residual = 0.00416552, Final residual = 1.66274e-07, No Iterations 1 DILUPBiCG: Solving for Uy, Initial residual = 0.0180215, Final residual = 1.45173e-06, No Iterations 1 DILUPBiCG: Solving for Uz, Initial residual = 0.00418086, Final residual = 3.77416e-07, No Iterations 1 StCorr = 1 Max St-Courant Number = 0.00499137 Igniting cell 1802 state : 0.000168743 1.6969 0.203488 168.743 Igniting cell 1502 state : 0.0665362 1.51173 0.232486 440.525 Igniting cell 1577 state : 0.000339788 1.56201 0.216138 180.671 Igniting cell 1652 state : 8.746e-05 1.64139 0.222302 158.532 Igniting cell 1727 state : 0.000112533 1.6716 0.207607 165.422 Igniting cell 1877 state : 0.000382187 1.67813 0.212078 171.171 Igniting cell 1952 state : 0.00197147 1.57424 0.206945 180.393 Igniting cell 2027 state : 0.0211817 1.51637 0.230101 328.316 Igniting cell 2102 state : 0.188701 1.544 0.264288 695.673 DILUPBiCG: Solving for b, Initial residual = 3.65769e-06, Final residual = 5.38871e-11, No Iterations 1 min(b) = 7.21937e-05 DILUPBiCG: Solving for Su, Initial residual = 8.07022e-05, Final residual = 5.83694e-09, No Iterations 1 DILUPBiCG: Solving for Xi, Initial residual = 7.89438e-05, Final residual = 2.17166e-08, No Iterations 1 max(Xi) = 3.13535 max(XiEq) = 17.6636 Combustion progress = 13.0049% DILUPBiCG: Solving for hu, Initial residual = 0.00061644, Final residual = 8.28418e-09, No Iterations 1 DILUPBiCG: Solving for h, Initial residual = 0.00102333, Final residual = 2.50989e-08, No Iterations 1 --> FOAM Warning : From function janafThermo::limit(const scalar T) const in file /home/linnemann/OpenFOAM/OpenFOAM/OpenFOAM-2.1.1/src/thermophysicalModels/specie/lnInclude/janafThermoI.H at line 108 attempt to use janafThermo out of temperature range 200 -> 6000; T = 17.7103
I don't understand why such a small T ??

Then I have mane other errors :
Quote:
 [0] #0 Foam::error:rintStack(Foam::Ostream&) in "/usr/local/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" [0] #1 Foam::sigFpe::sigHandler(int) in "/usr/local/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" [0] #2 [0] at sigaction.c:0 [0] #3 Foam::sqrt(Foam::Field&, Foam::UList const&) in "/usr/local/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" [0] #4 Foam::tmp > Foam::sqrt(Foam::tmp > const&) in "/usr/local/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/XiFoam" [0] #5 [0] in "/usr/local/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/XiFoam" [0] #6 __libc_start_main in "/lib64/libc.so.6" [0] #7 [0] in "/usr/local/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/bin/XiFoam" [mback07:23071] *** Process received signal *** [mback07:23071] Signal: Floating point exception (8) [mback07:23071] Signal code: (-6) [mback07:23071] Failing at address: 0x56500005a1f [mback07:23071] [ 0] /lib64/libc.so.6() [0x38a8a32920] [mback07:23071] [ 1] /lib64/libc.so.6(gsignal+0x35) [0x38a8a328a5] [mback07:23071] [ 2] /lib64/libc.so.6() [0x38a8a32920] [mback07:23071] [ 3] /usr/local/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam4sqrtERNS_5FieldIdEERKNS_5U ListIdEE+0x26) [0x7f2d85c92956] [mback07:23071] [ 4] XiFoam(_ZN4Foam4sqrtINS_12fvPatchFieldENS_7volMesh EEENS_3tmpINS_14GeometricFieldIdT_T0_EEEERKS8_+0xe a) [0x47f70a] [mback07:23071] [ 5] XiFoam() [0x4261d1] [mback07:23071] [ 6] /lib64/libc.so.6(__libc_start_main+0xfd) [0x38a8a1ecdd] [mback07:23071] [ 7] XiFoam() [0x41f689] [mback07:23071] *** End of error message ***
I don't either understand all these errors...

My BC are the next ones :

for pressure : zeroGradient everywhere but at the internalField 1e5
for velocity U :
- inlet : turbulentInlet 3 m/s
- outlet :inletOutlet 0 0 0
- walls : fixedValue 0 0 0

for temperaure T :
- inlet : fixedValue uniform 293
- outlet : type inletOutlet;
inletValue uniform 293;
value uniform 293;

- walls : wallHeatTransfer as describe previously

Well I would be grateful if someone could help me with that issue..

Thanks

Cam

May 22, 2013, 14:15
#5
Member

Daniel Pielmeier
Join Date: Apr 2012
Posts: 96
Rep Power: 6
Quote:
 Originally Posted by camille131 Well thank you for your response . I'll try this. Could you tell me what's the difference between wallHeatTransfer and externalWallHeatTransfer? which one do I have to use in my case? it's to take into account the non adiabaticity of the burner. Are the next values correct? Tinf uniform 293; alphaWall uniform 26; value uniform 293 ; I don't understand what is the difference between Tinf and value? (whereas both seems to be required)
Sorry the boundary condition I meant was externalWallHeatFluxTemperature but it is only useful if you solve the solid (for example in conjugated heat transfer simulations) and want to apply heat flux on the solid wall. I think this is not possible with XiFoam so you are better of with wallHeatTransfer [1].

For wallHeatTransfer you need to specify Tinf which is the wall temperature and alphaWall which is the thermal diffusivity. I think value is the initial temperature at the wall. So your alphaWall is probably wrong as the thermal diffusivity is defined as
thermal conductivity / density / heat capacity

[1]
http://foam.sourceforge.net/docs/cpp/a02489.html

May 22, 2013, 15:31
#6
Member

Camille
Join Date: Oct 2012
Posts: 54
Rep Power: 5
ah ok and I m telling it the conductivity and not diffusivity
so for stainless steel I should put 4e-6 ?? (http://en.wikipedia.org/wiki/Thermal_diffusivity)

Quote:
 For wallHeatTransfer you need to specify Tinf which is the wall temperature
So Tinf is the wall temperature while burning? Thus it may be 550 K? and this value cannot be the same as value i.e 293 K

Quote:
 I think value is the initial temperature at the wall
so value 293 seems to be OK

But I have some trouble to understand the source code :-/

May 22, 2013, 16:06
#7
Member

Daniel Pielmeier
Join Date: Apr 2012
Posts: 96
Rep Power: 6
Quote:
 Originally Posted by camille131 ah ok and I m telling it the conductivity and not diffusivity so for stainless steel I should put 4e-6 ?? (http://en.wikipedia.org/wiki/Thermal_diffusivity)
This is how I understand it as well.

Quote:
 Originally Posted by camille131 So Tinf is the wall temperature while burning? Thus it may be 550 K? and this value cannot be the same as value i.e 293 K
It think so.

Quote:
 Originally Posted by camille131 so value 293 seems to be OK
If this is the initial temperature then yes.

Quote:
 Originally Posted by camille131 But I have some trouble to understand the source code
Sometimes there is a detailed description [1] on how to apply the boundary condition, if not you have to look it up in the source.

[1] http://foam.sourceforge.net/docs/cpp...9.html#details

May 23, 2013, 03:10
#8
Member

Camille
Join Date: Oct 2012
Posts: 54
Rep Power: 5
Dear Billie (or Daniel, as you prefer?)

Thank you again for your response.

I don't see any value required in the documentation as OpenFoam 2.1.1 asks me on my computer.

Quote:
 Sometimes there is a detailed description [1] on how to apply the boundary condition, if not you have to look it up in the source. [1] http://foam.sourceforge.net/docs/cpp...9.html#details
I just read the src file on my OF version , wallHeatTransferFvPatchScalarField.C :

Code:
```#include "wallHeatTransferFvPatchScalarField.H"
#include "fvPatchFieldMapper.H"
#include "volFields.H"
#include "basicThermo.H"

// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //

Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
(
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF
)
:
mixedFvPatchScalarField(p, iF),
Tinf_(p.size(), 0.0),
alphaWall_(p.size(), 0.0)
{
refValue() = 0.0;
valueFraction() = 0.0;
}

Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
(
const wallHeatTransferFvPatchScalarField& ptf,
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF,
const fvPatchFieldMapper& mapper
)
:
mixedFvPatchScalarField(ptf, p, iF, mapper),
Tinf_(ptf.Tinf_, mapper),
alphaWall_(ptf.alphaWall_, mapper)
{}

Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
(
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF,
const dictionary& dict
)
:
mixedFvPatchScalarField(p, iF),
Tinf_("Tinf", dict, p.size()),
alphaWall_("alphaWall", dict, p.size())
{
refValue() = Tinf_;
valueFraction() = 0.0;

if (dict.found("value"))
{
fvPatchField<scalar>::operator=
(
scalarField("value", dict, p.size())
);
}
else
{
evaluate();
}
}```
there is a if condition talking about value is this that one? but it doesn't seems to be required whereas my OF refuses to run if I don't give the value word. Does that mean that evaluate() does not work actually?

how can I know in which part of the code it is running?
ie :
Code:
```Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
(
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF
)```
or
Code:
```Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
(
const wallHeatTransferFvPatchScalarField& ptf,
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF,
const fvPatchFieldMapper& mapper
)```
or
Code:
```Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
(
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF,
const dictionary& dict
)```
or
Code:
```Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
(
const wallHeatTransferFvPatchScalarField& tppsf
)```
or
Code:
```Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField
(
const wallHeatTransferFvPatchScalarField& tppsf,
const DimensionedField<scalar, volMesh>& iF
)```
?

May 23, 2013, 04:39
#9
Member

Daniel Pielmeier
Join Date: Apr 2012
Posts: 96
Rep Power: 6
Quote:
 Originally Posted by camille131 Dear Billie (or Daniel, as you prefer?)
I don't mind

Quote:
 Originally Posted by camille131 I don't see any value required in the documentation as OpenFoam 2.1.1 asks me on my computer.
Maybe there have been changes between OpenFoam 2.1.1 and development version. As far as I know the online documentation is created form the current development version. So it is better to look into the code of your local version.

Quote:
 Originally Posted by camille131 I just read the src file on my OF version , wallHeatTransferFvPatchScalarField.C : Code: ```Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField ( const fvPatch& p, const DimensionedField& iF, const dictionary& dict ) : mixedFvPatchScalarField(p, iF), Tinf_("Tinf", dict, p.size()), alphaWall_("alphaWall", dict, p.size()) { refValue() = Tinf_; refGrad() = 0.0; valueFraction() = 0.0; if (dict.found("value")) { fvPatchField::operator= ( scalarField("value", dict, p.size()) ); } else { evaluate(); } }``` there is a if condition talking about value is this that one? but it doesn't seems to be required whereas my OF refuses to run if I don't give the value word. Does that mean that evaluate() does not work actually?
I am not very familiar with C++ programming myself but I think this one is used and I read it the same like you which means value should not be required.

Quote:
 Originally Posted by camille131 how can I know in which part of the code it is running? ie : Code: ```Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField ( const fvPatch& p, const DimensionedField& iF )``` or Code: ```Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField ( const wallHeatTransferFvPatchScalarField& ptf, const fvPatch& p, const DimensionedField& iF, const fvPatchFieldMapper& mapper )``` or Code: ```Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField ( const fvPatch& p, const DimensionedField& iF, const dictionary& dict )``` or Code: ```Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField ( const wallHeatTransferFvPatchScalarField& tppsf )``` or Code: ```Foam::wallHeatTransferFvPatchScalarField::wallHeatTransferFvPatchScalarField ( const wallHeatTransferFvPatchScalarField& tppsf, const DimensionedField& iF )``` ?
This are just different constructors of how the boundary can be created. I am not sure here either but I think this depends on the code using the boundary condition. There it is decided how to construct the boundary. Maybe others can explain this better.

 May 30, 2013, 04:25 #10 Member   Camille Join Date: Oct 2012 Posts: 54 Rep Power: 5 Dear Daniel and other OpenFoamers, I m asking myself another question about the wallHeatTransfer boundary condition. The burner I try to modelise is surrounded by an exchanger with water. since the heat transmitted to the wall and then to the water comes from the burnt specied (exhaust gas) shouldnt' I use the alpha of the species and not of the wall ? Cam

June 4, 2013, 04:51
#11
Member

Daniel Pielmeier
Join Date: Apr 2012
Posts: 96
Rep Power: 6
Quote:
 Originally Posted by camille131 I m asking myself another question about the wallHeatTransfer boundary condition. The burner I try to modelise is surrounded by an exchanger with water. since the heat transmitted to the wall and then to the water comes from the burnt specied (exhaust gas) shouldnt' I use the alpha of the species and not of the wall ?
Sorry, I am far from capable of helping you out here. I found nothing in the code which could answer your question, but it is surely there. However I found a document [1] explaining transient conduction. Maybe the boundary condition in OpenFoam is similar to "4.3.2 Surface convection boundary condition". If it is the same the properties for alpha are required for the solid but Tinf is probably the burning temperature. You have to figure this out yourself, maybe the document helps you. You can as well try different values and check which provide sensible results.

[1] http://www.tufts.edu/as/tampl/en43/lecture_notes/ch4.html

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post hinca CFX 15 January 26, 2014 18:11 sunilpatil CFX 8 April 26, 2013 07:00 romekr ANSYS Meshing & Geometry 1 November 26, 2011 13:11 Carl CFX 2 July 8, 2005 01:35 massimo CD-adapco 0 December 22, 2002 13:25

All times are GMT -4. The time now is 03:48.