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

Incorporating pyrolysis Model in chtMultiRegionFoam

Register Blogs Community New Posts Updated Threads Search

Like Tree13Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   July 11, 2020, 06:04
Default
  #21
Senior Member
 
Kumaresh
Join Date: Oct 2016
Posts: 355
Rep Power: 12
Kummi is on a distinguished road
Send a message via Yahoo to Kummi
Hi,
As per your explanation above, you have just one domain/region. Fluid/solid interaction takes place inside one domain. In your case, the source of energy is from fluid, thereby pyrolysing the solid, release the energy from solid and interacts with fluid itself.

So, you need to fix appropriate governing equations for fluid model with heat source terms. --> (1)
Accordingly, use coupled boundary condition to transfer energy from fluid to solid --> (2)
the necessary equations inside solid model simulates pyrolysis and release exothermic heat to fluid--> (3)

Here (1) and (3) solves fluid and solid model
(2) - Interactions using boundary (but there are more realistic models for interactions)

In case of multiregion models, (1) and (3) will be solved in separate domains. For multiregion models, OpenFOAM was constructed with block matrices (separate blocks to solve separate set of implicit/explicit equations for solid and fluid models).
Think from application point of view please. Consider a heated rod (solid) in the atmosphere (fluid), convection into acccount - perfectly 2 regions - equs. are solved separately in 2 regions.
Another example as same as yours, pyrolysis in the domain - interactions between solid and released pyrolytic gases - here it cant be multiregion problem, because both solid and fluid matters are investigated in the same domain.

Hope you are clear now. If not, let me know please. Kindly look into the examples of reactingMultiphaseEulerFoam
Thank you
Kummi is offline   Reply With Quote

Old   July 11, 2020, 08:52
Default
  #22
New Member
 
Armin Alavi
Join Date: May 2019
Location: Tehran
Posts: 22
Rep Power: 7
ArminAlavi is on a distinguished road
Hi,
Thank you very much, I am looking up the test cases of the solver you mentioned. I think I get what you mean. You suggest that solid and fluid are the parts of one computational domain but treated as two separate phases, Am I right? I don't have the experience with two fluid models such as Eulerian model. I worked VOF model (interFoam) that solves an averaged equation. I think in two fluid models, two equation are solved and they are linked together via source terms of momentum, energy and mass. Although I didn't understand one part,
Quote:
Accordingly, use coupled boundary condition to transfer energy from fluid to solid --> (2)
Is this statement true if I use only one computational domain? Aren't boundary conditions the coupling element between two separate regions?
ArminAlavi is offline   Reply With Quote

Old   July 11, 2020, 13:12
Default
  #23
Senior Member
 
Kumaresh
Join Date: Oct 2016
Posts: 355
Rep Power: 12
Kummi is on a distinguished road
Send a message via Yahoo to Kummi
Hello Armin,
Quote:
You suggest that solid and fluid are the parts of one computational domain but treated as two separate phases
Yes you are right here. Since you worked with VOF model, you might have better exposure to work with multiphase flow. With this move ahead, learn OpenFoam techniques then and there, you will find a way for sure.

Quote:
Accordingly, use coupled boundary condition to transfer energy from fluid to solid --> (2)
Sorry, I'm wrong here. Coupled boundary condition can be used between 2 or more regions only. In case of multiphase (1 domain) problem, there are many interactions models, which you might have verified. Should chose the interaction model legitimately depending upon the problem type.
Thank you
ArminAlavi likes this.
Kummi is offline   Reply With Quote

Old   July 12, 2020, 09:53
Default
  #24
New Member
 
Armin Alavi
Join Date: May 2019
Location: Tehran
Posts: 22
Rep Power: 7
ArminAlavi is on a distinguished road
Hello Kummi,
Thank you very much. I have a lot to do and experience with the vision you gave me. I will try my best to put that in work.
Best regards,
Armin
Kummi likes this.
ArminAlavi is offline   Reply With Quote

Old   November 12, 2021, 11:11
Default
  #25
New Member
 
Alexis
Join Date: Oct 2021
Posts: 7
Rep Power: 5
alexisq is on a distinguished road
Hi everyone,

I'm currently trying to do something similar and I have come to the point that I should create my own solver as well. Let me explain you quickly my case. They are three solid regions pyrolysing and producing gases into a fluid region. Then these gases are burning together. My goal is to study how much of the solid has burnt.

I tried implementing pyrolysis in chtMultiRegionFoam on OpenFoam 7 thanks to the post of Archana.V but there are always errors while compiling the solver.

I don't know what to do with the regionModels:: pyrolysisModels:: pyrolysisModelCollection& pyrolysis = tpyrolysis[i]; because there is no setSolidFields.H
I tried adding the line in createPyrolysisModel.H but it gives me "pyrolysis" unused variable and invalid initialization.


