Hello, CFD community,
I am currently facing a challenging issue with my LES simulation of a jet flame using the reactingFOAM solver coupled with the PaSR combustion model in OpenFOAM 10. Initially, with a coarser mesh, both simple and Laplace filters were stable, although the Laplace filter required a smaller time step for stability. However, after refining my mesh for better accuracy, the simulation diverges when using the Laplace filter.
Despite velocity and species fields meeting convergence criteria (residuals lower than 1e-8), the simulation suddenly diverges after several time steps. The divergence manifests as an extremely high max k value (reaching up to 1e+17), with the lowest temperature dropping to just a few tens of Kelvin (which is unrealistic for combustion reactions) and the highest temperature exceeding 6000K. Considering the nature of the Laplace filter, I attempted to mitigate this issue by applying limiters in the laplacianSchemes (Gauss linear limited 0.5) and on the viscous terms (div(((rho*nuEff)*dev2(T(grad(U))))) Gauss limitedLinear 0.5), but these adjustments seem to have little to no effect on preventing divergence.
I am reaching out to the community for any insights, suggestions, or advice on how to address this issue. Could there be something I'm overlooking in my setup? How can I identify and resolve the root cause of this divergence?
Thank you in advance for your time and help. Your expertise is greatly appreciated. Here is my fvSolution and fvSchemes:
Code:
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"(p|rho)"
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-8;
relTol 1e-5;
maxIter 500;
}
"(p|rho)Final"
{
$p;
relTol 0;
}
"(U|e|k|nuTilda|h)"
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-8;
relTol 1e-5;
maxIter 500;
}
"(U|e|k|nuTilda|h)Final"
{
$U;
relTol 0;
}
"Yi.*"
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-8;
relTol 1e-5;
maxIter 500;
}
}
PIMPLE
{
momentumPredictor yes;
nOuterCorrectors 10;
nCorrectors 3;
nNonOrthogonalCorrectors 3;
transonic yes;
}
relaxationFactors
{
fields
{
p 0.8;
}
equations
{
U 0.8;
"(k|h).*" 0.8;
}
}
// ************************************************************************* //
Code:
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default CrankNicolson 0.9;
}
gradSchemes
{
default cellMDLimited Gauss linear 0.5;
grad(U) cellMDLimited Gauss linear 0.5;
}
divSchemes
{
default none;
div(phi,U) Gauss limitedLinearV 1;
div(phi,Yi) Gauss limitedLinear01 1;
div(phi,h) Gauss limitedLinear 1;
div(phi,K) Gauss limitedLinear 1;
div(phid,p) Gauss limitedLinear 1;
div(phi,epsilon) Gauss limitedLinear 1;
div(phi,Yi_h) Gauss limitedLinear01 1;
div(phi,k) Gauss limitedLinear 1;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss limitedLinear 0.5;
}
laplacianSchemes
{
default Gauss linear limited 0.5;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default limited 0.5;
}
// ************************************************************************* //