CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

heat loss through wall : how to?

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   May 22, 2013, 12:17
Default heat loss through wall : how to?
  #1
Member
 
Camille
Join Date: Oct 2012
Posts: 54
Rep Power: 13
camille131 is on a distinguished road
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
camille131 is offline   Reply With Quote

Old   May 22, 2013, 12:31
Default
  #2
Member
 
Daniel Pielmeier
Join Date: Apr 2012
Posts: 99
Rep Power: 14
billie is on a distinguished road
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.
billie is offline   Reply With Quote

Old   May 22, 2013, 13:25
Default
  #3
Member
 
Camille
Join Date: Oct 2012
Posts: 54
Rep Power: 13
camille131 is on a distinguished road
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)
camille131 is offline   Reply With Quote

Old   May 22, 2013, 13:54
Default
  #4
Member
 
Camille
Join Date: Oct 2012
Posts: 54
Rep Power: 13
camille131 is on a distinguished road
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<EquationOfState>::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<EquationOfState> 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<double>&, Foam::UList<double> const&) in "/usr/local/centFOAM/OpenFOAM/OpenFOAM-2.1.1/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[0] #4 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::sqrt<Foam::fvPatchField, Foam::volMesh>(Foam::tmp<Foam::GeometricField<doub le, Foam::fvPatchField, Foam::volMesh> > 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
camille131 is offline   Reply With Quote

Old   May 22, 2013, 14:15
Default
  #5
Member
 
Daniel Pielmeier
Join Date: Apr 2012
Posts: 99
Rep Power: 14
billie is on a distinguished road
Quote:
Originally Posted by camille131 View Post
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
billie is offline   Reply With Quote

Old   May 22, 2013, 15:31
Default
  #6
Member
 
Camille
Join Date: Oct 2012
Posts: 54
Rep Power: 13
camille131 is on a distinguished road
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

Thank you for your advices.
But I have some trouble to understand the source code :-/
camille131 is offline   Reply With Quote

Old   May 22, 2013, 16:06
Default
  #7
Member
 
Daniel Pielmeier
Join Date: Apr 2012
Posts: 99
Rep Power: 14
billie is on a distinguished road
Quote:
Originally Posted by camille131 View Post
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 View Post
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 View Post
so value 293 seems to be OK
If this is the initial temperature then yes.

Quote:
Originally Posted by camille131 View Post
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
billie is offline   Reply With Quote

Old   May 23, 2013, 03:10
Default
  #8
Member
 
Camille
Join Date: Oct 2012
Posts: 54
Rep Power: 13
camille131 is on a distinguished road
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 "addToRunTimeSelectionTable.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;
    refGrad() = 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_;
    refGrad() = 0.0;
    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
)
?
camille131 is offline   Reply With Quote

Old   May 23, 2013, 04:39
Default
  #9
Member
 
Daniel Pielmeier
Join Date: Apr 2012
Posts: 99
Rep Power: 14
billie is on a distinguished road
Quote:
Originally Posted by camille131 View Post
Dear Billie (or Daniel, as you prefer?)
I don't mind

Quote:
Originally Posted by camille131 View Post
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 View Post
I just read the src file on my OF version , wallHeatTransferFvPatchScalarField.C :

Code:
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_;
    refGrad() = 0.0;
    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?
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 View Post
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
)
?
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.
billie is offline   Reply With Quote

Old   May 30, 2013, 04:25
Default
  #10
Member
 
Camille
Join Date: Oct 2012
Posts: 54
Rep Power: 13
camille131 is on a distinguished road
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
camille131 is offline   Reply With Quote

Old   June 4, 2013, 04:51
Default
  #11
Member
 
Daniel Pielmeier
Join Date: Apr 2012
Posts: 99
Rep Power: 14
billie is on a distinguished road
Quote:
Originally Posted by camille131 View Post
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
billie is offline   Reply With Quote

Reply


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 Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Radiation interface hinca CFX 15 January 26, 2014 17:11
Error finding variable "THERMX" sunilpatil CFX 8 April 26, 2013 07:00
[ICEM] Export ICEM mesh to Gambit / Fluent romekr ANSYS Meshing & Geometry 1 November 26, 2011 12:11
WALL HEAT TRANSFER COEF...AGAIN Carl CFX 2 July 8, 2005 01:35
Total heat through a wall massimo Siemens 0 December 22, 2002 12:25


All times are GMT -4. The time now is 02:04.