Does someone have a running solver that could help me a lot?
By the way, there is maybe a simpler way to do it but I'm lost.

Thanks in advance,
alexis
alexisq is offline   Reply With Quote

Old   November 15, 2021, 10:35
Default
  #26
Senior Member
 
Kumaresh
Join Date: Oct 2016
Posts: 355
Rep Power: 12
Kummi is on a distinguished road
Send a message via Yahoo to Kummi
Quote:
Originally Posted by alexisq View Post
Hi everyone,

I'm currently trying to do something similar and I have come to the point that I should create my own solver as well. Let me explain you quickly my case. They are three solid regions pyrolysing and producing gases into a fluid region. Then these gases are burning together. My goal is to study how much of the solid has burnt.

I tried implementing pyrolysis in chtMultiRegionFoam on OpenFoam 7 thanks to the post of Archana.V but there are always errors while compiling the solver.

I don't know what to do with the regionModels:: pyrolysisModels:: pyrolysisModelCollection& pyrolysis = tpyrolysis[i]; because there is no setSolidFields.H
I tried adding the line in createPyrolysisModel.H but it gives me "pyrolysis" unused variable and invalid initialization.


Does someone have a running solver that could help me a lot?
By the way, there is maybe a simpler way to do it but I'm lost.

Thanks in advance,
alexis
Your case is somewhere similar to biomassgasification solver and its possible to implement in OpenFOAM.
Firstly, I hope you have created 3 pyrolysis solid regions in OF, which is very straightforward.

Expand your errors and issues here ! We will find a way !
Good luck
Kummi is offline   Reply With Quote

Old   November 15, 2021, 13:39
Post
  #27
New Member
 
Alexis
Join Date: Oct 2021
Posts: 7
Rep Power: 5
alexisq is on a distinguished road
Quote:
Originally Posted by Kummi View Post
Your case is somewhere similar to biomassgasification solver and its possible to implement in OpenFOAM.
Firstly, I hope you have created 3 pyrolysis solid regions in OF, which is very straightforward.

Expand your errors and issues here ! We will find a way !
Good luck

Hi Kummi,
Thanks for your help.

1. The 3 pyrolysis regions are created using splitMeshRegions -overwrite
Overall, the mesh and geometry are well defined.

2. There is no error with the lines added in createSolidFields.H

3. Here is the file createPyrolysisModel.H

forAll(solidRegions, i)
{
Info<< "Creating pyrolysis model" << endl;

regionModels:: pyrolysisModels:: pyrolysisModelCollection& pyrolysis = tpyrolysis;
}

4. Here is the readPyrolysisTimeControls.H

scalar maxDi = tpyrolysis.maxDiff(); tpyrolysis was suggested instead of pyrolysis

5. I try pyroltysis.evolve() in the main code but I used tpyrolysis.evolve() since it was also suggestde instead.

6. Here are the errors I have

error: invalid initialization of reference of type
5 | isModels:: pyrolysisModelCollection& pyrolysis = tpyrolysis[i];

warning: unused variable ‘pyrolysis’ [-Wunused-variable]
5 | regionModels:: pyrolysisModels:: pyrolysisModelCollection& pyrolysis = tpyrolysis[i];

error: ‘class Foam::PtrList<Foam::regionModels:: pyrolysisModels:: pyrolysisModel>’ has no member named ‘maxDiff’
32 | scalar maxDi = tpyrolysis.maxDiff();

error: ‘class Foam::PtrList<Foam::regionModels:: pyrolysisModels:: pyrolysisModel>’ has no member named ‘evolve’
86 | tpyrolysis.evolve();

7. By the way, about the pyrolysis. I have two issues.
- I only have Solid = gas and not Solid = solid + gas. It's not working with the model from the oppositeBurningPanles tutorial. There is pyrolysisChemistryModel.H but I don't know neither if it can help nor how it works.
- As a consequence I have no way to track the gases, there is no field associated. So they can be used in the combustion reaction in the fluid region.

8. All the files are in the .zip folder

If you want, we can discuss in private to avoid a long conversation in the thread.

Thanks,
alexis
Attached Files
File Type: zip Mysolver.zip (173.6 KB, 4 views)
alexisq is offline   Reply With Quote

Old   November 17, 2021, 01:55
Default
  #28
Senior Member
 
Kumaresh
Join Date: Oct 2016
Posts: 355
Rep Power: 12
Kummi is on a distinguished road
Send a message via Yahoo to Kummi
Hello Alexis,

1. Hope you made 3 pyrolysis regions using the following commands:
blockMesh >> topoSet >> splitMeshRegions -cellZones -overwrite

