OF-POSTECH-1/solvers_post/LagrangianCMCFoam/setSDRCMC.H

55 lines
1.8 KiB
C

// Calculate conditional SDR
scalarField amc(CMC::AMC(bg.etaSpace()));
forAll(rho, celli)
{
scalar mfi = mf[celli];
scalar mfVari = mfVar[celli];
CMC::BetaFunction bf (mfi, mfVari);
CMC::BetaIntegrator bi (bf, bg);
//if there exist delta function at eta = 0 or 1
if( bf.delta0() || bf.delta1() )
{
for(label j = 0 ; j<= etamax ; j++)
{
CSDRCELL[j][celli] = 0;
}
}
else
{
//Eqn (13) from SH Kim C&F paper 120:75-90(20)
scalar C1 = bi.betaIntegrate(amc);
scalar C2 = SDR[celli] / C1;
for(label j = 0 ; j <= etamax ; j++)
{
CSDRCELL[j][celli] = C2 * CMC::AMC(etaValue[j]);
}
}
}
//get density weighted averaged value of conditional SDR for each eta and flame-group
for(label k=0 ; k <= group ; k++)
{
for(label j = 0 ; j<=etamax ; j++) //density weighted average of conditional SDR
{
scalar SDRTemp(0), DENOMTemp(0);
SDRTemp = fvc::domainIntegrate(Ffrac[k]*rho*Peta[j]*CSDRCELL[j]).value();
DENOMTemp = fvc::domainIntegrate(Ffrac[k]*rho*Peta[j]).value();
if(SDRTemp == 0 || DENOMTemp == 0)
{
SDRCMC[j+k*(etamax+1)] = 0;
}
else
{
SDRCMC[j+k*(etamax+1)] = SDRTemp / DENOMTemp ;
}
}
}