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

Conjugate heat transfer and reactingFoam (chtMultiRegionReactingFoam)

Register Blogs Community New Posts Updated Threads Search

Like Tree16Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   June 20, 2023, 11:31
Default
  #21
Member
 
Eric Daymo
Join Date: Feb 2015
Location: Gilbert, Arizona, USA
Posts: 53
Rep Power: 12
edaymo is on a distinguished road
Hi Mactone,

Thanks for the kind words. I will try to address all of the questions and points from the prior two postings.

Firstly, in older versions of OpenFOAM, the thermo model (rhoThermo or psiThermo) was hard coded in the solver. Also, buoyancy or no buoyancy was hard coded into the solver. So chtMultiRegionReactingFoam extended chtMultiRegionFoam back in the days of OpenFOAM 4 and 5 to include chemical reactions. Like chtMultiRegionFoam, chtMultiRegionReactingFoam includes buoyancy and is based on rhoThermo. There were sometimes some very slight differences in the answers compared to reactingFoam. So multiRegionReactingFoam was developed with psiThermo and no buoyancy physics. In this case, a single region case with multiRegionReactingFoam will match reactingFoam perfectly.

Because of support in the ESI and CFD Direct (openfoam.com / .org respectively) branches for reactions with chtMultiRegionFoam, I stopped developing chtMultiRegionFoam around 2018. If rhoReactionThermo and buoyancy effects are what you want and you can work with OpenFOAM 6 or later (I forget the release where ESI added reactions with conjugate heat transfer but it's sometime before v1812) I would just use the official release of chtMultiRegionFoam. chtMultiRegionReactingFoam is really only useful if for some reason you are using OpenFOAM 4 or 5 and need chemical reactions with conjugate heat transfer. multiRegionReactingFoam is probably only useful for high speed flows or if there is some other application where psiThermo is superior to rhoThermo (high speed flows is the only application that comes to mind now). Unless you really need psiThermo or setting the gravitational constant to 0 is not enough and you really want no buoyancy effects in the pressure equation, I would again recommend using the chtMultiRegionFoam that comes with modern versions of OpenFOAM (i.e., capable of homogeneous reactions).

To your next question, yes, if you use a modern version of chtMultiRegionFoam or the multiRegionReactingFoam from the TonkomoLLC GitHub, you can indeed model the heat inside of the solid region... so you will get solid and fluid temperature fields from the simulation. As you noted, reactingFoam will only solve for the fluid temperature field.

For the tutorial case referenced above, what version of OpenFOAM are you using? I will check out my tutorial to see what went wrong.

Best regards,

Eric
edaymo is offline   Reply With Quote

Old   June 20, 2023, 11:47
Default
  #22
Member
 
Eric Daymo
Join Date: Feb 2015
Location: Gilbert, Arizona, USA
Posts: 53
Rep Power: 12
edaymo is on a distinguished road
I forgot ... one more advantage to multiRegionReactingFoam over the chtMultiRegionFoam in OpenFOAM v2212/v10 is that multiRegionReactingFoam also implements LTS. At someone's request, I also implemented LTS with chtMultiRegionReactingFoam and placed that in the multiRegionReactingFoam repo for OpenFOAM 8,9, 10.

In OpenFOAM-dev (i.e, what is to become OpenFOAM 11, you can mix and match modules for LTS and multiregion, too, so that advantage of multiregionReactingFoam will not be so important in the near future...

i just rechecked the reverseBurner tutorial for OpenFOAM 10 chtMultiRegionFoamLTS in the multiRegionReactingFoam repo and it seemed to work correctly. I await your feedback on exactly which tutorial case is broken.
Tutorials for mutliRegionReactingFoam and chtMultiRegionReactingFoamLTS are at https://github.com/TonkomoLLC/multiR...gFoamTutorials. There you will find some tutorials for many versions of OpenFOAM...
edaymo is offline   Reply With Quote

Old   June 20, 2023, 23:35
Default
  #23
Member
 
mactone hsieh
Join Date: Apr 2012
Location: Taiwan
Posts: 31
Blog Entries: 1
Rep Power: 14
mactone is on a distinguished road
Thank you Eric for such a thorough explanation.

My understanding is as follow:
1. I could use chtMultiRegionFoam (OpenFOAM 6 or v1812 later version) to deal with combustion and fluid-solid heat transfer. That means I can use this solver to do things like furnace heating simulation.

2. If I am particularly interested in psiThermo (compressibility based) with no buoyancy effect, such as ultra high speed jet, using multiRegionReactingFoam might be better before OpenFOAM v11 is released.

------
Is LTS Local Time Stepping?

I use openfoam-v2206. But now I shift to openfoam v10. Using the TonkomoLLC tutorial, I can run reverseBurner-chtMultiRegionFoamLTS. The tutorial is runnable, but the result only shows gas directory with Qdot only. Species, T, k, epsilon is missing.
mactone is offline   Reply With Quote

Old   June 21, 2023, 11:54
Default
  #24
Member
 
Eric Daymo
Join Date: Feb 2015
Location: Gilbert, Arizona, USA
Posts: 53
Rep Power: 12
edaymo is on a distinguished road
As to points 1 and 2 - yes, we are in agreement.
LTS does indeed mean Local Time Stepping.
I just rechecked and you are correct that the chtMultiRegonFoamLTS tutorial runs but Qdot only is saved. Hmm. I will have to look into this and get back to you.
Best regards,
Eric
edaymo is offline   Reply With Quote

Old   June 21, 2023, 15:17
Default
  #25
Member
 
Eric Daymo
Join Date: Feb 2015
Location: Gilbert, Arizona, USA
Posts: 53
Rep Power: 12
edaymo is on a distinguished road
Hi Mactone,

Please git pull the multiRegionReactingFoam repo and recompile chtMultiRegionReactingFoamLTS for OpenFOAM 10. The reverse burner case is running again and producing physical results.

Cheers,
Eric
edaymo is offline   Reply With Quote

Old   June 21, 2023, 18:46
Default
  #26
Member
 
mactone hsieh
Join Date: Apr 2012
Location: Taiwan
Posts: 31
Blog Entries: 1
Rep Power: 14
mactone is on a distinguished road
Unfortunately, it's dragon festival vacation now, I have to wait until next Monday to try it. Great appreciated.

I wonder if you have chtMultiRegionFoam 3D case example file, I want to know how to use snappyHexMesh to meshing solid, and fluid and how to deal with the interfaces. I've googled, almost all the case is 2D using blockMesh like reverseBurner.
mactone is offline   Reply With Quote

Old   June 22, 2023, 11:23
Default
  #27
Member
 
Eric Daymo
Join Date: Feb 2015
Location: Gilbert, Arizona, USA
Posts: 53
Rep Power: 12
edaymo is on a distinguished road
Hi

Enjoy the holiday!

In recent versions of CFD Direct OpenFOAM at least (e.g., OpenFOAM 10) there is a shellAndTubeHeatExchanger tutorial that is 3D with a complicated geometry (fluid and solid regions) using snappyHexMesh.

If I find something else I will post here.

Best Regards,

Eric
edaymo is offline   Reply With Quote

Old   June 29, 2023, 07:06
Default
  #28
Member
 
mactone hsieh
Join Date: Apr 2012
Location: Taiwan
Posts: 31
Blog Entries: 1
Rep Power: 14
mactone is on a distinguished road
Updated code works. Thank you Eric.
edaymo likes this.
mactone is offline   Reply With Quote

Old   July 1, 2023, 04:48
Default
  #29
New Member
 
BISSAI NKAA
Join Date: Feb 2022
Posts: 16
Rep Power: 4
sante_junior is on a distinguished road
Hello Mr Eric.
Thank you for all the work you do to help us. I've made a lot of progress. Now I'm facing a new difficulty. My simulations are going well but the flame is escaping from the combustion chamber. I can't stabilise the flame, no matter what mechanism I use.
I remind you that I work with synthetic gas combustion and the mechanisms I use are: "GRI-3.0" and "Faravelli-Favorati-Ranzi" with OF4.

I will send you my test case and an image of the temperature of the fluid domain.

Best regards!!!
sante_junior is offline   Reply With Quote

Old   July 6, 2023, 14:11
Default
  #30
Member
 
Eric Daymo
Join Date: Feb 2015
Location: Gilbert, Arizona, USA
Posts: 53
Rep Power: 12
edaymo is on a distinguished road
Please excuse the delayed reply; I was on holiday this past week (and still am on holiday).

I think you are describing the flame is detaching then blowing out? If your flow rates are too high this can happen and can be physically correct (there are many articles on this phenomenon e.g., https://www.hindawi.com/journals/jc/2008/461059/)

However, if your flame should be stable but it still blows out maybe revert to some OpenFOAM tutorials (e.g., Sandia Flame or DLR flame) and check matters like the grid, solver settings, and so on. I personally find that if I am too aggressive with TDAC (e.g., ISAT chemical accleration) flames will not be stable. Finally, I have noticed that if I use the full GRI 3.0 mechanism (e.g., with nitrogen chemistry) it is a bit trickier to get a stabilized flame than with the reduced GRI 3.0 mechanism that comes with OpenFOAM. If I recall, I think when I turned off TDAC i was able to get a stable solution with the full GRI 3.0 mechanism.

I am not sure if any of the above advice applies or is helpful, but I hope something in there will allow you to keep moving forward.

Best regards,

Eric
edaymo is offline   Reply With Quote

Old   July 15, 2023, 10:59
Default
  #31
New Member
 
BISSAI NKAA
Join Date: Feb 2022
Posts: 16
Rep Power: 4
sante_junior is on a distinguished road
Quote:
Originally Posted by edaymo View Post
Please excuse the delayed reply; I was on holiday this past week (and still am on holiday).

I think you are describing the flame is detaching then blowing out? If your flow rates are too high this can happen and can be physically correct (there are many articles on this phenomenon e.g., https://www.hindawi.com/journals/jc/2008/461059/)

However, if your flame should be stable but it still blows out maybe revert to some OpenFOAM tutorials (e.g., Sandia Flame or DLR flame) and check matters like the grid, solver settings, and so on. I personally find that if I am too aggressive with TDAC (e.g., ISAT chemical accleration) flames will not be stable. Finally, I have noticed that if I use the full GRI 3.0 mechanism (e.g., with nitrogen chemistry) it is a bit trickier to get a stabilized flame than with the reduced GRI 3.0 mechanism that comes with OpenFOAM. If I recall, I think when I turned off TDAC i was able to get a stable solution with the full GRI 3.0 mechanism.

I am not sure if any of the above advice applies or is helpful, but I hope something in there will allow you to keep moving forward.

Best regards,

Eric
Thank you very much for your answers!
The flame does indeed detach, then blow. The speeds used here are those proposed by a chnA experimental case from Sandia Laboratory (https://tnfworkshop.org/data-archive...lejet/sandchn/) where the results obtained numerically and compared with the experimental are in very good agreement : Figure 1 (simulations carried out with OF-2.4.0 and OF-4.0).

As for TDAC, I don't use this; the GRI 3.0 mechanism used is reduced and provided by OpenFOAM. But thanks to an in-house code, we have developed a reduced skeletal mechanism with 21 species and 51 reactions (C2) which gives very good results.

For the mesh, I have 30968 cells without the refractory wall with which I carried out my previous simulations and 65358 cells with the refractory wall where all my flames are detached and blown (Figure 2).
Attached Images
File Type: png edaymo12.png (29.4 KB, 20 views)
File Type: jpg 12.jpg (24.4 KB, 18 views)
sante_junior is offline   Reply With Quote

Old   July 15, 2023, 13:19
Default
  #32
New Member
 
BISSAI NKAA
Join Date: Feb 2022
Posts: 16
Rep Power: 4
sante_junior is on a distinguished road
Hi Mr Eric Daymo
Sorry if I'm bothering you again; I've noticed that every time I use a mechanism where CH4 is not present (Faraveli-Frassoldati-Ranzi), the test case crashes because it can't find the CH4 species. I have the impression that multiRegionReactingFoam is just right for kinetic mechanisms containing the CH4 species, which is not the case for the reactigFoam and rhoReactingFoam solvers.

Best regards!
Sante Junior
sante_junior is offline   Reply With Quote

Old   July 16, 2023, 00:00
Default Tutorial to run a case with surface adsorption
  #33
New Member
 
João de Sousa Bomfim Neto
Join Date: Oct 2017
Location: Maranguape, Ceará, Brasil
Posts: 27
Rep Power: 8
Joao Bomfim is on a distinguished road
Hey guys,
firstly, sorry if I'm posting this in this thread it's not cool. Please advise me, and so, I will create a new topic.

I would like to know if in recent versions of OpenFOAM (it seems that v11 is already available) there is any tutorial that I can adapt to simulate a flow with adsorption by gases interaction with a solid phase (heterogeneous catalysis), and its changes due to external source of heat. I intend to simulate a heterogeneous monolithic catalyst and validate it, for later application in reactor design.

If there isn't something ready for adsorption and I have to "assemble" the case with reaction/heat transfer/flow, I would be very grateful if someone could tell me to the steps to follow.

Anyway, I already leave my thanks. All the best!
Joao Bomfim is offline   Reply With Quote

Old   July 16, 2023, 04:29
Default
  #34
Member
 
Eric Daymo
Join Date: Feb 2015
Location: Gilbert, Arizona, USA
Posts: 53
Rep Power: 12
edaymo is on a distinguished road
Hello Sante Junior,

To answer your second post, that multiRegionReactingFoam crashes if CH4 is not present... in general if CH4 is in the kinetic mechanism then it must be in the species list. If CH4 is in the species list then it either must appear in the 0 directory (or 0/<regionName> for multiRegionReactingFoam or modern versions of chtMultiRegionFoam), OR a Ydefault field must be present.

This behavior is the same for reactingFoam, rhoReactingFoam, modern versions of chtMultiRegionFoam and multiRegionReactingFoam

It sounds like from the previous post that you are using OpenFOAM 2.4 and 4.0. In these versions of OpenFOAM there is no conjugate heat transfer with chemical reaction, which is why multiRegionReactingFoam is helpful. However, if you can work with a newer version of OpenFOAM (e.g., OpenFOAM 6 and later, or OpenFOAM v1812 or later) then you can use conjugate heat transfer with reactions as a feature built into OpenFOAM. If that is not possible then for sure I guess you need to keep using multiRegionReactingFoam.

Thanks for describing your situation, but I want to ask a clarifying question ... Does your flame blow out only if the solid region is present (and the flame is stable for a fluid only case)? Or does your flame blow out whether or not the solid region is present?

As of right now I do not know the specific answer as to why your flame is blowing out.


Good luck with your continued troubleshooting.

Best regards,

Eric
edaymo is offline   Reply With Quote

Old   July 16, 2023, 04:41
Default
  #35
Member
 
Eric Daymo
Join Date: Feb 2015
Location: Gilbert, Arizona, USA
Posts: 53
Rep Power: 12
edaymo is on a distinguished road
Dear Joao,

There is no easy way to simulate surface reactions in OpenFOAM. I have not tried this personally, but I wonder if zoneCombustion can be used with a cell zone comprising the cells immediately next to the surface you wish to treat as catalytic. There is also no built-in way for handling surface micro kinetics in OpenFOAM right now in the main releases (e.g., OF 11 and OF v2306)

Firstly, catalyticFoam can be found here: https://github.com/multiscale-cataly.../catalyticFoam. I have not personally used catalyticFoam before but it is widely published in the literature for handling surface reaction models.

Secondly, you can check out the DUO project http://www.detchem.com. I work on this project and unless there is something I misunderstand about your application, DUO can for sure handle monolith reactors (there are couple of papers published on CPOX in monolith reactors with DUO). There is contact information on the DETCHEM webpage or you can private message me for a contact at DETCHEM.

Good luck with your project.

Best regards,

Eric
Joao Bomfim likes this.
edaymo is offline   Reply With Quote

Old   July 16, 2023, 17:51
Default
  #36
New Member
 
João de Sousa Bomfim Neto
Join Date: Oct 2017
Location: Maranguape, Ceará, Brasil
Posts: 27
Rep Power: 8
Joao Bomfim is on a distinguished road
Quote:
Originally Posted by edaymo View Post
Dear Joao,

There is no easy way to simulate surface reactions in OpenFOAM. I have not tried this personally, but I wonder if zoneCombustion can be used with a cell zone comprising the cells immediately next to the surface you wish to treat as catalytic. There is also no built-in way for handling surface micro kinetics in OpenFOAM right now in the main releases (e.g., OF 11 and OF v2306)

Firstly, catalyticFoam can be found here: https://github.com/multiscale-cataly.../catalyticFoam. I have not personally used catalyticFoam before but it is widely published in the literature for handling surface reaction models.

Secondly, you can check out the DUO project http://www.detchem.com. I work on this project and unless there is something I misunderstand about your application, DUO can for sure handle monolith reactors (there are couple of papers published on CPOX in monolith reactors with DUO). There is contact information on the DETCHEM webpage or you can private message me for a contact at DETCHEM.

Good luck with your project.

Best regards,

Eric
Dear Eric, thank you very much for your reply. I was looking at catalyticFoam, it seems to be very reliable. I will make a private contact with you about the DUO project (how much more options I have, better hahaha).

In fact, I also need to study the theory behind catalysis, that's not my area of expertise and my "foundation" isn't very solid.

Thank you again!
Joao Bomfim is offline   Reply With Quote

Old   October 13, 2023, 07:05
Default
  #37
New Member
 
BISSAI NKAA
Join Date: Feb 2022
Posts: 16
Rep Power: 4
sante_junior is on a distinguished road
Hello everyone!
Thank you again to Mr. Eric for his hard work.
I've been using OpenFOAM-10 and the chtMRRF and mRRF solvers with their tutorials for a few weeks now. I have several questions that are bothering me. For a better understanding of the solvers, I used the Sandia D flame test case. I compared the reactingFoam and multiRegionReactingFoam solvers and I'm satisfied with the results compared to the experimental data. I would like to study the effect of radiative heat transfer using a refractory coating and investigate radiative heat losses to the external environment. My questions are as follows:
1/ How can I determine or set up the wall to absorb some of the energy produced by the flame?
2/ How is the wall function law used at the fluid-wall interface?
3/- Regarding Robin boundary conditions for heat losses, how can I obtain the temperature at the wall surface?
4/ How can I decompose heat transfer (Qr, Qt, and Qa) to a wall that is solely heated by thermal radiation?
5/And finally, how can I determine if conjugate heat transfer is activated during flame-wall interaction?

I really need your help.

Thank you sincerely!!!
sante_junior is offline   Reply With Quote

Old   October 13, 2023, 10:00
Default
  #38
Member
 
Eric Daymo
Join Date: Feb 2015
Location: Gilbert, Arizona, USA
Posts: 53
Rep Power: 12
edaymo is on a distinguished road
Hello sante_junior,

Glad that the solvers I worked on are checking out and working. Just want to say that if you move to OpenFOAM 11, the features of the chtMRF and mRRF solvers are now entirely incorporated into the Foundation release. So you can run with conjugate heat transfer LTS, with and without buoyancy forces.. psi or rho thermo... whatever combination you need.

To answer your specific questions:
1. Please look at the reverseBurner tutorial that comes with OpenFOAM, or the one I adapted for chtMRF https://github.com/TonkomoLLC/multiR...ls-OpenFOAM-10. You will notice that there is a G field in the 0 directory for the fluid; both the solid and fluid regions have files called radiatonProperties that define the options for the radiation model. Both the solid and gas regions have fvModels to enable the radiation model.

2. If you are talking about wall functions for turbulence i think there are many examples on the internet and tutorials in OpenFOAM for setting up the wall functions for turbulence. My main reason for not elaborating further here is that I am not sure if that is your question. I may have misunderstood you.

3. You can obtain the temperature at the wall surface in several ways. You can post process with ParaView, load just the fluid solid boundary mesh component (for discussion's sake, let's say it's called Fluid_to_Solid)... and when you render the wall you will see the fluid temperature at the wall. I suppose it is also possible to use functionObjects in OpenFOAM to record the temperature with probes at a specific wall location.

4. There should be a file in your results directory, qr, that records the radiative heat source term in units of W/m3 at various locations, including at the wall. If you setup Qdot in the functions part of your controlDict, you'll also save the reaction heat source source term. Again, see the reverseBurner tutorial, controlDict and system/Qdot tor setting up saving Qdot.

5. As to how you can know if CHT is working... If you have a low solid T (say 25C) and radiation is turned off... but the solid temperature is rising, it must be due to conjugate heat transfer.

I sincerely hope that i answered your questions. If not, feel free to reply again. If others on the forum have ideas please feel freel to chime in.

Thanks and best regards,

Eric
edaymo is offline   Reply With Quote

Old   October 14, 2023, 04:10
Default
  #39
New Member
 
BISSAI NKAA
Join Date: Feb 2022
Posts: 16
Rep Power: 4
sante_junior is on a distinguished road
Hi Mr Eric and thank you for your answers
In relation to the first answer, I am satisfied with the response.
1- In the "radiationProperties" file for the solid region, the absorptivity is zero. Does this mean that the refractory wall doesn't absorb any energy?
2- When I mentioned wall functions, I was referring to the one published by Von Karman and used by El Abbassi in one of his articles, whose DOI is https://doi.org/10.1615/THMT-18.1290
3- As for the third answer, could I share my test case here so that you can see how it's set up and if there's any advice from you on how to improve it, that would be very useful.
4- In the calculation directory, I find the term radiative heat source (qr) in units of W/m3 as well as the term reaction heat source (Qdot) in the fluid region. But in the solid region, I can't find qr . I don't know why. Can I have an idea of how to obtain qr in the solid region? As for the reverseBurner tutorial, it's ok for Qdot.
5- My refractory wall does indeed have a low temperature. If I disable radiation in the solid region's radiationProperties file, then I'll see the solid's temperature increased. I hope I've understood correctly.

Best regards!!!
sante_junior is offline   Reply With Quote

Old   October 14, 2023, 15:44
Default
  #40
Member
 
Eric Daymo
Join Date: Feb 2015
Location: Gilbert, Arizona, USA
Posts: 53
Rep Power: 12
edaymo is on a distinguished road
Hello sante_junior,

1. Absorptivity of zero means the solid is opaque. It should still participate in radiative heat transfer.

2. Please check out the settings for the turbulence fields in the reverseBurner tutorial. I believe this tutorial uses wall functions. Also, check out the Wolf Dynamics training on turbulence. He gives examples on how to use wall functions. The 2021 tutorial is here: http://www.wolfdynamics.com/training...e_2021_OF8.pdf. Newer versions may be on the Wolf Dynamics website.

3. Feel free to post your case - I will try to look at it in a timely manner. Others can check it out on the forum, too.

4. I am not sure how to save the radiative source term on the solid side. I am guessing you need to do this by modifying the turbulentTemperatureRadCoupledMixed BC. Perhaps you can start by printing the Qr field from a custom version of turbulentTemperatureRadCoupledMixed. If that works, you can try to save that value into a field. Perhaps others on this forum have addressed this matter before and know of a better solution?

5. You got it. Also be sure that there are no source terms in the solid, including external BC's that can raise or lower your solid temperature. A way to test this is with CHT off and radiation off, the solid should remain at a fixed value. Then if CHT is on but radiation is off, the only way heat can be added/removed from the solid is via conjugate heat transfer.

Hope this advice helps. Good luck on the path forward.

Best regards,
Eric
dlahaye likes this.
edaymo is offline   Reply With Quote

Reply

Tags
chtmultiregionfoam, conjugate heat transfer, openfoam, reactingfoam, reaction


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
[swak4Foam] how can use Cp and Cv in Swak variables? immortality OpenFOAM Community Contributions 18 December 9, 2016 01:04
Multiregion heat transfer Habibfateh OpenFOAM Programming & Development 0 February 18, 2014 15:53


All times are GMT -4. The time now is 21:25.