Points 2-6 are bit confusing unless I understand your problem better.

7. Are you looking for such kind of reactions as mentioned below?
Quote:
species
(
PMMA
);

gaseousSpecies
(
gas
);

reactions
{
charReaction
{
type irreversibleArrheniusSolidReaction;
reaction "PMMA = gas";
A 1.2e6;
Ta 11300.57;
Tcrit 400;
}
}
No solid product formed here.. non-charring process

8. From your solver attached, I couldn't able to understand the application behind your work. But no worries, this is how every researcher try to explore the problem.
I'm hereby attaching my part of the code designed for pyrolysis. Hope it helps.

Yes, you can contact me by yahoo mail - found in my profile page. However we discuss in private, try to update your progress here in this forum page, so others might get benefited in nearby future.
Feel free to contact. Thank you. Good luck
Attached Files
File Type: gz pyrosolid.tar.gz (584 Bytes, 11 views)
Kummi is offline   Reply With Quote

Old   April 1, 2022, 16:07
Default Pyrolysis and flame spread of PMMA
  #29
New Member
 
Argha Bose
Join Date: Feb 2022
Posts: 4
Rep Power: 4
Abose is on a distinguished road
hey kummi,
I am new to both OpenFOAM and C++, I am trying to simulate flame spread over PMMA. Let me elaborate,
I have a PMMA surface that is thermally thick now I would like to set it on fire. I was thinking of using fireFOAM in the OpenFOAM version2112. Do I require a solver merger if I want to simulate a case of pyrolysis followed by thermal oxidation of fuel? or is it sufficient to incorporate necessary boundary conditions?

now the second part of my doubt is that I want to run the pilot flame for a fixed amount of time till the pyrolytic gases create a self-sustaining flame at the surface. I haven't come across such a condition yet. Is it possible to incorporate this?
Abose is offline   Reply With Quote

Old   April 2, 2022, 00:02
Default
  #30
Senior Member
 
Kumaresh
Join Date: Oct 2016
Posts: 355
Rep Power: 12
Kummi is on a distinguished road
Send a message via Yahoo to Kummi
Hello Abose,
PMMA is non-charring process right ?
PMMA --> GAS
PMMA undergoes both pyrolysis and thermal oxidation ? If then (if only solid), no need to merge with fluid part.
In fireFoam-dev ☞ charOxidation model will give you better idea.

Regarding pilot flame, I haven't done that yet either. In general, fluid model is necessary here to capture the flame. In order to implement in solid model, there might be some other way, not sure though. Should check it.
Thank you
Kummi is offline   Reply With Quote

Old   April 2, 2022, 02:05
Default
  #31
New Member
 
Argha Bose
Join Date: Feb 2022
Posts: 4
Rep Power: 4
Abose is on a distinguished road
Quote:
Originally Posted by Kummi View Post
Hello Abose,
PMMA is non-charring process right ?
PMMA --> GAS
PMMA undergoes both pyrolysis and thermal oxidation ? If then (if only solid), no need to merge with fluid part.
In fireFoam-dev ☞ charOxidation model will give you better idea.

Regarding pilot flame, I haven't done that yet either. In general, fluid model is necessary here to capture the flame. In order to implement in solid model, there might be some other way, not sure though. Should check it.
Thank you
yes, PMMA combustion is a non-charring process, where the gas evolved during pyrolysis is burnt in the fluid region.

I am trying to simulate wall fire where we are taking PMMA as a solid region and there is a fluid region.
Abose is offline   Reply With Quote

Old   April 2, 2022, 03:11
Default
  #32
Senior Member
 
Kumaresh
Join Date: Oct 2016
Posts: 355
Rep Power: 12
Kummi is on a distinguished road
Send a message via Yahoo to Kummi
Quote:
Originally Posted by Abose View Post
yes, PMMA combustion is a non-charring process, where the gas evolved during pyrolysis is burnt in the fluid region.

I am trying to simulate wall fire where we are taking PMMA as a solid region and there is a fluid region.
Well then fireFoam is the suitable solver in your case
Kummi 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
Coupling RPI wall boiling model with population balance model in Fluent softice2006 Fluent Multiphase 1 April 19, 2023 03:09
manualInjection model in sprayFoam Mentalo OpenFOAM Running, Solving & CFD 1 April 2, 2014 10:29
FireFOAM Pyrolysis Model erk070 OpenFOAM 1 September 30, 2013 11:40
Water subcooled boiling Attesz CFX 7 January 5, 2013 04:32
Problems bout CFD model of biomass gasification, Downdraft gasifier wanglong FLUENT 2 November 26, 2009 00:27


All times are GMT -4. The time now is 18:50.