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

Need suggestions about technical difficulties - Drying + Pyrolysis of coal particle

Register Blogs Community New Posts Updated Threads Search

Like Tree2Likes
  • 1 Post By Vitor Monteiro
  • 1 Post By Kummi

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 16, 2019, 02:06
Default Need suggestions about technical difficulties - Drying + Pyrolysis of coal particle
  #1
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
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:
--> Drying and Pyrolysis occur simultaneously in different regions of the same particle (however both phenomenon should be modeled altogether or modeled separately).
(I) Basically, Pyrolysis is modeled based on solidChemistry ==> Chemistry model for solid thermodynamics, solved using Arrhenius type equation.
~/OpenFOAM/OpenFOAM-2.1.1/cokeovenGasFOAM/regionModels/pyrolysisModels/reactingOneDim
Quote:
PYROLYSIS
solve ( fvm::ddt(rho_) == - solidChemistry_->RRg() ); //continuity equ
fvScalarMatrix YiEqn ( fvm::ddt(rho_, Yi) == solidChemistry_->RRs(i) ); //species equ.
(II) In my case, I need to model the continuity equation of drying as:
Quote:
DRYING

solve ( fvm::div(rhoU_, Yi) == - XXXX_->RRg() ); //continuity equ
Here, this XXXX cant be used as solidChemistry technically, because the drying is not solved using Arrhenius type equation.

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 03:50.
Kummi is offline   Reply With Quote

Old   August 16, 2019, 02:38
Default
  #2
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
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:
T= 100 ==> alpha [moisture content) =0]
Based on it, mass and heat balances are calculated at interface as,
Mass balance (r) = rho * alpha * (dx/dt) [kg/m2.s] // evaporation rate
Heat balance (-K dT/dx) = (r) * latent heat [W/m2]
ENERGY EQU: rho*Cp*(delT/delt) = del/delx[K*delT/delx ] + r*cp*delT/delx + rho*delQ/delT (W/m3)
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
Kummi is offline   Reply With Quote

Old   April 18, 2022, 14:27
Default
  #3
Member
 
Vitor Monteiro
Join Date: Nov 2020
Posts: 32
Rep Power: 6
Vitor Monteiro is on a distinguished road
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.
Vitor Monteiro is offline   Reply With Quote

Old   April 18, 2022, 20:46
Default
  #4
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
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
Kummi is offline   Reply With Quote

Old   April 19, 2022, 10:03
Default
  #5
Member
 
Vitor Monteiro
Join Date: Nov 2020
Posts: 32
Rep Power: 6
Vitor Monteiro is on a distinguished road
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;
    }
}
phaseProperties
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


// ************************************************************************* //
Vitor Monteiro is offline   Reply With Quote

Old   April 19, 2022, 10:29
Default
  #6
Member
 
Vitor Monteiro
Join Date: Nov 2020
Posts: 32
Rep Power: 6
Vitor Monteiro is on a distinguished road
Quote:
Originally Posted by Kummi View Post
Not really solved this case..
Did you solve your biomass based on Arrhenius equations ?
No. I'm trying to use the interfaceCompositionPhaseChangeMultiphaseSystem.

Quote:
There is a biomass solver in the link.
I can't understand that modeling. In my case, I'm trying to develop it to know how every calculation is going in. Thanks!

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).
Vitor Monteiro is offline   Reply With Quote

Old   April 20, 2022, 02:09
Default
  #7
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,
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:
irreversibleSolidEvaporationHeterogeneousReaction
hum = H2O
(9.7e8 8.4e3 300 1 1)
Thank you
Kummi is offline   Reply With Quote

Old   April 20, 2022, 09:31
Default
  #8
Member
 
Vitor Monteiro
Join Date: Nov 2020
Posts: 32
Rep Power: 6
Vitor Monteiro is on a distinguished road
Quote:
Originally Posted by Kummi View Post
Hi,
interfaceComposition.air is "evaporating" both fiber and H2O but you need only H2O to be evaporated right ?
Exactly!

