Compare commits
2 commits
Peta-remov
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd6edbb818 | ||
|
|
a06cbf56ab |
4 changed files with 156 additions and 118 deletions
11
Allwmake
Executable file
11
Allwmake
Executable file
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/sh
|
||||||
|
cd ${0%/*} || exit 1 # Run from this directory
|
||||||
|
|
||||||
|
targetType=libso
|
||||||
|
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
|
||||||
|
|
||||||
|
libs/Allwmake $targetType $*
|
||||||
|
|
||||||
|
solvers_post/Allwmake $targetType $*
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
10
libs/Allwmake
Executable file
10
libs/Allwmake
Executable file
|
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
cd ${0%/*} || exit 1 # Run from this directory
|
||||||
|
|
||||||
|
targetType=libso
|
||||||
|
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
|
||||||
|
|
||||||
|
wmake $targetType chemistryModel_POSTECH
|
||||||
|
wmake $targetType combustionModels_POSTECH
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
12
solvers_post/Allwmake
Executable file
12
solvers_post/Allwmake
Executable file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/sh
|
||||||
|
cd ${0%/*} || exit 1 # Run from this directory
|
||||||
|
|
||||||
|
targetType=libso
|
||||||
|
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
|
||||||
|
|
||||||
|
wmake SLFMFoam
|
||||||
|
wmake LagrangianCMCFoam
|
||||||
|
wmake LagrangianCMCSprayFoam
|
||||||
|
wmake LagrangianCMCdieselEngineFoam4x
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
@ -4,136 +4,141 @@
|
||||||
// eta = (1/etamax)*etacount
|
// eta = (1/etamax)*etacount
|
||||||
|
|
||||||
{
|
{
|
||||||
|
scalar betaftn=0.0, gammaCMC=0.0, alphaCMC=0.0, betaCMC=0.0, PTOTAL=0.0;
|
||||||
|
scalar loop_counter = 0, mf_diff=0.0, mfnew=0.0;
|
||||||
|
|
||||||
forAll(mf, celli) //cell number loop
|
forAll(mf, celli) //cell number loop
|
||||||
{
|
|
||||||
scalar mfi = mf[celli]; //karam, test
|
|
||||||
|
|
||||||
Switch pdfCalculated = false;
|
|
||||||
|
|
||||||
scalarField pdf(etamax+1,0.0);
|
|
||||||
|
|
||||||
label loop_counter = 0;
|
|
||||||
do
|
|
||||||
{
|
{
|
||||||
//Adjust mixture fraction and its variance
|
mf_temp[celli] = mf[celli]; //karam, test
|
||||||
if(mfVar[celli] < 1.0e-30)
|
|
||||||
{
|
|
||||||
mfVar[celli] = 1.0e-30;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(mfi < 0.0)
|
Re_calculate_pdf:;
|
||||||
{
|
|
||||||
mfi = 0.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//calculate alpha and beta for PDF function
|
//Adjust mixture fraction and its variance
|
||||||
scalar gammaCMC = mfi*(1.0-mfi) / mfVar[celli] - 1.0;
|
if(mfVar[celli] < 1.0e-30)
|
||||||
scalar betaCMC = (1.0-mfi) * gammaCMC;
|
{
|
||||||
scalar alphaCMC = mfi * gammaCMC;
|
mfVar[celli] = 1.0e-30;
|
||||||
|
}
|
||||||
|
|
||||||
if(mfi < 5.0e-4) //karam, 5e-4 -> 1e-4 )
|
if(mf_temp[celli] < 0.0)
|
||||||
{
|
{
|
||||||
pdf = 0.0;
|
mf_temp[celli] = 0.0;
|
||||||
pdf[0] = 1.0 / deta[0];//1;
|
}
|
||||||
deltaftn[celli] = 0;
|
|
||||||
pdfCalculated = true;
|
if(mf_temp[celli] < 5.0e-4) //karam, 5e-4 -> 1e-4 )
|
||||||
}
|
{
|
||||||
else if(gammaCMC <= 0.0)
|
pdf = 0.0;
|
||||||
{
|
pdf[0] = 1.0 / deta[0];//1;
|
||||||
|
deltaftn[celli] = 0;
|
||||||
|
goto Peta_NextCell;
|
||||||
|
}
|
||||||
|
|
||||||
|
gammaCMC = mf_temp[celli]*(1.0-mf_temp[celli]) / mfVar[celli] - 1.0;
|
||||||
|
|
||||||
|
if(gammaCMC <= 0.0)
|
||||||
|
{
|
||||||
// Info<<"GammaCMC is lower than zero -- two delta function";
|
// Info<<"GammaCMC is lower than zero -- two delta function";
|
||||||
pdf = 0.0;
|
pdf = 0.0;
|
||||||
pdf[0] = 0.5 * 1.0/deta[0]; //0.5;
|
pdf[0] = 0.5 * 1.0/deta[0]; //0.5;
|
||||||
pdf[etamax] = 0.5 * 1.0/deta[etamax]; //0.5;
|
pdf[etamax] = 0.5 * 1.0/deta[etamax]; //0.5;
|
||||||
deltaftn[celli] = 1;
|
deltaftn[celli] = 1;
|
||||||
pdfCalculated = true;
|
goto Peta_NextCell;
|
||||||
}
|
}
|
||||||
else if(alphaCMC <= 1.0 && betaCMC <= 1.0)
|
|
||||||
{
|
//calculate alpha and beta for PDF function
|
||||||
|
betaCMC = (1.0-mf_temp[celli]) * gammaCMC;
|
||||||
|
alphaCMC = mf_temp[celli] * gammaCMC;
|
||||||
|
|
||||||
|
if(alphaCMC <= 1.0 && betaCMC <= 1.0)
|
||||||
|
{
|
||||||
// Info<<"AlphaCMC and betaCMC are lower than one -- two delta function";
|
// Info<<"AlphaCMC and betaCMC are lower than one -- two delta function";
|
||||||
pdf = 0.0;
|
pdf = 0.0;
|
||||||
pdf[0] = 0.5 * 1.0/deta[0]; //0.5;
|
pdf[0] = 0.5 * 1.0/deta[0]; //0.5;
|
||||||
pdf[etamax] = 0.5 * 1.0/deta[etamax]; //0.5;
|
pdf[etamax] = 0.5 * 1.0/deta[etamax]; //0.5;
|
||||||
deltaftn[celli] = 1;
|
deltaftn[celli] = 1;
|
||||||
pdfCalculated = true;
|
goto Peta_NextCell;
|
||||||
}
|
|
||||||
else if(alphaCMC < 1.0 && betaCMC >= 1.0)
|
|
||||||
{
|
|
||||||
pdf = 0.0;
|
|
||||||
pdf[0] = 1.0/deta[0]; //1;
|
|
||||||
deltaftn[celli] = 0;
|
|
||||||
pdfCalculated = true;
|
|
||||||
}
|
|
||||||
else if(alphaCMC >= 1.0 && betaCMC < 1.0)
|
|
||||||
{
|
|
||||||
pdf = 0.0;
|
|
||||||
pdf[etamax] = 1.0/deta[etamax]; //1;
|
|
||||||
deltaftn[celli] = 0;
|
|
||||||
pdfCalculated = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
scalar betaftn = std::exp( gammaln(alphaCMC) + gammaln(betaCMC) - gammaln(alphaCMC + betaCMC) ); //Numerial recipe 2nd Edition 206page
|
|
||||||
|
|
||||||
if (betaftn > 1.0e-50)
|
|
||||||
{
|
|
||||||
pdf[0] = 0.0;
|
|
||||||
pdf[etamax] = 0.0;
|
|
||||||
for(label etacount = 1 ; etacount < etamax ; etacount++)
|
|
||||||
{
|
|
||||||
pdf[etacount] = Foam::pow( etaValue[etacount] , alphaCMC - 1.0 )
|
|
||||||
* Foam::pow ( 1.0 - etaValue[etacount] , betaCMC - 1.0 ) / betaftn ;
|
|
||||||
}
|
|
||||||
|
|
||||||
deltaftn[celli] = 2;
|
|
||||||
|
|
||||||
scalarField f(etamax+1, 1.0);
|
|
||||||
scalar pTotal = integration(deltaftn[celli], MFcut, Neta, pdf, f);
|
|
||||||
|
|
||||||
for(label etacount = 0; etacount <= etamax ; etacount++)
|
|
||||||
{
|
|
||||||
pdf[etacount] = pdf[etacount]/pTotal;
|
|
||||||
}
|
|
||||||
|
|
||||||
scalar mfnew = integration(deltaftn[celli], MFcut, Neta, pdf, etaValue);
|
|
||||||
scalar mf_diff = (mf[celli] - mfnew)/mf[celli];
|
|
||||||
|
|
||||||
if(std::fabs(mf_diff) < 0.00001) // 1e-5)
|
|
||||||
{
|
|
||||||
pdfCalculated = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mfi = mfi + 0.5*mf_diff*mf[celli];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
else if(alphaCMC < 1.0 && betaCMC >= 1.0)
|
||||||
{
|
{
|
||||||
loop_counter = 1000;
|
pdf = 0.0;
|
||||||
|
pdf[0] = 1.0/deta[0]; //1;
|
||||||
|
deltaftn[celli] = 0;
|
||||||
|
goto Peta_NextCell;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
loop_counter++;
|
else if(alphaCMC >= 1.0 && betaCMC < 1.0)
|
||||||
|
|
||||||
} while ((!pdfCalculated) && (loop_counter < 100));
|
|
||||||
|
|
||||||
if(!pdfCalculated)
|
|
||||||
{
|
|
||||||
pdf = 0.0;
|
|
||||||
for(label etacount = 0; etacount<=etamax ; etacount++) //set one delta function
|
|
||||||
{
|
|
||||||
if( etaValue[etacount] >= mfi)
|
|
||||||
{
|
{
|
||||||
pdf[etacount] = 1.0/deta[etacount]; //1;
|
pdf = 0.0;
|
||||||
deltaftn[celli] = 0;
|
pdf[etamax] = 1.0/deta[etamax]; //1;
|
||||||
break;
|
deltaftn[celli] = 0;
|
||||||
|
goto Peta_NextCell;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
betaftn = std::exp( gammaln(alphaCMC) + gammaln(betaCMC) - gammaln(alphaCMC + betaCMC) ); //Numerial recipe 2nd Edition 206page
|
||||||
|
|
||||||
|
if(betaftn < 1.0e-50)
|
||||||
|
{
|
||||||
|
set_onedelta:;
|
||||||
|
pdf = 0.0;
|
||||||
|
for(label etacount = 0; etacount<=etamax ; etacount++) //set one delta function
|
||||||
|
{
|
||||||
|
if( etaValue[etacount] >= mf_temp[celli])
|
||||||
|
{
|
||||||
|
pdf[etacount] = 1.0/deta[etacount]; //1;
|
||||||
|
deltaftn[celli] = 0;
|
||||||
|
goto Peta_NextCell;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
for(label etacount=0 ; etacount <= etamax ; etacount++)
|
||||||
|
{
|
||||||
|
if(etacount == 0 || etacount == etamax)
|
||||||
|
{
|
||||||
|
pdf[etacount] = 0.0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pdf[etacount] = Foam::pow( etaValue[etacount] , alphaCMC - 1.0 ) * Foam::pow ( 1.0 - etaValue[etacount] , betaCMC -1.0 ) / betaftn ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
deltaftn[celli] = 2;
|
||||||
|
|
||||||
|
PTOTAL = 0.0; //PTOTAL initialization in each cell
|
||||||
|
|
||||||
|
f = 1.0;
|
||||||
|
|
||||||
|
PTOTAL = integration(deltaftn[celli], MFcut, Neta, pdf, f);
|
||||||
|
|
||||||
|
for(label etacount=0; etacount<=etamax ; etacount++)
|
||||||
|
{
|
||||||
|
pdf[etacount] = pdf[etacount]/PTOTAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
mfnew = integration(deltaftn[celli], MFcut, Neta, pdf, etaValue);
|
||||||
|
|
||||||
|
mf_diff = (mf[celli] - mfnew)/mf[celli];
|
||||||
|
|
||||||
|
if(std::fabs(mf_diff) > 0.00001)//1e-5)
|
||||||
|
{
|
||||||
|
mf_temp[celli] = mf_temp[celli] + 0.5*mf_diff*mf[celli];
|
||||||
|
if(loop_counter > 100)
|
||||||
|
{
|
||||||
|
Info<<"Force set pdf to one delta"<<endl;
|
||||||
|
goto set_onedelta;
|
||||||
|
}
|
||||||
|
loop_counter++;
|
||||||
|
goto Re_calculate_pdf;
|
||||||
|
}
|
||||||
|
|
||||||
|
Peta_NextCell:;
|
||||||
|
|
||||||
|
for(label etacount = 0; etacount <= etamax ; etacount++)
|
||||||
|
{
|
||||||
|
Peta[etacount][celli] = pdf[etacount];
|
||||||
|
}
|
||||||
|
loop_counter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(label etacount = 0; etacount <= etamax ; etacount++)
|
|
||||||
{
|
|
||||||
Peta[etacount][celli] = pdf[etacount];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue