cfdemSolverPiso ncorrSoph issue

Submitted by schmeeck on Tue, 07/24/2012 - 16:24

In cfdemSolverPiso there is the following line of code:
int nCorrSoph = nCorr + 5 * pow((1-particleCloud.dataExchangeM().timeStepFraction()),1);
I have been running on othogonal grids with nCorr set to 2, and timeStepFraction =1. Unfortunately nCorrSoph evaluates to 2 or 1. It swithches off between the two values within the same run. This seems to be a double to int casting error.

Later in the Piso algorithm there is this:
if
(
corr == nCorr-1
&& nonOrth == nNonOrthCorr
)
{
pEqn.solve(mesh.solver("pFinal"));
}

When the casting error occurs and nCorrSoph goes to 1 instead of 2, the solution never enters the pFinal solution mode. This is highly undesirable if the relative tolerance of p in fvSolution is set high.

I have really been getting useful results from the program.
Thanks,
Mark

cheng1988sjtu | Fri, 11/16/2012 - 21:31

I'm sorry, instead of answering your question, I'm raising the question, why do we need this nCorrSoph, and what does the TimestepFraction mean anyway.

Because, CFDEM is done in the way that CFD part updated in a larger time step, and then transfer and fluid information to the DEM part, and update the fluid-particle interaction force, then update the velocity and position of particles. However, this does not seem to matter in the p-equation, we can always set the nCorr value higher, right?

Also, even though we are introducing nCorrSoph into the iteration, we are still using the line:
if
(
corr == nCorr-1
&& nonOrth == nNonOrthCorr
)
{
pEqn.solve(mesh.solver("pFinal"));
}
else
{
pEqn.solve();
}
Which I don't quite understand, could anybody throw some light upon this? Thanks!

Charlie

C.Z. U of D