dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #07896
Re: Use of LinearSolver
On Thu, May 15, 2008 at 05:24:39PM +0100, Nuno David Lopes wrote:
> After a great struggle for a clean install in a ubuntu 8.04 box i could
> compile dolfin, with umfpack and without petsc. Just like i have in my
> ubuntu 7.10 laptop.
>
> After some tests i've found that I'm unable to get a KrylovSolver other than
> Bicgstag!!!! Is this a Known issue? I guess i've all the blas
> related libs...
Yes, I think someone else mentioned it to me.
See if it works now. I've attempted to fix it. If not, it should be
easy to fix.
> libboost
> atlas3
> lapack3
> refblas3
> with dev's also.
>
> if i have something like:
>
> KrylovSolver solver(gmres,ilu);
>
> KrylovSolver solver(cg);
>
> LinearSolver solver(gmres);
>
> solve(A,x,b,gmres);
>
> i got the following message
>
> Solving linear system of size 40121 x 40121 (uBlas Krylov solver).
> *** Warning: Requested Krylov method unknown. Using BiCGStab.
>
> I've no problems with LUSolver.(umfpack seems to be alright)
>
> Is this a Known issue?
> Do i need petsc for that?
> I can't compile with umfpack and petsc...
> but as i've seen thru the mailing list that is known and difficult issue
> about package dependencies, right?
>
> Thanks.
>
>
> On Saturday 10 May 2008, Anders Logg wrote:
> > LinearSolver is now a general wrapper for all linear solvers
> > (rather than a base class for linear solvers). Creating a LinearSolver
> > and reusing it instead of calling solve() multiple times gives
> > about 5% speedup.
> >
> > It's a subclass of Parametrized, meaning that it's possible to set
> > parameters. For example, it should be possible to do
> >
> > LinearSolver solver(gmres, amg);
> > solver.set("Krylov relative tolerance", 1e-6);
> > solver.set("Krylov absolute tolerance". 1e-6);
> > solver.solve(A, x, b);
> >
> > and have those parameters passed on to the backend (for example
> > PETSc).
> >
> > For those of you interested in setting special parameters to different
> > backends, the available parameters are listed in
> >
> > dolfin/parameter/DefaultParameters.h
> >
> > and they are accessed in the different backends by for example
> >
> > tol = get("Krylov relative tolerance");
> >
> > Supply a patch if there are parameters you think are missing.
> >
> > We probably should not support all parameters for all backends.
>
>
>
Follow ups
References