Quote:
Originally Posted by Kummi View Post
Under interfaceComposition.air, you have given only specie as H2O, but still fiber evaporates ?
Yes.

Quote:
Originally Posted by Kummi View Post
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.
I need my 'particles' phase with fiber+H2O, because I'm using Arrhenius to handle the chemical reactions (pirolysis, heterogeneous reactions, etc).
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.
Vitor Monteiro is offline   Reply With Quote

Old   April 20, 2022, 10:26
Default
  #9
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
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
Kummi is offline   Reply With Quote

Old   April 20, 2022, 12:31
Default
  #10
Member
 
Vitor Monteiro
Join Date: Nov 2020
Posts: 32
Rep Power: 6
Vitor Monteiro is on a distinguished road
Quote:
Originally Posted by Kummi View Post
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 ?
My problem is a fluidisedBed gasification reactor.
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?
Kummi likes this.
Vitor Monteiro is offline   Reply With Quote

Old   April 21, 2022, 04:34
Default
  #11
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
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:
coal --> char + CH4+ CO + H2 + other gases
But in your case, I don't see solid species in product side when fiber is pyrolyzed, its all gases ? And in your previous question, you mentioned fiber is also evaporating, how fiber can be evaporated, it can be only pyrolyzed or oxidized, because fiber is a solid as per your point.
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
Kummi is offline   Reply With Quote

Old   April 21, 2022, 10:00
Default
  #12
Member
 
Vitor Monteiro
Join Date: Nov 2020
Posts: 32
Rep Power: 6
Vitor Monteiro is on a distinguished road
Quote:
Originally Posted by Kummi View Post
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
I'm using multiphaseEulerFoam, that's why I'm programming the reactions by myself. The coalChemistryFoam is under Eulerian-Lagrangian approach, whereas multiphaseEulerFoam is Eulerian-Eulerian. Since I have a dense flow (with other phase with sand particles), I think this could reduce the computational cost to handle large scale reactor.

Quote:
Originally Posted by Kummi View Post
But in your case, I don't see solid species in product side when fiber is pyrolyzed, its all gases ?
Ok. My complete pyrolysis equation is:

Quote:
biomass(s) --> char(s) + CH4 + CO + H2 + other gases
However, this reaction is not my concerning for now.

Quote:
Originally Posted by Kummi View Post
And in your previous question, you mentioned fiber is also evaporating, how fiber can be evaporated, it can be only pyrolyzed or oxidized, because fiber is a solid as per your point.
That' exactly my point! It must NOT "evaporate". But OF8 is (somehow) recognizing it wrong and consuming it with water.

Quote:
Originally Posted by Kummi View Post
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
Yes, fiber is a solid part of my biomass and H2O is the moisture.
I didn't know I had to use only solid species. When I saw at official site I found this:

Quote:
heRhoThermo - Energy for a mixture based on density.
heSolidThermo - Energy for a solid mixture.
I thought I could implement solid+liquid species in this mixture (biomass). That's why I adapted my thermophysicalProperties.particles (above) like that. To have a constant rho the coefficients (C) were set equal zero:

Quote:
1/rho = C[0] + C[1]*T + C[2]*sqr(T) - C[3]*p - C[4]*p*T
Vitor Monteiro is offline   Reply With Quote

Old   April 26, 2022, 14:24
Default
  #13
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
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
Vitor Monteiro likes this.
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
Euler-Euler vs. Lagrangian particle tracking for biomass pyrolysis in a rotary kiln audrey Main CFD Forum 0 February 22, 2011 13:09
DPM UDF particle position using the macro P_POS(p)[i] dm2747 FLUENT 0 April 17, 2009 02:29
Coal Particle Tracking Parameters Michael FLUENT 1 December 1, 2007 15:51
Coal Particle Tracking michael FLUENT 4 November 9, 2007 08:27
CFX5.7 coal combustion and other reaction particle Leosding CFX 0 April 21, 2004 09:58


All times are GMT -4. The time now is 16:52.