CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM

Help !

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   March 9, 2011, 16:35
Default Help !
  #1
Member
 
taalf's Avatar
 
William Tougeron
Join Date: Jan 2011
Location: Czech Republic
Posts: 43
Rep Power: 6
taalf is on a distinguished road
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:

(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):


...and the result of the first calculation:


I found this result good, so I did a finer mesh (around 500 000 cells):




... and I made a "mapField" onto it from the coarse mesh:


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,
taalf is offline   Reply With Quote

Old   April 22, 2011, 07:27
Default
  #2
New Member
 
Daniel Cebrián
Join Date: Nov 2010
Posts: 8
Rep Power: 6
danielcebrian is on a distinguished road
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
danielcebrian is offline   Reply With Quote

Old   April 22, 2011, 07:50
Default
  #3
ngj
Senior Member
 
Niels Gjoel Jacobsen
Join Date: Mar 2009
Location: Rotterdam, The Netherlands
Posts: 1,595
Rep Power: 24
ngj will become famous soon enoughngj will become famous soon enough
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
ngj is offline   Reply With Quote

Old   April 24, 2011, 16:00
Default
  #4
Member
 
taalf's Avatar
 
William Tougeron
Join Date: Jan 2011
Location: Czech Republic
Posts: 43
Rep Power: 6
taalf is on a distinguished road
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 :

(You can click to enlarge the pictures)

The velocity field after few iterations:


The mesh with a refinement box enclosing the high velocity gradient zone:


The refinement box to enclose the vortex after having rotated the mesh:


The final result:




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
taalf is offline   Reply With Quote

Old   April 24, 2011, 16:19
Default
  #5
ngj
Senior Member
 
Niels Gjoel Jacobsen
Join Date: Mar 2009
Location: Rotterdam, The Netherlands
Posts: 1,595
Rep Power: 24
ngj will become famous soon enoughngj will become famous soon enough
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
ngj is offline   Reply With Quote

Old   December 27, 2011, 21:38
Default
  #6
Member
 
张德胜
Join Date: Oct 2011
Posts: 71
Rep Power: 5
hei@ge is on a distinguished road
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?
hei@ge is offline   Reply With Quote

Old   December 28, 2011, 02:59
Default
  #7
Member
 
taalf's Avatar
 
William Tougeron
Join Date: Jan 2011
Location: Czech Republic
Posts: 43
Rep Power: 6
taalf is on a distinguished road
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,
taalf is offline   Reply With Quote

Old   December 28, 2011, 03:50
Default
  #8
Member
 
张德胜
Join Date: Oct 2011
Posts: 71
Rep Power: 5
hei@ge is on a distinguished road
Thanks for your reply.I think i should discuss it with my boss.Happy new year.
hei@ge is offline   Reply With Quote

Reply

Tags
error, pisofoam

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -4. The time now is 00:29.