CFD Online Logo CFD Online URL
Home > Forums > OpenFOAM

SIGFPE unless deltaT extremely small

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

LinkBack Thread Tools Display Modes
Old   July 2, 2010, 02:16
Default SIGFPE unless deltaT extremely small
New Member
Ondra Mican
Join Date: Apr 2009
Location: Prague, Czech Republic
Posts: 1
Rep Power: 0
omican is on a distinguished road
Hello all!

I am trying to solve the following system in 2D:

dc1/dt = b*c2*c2 + L1 laplace c1 + n L4 laplace phi
dc2/dt = 2a - 2b*c2*c2 + L3 laplace c1 + L4 laplace phi
laplace phi = - L2 * c2

for which I made a straightforward solver like this:

for (runTime++; !runTime.end(); runTime++)
Info<< "Time = " << runTime.timeName() << nl << endl;

# include "readSIMPLEControls.H"

scalar maxResidual = 0;

for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)

fvScalarMatrix EqC1
fvm::laplacian(L1, C1)
fvc::laplacian(n*L4, elstat_pot)

scalar eqnResidualC1 = EqC1.solve().initialResidual();

maxResidual = max(eqnResidualC1, maxResidual);

fvScalarMatrix EqC2

fvc::laplacian(L3, C1)
fvc::laplacian(L4, elstat_pot)

scalar eqnResidualC2 = EqC2.solve().initialResidual();

maxResidual = max(eqnResidualC2, maxResidual);

fvScalarMatrix EqPot


scalar eqnResidualPot = EqPot.solve().initialResidual();

maxResidual = max(eqnResidualPot, maxResidual);


# include "write.H"

Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"

<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;

It works fine with some cases, but crashes for others. For example when I use the following values of parameters:


the solver works pretty fine. But when I raise L2 to 1.08973e+15 (which is physically more reasonable), only a few time levels are computed and then the solver crashes saying

#0 Foam::error::printStack(Foam::Ostream&) in "/home/sporit/OpenFOAM/OpenFOAM-1.6/lib/linuxGccDPOpt/"
#1 Foam::sigFpe::sigFpeHandler(int) in "/home/sporit/OpenFOAM/OpenFOAM-1.6/lib/linuxGccDPOpt/"
#2 Uninterpreted:
#3 Foam::PCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/home/sporit/OpenFOAM/OpenFOAM-1.6/lib/linuxGccDPOpt/"
#4 Foam::GAMGSolver::solveCoarsestLevel(Foam::Field<d ouble>&, Foam::Field<double> const&) const in "/home/sporit/OpenFOAM/OpenFOAM-1.6/lib/linuxGccDPOpt/"
#5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMa trix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const in "/home/sporit/OpenFOAM/OpenFOAM-1.6/lib/linuxGccDPOpt/"
#6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/home/sporit/OpenFOAM/OpenFOAM-1.6/lib/linuxGccDPOpt/"
#7 Foam::fvMatrix<double>::solve(Foam::dictionary const&) in "/home/sporit/OpenFOAM/OpenFOAM-1.6/lib/linuxGccDPOpt/"
#8 main in "/home/sporit/OpenFOAM/sporit-1.6/applications/bin/linuxGccDPOpt/cellFoamForum"
#9 __libc_start_main in "/lib/"
#10 Foam::regIOobject::writeObject(Foam::IOstream::str eamFormat, Foam::IOstream::versionNumber, Foam::IOstream::compressionType) const in "/home/sporit/OpenFOAM/sporit-1.6/applications/bin/linuxGccDPOpt/cellFoamForum"
Floating point exception(SIGFPE)

I've tried various numerical schemes as well as various linear-solvers, but the only settings that really helps is to reduce deltaT. However, for some values (like the ones shown above) deltaT has to be set to something like 5e-11 which makes the process extremely slow. Any advice or recommendation how to speed up the computation in this case will be highly appreciated.

Thanks a lot in advance,
omican is offline   Reply With Quote


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

Similar Threads
Thread Thread Starter Forum Replies Last Post
why did Time step is too small in stiffbs? satum FLUENT 1 December 10, 2012 10:15
Floating point exception error with small DeltaT rassilon OpenFOAM Running, Solving & CFD 19 September 2, 2009 07:39
problems with turbFoam (small deltaT) sven82 OpenFOAM Running, Solving & CFD 1 May 26, 2009 08:03
what happens if y+ is too large or too small Bo Jensen Siemens 12 February 20, 2003 00:31
small size holes simulation brian ko Phoenics 5 October 22, 2001 12:53

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