|
[Sponsors] |
October 27, 2015, 05:20 |
reactingEulerFoam
|
#1 |
Member
Mattia de\' Michieli Vitturi
Join Date: Mar 2009
Posts: 50
Rep Power: 17 |
Hi all,
I am trying to understand how mass transfer is implemented in the new reactingEulerFoam in OpenFOAM-dev and I've seend tht the contribution to the momentum trafner between the phases associated with the mass transfer is in HeatAndMassTransferPhaseSystem.C: *eqns[pair.phase1().name()] += dmdt21*U2 - fvm::Sp(dmdt21, U1); *eqns[pair.phase2().name()] -= dmdt12*U1 - fvm::Sp(dmdt12, U2); where const volScalarField dmdt(this->dmdt(pair)); const volScalarField dmdt21(posPart(dmdt)); const volScalarField dmdt12(negPart(dmdt)); I think it should be: *eqns[pair.phase1().name()] += dmdt21*U2 - fvm::Sp(dmdt12, U1); *eqns[pair.phase2().name()] -= dmdt12*U1 - fvm::Sp(dmdt21, U2); because the speed associated to a mass transfer from phase 1 to phase 2 is U1. In addition, this formulation does not take into account that a positive mass transfer could be the result of transfers in the two directions (condensation of one component and evaporation of another one). These two contributions should be kept separated when considering the momentum and heat transfer. Considering only the positive and negative part of dmdt does not allow to do that. Should I report this as a bug in the bug tracker? Mattia |
|
October 27, 2015, 05:40 |
|
#2 |
Member
Mattia de\' Michieli Vitturi
Join Date: Mar 2009
Posts: 50
Rep Power: 17 |
I am digging more into the solver and I have noticed that when the face momentum equations are used (pUf instead of pU) the correct formulation is used:
U1Eqn = ( fvm::div(alphaRhoPhi1, U1) - fvm::Sp(fvc::div(alphaRhoPhi1), U1) + fvm::Sp(dmdt12, U1) + dmdt21*U2 So, the problem is only in the centered formulation for the momentum equation. This could be an explanation of the difference in the convergence for the two formulations. Still regarding the mass transfer terms in the equations, I have not found it in the alpha equation, where mass transfer should be accounted too. |
|
October 27, 2015, 09:56 |
|
#3 |
Member
Mattia de\' Michieli Vitturi
Join Date: Mar 2009
Posts: 50
Rep Power: 17 |
I think there are similar problems also with the heatTrasfer term:
const volScalarField dmdt(this->dmdt(pair)); const volScalarField dmdt21(posPart(dmdt)); const volScalarField dmdt12(negPart(dmdt)); const volScalarField& Tf(*Tf_[pair]); *eqns[phase1.name()] += dmdt21*(phase1.thermo().he(phase1.thermo().p(), Tf)) - fvm::Sp(dmdt21, he1) + dmdt21*(K2 - K1); *eqns[phase2.name()] -= dmdt12*(phase2.thermo().he(phase2.thermo().p(), Tf)) - fvm::Sp(dmdt12, he2) + dmdt12*(K1 - K2); In the first equations it should be: *eqns[phase1.name()] += - dmdt21*(phase2.thermo().he(phase2.thermo().p(), Tf)) + fvm::Sp(dmdt12, he1) - dmdt21*K2 + - dmdt12*K1; Can someone suggest me what is the best way to communicate these things to the developers? Thank you Mattia |
|
October 28, 2015, 05:38 |
|
#4 |
Senior Member
|
I think the bug tracker would be the best way to communicate with the developers.
http://www.openfoam.org/mantisbt/my_view_page.php They may ask for a particular simple test case. Regards, Tom |
|
May 16, 2017, 11:08 |
|
#5 | |
Senior Member
Join Date: Jan 2013
Posts: 372
Rep Power: 14 |
Dear demichie,
I am also checking these lines about how to implement the momentum transfer due to the mass transfer. So here dmdt21 is positive, dmdt12 is always negative. So if the mass is from phase 2 to phase 1, then the change of mass is assumed positive, if the mass is from phase 1 to phase 2, then the change of mass is assumed to be negative. So for phase 1, the velocity for dmdt21 is U2, which is OK, for phase 1 again, the velocity for dmdt12 is U1, which is OK. For phase 2, the velocity for dmdt12 is U1, the velocity for dmdt21 is U2. Quote:
|
||
May 17, 2017, 11:32 |
|
#6 | |
Senior Member
Join Date: Jan 2013
Posts: 372
Rep Power: 14 |
Dear Demichie,
I found the same problem as you mentioned: PHP Code:
Quote:
|
||
May 28, 2017, 13:46 |
|
#7 | |
Senior Member
Ruben Di Battista
Join Date: May 2013
Location: Paris
Posts: 137
Rep Power: 12 |
Quote:
Here you can find an explanation for what concerns the mass source in the alpha equations. https://bugs.openfoam.org/view.php?id=1881 |
||
March 7, 2018, 13:41 |
|
#8 |
New Member
Umer
Join Date: Aug 2016
Posts: 29
Rep Power: 9 |
Hello,
i am looking for something that explains “bubbleColumnEvaporatingDissolving” tutorial. I am not sure about few things in it like (air.gas, air.water) I set in the “0” directory. When I see results on paraView>air.gas . Can anyone say few quick words about it. May be it will work for me. 1. air.gas, air.liquid shows mass fraction or volume fraction? or Is it showing mass fraction in each phase gas/liquid? It means mass fraction "Yair" is multiplied with "alpha.gas"? 2. How diffusivity Df is calculated in the solver? Or its just a constant? 3. How this solver calculate concentration gradient dY? Is it coming from Henry’s Law Ys=k.Yg.rhog/rhos then it is multiplied with rho.phase to get the concentration gradient dY for mass transfer term? mass transfer= K. Df. dY Best Regards, Umer |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|