CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Fundamental problem with Gamma scheme (https://www.cfd-online.com/Forums/openfoam-solving/58593-fundamental-problem-gamma-scheme.html)

 dominik_christ August 28, 2008 05:08

Hello, do I understand the

Hello,

do I understand the Gamma discretisation scheme right that it is a blend of central differencing (CD) and upwind differencing (UD)? But then I don't understand the following problem:
My test case converges easily with both UD and CD (also LUD runs without problems) giving me residuals in the order of 1e-07.
If I switch to Gamma scheme, I don't get convergence, the residuals remain around 0.4 and every step takes a lot of internal iterations.

My very simple test case (I attached it as a tgz-file) uses scalarTransportFoam on a 10x10 checkerboard mesh. I want to use it to evaluate convection discretisation schemes like it is done in the book by Versteeg and Malalasekera.
The uniform velocity field is diagonal from the lower left to the upper right corner. The T field is set to 1 on the left side and 0 on the bottom.
The boundary conditions are:

For T:
internalField uniform 0;

boundaryField
{
left
{
type fixedValue;
value uniform 1;
}
bottom
{
type fixedValue;
value uniform 0;
}
top
{
}
right
{
}
frontAndBack
{
type empty;
}
}
For U:
internalField uniform (2 2 0);

boundaryField
{
left
{
type fixedValue;
value uniform (2 2 0);
}
bottom
{
type fixedValue;
value uniform (2 2 0);
}
top
{
}
right
{
}
frontAndBack
{
type empty;
}
}

The value for the diffusivity DT is set to zero in the transportProperties dictionary.

So, do I run into a fundamental problem of the Gamma scheme, or did I just overlook a fault in my setup? Or is it a problem to use steadyState with scalarTransportFoam?

Regards
Dominik

http://www.cfd-online.com/OpenFOAM_D...hment_icon.gif checkerBoard.tgz

 hjasak August 28, 2008 05:42

In fact, you have not done any

In fact, you have not done anything wrong - you have discovered the problem at the basis of CFD convection discretisation research for the last 25 years. Basically, a scheme must be non-linear to be bounded and more than first-order accurate at the same time. With a non-linear scheme, there is no guarantee of convergence. In practice and for most schemes, you will have to play with the adjustable factor in the scheme to get what you want - it is a balance between accuracy and convergence.

Have a look at some convection differencing scheme papers and all will be clear. To make things easier, you may wish to tighten the solver tolerances, decrease the time-step size, use deferred correction schemes or all of the above. BTW, steadyState is definitely a bad idea, because you just lost the diagonal dominance.

Enjoy,

Hrv

 dominik_christ August 28, 2008 11:28

Hi Hrv, thank you very much

Hi Hrv,