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

How to model transient conduction between two solids?

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

Like Tree4Likes
  • 1 Post By nithishgupta
  • 3 Post By zfaraday

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 21, 2014, 18:40
Default How to model transient conduction between two solids?
  #1
New Member
 
Cliff
Join Date: Aug 2014
Posts: 10
Rep Power: 11
cliffdub is on a distinguished road
Hello,

I have been trying to learn OpenFOAM on my own for a couple weeks now. As a test case to educate myself, I would like to model the transient case for heat transfer between two different solids.

I have gone through the multiRegionHeater tutorial and understand it OK (except that I get poor heat transfer when there is no forced fluid flow, but never mind for now).

To better learn heat transport using OpenFOAM I have generated a simple test case. I have successfully used the blockMeshDict and topoSetDict to generate two solid cubes (leftSolid and rightSolid). The leftmost patch has a fixedValue of 300K and the rightmost patch has a fixedValue of 500K. The other boundaries are zeroGradient in temperature and the internal temperature starts at 300K. Should be easy right? Sigh...

I have attempted to solve this using chtMultiRegionFoam without success (I can successfully model one solid block using laplacianFoam).

If I have no fluids in the regionProperties,

I get the following in the chtMultiRegionFoam log:

[0] --> FOAM FATAL ERROR:
[0] fluid not found in table. Valid entries: 1(solid)

I would be so grateful for some guidance on how to model transient conduction between two solids. Here is a dropbox link to my files. The OpenFOAM v2.3 code is adapted from the multiRegionHeater where now heater, topAir and bottomWater are not used.

https://www.dropbox.com/sh/1fxb42g1b...92kKyZgha?dl=0

cheers,

Cliff

Last edited by cliffdub; August 23, 2014 at 16:39. Reason: to add a dropbox link to files
cliffdub is offline   Reply With Quote

Old   August 24, 2014, 16:38
Default
  #2
Member
 
Kumar
Join Date: Jun 2013
Posts: 47
Rep Power: 13
kishpishar is on a distinguished road
Hello,

I did a similar problem in a very similar way some time ago with an older version of OF. It ran without problems. If you are interested, I can look up those files.

-kumar
kishpishar is offline   Reply With Quote

Old   August 25, 2014, 22:51
Default
  #3
New Member
 
Cliff
Join Date: Aug 2014
Posts: 10
Rep Power: 11
cliffdub is on a distinguished road
Thank you Kumar. I have it working now. I needed to leave the fluid list empty instead of deleting it all together. Thanks for offering to help.
cliffdub is offline   Reply With Quote

Old   September 5, 2014, 21:18
Default
  #4
New Member
 
Ahmed
Join Date: Jul 2014
Posts: 4
Rep Power: 11
asayed is on a distinguished road
hi cliff

I ve the same problem, but when I start to solve the following message appears:

no finite volume options present.

any ideas?

thanks
asayed is offline   Reply With Quote

Old   September 18, 2014, 05:19
Default
  #5
New Member
 
Nithish
Join Date: Sep 2013
Location: Erlangen,Germany
Posts: 20
Rep Power: 12
nithishgupta is on a distinguished road
I had the same problem. Just ignore it.
asayed likes this.
nithishgupta is offline   Reply With Quote

Old   May 28, 2015, 06:10
Default Transient heat conduction between two solids
  #6
New Member
 
Camila Braga Vieira
Join Date: Apr 2012
Posts: 9
Rep Power: 14
milabvieira is on a distinguished road
Quote:
Originally Posted by kishpishar View Post
Hello,

I did a similar problem in a very similar way some time ago with an older version of OF. It ran without problems. If you are interested, I can look up those files.

-kumar
Dear foamer,

I am interested in checking you test-case. I am trying to solve a transient heat conduction case in two solids (top solid with internal heat source; bottom solid - without heat source), by using he chtMultiregionFoam. However, I am not familiar with this solver and I am getting difficulty to set up correct the case.

May you please help me.

Thank you very much,
Camila
milabvieira is offline   Reply With Quote

Old   May 28, 2015, 06:33
Default
  #7
Senior Member
 
