CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   Help ! (https://www.cfd-online.com/Forums/openfoam/85928-help.html)

taalf March 9, 2011 15:35

Help !
 
Hello,

First, I would like to thank everybody who will spend time reading this post.

So, that's it : for the second time I tried to make a calculation with a coarse mesh and nothing wrong happened. Then I tried with a finer mesh and I had this kind of error at the first iteration:

Code:

Starting time loop

Time = 0.450001

Courant Number mean: 0.000114088 max: 0.141285
DILUPBiCG:  Solving for Ux, Initial residual = 4.08431e-07, Final residual = 4.08431e-07, No Iterations 0
DILUPBiCG:  Solving for Uy, Initial residual = 5.36397e-07, Final residual = 5.36397e-07, No Iterations 0
DILUPBiCG:  Solving for Uz, Initial residual = 1.92053e-06, Final residual = 1.92053e-06, No Iterations 0
DICPCG:  Solving for p, Initial residual = 0.994395, Final residual = 0.0949762, No Iterations 10
time step continuity errors : sum local = 7.27923e-09, global = -2.19507e-11, cumulative = -2.19507e-11
DICPCG:  Solving for p, Initial residual = 0.0759985, Final residual = 9.46632e-07, No Iterations 142
time step continuity errors : sum local = 1.55001e-13, global = 5.68589e-15, cumulative = -2.1945e-11
#0  Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam171/lib/linuxGccDPOpt/libOpenFOAM.so"
#1  Foam::sigFpe::sigFpeHandler(int) in "/opt/openfoam171/lib/linuxGccDPOpt/libOpenFOAM.so"
#2  Uninterpreted:
#3  Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/opt/openfoam171/lib/linuxGccDPOpt/libOpenFOAM.so"
#4  void Foam::divide<Foam::fvPatchField, Foam::volMesh>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/opt/openfoam171/lib/linuxGccDPOpt/libincompressibleRASModels.so"
#5  Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::operator/<Foam::fvPatchField, Foam::volMesh>(Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/opt/openfoam171/lib/linuxGccDPOpt/libincompressibleRASModels.so"
#6  Foam::incompressible::RASModels::kEpsilon::correct() in "/opt/openfoam171/lib/linuxGccDPOpt/libincompressibleRASModels.so"
#7 
 in "/opt/openfoam171/applications/bin/linuxGccDPOpt/pisoFoam"
#8  __libc_start_main in "/lib/libc.so.6"
#9 
 in "/opt/openfoam171/applications/bin/linuxGccDPOpt/pisoFoam"

I really don't know what to do.

This is my case:
http://img4.hostingpics.net/thumbs/m...reenshot11.png
(You can click to enlarge the pictures)

I wanted to use pisoFoam with a k-epsilon turbulence model.

This is my first mesh (around 50 000 cells):
http://img4.hostingpics.net/thumbs/m...reenshot12.png

...and the result of the first calculation:
http://img4.hostingpics.net/thumbs/m...reenshot16.png

I found this result good, so I did a finer mesh (around 500 000 cells):
http://img4.hostingpics.net/thumbs/m...reenshot20.png

http://img4.hostingpics.net/thumbs/m...reenshot21.png

... and I made a "mapField" onto it from the coarse mesh:
http://img4.hostingpics.net/thumbs/m...reenshot22.png

But the story ends here...

My fvSchemes :
Code:

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

ddtSchemes
{
    default        Euler;
}

gradSchemes
{
    default        Gauss linear;
    grad(p)        Gauss linear;
    grad(U)        Gauss linear;
}

divSchemes
{
    default        none;
    div(phi,U)      Gauss limitedLinearV 1;
    div(phi,k)      Gauss limitedLinear 1;
    div(phi,epsilon) Gauss limitedLinear 1;
    div(phi,R)      Gauss limitedLinear 1;
    div(R)          Gauss linear;
    div(phi,nuTilda) Gauss limitedLinear 1;
    div((nuEff*dev(grad(U).T()))) Gauss linear;
}

laplacianSchemes
{
    default        none;
    laplacian(nuEff,U) Gauss linear corrected;
    laplacian((1|A(U)),p) Gauss linear corrected;
    laplacian(DkEff,k) Gauss linear corrected;
    laplacian(DepsilonEff,epsilon) Gauss linear corrected;
    laplacian(DREff,R) Gauss linear corrected;
    laplacian(DnuTildaEff,nuTilda) Gauss linear corrected;
}

interpolationSchemes
{
    default        linear;
    interpolate(U)  linear;
}

snGradSchemes
{
    default        corrected;
}

fluxRequired
{
    default        no;
    p              ;
}


// ************************************************************************* //

... and my fvSolution:
Code:

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
    p
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance      1e-06;
        relTol          0.1;
    }

    pFinal
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance      1e-06;
        relTol          0;
    }

    U
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance      1e-05;
        relTol          0;
    }

    k
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance      1e-05;
        relTol          0;
    }

    epsilon
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance      1e-05;
        relTol          0;
    }

    R
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance      1e-05;
        relTol          0;
    }

    nuTilda
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance      1e-05;
        relTol          0;
    }
}

