CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   twoPhaseEulerFoam - floating point exception (nutb) (https://www.cfd-online.com/Forums/openfoam-solving/63467-twophaseeulerfoam-floating-point-exception-nutb.html)

 Hectux April 9, 2009 05:07

twoPhaseEulerFoam - floating point exception (nutb)

Hi,

I just started with the twoPhaseEulerFoam Solver.
I got while "calculating nutb" a floating point exception.

I saw that nutb is turbulent kinematic viscosity of phase b. Where could be the problem?

Br

 juho April 9, 2009 10:41

Quote:
 Originally Posted by Hectux (Post 212439) Hi, I just started with the twoPhaseEulerFoam Solver. I got while "calculating nutb" a floating point exception. I saw that nutb is turbulent kinematic viscosity of phase b. Where could be the problem? Br
I guess you're using 1.5? If you look at the createFields.H in the solvers's folder and search for the line "Calculating field nutb" you will find:

Info<< "Calculating field nutb\n" << endl;
volScalarField nutb
(
IOobject
(
"nutb",
runTime.timeName(),
mesh,
IOobject::AUTO_WRITE
),
Cmu*sqr(k)/epsilon
);

Most floating point exceptions are divide-by-zeros. As you can see the square of the turbulent kinetic energy, k, is divided by epsilon. I guess you have a zero in your epsilon field? You can eliminate the floating point exception by using a small value such as 1e-13 instead.

However, in 1.5.x version this problem is eliminated by using:

Cmu*sqr(k)/max(epsilon, dimensionedScalar("smallEps",epsilon.dimensions(), 1e-6))

Where the value of epsilon in the denominator is limited to larger than 1e-6 and thus removing the possibility of a floating point exception caused by a zero in the epsilon field.

So another option is to update to 1.5.x or to modify the line yourself and recompile the solver.

 All times are GMT -4. The time now is 23:47.