[please, keep [email protected] in CC]

On Tue, 22 Jul 2014 12:15:45 +0200
Maria Cristina Colombo <[email protected]> wrote:

> Is there a way to continue using
> > problem = MyNonlinearProblem(L,a,bc)
> > solver  = NewtonSolver()
> > solver.parameters["linear_solver"] = "lu"
> > solver.parameters["convergence_criterion"] = "incremental"
> > solver.parameters["relative_tolerance"] = 1e-6
> 
> without having that problem?

Well, I don't know. My point was that LU solvers usually tend to having
problems when the underlying equations are stiff/difficult to
solve (well-posedness is close to be lost). So you could try tweaking
parameters of your problem (including spatial/time resolution,
time-stepping scheme, regularization parameters if any...) to make the
problem more numerically stable for LU factorization.

Nevertheless, I would recommend you trying
  solver.parameters["linear_solver"] = "mumps"
I don't see a reason why this is unacceptable for you?

Jan

> I'm not understanding what you say :(
> 
> 
> 2014-07-22 11:51 GMT+02:00 Jan Blechta <[email protected]>:
> 
> > 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