Alex
Join Date: Oct 2013
Posts: 337
Rep Power: 21
zfaraday will become famous soon enough
Hi Camila,

I recomend you to take a look into the following tutorial case that you can find in the tutorials directory within your OpenFOAM installation directory:

Code:
$FOAM_TUTORIALS/heatTransfer/chtMultiRegionFoam/multiRegionHeater
Also, if you are new to OpenFOAM or namely to chtMultiRegion solvers I recomend you to take a further look into the planeWall2D tutorial. I serioulsy advise you to study this page and try to run the case provided in it in order to understand how chtMultiRegion solvers work in OpenFOAM. At the beginning it can be a little tough and tricky, I know it by my own experience, that's why I seriously recomend you to follow all the steps shown in the planeWall2D tutorial page!

Once you have done it, if you still have doubts or problems running multiRegion cases (you'll likely still have some doubts), you can come back here and ask them and I will be pleased (if I have the time) to help you!

Best regards,

Alex
__________________
Web site where I present my Master's Thesis: foamingtime.wordpress.com

The case I talk about in this site was solved with chtMultiRegionSimpleFoam solver and involves radiation. Some basic tutorials are also resolved step by step in the web. If you are interested in these matters, you are invited to come in!
zfaraday is offline   Reply With Quote

Old   May 28, 2015, 10:16
Default Transient heat conduction between two solids
  #8
New Member
 
Camila Braga Vieira
Join Date: Apr 2012
Posts: 9
Rep Power: 14
milabvieira is on a distinguished road
Thank you very much.

I have run the planewall2D, but I still have some doubts.

In my simulation case, I have to specify an interface between the two solids, so that the temperature and heat flux are the same in that patch. My doubts are mainly concerned the interface treatment and how can I check the heat flux through the interface.

So far I have tried to understand the "turbulentTemperatureCoupledBaffleMixed", which should be applied for a temperature and flux continuity boundary condition (BC), as it is in my case, but I could not understand, by looking at the .C file, how the condition of same temperature and heat flux is kept by that BC.

Would you know a reference that explains better how an interface patch is treated in OpenFOAM?

I will be very grateful to receive your help.

Thank you,
Camila
milabvieira is offline   Reply With Quote

Old   May 28, 2015, 11:11
Default
  #9
Senior Member
 
Alex
Join Date: Oct 2013
Posts: 337
Rep Power: 21
zfaraday will become famous soon enough
Ok, I will give you a little help with this. In OpenFOAM boundary fields are calculated as

T_B = f * refValue + (1 - f)* (T_i + refGrad*\delta)

where

"refValue" and "refGrad" are the value and the gradient taken as reference values. "f" is a fraction that switches the boundary condition between a Dirichlet BC (f=1) and a Neumann BC (f=0). \delta is the center patch face to center cell distance and T_i is the temperature in the cell center. Knowing that theory behind the specification of BC's in OpenFOAM now we have to take a look at the source code to know what they are doing. Below you can see a snipet of the turbulentTemperatureCoupledBaffleMixed BC, namely the lines 241-245

Code:
    this->refValue() = nbrIntFld();

    this->refGrad() = 0.0;

    this->valueFraction() = nbrKDelta()/(nbrKDelta() + myKDelta());
Here you see what value the mentioned fields take, but we have to take a look into the previous lines in order to find what nbrKDelta(), myKDelta() and nbrIntFld() are... This information can be found a little above in the code, specifically in the lines attached below (208-222):

Code:
    if (contactRes_ == 0.0)
    {
        nbrIntFld() = nbrField.patchInternalField();
        nbrKDelta() = nbrField.kappa(nbrField)*nbrPatch.deltaCoeffs();
    }
    else
    {
        nbrIntFld() = nbrField;
        nbrKDelta() = contactRes_;
    }

    mpp.distribute(nbrIntFld());
    mpp.distribute(nbrKDelta());

    tmp<scalarField> myKDelta = kappa(*this)*patch().deltaCoeffs();
Note that deltaCoeffs() is a function that returns \frac{1}{\delta}. As it can be noticed, nbrIntFld() and nbrKDelta() take diferent values depending on the case you have contact resistance between both solids or not. In any case, if you develop the first equation presented in this post taking the values that this BC uses, you will have that the balance below is satisfied [A) when no contact resistance is defined and B) when it is]:

