On Tue, 22 Jul 2014 11:19:58 +0200
Maria Cristina Colombo <[email protected]> wrote:

> Dear all,
> 
> I'm trying to solve a nonlinear problem on a very big mesh using
> newton solver. These are the lines of my code:
> problem = MyNonlinearProblem(L,a,bc)
> solver  = NewtonSolver()
> solver.parameters["linear_solver"] = "lu"
> solver.parameters["convergence_criterion"] = "incremental"
> solver.parameters["relative_tolerance"] = 1e-6
> 
>  I encountered 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
> ------------------------------
> 
> *** [email protected]
> ------------------------------
> 
> *** 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
> 
> 
> How can I fix the problem? I have found out that I should switch to
> mumps as linear solver.. but I prefer to use LU. Is there a way to

MUMPS is also LU/Cholesky solver.

> save memory? Is it related to the 4GB limit of UMFPACK? I'm new at
> dolfin and I don't know how to solve my model ..

I don't know much about UMFPACK but in LU solver you usually get run
out of memory when problem is stiff and too much of pivoting is required
for accuracy so fill-in is large. Try fixing the stiffness of your
problem.

I'd recommend using MUMPS when one can set plenty of MUMPS options (see
MUMPS manual) from DOLFIN by

PETScOptions.set("mat_mumps_icntl_foo", bar)
PETScOptions.set("mat_mumps_cntl_foo", bar)

But generally, one should switch to Cholesky or even positive-definite
Cholesky when the problem is symmetric or SPD respectively. The theory
of factorization is much more stronger there and solvers' robustness
reflect that.

Jan

> 
> 
> Thanks
> 
> Cristina

_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to