multiphase reacting flow
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. |
Quote:
|
Quote:
Thanks for your reply, it's very helpful for me. Best regards, Mohsen |
2 Attachment(s)
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? :confused: 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); } |
Hi,
I've found my mistake. I've forgotten alpha2 in laplacian term. :rolleyes: |
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::printStack(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? |
All times are GMT -4. The time now is 19:52. |