A) \frac{\lambda*(T_i - T_B)}{\delta}=\frac{\lambda_{nbr}*(T_B - T_{i,nbr})}{\delta_{nbr}}

B) \frac{\lambda*(T_i - T_B)}{\delta}=\frac{\lambda_{nbr}*(T'_B - T_{i,nbr})}{\delta_{nbr}}= \frac{T_B-T'_B}{conRes}

Note that the subscript nbr indicates that values are taken from the neighbouring zone. To the reader concerns the developement of the equations in order to understand how the BC is implemented.

Hope it helps,

Alex
__________________
Web site where I present my Master's Thesis: foamingtime.wordpress.com

The case I talk about in this site was solved with chtMultiRegionSimpleFoam solver and involves radiation. Some basic tutorials are also resolved step by step in the web. If you are interested in these matters, you are invited to come in!
zfaraday is offline   Reply With Quote

Old   May 28, 2015, 11:26
Default Transient heat conduction between two solids
  #10
New Member
 
Camila Braga Vieira
Join Date: Apr 2012
Posts: 9
Rep Power: 14
milabvieira is on a distinguished road
Thank you Alex. It really helped me to better understand how this BC works.
milabvieira is offline   Reply With Quote

Old   May 28, 2015, 16:33
Default
  #11
Member
 
Kumar
Join Date: Jun 2013
Posts: 47
Rep Power: 13
kishpishar is on a distinguished road
Hi Camila,

In case you still want this, here is a simple example of a composite slab (no fluid regions present). I was just studying heat conduction with chtMultiRegion solvers - the domain is sliced into two equal halves using topoSet feature, designated solidleft and solidright. The left boundary (of solidleft) is fixed at 600 K and the right boundary (of solidright) is modeled with a groovyBC to simulate the heat loss through mixed convection and radiation. You can as well comment out the groovy and instead use the externalWallHeatFluxTemperature to model only convection.



-kumar
Attached Files
File Type: gz CompositeSlab.tar.gz (3.8 KB, 104 views)
kishpishar is offline   Reply With Quote

Old   June 3, 2015, 05:56
Default Transient heat conduction between two solids
  #12
New Member
 
Camila Braga Vieira
Join Date: Apr 2012
Posts: 9
Rep Power: 14
milabvieira is on a distinguished road
Thank you Alex and Kumar for helping me to deal with this problem. I am still trying to set up correctly my simulation case, since I am getting some errors in the check mesh topology (probably because of the interface), but as soon as I advance, I will let you know my progress.
milabvieira is offline   Reply With Quote

Old   December 14, 2015, 08:29
Default
  #13
Member
 
fouad abi
Join Date: Nov 2015
Location: Geneva, Switzerland
Posts: 42
Rep Power: 10
faab is on a distinguished road
Send a message via Skype™ to faab
Hi Alex,

Thanks for those details. Can you please tell me what the \lambda stand for ?
Also, I have a few questions:
- I don't understand the use of the refGrad parameter. How do we set this value ?
- You stated Ti as being the value at the centre of the cell, but is not supposed to be the temperature at the interface ? (Meaning, between Tb and Tb', in which case it would be the temperature on the face separating the two baffles)
- One last thing, where can we specify the "f" parameter (switch from Dirichlet to Neumann) ?

Thank you so much for your help !
faab is offline   Reply With Quote

Old   December 14, 2015, 09:05
Default
  #14
Senior Member
 
Alex
Join Date: Oct 2013
Posts: 337
Rep Power: 21
zfaraday will become famous soon enough
Quote:
Originally Posted by faab View Post
Hi Alex,

Thanks for those details. Can you please tell me what the \lambda stand for ?
Also, I have a few questions:
- I don't understand the use of the refGrad parameter. How do we set this value ?
- You stated Ti as being the value at the centre of the cell, but is not supposed to be the temperature at the interface ? (Meaning, between Tb and Tb', in which case it would be the temperature on the face separating the two baffles)
- One last thing, where can we specify the "f" parameter (switch from Dirichlet to Neumann) ?

Thank you so much for your help !
Hi faab!

I will respond quickly to your questions.
  1. \lambda stands for, obviousy, thermal conductivity, also referred as kappa in the literature.
  2. The use of refGrad parameter is carried out by OpenFOAM in the mentioned case, you don't need to define it! However, you may be interested in have a deeper understanding of this parameter to use it to create a new BC with groobyBC or any other reason, if so, go back to my previous post and try to manipulate the last two equations ( A) and B)) so that they look like the first equation mentioned in the first post, also shown below:
    T_B = f * refValue + (1 - f)* (T_i + refGrad*\delta)
    Once you have turned the last equations into the first one you will understand each parameter in the first equation!
  3. Again, to understand everthing about the BC implemetation go back to the previous point!
  4. I'm not going to repeat the same procedure... Try what I suggest two points above and you will understand everything!

You are welcome.

Best regards,

Alex

PS/tip: in this document you will find the solution for the procedure to solve your main doubts... Again, you are welcome!
__________________
Web site where I present my Master's Thesis: foamingtime.wordpress.com

The case I talk about in this site was solved with chtMultiRegionSimpleFoam solver and involves radiation. Some basic tutorials are also resolved step by step in the web. If you are interested in these matters, you are invited to come in!
zfaraday is offline   Reply With Quote

Old   December 15, 2015, 12:32
Default
  #15
Member
 
fouad abi
Join Date: Nov 2015
Location: Geneva, Switzerland
Posts: 42
Rep Power: 10
faab is on a distinguished road
Send a message via Skype™ to faab
Hi again Alex,

Sorry for my late reply ! I thank you so much for your very valuable input, I think I've got everything I needed. Your help is very appreciated.

Best regards,
Fouad
faab is offline   Reply With Quote

Old   December 13, 2016, 08:27
Default
  #16
New Member
 
XuDongNa
Join Date: Feb 2012
Location: Harbin Heilongjiang Province,China
Posts: 11
Rep Power: 14
supersoldier is on a distinguished road
Send a message via ICQ to supersoldier
Quote:
Originally Posted by zfaraday View Post
Hi faab!

I will respond quickly to your questions.
  1. \lambda stands for, obviousy, thermal conductivity, also referred as kappa in the literature.
  2. The use of refGrad parameter is carried out by OpenFOAM in the mentioned case, you don't need to define it! However, you may be interested in have a deeper understanding of this parameter to use it to create a new BC with groobyBC or any other reason, if so, go back to my previous post and try to manipulate the last two equations ( A) and B)) so that they look like the first equation mentioned in the first post, also shown below:
    T_B = f * refValue + (1 - f)* (T_i + refGrad*\delta)
    Once you have turned the last equations into the first one you will understand each parameter in the first equation!
  3. Again, to understand everthing about the BC implemetation go back to the previous point!
  4. I'm not going to repeat the same procedure... Try what I suggest two points above and you will understand everything!

You are welcome.

Best regards,

Alex

PS/tip: in this document you will find the solution for the procedure to solve your main doubts... Again, you are welcome!

In boundary conditions turbulenttemperaturecoupledbafflemixed, how can I make the temperature and heat flux keep the same for the conjugate boundaries ? With the utility of wallHeaFlux, I found the heat flux was different for the conjugate boundaries. It confused me.
supersoldier is offline   Reply With Quote

Reply

Tags
chtmultiregionfoam, conduction, conjugate heat transfer, heat transfer

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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
chtMultiRegionFoam, conduction with a contact resistance between two solids romain.h OpenFOAM Running, Solving & CFD 1 October 8, 2013 01:25
Running transient for turbulence model in FLUENT phamhoanghuyphuocloi FLUENT 0 June 9, 2013 21:33
help on a convective heat transfer transient model cmbv FLUENT 0 December 14, 2007 17:16
conduction between 2 different solids matt FLUENT 5 November 9, 2006 08:57


All times are GMT -4. The time now is 20:36.