|
[Sponsors] |
Need suggestions about technical difficulties - Drying + Pyrolysis of coal particle |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#1 | |||
Senior Member
|
Dear Foamers,
In OpenFOAM by default, the FireFOAM is well supported for solid pyrolysis modelling. With that in mind, I managed to built my solver for a modified version of pyrolysis (for dry coal - without moisture) based on FireFOAM. Now in the case of wet coal pyrolysis, the pyrolysis model should be developed [absence of air - no combustion] involving the influence of moisture drying. Quote:
~/OpenFOAM/OpenFOAM-2.1.1/cokeovenGasFOAM/regionModels/pyrolysisModels/reactingOneDim Quote:
Quote:
How to proceed with this problem further, (i) Should I need to couple drying model externally ==> such that it should satisfy the real flow physics (Pyrolysis and Drying occur simultaneously) ? (ii) Should I need to create sub models based on DRYING ? I would really appreciate if anyone could give me a hint where to look at or point me about the implementation in OpenFOAM. Thank you !! Last edited by Kummi; August 16, 2019 at 02:50. |
||||
![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
|
Following the above post, I would like to describe as how moisture drying need to be modeled in my case.
~ In my case of drying, the heat sink model is based on the assumption that drying occurs at fixed boiling temperature (T=100deg) in infinitely thin zone. The heat sink assumes that there is no resistance to mass transfer and that the water vapor instantaneously leaves the particle. The drying rate is then completely controlled by the heat transfer. ~ conditional test on the temperature equation calculating the evaporation rate. If the temperature is equal to the boiling temperature, the evaporation rate is calculated so that the evaporation rate times the heat of vaporization matches the energy necessary to heat the local element. Quote:
The evaporation rate is then introduced into the energy equations with corrected temperature as a source term. Such kind of above equations for MOISTURE DRYING should be introduced within PYROLYSIS section in OpenFOAM |
||
![]() |
![]() |
![]() |
![]() |
#3 |
Member
Vitor Monteiro
Join Date: Nov 2020
Posts: 32
Rep Power: 5 ![]() |
Have you solve your case?
I'm facing the same problem while modeling the drying of a generic biomass. The openfoam8 model (interface...) can't convert h2o.particles to h2o.gas species. All my biomass species (fibers.particles + h2o.particles) are "evaporated" simultaneously, instead of only h2o.particles specie. |
|
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
|
Not really solved this case..
Did you solve your biomass based on Arrhenius equations ? https://www.researchgate.net/publica...ed_on_OpenFOAM https://www.researchgate.net/publica...tallPack_10tar There is a biomass solver in the link. Hope that helps you Thank you |
|
![]() |
![]() |
![]() |
![]() |
#5 |
Member
Vitor Monteiro
Join Date: Nov 2020
Posts: 32
Rep Power: 5 ![]() |
Actually, no.
I'm gonna implement the biomass reactions with Arhenius, yes. But, for the moment, I'm just using the evaporating model of OF8 (bubbleColumEvaporating tutorial) to model the evaporation of the moisture of my biomass (fiber+h2o). However, interfaceComposition.air is "evaporating" both fiber.particles and H2O.particles. I would like it to evaporate just the H2O.particles specie, where H2O.particles -> H2O.air. Could you help me? thermophysicalProperties.particles Code:
/*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 8 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object thermophysicalProperties.particles; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // /* https://www.openfoam.com/documentation/guides/latest/api/classFoam_1_1rPolynomial.html This polynomial for the reciprocal of the density provides a much better fit than the equivalent polynomial for the density and has the advantage that it support coefficient mixing to support liquid and solid mixtures in an efficient manner. 1/rho = C[0] + C[1]*T + C[2]*sqr(T) - C[3]*p - C[4]*p*T */ thermoType { type heRhoThermo; mixture multiComponentMixture; transport const; thermo hConst; equationOfState rPolynomial;//rhoConst; specie specie; energy sensibleInternalEnergy; } //defaultSpecie bio; //ash; species ( fiber H2O ); //inertSpecie ash; fiber { specie { molWeight 46; } equationOfState { //rho 470; // ku2015: 470 C (0.00212766 0 0 0 0); } thermodynamics { Cp 1500; // ku2015: 1500 Hf 0; } transport { mu 0; Pr 1; } } H2O { specie { molWeight 18.0153; } equationOfState { //C (0.001 0 0 0 0); // 1/1000 = 0.001 C (0.001278 -2.1055e-06 3.9689e-09 4.3772e-13 -2.0225e-16); // pure water OpenFoam (This fit is based on the small amount of data which is freely available for the range 20-65degC and 1-100bar.) } thermodynamics { Cp 2357; // valor EES à 820°C Hf -1.5879e+07; // heat of fusion [J/kg?] // SINAL? 333600 //Cv 4195; // não precisa no hConst } transport { mu 4.113e-4; // valor EES à 820°C // 3.645e-4; Pr 0.8801; // valor EES à 820°C // 2.289; } } Code:
/*--------------------------------*- C++ -*----------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 8 \\/ M anipulation | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object phaseProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // //type basicMultiphaseSystem; type interfaceCompositionPhaseChangeMultiphaseSystem; phases (particles air areia); referencePhase air; particles { type multiComponentPhaseModel;//purePhaseModel; //type reactingPhaseModel; diameterModel constant; constantCoeffs { d 5e-3; // ku2015: 1.5e-3; } alphaMax 0.7; residualAlpha 1e-6; //residualAlpha 0; } air { //type purePhaseModel; type reactingPhaseModel; diameterModel constant; constantCoeffs { d 1; // não influencia (fase contínua) } residualAlpha 0; } areia { type purePhaseModel; //type multiComponentPhaseModel; diameterModel constant; constantCoeffs { d 0.25e-3; // ku2015: 1.5e-3 } alphaMax 0.7; residualAlpha 1e-6; //residualAlpha 0; } blending { default { //Blending type none is used when one phase is always dispersed into another. This used when simulating gas-solid systems (like fluidized beds); spraying systems where droplets are always dispersed in the gas;or liquid-solid systems. type none; continuousPhase air; } } surfaceTension ( (air and particles) { type constant; sigma 0; } (air and areia) { type constant; sigma 0; } ); aspectRatio (); interfaceCompression (); interfaceComposition.air ( (particles and air) { type saturated; species ( H2O ); Le 1.0; saturationPressure { type ArdenBuck; } } ); interfaceComposition.particles ( ); interfaceComposition.areia ( ); diffusiveMassTransfer.air ( (particles in air) { type Frossling; Le 1.0; } (air in particles) { type spherical; Le 1.0; } ); diffusiveMassTransfer.areia (); diffusiveMassTransfer.particles ( /*(particles in air) { type Frossling; Le 1.0; }*/ ); drag ( (particles in air) { type GidaspowErgunWenYu; residualRe 1e-3; swarmCorrection { type none; } } (areia in air) { type GidaspowErgunWenYu; residualRe 1e-3; swarmCorrection { type none; } } ); virtualMass ( ); /* heatTransfer ( (particles in air) { type RanzMarshall; residualAlpha 1e-4; } (areia in air) { type RanzMarshall; residualAlpha 1e-4; } ); */ heatTransfer.air ( (particles in air) { type RanzMarshall; residualAlpha 1e-4; } /*(air in particles) { type RanzMarshall; residualAlpha 1e-4; }*/ (areia in air) { type RanzMarshall; residualAlpha 1e-4; } /*(air in areia) { type RanzMarshall; residualAlpha 1e-4; }*/ ); heatTransfer.particles ( (particles in air) { type spherical; residualAlpha 1e-4; } /*(air in particles) { type RanzMarshall; residualAlpha 1e-4; }*/ ); heatTransfer.areia ( (areia in air) { type spherical; residualAlpha 1e-4; } /*(air in areia) { type RanzMarshall; residualAlpha 1e-4; }*/ ); phaseTransfer // water.particles -> h2o.gas? ( /*(particles in particles) { type reactionDriven; reactingPhase particles; targetPhase particles; species (carvao); }*/ ); lift ( ); wallLubrication ( ); turbulentDispersion ( ); // Minimum allowable pressure pMin 10000; // versão 8 // ************************************************************************* // |
|
![]() |
![]() |
![]() |
![]() |
#6 | ||
Member
Vitor Monteiro
Join Date: Nov 2020
Posts: 32
Rep Power: 5 ![]() |
Quote:
Quote:
By the way, I don't know how to implement evaporation of water by Arrhenius equation. It would be a constant rate of evaporation? What are the parameters? (A and E, etc). |
|||
![]() |
![]() |
![]() |
![]() |
#7 | |
Senior Member
|
Hi,
I haven't worked with interfaceCompositionPhaseChangeMultiphaseSystem. interfaceComposition.air is "evaporating" both fiber and H2O but you need only H2O to be evaporated right ? Under interfaceComposition.air, you have given only specie as H2O, but still fiber evaporates ? In thermophysicalProperties.particles, you have declared species as both fiber and H2O with properties. But I haven't seen fiber used anywhere in the phase properties. I dont know the reactions used here. With my abstract thoughts what can I say is, why don't you use only specie as H2O in thermophysicalProperties and give a try. You can implement evaporation of water by Arrhenius equation. You can check in the biomassGasification solver, where you go into thermphysicalModel/solid/reaction/reactionRate/solidEvaporationRate. Quote:
|
||
![]() |
![]() |
![]() |
![]() |
#8 | |||
Member
Vitor Monteiro
Join Date: Nov 2020
Posts: 32
Rep Power: 5 ![]() |
Quote:
Quote:
Quote:
However the moisture (H2O.particles) I would like to use some "standard" model, once it is less complex, and I wouldn't need to find experimental parameters (E and A constants of Arrhenius law for water evaporating, for exemple). Besides that, it is important that H2O.particles remains near fiber.particles to handle the reaction H2O + C -> CO + H2. |
||||
![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
|
I don't know the physics behind your problem. So I couldn't able to judge anything at this moment. In real time applications, will the both fiber and water evaporate ? Or only water ? And what's your application exactly ?
Could you please write your pyrolysis heterogeneous reaction here ? Thank you |
|
![]() |
![]() |
![]() |
![]() |
#10 | |
Member
Vitor Monteiro
Join Date: Nov 2020
Posts: 32
Rep Power: 5 ![]() |
Quote:
Only water must evaporate! The solid specie (fiber.particles) will be implemented to react and produce gas through the pyrolysis reaction below: fiber.particles -> (n1)*H2O.gas + (n2)*O2.gas + (n3)*CH4 + ... However, I'm not worried about this reaction for this time. I've already implemented that adding source terms of species. For this time, I just want that the OF evaporation model just evaporates H2O.particles -> H2O.gas. Do you know how can I "lock" the evaporation of fiber.particles specie? |
||
![]() |
![]() |
![]() |
![]() |
#11 | |
Senior Member
|
As for now, I know coalChemistryFoam is designed to simulate gasification in fluidised bed, but I haven't worked with it yet. Concerning your pyrolysis reaction, just curious to know what is your base solver ? it should be fireFOAM. I used fireFOAM for my reaction,
Quote:
And in thermophysicalProperties.particles, you mentioned species as fiber and H2O, so if I'm not wrong fiber is a solid, H2O is in liquid phase. For solid species in OpenFOAM, the thermo type is heSolidThermo. So how you are making OpenFOAM understand that fiber is solid and H2O is liquid ? Something is wrong here. Under thermophysicalProperties.particles (thermophysicalProperties for solid phase), you should include only solid species, but in your case you have included H2O too, that's contradictory. Feel free to get back to me for further discussion. Thank you |
||
![]() |
![]() |
![]() |
![]() |
#12 | |||||||
Member
Vitor Monteiro
Join Date: Nov 2020
Posts: 32
Rep Power: 5 ![]() |
Quote:
Quote:
Quote:
Quote:
Quote:
I didn't know I had to use only solid species. When I saw at official site I found this: Quote:
Quote:
|
||||||||
![]() |
![]() |
![]() |
![]() |
#13 |
Senior Member
|
So your case is something like solid is packed in a compact domain and when solid gets pyrolised, gas gets evolved and interact between the solids in the domain. And so it's Eulerian-Eulerian.
Currently such problem was not solved in OpenFoam yet. If you want to develop this model, you might start developing based on icoReactingMultiphaseInterFoam. Its a multiphase models used for interaction between 2 fluids, solid and fluid. In solid melting tutorial, they implemented solid~liquid modelling. In your case, it should be solid~gas modelling. The tutorial used pureMixture, in your case its reactingMixture since pyrolysis involves. And more other settings to goo.. Hope it helps. Sorry for late response. Thank you |
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Euler-Euler vs. Lagrangian particle tracking for biomass pyrolysis in a rotary kiln | audrey | Main CFD Forum | 0 | February 22, 2011 12:09 |
DPM UDF particle position using the macro P_POS(p)[i] | dm2747 | FLUENT | 0 | April 17, 2009 01:29 |
Coal Particle Tracking Parameters | Michael | FLUENT | 1 | December 1, 2007 14:51 |
Coal Particle Tracking | michael | FLUENT | 4 | November 9, 2007 07:27 |
CFX5.7 coal combustion and other reaction particle | Leosding | CFX | 0 | April 21, 2004 08:58 |