55 lines
1.8 KiB
C
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 ;
|
|
}
|
|
|
|
}
|
|
}
|
|
|