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

TwoPhaseEulerFoam phasePressureCoeffs meaning and estimation

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree3Likes
  • 2 Post By mshehata85
  • 1 Post By mnikku

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 9, 2017, 22:55
Default TwoPhaseEulerFoam phasePressureCoeffs meaning and estimation
  #1
New Member
 
Mahmoud Shehata
Join Date: Mar 2015
Posts: 13
Rep Power: 8
mshehata85 is on a distinguished road
Dear Foamers,

My question is regarding the "phasePressureCoeffs" usually specified in the turbulenceProperties.particle file in OpenFoam (for example in the fluidized bed twoPhaseEulerFoam tutorial)

I have done an extensive online research and I concluded it is a way to compute the derivative of inter-particle stress w.r.t volume fraction in an attempt to avoid exceeding the specified maximum volume fraction.

However, I do not really understand the purpose of it as I thought that the "frictionalStressModel" is the one responsible to avoid the over-packing by incorporating the frictional component after exceeding the specified threshold.

So my questions are:

1- Why and when I need to activate the phase pressure model (by setting g0 to a positive value)? is there any practical reason to activate it?

2- Does anybody know the reference to this exponential model? No reference is available in the " phasePressureModel.H" or any where else on the documentation.

3- is the default parameters ( g0, preAlphaExp, expMax, and alphaMax) valid for all two-phase cases. if not, how to estimate these parameters? Do they affect the resulting accuracy?

4- Why "alphaMax" is specified twice in the same file, once in the "kineticTheoryCoeffs" and another time in the "PhasePressureCoeffs"? I thought both of them refer to the same criteria!!!

I appreciate any help because I have been looking for an answer for more than 4 months. So, this Forum is my last resort.

Best Regards.

Mahmoud
rdbisme and MT Scelzo like this.
mshehata85 is offline   Reply With Quote

Old   February 24, 2017, 12:22
Default Anyone could help
  #2
New Member
 
Mahmoud Shehata
Join Date: Mar 2015
Posts: 13
Rep Power: 8
mshehata85 is on a distinguished road
Can anyone please help? My thought right now is that it is important only in case of compressible two-phase system. In my simulation, I deactivated the energy equation and described the density of both phases as constant (i.e. incompressible flow). So, I think I need to deactivate the phasePressureCoeffs. Am I right?
mshehata85 is offline   Reply With Quote

Old   July 17, 2017, 17:19
Default
  #3
Member
 
Hooman
Join Date: Apr 2011
Posts: 35
Rep Power: 12
hooman.4028 is on a distinguished road
Quote:
Originally Posted by mshehata85 View Post
Can anyone please help? My thought right now is that it is important only in case of compressible two-phase system. In my simulation, I deactivated the energy equation and described the density of both phases as constant (i.e. incompressible flow). So, I think I need to deactivate the phasePressureCoeffs. Am I right?
Hello Mahmoud,

Have you had any luck answering these questions?
hooman.4028 is offline   Reply With Quote

Old   July 17, 2017, 21:16
Default
  #4
New Member
 
Mahmoud Shehata
Join Date: Mar 2015
Posts: 13
Rep Power: 8
mshehata85 is on a distinguished road
Quote:
Originally Posted by hooman.4028 View Post
Hello Mahmoud,

Have you had any luck answering these questions?
Not yet unfortunately.
mshehata85 is offline   Reply With Quote

Old   November 30, 2017, 08:41
Default
  #5
Member
 
Join Date: May 2015
Posts: 34
Rep Power: 8
mnikku is on a distinguished road
I don't have a reference, but essentially it seems just an optional way to compute pPrime.

In kineticTheoryModel.C
Code:
Foam::RASModels::kineticTheoryModel::pPrime() const
{
...
    tmp<volScalarField> tpPrime
    (
        Theta_
       *granularPressureModel_->granularPressureCoeffPrime
        (
            alpha_,
            radialModel_->g0(alpha_, alphaMinFriction_, alphaMax_),
            radialModel_->g0prime(alpha_, alphaMinFriction_, alphaMax_),
            rho,
            e_
        )
     +  frictionalStressModel_->frictionalPressurePrime
        (
            phase_,
            alphaMinFriction_,
            alphaMax_
        )
    );
...
return tpPrime;
}
While in phasePressureModel.C
Code:
Foam::RASModels::phasePressureModel::pPrime() const
{
    tmp<volScalarField> tpPrime
    (
        g0_
       *min
        (
            exp(preAlphaExp_*(alpha_ - alphaMax_)),
            expMax_
        )
    );
...
return tpPrime;
}
In file phasePressureModel.h the functionality is descripted as: "Particle-particle phase-pressure RAS model. The derivative of the phase-pressure with respect to the phase-fraction is evaluated as..." .

So it seems to be a simpler way to model the solids pressure, essentially preventing overpacking.

That's what I was able to figure out (so far), experts will hopefully correct me if I am wrong. I have used this model successfully, while it is simpler, it seems to work just as nicely (or better) and faster(?) than kinetic theory of granular flows, at least in the limited amount of cases I have tested (gas-solid fluidized bed simulations).
Roham..Seif likes this.
mnikku is offline   Reply With Quote

Old   November 12, 2020, 12:59
Default
  #6
New Member
 
roham seif
Join Date: Jul 2020
Posts: 1
Rep Power: 0
Roham..Seif is on a distinguished road
Quote:
Originally Posted by mnikku View Post
I don't have a reference, but essentially it seems just an optional way to compute pPrime.

In kineticTheoryModel.C
Code:
Foam::RASModels::kineticTheoryModel::pPrime() const
{
...
    tmp<volScalarField> tpPrime
    (
        Theta_
       *granularPressureModel_->granularPressureCoeffPrime
        (
            alpha_,
            radialModel_->g0(alpha_, alphaMinFriction_, alphaMax_),
            radialModel_->g0prime(alpha_, alphaMinFriction_, alphaMax_),
            rho,
            e_
        )
     +  frictionalStressModel_->frictionalPressurePrime
        (
            phase_,
            alphaMinFriction_,
            alphaMax_
        )
    );
...
return tpPrime;
}
While in phasePressureModel.C
Code:
Foam::RASModels::phasePressureModel::pPrime() const
{
    tmp<volScalarField> tpPrime
    (
        g0_
       *min
        (
            exp(preAlphaExp_*(alpha_ - alphaMax_)),
            expMax_
        )
    );
...
return tpPrime;
}
In file phasePressureModel.h the functionality is descripted as: "Particle-particle phase-pressure RAS model. The derivative of the phase-pressure with respect to the phase-fraction is evaluated as..." .

So it seems to be a simpler way to model the solids pressure, essentially preventing overpacking.

That's what I was able to figure out (so far), experts will hopefully correct me if I am wrong. I have used this model successfully, while it is simpler, it seems to work just as nicely (or better) and faster(?) than kinetic theory of granular flows, at least in the limited amount of cases I have tested (gas-solid fluidized bed simulations).
Dear Mnikuu,

Years have passed from your comment on phase pressure model. What happened after that? can you provide some information about when it is fine to use this model?
In my case, its results are much closer to experiments rather than kinetic theory of granular flow.

Thank you very much.
Sincerely,
Roham
Roham..Seif is offline   Reply With Quote

Reply

Tags
packinglimiter, phasepressure model, twophaseeulerfoam

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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



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