|
[Sponsors] |
Incorporating pyrolysis Model in chtMultiRegionFoam |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
May 7, 2019, 05:44 |
Incorporating pyrolysis Model in chtMultiRegionFoam
|
#1 |
New Member
Join Date: Dec 2015
Posts: 20
Rep Power: 10 |
Hi,
I am trying to add pyrolysis model in chtMultiRegionFoam (version-6). I am able to compile the new solver. But when I run my case, following error has been obtained. archanav@pc421-195:~/OpenFOAM/archanav-6/run/surfaceReaction1$ myChtMultiRegionFoam /*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 6 \\/ M anipulation | \*---------------------------------------------------------------------------*/ Build : 6 Exec : myChtMultiRegionFoam Date : May 07 2019 Time : 11:01:23 Host : "pc421-195" PID : 8019 I/O : uncollated Case : /home/archanav/OpenFOAM/archanav-6/run/surfaceReaction1 nProcs : 1 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10) allowSystemOperations : Allowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create fluid mesh for region region2 for time = 0 Create solid mesh for region region1 for time = 0 Create solid mesh for region region3 for time = 0 *** Reading fluid mesh thermophysical properties for region region2 Adding to thermoFluid Selecting thermodynamics package { type hePsiThermo; mixture reactingMixture; transport sutherland; thermo janaf; equationOfState perfectGas; specie specie; energy sensibleEnthalpy; } Selecting chemistryReader foamChemistryReader elements not defined in "/home/archanav/OpenFOAM/archanav-6/run/surfaceReaction1/constant/region2/reactions" Adding to rhoFluid Adding to UFluid Adding to phiFluid Adding to gFluid Adding to hRefFluid Adding to ghFluid Adding to ghfFluid Adding to turbulenceFluid Selecting turbulence model type RAS Selecting RAS turbulence model kEpsilon RAS { RASModel kEpsilon; turbulence on; printCoeffs on; Cmu 0.09; C1 1.44; C2 1.92; C3 0; sigmak 1; sigmaEps 1.3; } Adding to reactionFluid Selecting combustion model PaSR Selecting chemistry solver { solver EulerImplicit; method standard; } StandardChemistryModel: Number of species = 3 and reactions = 0 using integrated reaction rate Adding to radiationFluid Selecting radiationModel none Adding to KFluid Adding to dpdtFluid Adding to fieldsFluid Adding to QdotFluid Adding MRF No MRF models present Adding fvOptions *** Reading solid mesh thermophysical properties for region region1 Adding to thermos Selecting thermodynamics package { type heSolidThermo; mixture reactingMixture; transport constIso; thermo hConst; equationOfState rhoConst; specie specie; energy sensibleEnthalpy; } Selecting chemistryReader foamChemistryReader elements not defined in "/home/archanav/OpenFOAM/archanav-6/run/surfaceReaction1/constant/region1/reactions" Adding to radiations Selecting radiationModel opaqueSolid Selecting absorptionEmissionModel constantAbsorptionEmission Selecting scatterModel none Selecting sootModel none Adding fvOptions Creating finite volume options from "system/fvOptions" Selecting finite volume options model type scalarSemiImplicitSource Source: HeatSource - selecting all cells - selected 3595 cell(s) with volume 0.00068306205 Adding Pyrolysis model *** Reading solid mesh thermophysical properties for region region3 Adding to thermos Selecting thermodynamics package { type heSolidThermo; mixture reactingMixture; transport constIso; thermo hConst; equationOfState rhoConst; specie specie; energy sensibleEnthalpy; } Selecting chemistryReader foamChemistryReader elements not defined in "/home/archanav/OpenFOAM/archanav-6/run/surfaceReaction1/constant/region1/reactions" Adding to radiations Selecting radiationModel opaqueSolid Selecting absorptionEmissionModel constantAbsorptionEmission Selecting scatterModel none Selecting sootModel none Adding fvOptions Adding Pyrolysis model Selecting pyrolysisModel reactingOneDim Selecting region model functions none --> FOAM FATAL ERROR: index -1 out of range 0 ... 8216 From function void Foam::UList<T>::checkIndex(Foam::label) const [with T = int; Foam::label = int] in file /home/archanav/Documents/OpenFOAM/OpenFOAM-6/src/OpenFOAM/lnInclude/UListI.H at line 106. FOAM aborting #0 Foam:: error:: printStack(Foam:: Ostream&) at ~/Documents/OpenFOAM/OpenFOAM-6/src/OSspecific/POSIX/printStack.C:218 #1 Foam:: error:: abort() at ~/Documents/OpenFOAM/OpenFOAM-6/src/OpenFOAM/lnInclude/error.C:249 #2 Foam:: Ostream& Foam:: operator<< <Foam:: error>(Foam:: Ostream&, Foam:: errorManip<Foam:: error>) at ~/Documents/OpenFOAM/OpenFOAM-6/src/OpenFOAM/lnInclude/errorManip.H:85 (discriminator 4) #3 Foam:: UList<int>:: checkIndex(int) const at ~/Documents/OpenFOAM/OpenFOAM-6/src/OpenFOAM/lnInclude/UListI.H:106 #4 Foam:: UList<int>:: operator[](int) const at ~/Documents/OpenFOAM/OpenFOAM-6/src/OpenFOAM/lnInclude/UListI.H:201 #5 Foam:: regionModels:: regionModel1D:: initialise() at ~/Documents/OpenFOAM/OpenFOAM-6/src/regionModels/regionModel/regionModel1D/regionModel1D.C:90 (discriminator 2) #6 Foam:: regionModels:: regionModel1D:: regionModel1D(Foam:: fvMesh const&, Foam:: word const&, Foam:: word const&, Foam:: dictionary const&, bool) at ~/Documents/OpenFOAM/OpenFOAM-6/src/regionModels/regionModel/regionModel1D/regionModel1D.C:350 #7 Foam:: regionModels:: pyrolysisModels:: pyrolysisModel:: pyrolysisModel(Foam:: word const&, Foam:: fvMesh const&, Foam:: dictionary const&, Foam:: word const&) at ~/Documents/OpenFOAM/OpenFOAM-6/src/regionModels/pyrolysisModels/pyrolysisModel/pyrolysisModel.C:109 #8 Foam:: regionModels:: pyrolysisModels:: reactingOneDim:: reactingOneDim(Foam:: word const&, Foam:: fvMesh const&, Foam:: dictionary const&, Foam:: word const&) at ~/Documents/OpenFOAM/OpenFOAM-6/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C:569 #9 Foam:: regionModels:: pyrolysisModels:: pyrolysisModel:: adddictionaryConstructorToTable<Foam:: regionModels:: pyrolysisModels:: reactingOneDim>:: New(Foam:: word const&, Foam:: fvMesh const&, Foam:: dictionary const&, Foam:: word const&) at ~/Documents/OpenFOAM/OpenFOAM-6/src/regionModels/pyrolysisModels/lnInclude/pyrolysisModel.H:114 (discriminator 2) #10 Foam:: regionModels:: pyrolysisModels:: pyrolysisModel:: New(Foam:: fvMesh const&, Foam:: dictionary const&, Foam:: word const&) at ~/Documents/OpenFOAM/OpenFOAM-6/src/regionModels/pyrolysisModels/pyrolysisModel/pyrolysisModelNew.C:115 #11 Foam:: regionModels:: pyrolysisModels:: pyrolysisModelCollection:: pyrolysisModelCollection(Foam:: fvMesh const&) at ~/Documents/OpenFOAM/OpenFOAM-6/src/regionModels/pyrolysisModels/pyrolysisModel/pyrolysisModelCollection.C:85 #12 ? at ~/OpenFOAM/archanav-6/applications/solvers/heatTransfer/myChtMultiRegionFoam/createFields.H:14 #13 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" #14 ? at ??:? Aborted (core dumped) I am simulating an annulus flow in which region 1 is a horizontal solid rod (solid reaction happens here with the fluid), region 2 is the fluid flowing in the annulus and region 3 is the outside pipe. These modifications are done in the code /*------------- createSolidFields.H-------------------*\ PtrList<regionModels:: pyrolysisModels:: pyrolysisModel>tpyrolysis(solidRegions.size()); forAll(solidRegions, i) { Info<< " Adding Pyrolysis model\n" << endl; tpyrolysis.set ( i, regionModels:: pyrolysisModels:: pyrolysisModel:: New(solidRegions[i]) ); IOdictionary additionalControlsDict ( IOobject ( "additionalControls", runTime.constant(), solidRegions[i], IOobject:: MUST_READ_IF_MODIFIED, IOobject:: NO_WRITE ) ); volScalarField Qdot ( IOobject ( "Qdot", runTime.constant(), solidRegions[i], IOobject:: READ_IF_MODIFIED, IOobject:: AUTO_WRITE ) solidRegions[i], dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime,0.0) ); Switch solvePyrolysisRegion ( additionalControlsDict.lookupOrDefault<bool>("solv ePyrolysisRegion",true) ); } /*----------------------------------------------------------------------*\ /*------------- setSolidFields.H-------------------*\ regionModels:: pyrolysisModels:: pyrolysisModelCollection& pyrolysis = tpyrolysis[i]; /*----------------------------------------------------------------------*\ in main code pyrolysis.evolve(); is added I don't know how to tackle this problem as I am new to OpenFOAM and C++language. I would be grateful, If anyone could help me to solve this problem. Looking forward for reply. Regards Archana |
|
May 12, 2019, 12:42 |
|
#2 |
New Member
Join Date: Dec 2015
Posts: 20
Rep Power: 10 |
I solved above problem.
|
|
July 22, 2019, 11:52 |
|
#3 |
New Member
Join Date: Oct 2017
Posts: 14
Rep Power: 9 |
Hi there,
I am new to openfoam and I'm trying to do something similar. Did you manage to read the reactions into the solid region from the "reactions" dictionary or you went another route? I managed to read a composition into the solid region using "solidReactionThermo.H" but I can't for the life of me figure out how to read the reactions, not to mention the actual reaction rates to put into an Y equation for the solid region. Cheers |
|
July 22, 2019, 22:44 |
|
#4 | |
Senior Member
|
Hello Paulo,
Hereby some hints for you to follow on. Take a look at this blog: http://sourceflux.de/blog/howto-writ...n-in-openfoam/ Here you can find - significant note in comment section: Quote:
|
||
July 23, 2019, 01:25 |
|
#5 |
Member
Zhiheng Wang
Join Date: Mar 2016
Posts: 72
Rep Power: 10 |
Hi how did you add pyrolysis to chtMultiRegion Foam and how did the problem was solved can you reply ??
By the way why did not you Used fireFoam ??? |
|
July 23, 2019, 01:28 |
|
#6 |
Member
Zhiheng Wang
Join Date: Mar 2016
Posts: 72
Rep Power: 10 |
How did you solved and what part you have modified ???
|
|
July 23, 2019, 01:41 |
|
#7 |
Member
Atul Kumar
Join Date: Dec 2015
Location: National Centre for Combustion Research and Development
Posts: 48
Rep Power: 10 |
Where was the problem ??? I have tried the same thing, This sort of problem can also be tried using fireFOAM and reactingParcelFilmFoam. Did you tried so
|
|
July 23, 2019, 08:33 |
|
#8 | |||
Senior Member
|
In my case, I developed a solver for pyrolysis based on fireFOAM. For simulating two regions, I implemented "compressible::turbulentTemperatureCoupledBaffleMix ed" condition as stated below:
Quote:
Quote:
Quote:
If above steps are followed, one can implement the multiple regions (chtMultiRegionFoam) in pyrolysis solver. Hope it helps. Thank you ^^ |
||||
November 16, 2019, 06:29 |
|
#9 |
New Member
Saeng-min-Kinley
Join Date: Mar 2016
Location: King Mongkut's University of Technology Thonburi (KMUTT)
Posts: 11
Rep Power: 10 |
There will be a difference in solution if you create Two Regions by splitMesh and if Your create Region by extrudetoRegionMesh.
__________________
Saeng-min-Kinley. |
|
November 22, 2019, 05:15 |
|
#10 | |
Senior Member
|
In my case, there are 2 regions "furnace" and "oven".
"Furnace" treated with heat equation only. And the "oven" involves pyrolysis. The resultant heat outflow from the furnace is introduced inside "oven" using coupled boundary condition. And for this reason to split 2 zones, I implemented "splitMeshRegions" command. Is there any other command to be used promptly? Quote:
Thank you |
||
July 9, 2020, 10:10 |
|
#11 |
New Member
Armin Alavi
Join Date: May 2019
Location: Tehran
Posts: 22
Rep Power: 7 |
hello Archana
I am struggling with a problem same to yours. I want to implement the fireFoam pyrolysis model in chtMultiRegionFoam. May I ask how did you manage to do so? Thank you in advance Armin |
|
July 10, 2020, 02:53 |
|
#12 |
Senior Member
|
Hello Armin,
Kindly choose the source and the target for the new combined solver. FireFoam is more complicated in the sense of library dependencies as well as the overall solution algorithm, then you should port the chtMultiRegionFoam into fireFoam. Above comments may clearly give you some idea. Did you got It? Thank you ^^ |
|
July 10, 2020, 04:29 |
|
#13 |
New Member
Armin Alavi
Join Date: May 2019
Location: Tehran
Posts: 22
Rep Power: 7 |
hello Kummi
First of all thank you for your reply. Yes I get the general idea, but I have one more question if you will. you are right about library dependencies and complexity of the fireFoam solver. the below code is a part of fireFoam.C that solves the solid fuel part: if(solvePyrolysisRegion) { pyrolysis.evolve(); } Am I right? the rest is similar to what chtMultiRegionFoam solves for fluid part. In your opinion is it right to just add the pyrolysis region solver(libraries and needed classes included) to the chtMultiRegion Solver? |
|
July 10, 2020, 05:16 |
|
#14 |
New Member
Armin Alavi
Join Date: May 2019
Location: Tehran
Posts: 22
Rep Power: 7 |
I am sorry to trouble you, but I have one more question. The pyrolysis model which OpenFOAM provides only interacts with surface films, If I am right, that is why you have to define your solid region by extrudeMesh. I want to have a volume of solid. Is there a way to make this model work on 3d arbitrary mesh?
Thank you Armin |
|
July 10, 2020, 05:45 |
|
#15 | |||||
Senior Member
|
Hello Armin,
Yes you are right. FireFOAM solver rely on pyrolysis based on the keyword pyrolysis.evolve(). It was resolved based on regionModel (based on coupled Boundary condition - using extrudetoRegionMesh) under the source file reactingOneDim. Its dependent libraries for thermo, transport and other properties are declared in thermophysicalproperties under the file names like solidChemistryModel, basicSolidThermo and so on [kindly follow the keyword "solid" and header files accordingly to understand] Quote:
Quote:
Quote:
Quote:
Quote:
Thank you |
||||||
July 10, 2020, 09:25 |
|
#16 |
New Member
Armin Alavi
Join Date: May 2019
Location: Tehran
Posts: 22
Rep Power: 7 |
Hello Kummi,
Thank you very much for your precise advice. I will look into it. Although another thing started to interest me. Do you suggest that , if I use the fireFoam solver without any changes in the code with splitMeshRegions utility it would work just fine with suitable boundary conditions implemented. If that statement is right then I have no need to merge two solvers. Thank you very much Armin |
|
July 10, 2020, 10:59 |
|
#17 | |
Senior Member
|
Hello Armin,
You are welcome. Quote:
But if its fluid/solid blocks, then no other go, you need to merge. May I know, WHat kind of problem you are gonna approach ? Thank you |
||
July 11, 2020, 04:22 |
|
#18 |
New Member
Armin Alavi
Join Date: May 2019
Location: Tehran
Posts: 22
Rep Power: 7 |
Hello Kummi,
To be more specific, my simulation consists of two regions, a solid polymer and a fluid flow. The fluid is a hot molten metal that interacts with the polymer causing it to pyrolise. In this interaction, polymer degrades into residual gases, the residual gases are diffused into the fluid region, meanwhile the molten metal eats it's way through the polymer by pyrolysing it. From what you said about fluid/solid interaction, I think the solution is to merge the two solvers, Am I right? Thank you Armin |
|
July 11, 2020, 04:56 |
|
#19 |
Senior Member
|
Hello Armin,
The energy in the form of heat is supplied by hot molten metal in fluid state. This source of energy from fluid causes the solid polymer to pyrolise. Its perfect fluid/solid interaction as you say. So, its not about 2 regions (like chtmultiregionFOAM).. Its all about multiphase problem with fluid/solid interaction. Did I got it right ? |
|
July 11, 2020, 05:37 |
|
#20 |
New Member
Armin Alavi
Join Date: May 2019
Location: Tehran
Posts: 22
Rep Power: 7 |
Hello again
Yes you got it right about the multiphase problem + fluid/solid interaction but yet I don't understand how isn't it a 2 region problem. Is it because fields inside the solid part do not need to be solved? and the fluid/solid surface interactions are only important? |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|
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 |