This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

Reason: PETSc error code is: 76

+3 votes

I'm solving a non linear problem and I get this error:

UMFPACK V5.4.0 (May 20, 2009): ERROR: out of memory

Traceback (most recent call last):
File "CH_BC_Tdip.py", line 170, in
solver.solve(problem, u.vector())
RuntimeError:

*** -------------------------------------------------------------------------
*** DOLFIN encountered an error. If you are not able to resolve this issue
*** using the information listed below, you can ask for help at


*** fenics@fenicsproject.org


*** Remember to include the error message listed below and, if possible,
*** include a minimal running example to reproduce the error.


*** -------------------------------------------------------------------------
*** Error: Unable to successfully call PETSc function 'KSPSolve'.
*** Reason: PETSc error code is: 76.
*** Where: This error was encountered inside /build/buildd/dolfin-1.4.0+dfsg/dolfin/la/PETScLUSolver.cpp.
*** Process: unknown


*** DOLFIN version: 1.4.0
*** Git changeset: unknown

How can I fix it? Is it related to the memory of the computer or something else??
Thanks
Cristina

asked Jul 21, 2014 by MCri FEniCS User (1,120 points)

When you run the code, how does your system memory look?

2 Answers

+6 votes
 
Best answer

Hi!
I think you have encountered an UMFPack bug which limits the memory usage to 4GB.
The same questions was answered here
https://answers.launchpad.net/dolfin/+question/170112

To use the direct linear solver mumps you can write something like
solve(a == L, u, bc, solver_parameters={'linear_solver':'mumps'})

answered Jul 26, 2014 by Stefan_Jakobsson FEniCS Novice (810 points)
selected Mar 3, 2015 by MCri
+3 votes

Hi Maria, I think you will get the same answer here as you did on the fenics support list... (sorry, a lot of the same people).
The reason is "ERROR: out of memory"
and the fix is to
a) solve a smaller problem
b) solve on a bigger computer
c) solve with a different solver

I guess a) is out of the question.
Are you on a cluster or your own computer. Do you have multiple cores? If so, you can look into b). You can tell FEniCS to divide your problem into (eg, with 4 cores) 4 smaller problems, each of which will be solved on a single core using Umfpack (if you like). Then your problem is stitched back together. If you want to try that, post a minimal working example and we can help set it up. But first:
To be honest, the first thing I would do would be to try an iterative solver (start with gmres). I was weary at first but learnt to love them afterwards. The speedup / memory decrease can be substantial.

answered Jul 23, 2014 by mwelland FEniCS User (8,410 points)

Thanks a lot for your suggestions!!

...