## about the implementations of mass transfer induced momentum transfer in reactingEulerFoam

Hello,

I am trying to understand the Openfoam 3.0.1 implementations of momentum transfer caused by the mass transfer. The source file is: HeatAndMassTransferPhaseSystem.C and HeatAndMassTransferPhaseSystem.H. There are following lines in the function Foam::HeatAndMassTransferPhaseSystem::momentumTransfer() const:

` const volScalarField dmdt(this->dmdt(pair)); const volScalarField dmdt21(posPart(dmdt)); const volScalarField dmdt12(negPart(dmdt)); *eqns[pair.phase1().name()] += dmdt21*U2 - fvm::Sp(dmdt21, U1); // gas *eqns[pair.phase2().name()] -= dmdt12*U1 - fvm::Sp(dmdt12, U2); // coal `

In my case, it is pulverized coal combustion. So coal particle (phase 2 here, dispersed phase) is dispersed in the flow (phase 1 here, continuous phase). I have the questions about the source terms for the momentum equations for phases 1 and 2.

I think mathematically, the source term for phase 1 (gas phase) can be written as: dmdt21*U21 - dmdt12*U12. For phase 2(coal phase ), it is dmdt12*U12 - dmdt21*U21. The sum of them is zero.

So now let us look at the the implementation in OpenFOAM 3.0.1 and the codes are given above. So dmdt21 is positive, while dmdt 12 is always negative. Here I think dmdt21 means that the mass is from phase 2 (coal particle) to phase 1 (gas phase). dmdt12 means that the mass is from phase 1 (gas phase) to phase 2 (coal particle phase). Why not write the 4th and 5th lines of the above codes in the following way?

`*eqns[pair.phase1().name()] += dmdt21*U2 - fvm::Sp(dmdt12, U1); // gas *eqns[pair.phase2().name()] -= dmdt12*U1 - fvm::Sp(dmdt21, U2); // coal `

I am confused about this issue. Can you give me some explanations about it? Please help to point out if I am making some mistakes about the above understanding. Thanks.

NB: physically, the net mass transfer is always from coal particle to gas phase, through devolatilization and char combustion processes.

best regards, huangwei