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

multiphase reacting flow

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 10, 2015, 09:00
Default multiphase reacting flow
  #1
Member
 
Mohsen
Join Date: Jul 2012
Posts: 49
Rep Power: 13
smhosseini is on a distinguished road
Hi,

I want to simulate a bubble column. In this case, the gas phase is absorbed by the liquid phase and there is a reaction in the liquid phase. I'm going to use OpenFOAM. I want to combine the twoPhaseEulerFoam and reactingFoam.

Is there anyone who has any better Idea?

what is the term of + fvOptions(rho, Yi) in the YEqn.H of reactingFoam?

Thanks in advance.
smhosseini is offline   Reply With Quote

Old   August 17, 2015, 21:45
Default
  #2
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Beijing, China
Posts: 838
Rep Power: 17
sharonyue is on a distinguished road
Quote:
Originally Posted by smhosseini View Post
Hi,

I want to simulate a bubble column. In this case, the gas phase is absorbed by the liquid phase and there is a reaction in the liquid phase. I'm going to use OpenFOAM. I want to combine the twoPhaseEulerFoam and reactingFoam.

Is there anyone who has any better Idea?

what is the term of + fvOptions(rho, Yi) in the YEqn.H of reactingFoam?

Thanks in advance.
fvOptions is used for porous, MRF, etc. if you dont need body force. Just comment it or delete it. This is the quickest way. Otherwise, just copy it into your solver, and add fvOptions.constrain().....all these things into your solver. And include the header..
__________________
My OpenFOAM algorithm website: http://dyfluid.com
By far the largest Chinese CFD-based forum: http://www.cfd-china.com/category/6/openfoam
We provide lots of clusters to Chinese customers, and we are considering to do business overseas: http://dyfluid.com/DMCmodel.html
sharonyue is offline   Reply With Quote

Old   August 22, 2015, 04:12
Default
  #3
Member
 
Mohsen
Join Date: Jul 2012
Posts: 49
Rep Power: 13
smhosseini is on a distinguished road
Quote:
Originally Posted by sharonyue View Post
fvOptions is used for porous, MRF, etc. if you dont need body force. Just comment it or delete it. This is the quickest way. Otherwise, just copy it into your solver, and add fvOptions.constrain().....all these things into your solver. And include the header..
Hi Dongyu,
Thanks for your reply, it's very helpful for me.

Best regards,
Mohsen
smhosseini is offline   Reply With Quote

Old   October 6, 2015, 09:48
Default
  #4
Member
 
Mohsen
Join Date: Jul 2012
Posts: 49
Rep Power: 13
smhosseini is on a distinguished road
Hi,
I've added mass transfer equation to twoPhaseEulerFoam but I have some problems in my results. I have only one component in gas phase and 3 components in liquid phase. So, the mass transfer equation only solves for liquid phase. species O transfer from gas to liquid phase and react with species t in liquid phase and species 3 is produced.
As you can see from attached figures, there is species t in gas and liquid phase. But it should be only in liquid phase. Do you know whats the problem? Is there any mistake in my code?

This is my YEqn.H:

{
volScalarField Re = mag(U1 - U2) * phase1.d() / phase2.nu(); // Reynolds number
volScalarField kl = (DO / phase1.d()) * (2.0 + 0.642 * sqrt(Re * Sc)); // mass transfer coefficient
volScalarField ae = mag(fvc::grad(alpha1)); //effective interfacial area per unit volume

volScalarField Ha = sqrt(DO * kr) / kl; // Hatta number
volScalarField Ef = sqrt(1. + sqr(Ha)); // Enhancement factor
volScalarField Reaction = alpha2 * kr * rho2;

Q = Ef * kl * ae * rho2;


fvScalarMatrix YOEqn
(
fvm::ddt(alpha2, rho2, YO)
+fvm::div(alphaRhoPhi2, YO)
-fvm::laplacian(phase2.turbulence().muEff()/Sc, YO)
==
-fvm::Sp(Q,YO) + He * Q - Reaction * Yt
);

YOEqn.relax();

YOEqn.solve(mesh.solver("YO"));

YO.max(0.0);

fvScalarMatrix YtEqn
(
fvm::ddt(alpha2, rho2, Yt)
+fvm::div(alphaRhoPhi2, Yt)
-fvm::laplacian(phase2.turbulence().muEff()/Sc, Yt)
==
-fvm::Sp(Reaction, Yt)
);

YtEqn.relax();

YtEqn.solve(mesh.solver("Yt"));

Yt.max(0.0);
}
Attached Images
File Type: png alphaGas.png (44.4 KB, 68 views)
File Type: png Yt.png (43.4 KB, 69 views)
smhosseini is offline   Reply With Quote

Old   October 7, 2015, 08:35
Default
  #5
Member
 
Mohsen
Join Date: Jul 2012
Posts: 49
Rep Power: 13
smhosseini is on a distinguished road
Hi,
I've found my mistake.
I've forgotten alpha2 in laplacian term.
smhosseini is offline   Reply With Quote

Old   October 12, 2015, 05:38
Default
  #6
Member
 
Mohsen
Join Date: Jul 2012
Posts: 49
Rep Power: 13
smhosseini is on a distinguished road
Hi,
I've changed my mass transfer equation (for t component) to:

fvScalarMatrix YtEqn
(
fvm::ddt(alpha2, rho2, Yt) + fvm::div(alphaRhoPhi2, Yt)
- fvm::laplacian
(
fvc::interpolate(alpha2)
* fvc::interpolate(phase2.turbulence().muEff()/Sc),
Yt
)
==
- fvm::Sp(Reaction, Ytoc)
);
__________________________________________________ ___________________

Then, I've gotten an error:

PIMPLE: iteration 1
MULES: Solving for alpha.air
MULES: Solving for alpha.air
alpha.air volume fraction = 0.293708 Min(alpha1) = 0 Max(alpha1) = 1
#0 Foam::error:rintStack(Foam::Ostream&) at ??:?
#1 Foam::sigFpe::sigHandler(int) at ??:?
#2 Uninterpreted:
#3 Foam::symGaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) at ??:?
#4 Foam::symGaussSeidelSmoother::smooth(Foam::Field<d ouble>&, Foam::Field<double> const&, unsigned char, int) const at ??:?
#5 Foam::smoothSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:?
#6 Foam::fvMatrix<double>::solveSegregated(Foam::dict ionary const&) at ??:?
#7 Foam::fvMatrix<double>::solve(Foam::dictionary const&) at ??:?
#8
at ??:?
#9 __libc_start_main in "/lib/i386-linux-gnu/libc.so.6"
#10
at ??:?
Floating point exception (core dumped)
__________________________________________________ __________________

I think I get this error because the value of alpha2 in the gas phase is zero and so, all of coefficients get zero value.

Is there any other reason for this error?
How can I change my code to solve the problem?
Is there any better idea to write the mass transfer equation?
smhosseini 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
Multiphase Flow Pavlos FLUENT 0 August 8, 2011 08:43
Multiphase flow in atomiser santhosh1987 FLUENT 0 May 12, 2011 04:26
Multiphase flow & porous media Hisham OpenFOAM 3 April 10, 2011 07:04
multiphase flow, aeration Ellie CFX 3 January 15, 2009 17:33
Inviscid Drag at subsonic, subcritical Mach # Axel Rohde Main CFD Forum 1 November 19, 2001 12:19


All times are GMT -4. The time now is 22:04.