tmp> mvConvection(nullptr); if (Y.size()) { mvConvection = tmp> ( fv::convectionScheme::New ( mesh, fields, phi, mesh.divScheme("div(phi,Yi_h)") ) ); } { reaction.correct(); Qdot = reaction.Qdot(); volScalarField Yt ( IOobject("Yt", runTime.timeName(), mesh), mesh, dimensionedScalar("Yt", dimless, 0) ); forAll(Y, i) { if (i != inertIndex && composition.active(i)) { volScalarField& Yi = Y[i]; fvScalarMatrix YiEqn ( fvm::ddt(rho, Yi) + mvConvection->fvmDiv(phi, Yi) - fvm::laplacian(turbulence.muEff(), Yi) == reaction.R(Yi) + fvOptions(rho, Yi) ); YiEqn.relax(); fvOptions.constrain(YiEqn); YiEqn.solve(mesh.solver("Yi")); fvOptions.correct(Yi); Yi.max(0.0); Yt += Yi; } } if (Y.size()) { Y[inertIndex] = scalar(1) - Yt; Y[inertIndex].max(0.0); } }