CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   solution diverges when linear upwind interpolation scheme is used (http://www.cfd-online.com/Forums/openfoam/76565-solution-diverges-when-linear-upwind-interpolation-scheme-used.html)

subash May 29, 2010 01:23

solution diverges when linear upwind interpolation scheme is used
 
Hi,

I am trying to simulate supersonic flow over a ramp. The solution works well when I use a limitedlinear 1 interpolation scheme for div, but when it is converted to a second order interpolation scheme(linear upwind) the courant number which floats around 0.45 for quite sometime seems to jump suddenly to values above thousand with the number of inner iterations reaching 1000's. I have tried to run it with constant courant number also but still the solution diverges.

the fvScheme file which works fine is as shown below

ddtSchemes
{
default Euler;
}

gradSchemes
{
default Gauss linear;
}

divSchemes
{
default none;
div(phi,U) Gauss limitedLinearV 1;
div(phi,k) Gauss upwind;
div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind;
div(R) Gauss linear;
div(phid,p) Gauss limitedLinear 1;
div(phiU,p) Gauss limitedLinear 1;
div(phi,h) Gauss limitedLinear 1;
div((muEff*dev2(grad(U).T()))) Gauss linear;
}

laplacianSchemes
{
default none;
laplacian(muEff,U) Gauss linear corrected;
laplacian(DkEff,k) Gauss linear corrected;
laplacian(DREff,R) Gauss linear corrected;
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
laplacian((rho*(1|A(U))),p) Gauss linear corrected;
laplacian(alphaEff,h) Gauss linear corrected;
}

interpolationSchemes
{
default linear;
}

snGradSchemes
{
default corrected;
}

fluxRequired
{
default yes;
p;
}


And the modified file which is diverging is as follows

ddtSchemes
{
default Euler;
}

gradSchemes
{
default Gauss linear;
}

divSchemes
{
default none;
div(phi,U) Gauss linearUpwind Gauss;
div(phi,k) Gauss linearUpwind Gauss;
div(phi,epsilon) Gauss linearUpwind Gauss;
div(phi,R) Gauss linearUpwind Gauss;
div(R) Gauss linear;
div(phid,p) Gauss limitedLinear 1;
div(phiU,p) Gauss limitedLinear 1;
div(phi,e) Gauss limitedLinear 1;
div((muEff*dev2(grad(U).T()))) Gauss linear;
}

laplacianSchemes
{
default none;
laplacian(muEff,U) Gauss linear corrected;
laplacian(DkEff,k) Gauss linear corrected;
laplacian(DREff,R) Gauss linear corrected;
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
laplacian((rho*(1|A(U))),p) Gauss linear corrected;
laplacian(alphaEff,e) Gauss linear corrected;
}

interpolationSchemes
{
default linear;
}

snGradSchemes
{
default corrected;
}

fluxRequired
{
default yes;
p;
}

can someone please tell me how do I recognise(in OpenFoam) whether a transient problem being run is explicit or implicit.

Also how do I get the problem to converge with second order upwind scheme.

Thank you.


All times are GMT -4. The time now is 21:06.