PISO
{
    nCorrectors    2;
    nNonOrthogonalCorrectors 0;
    pRefCell        0;
    pRefValue      0;
}


// ************************************************************************* //

I would be very grateful to the one who can teach me what I did wrong !

Very sincerely,

danielcebrian April 22, 2011 07:27

Hello William.

I think you used a fine mesh near the surface the body, this is good, but there
is a problem with the change of cellīs size. I think the solution maybe not to
make big change of size between cells.

I donīt know why you are using triangular cells. Square cells are better.

Iīm doing a case similar to yours. I simulate a flat plate with pisoFoam, if you want we could talk about it. I calculate the forces in the bluff body and the aerodynamic coef.

My name is Daniel and my email is:
danielcebrianr@gmail.com

ngj April 22, 2011 07:50

Hello William

The error message tells you that you are dividing by 0 within the k-epsilon equations. Are you sure that you have not changed the boundary conditions/internal values for either k or epsilon from the coarse to the fine mesh? Neither property most be 0, but should take a finite value.

Good luck

Niels

taalf April 24, 2011 16:00

Hello, everybody,

Thank you very much for your replies.

To Daniel:

Actually, I did that case as an example for a school project consisting in presenting and giving the bases of OpenFOAM. As I didn't find my mistake, I made another case, very similar but not exactly the same, and this time it worked. So, I don't spend any time on this case at all, but would be glad to speak about OpenFOAM anyway. :)

Just for the pleasure, my final case:

The rough mesh :
http://img11.hostingpics.net/thumbs/mini_1911811.jpg
(You can click to enlarge the pictures)

The velocity field after few iterations:
http://img11.hostingpics.net/thumbs/mini_3290492.jpg

The mesh with a refinement box enclosing the high velocity gradient zone:
http://img11.hostingpics.net/thumbs/mini_6482093.jpg

The refinement box to enclose the vortex after having rotated the mesh:
http://img11.hostingpics.net/thumbs/mini_4504544.jpg

The final result:
http://img11.hostingpics.net/thumbs/mini_2736405.jpg

http://img11.hostingpics.net/thumbs/mini_6993526.jpg

PS: The mesh isn't triangular. :) It's a matter of visualization with Paraview when you use a cutting plane.

To Neils:

Thank you very much for your details about the error. As a novice like me, one of the much difficult thing to do is to decrypt the error messages.

I thought this kind of error appeared when the calculation "blows up" (diverges). I have already seen such error after maybe 150 iterations on a case, and after reducing the current number this error disappeared.

In fact, I don't know how to read these error messages. For example, what are these "#1", "#2", etc.

And, how do we know that it is a division by zero in the k-epsilon equation ? Yes, one can read "divide" and "KEpsilon" in the error message, but how to be sure it is a division by zero ? :)

I think I should learn to understand these message by reading some C++ documentation, isn't it ? :)

But thank you very much for your explanation.

Very sincerely,

William

ngj April 24, 2011 16:19

Hi William

Sure, here is a small explanation. I have always interpreted the numbering as a kind of unwinding of the error, essentially like an onion, where the inner part, the actual problem is given "#0", and then you can trace back from there. So:

#2: (SIGFPE) You can always try wiki, however, this error tells you that you have performed an illegal arithmetic operation.
#3: This tells you that the SIGFPE reported in #2 originates from a divide operator, meaning that the denominator is numerically taken as zero.
#6: Those in #4 and #5 tells something about the fields, which cause the error, and this part of the error tells you that it occurs in kEpsilon.correct().

Therefore find the place in this method in the object kEpsilon, where you divide by zero.

The reason for my suggestion to the origin of the error is:

1. It is the very first encounter with a solution to either k or epsilon after the start of the simulation, because the top of what you have reported states "starting time loop".

2. I have seen questions about this error so many times on this forum during the last 3-4 years. (I know it does not help you, though :) )

I hope my suggestions have solved your problem.

Happy Easter :)

- Niels

hei@ge December 27, 2011 20:38

Hi,friend,i got the same error when i calculated my case.Did you solve your question? Can you give me some advice? Thanks a lot .My e-mail is :zhangdesheng0068@126.com.Please contact me,ok?

taalf December 28, 2011 01:59

Dear hei@ge,

Unfortunatelly, I didn't solved this problem and won't use OpenFoam before a while I think (no time).

If you are like me using a coarser and a finer mesh, you can maybe take a look to the danielcebrian or ngj advices below (cells too much different between coarse and fine meshes or a change in the k-epsilon boundary or initial conditions) ?

In each case, have a happy new year ! :)

Best regards,

hei@ge December 28, 2011 02:50

Thanks for your reply.I think i should discuss it with my boss.Happy new year.


All times are GMT -4. The time now is 12:20.