tmp<fvScalarMatrix> singleStepCombustion<CombThermoType, ThermoType>::R ( volScalarField& Y ) const { const label specieI = this->thermoPtr_->composition().species()[Y.member()]; volScalarField wSpecie ( wFuel_*singleMixturePtr_->specieStoichCoeffs()[specieI] ); if (semiImplicit_) { const label fNorm = singleMixturePtr_->specieProd()[specieI]; const volScalarField fres(singleMixturePtr_->fres(specieI)); wSpecie /= max(fNorm*(Y - fres), scalar(1e-2)); return -fNorm*wSpecie*fres + fNorm*fvm::Sp(wSpecie, Y); } else { return wSpecie + fvm::Sp(0.0*wSpecie, Y); } }