dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #24687
Re: [noreply@xxxxxxxxxxxxx: [Branch ~dolfin-core/dolfin/logg] Rev 6336: Big cleanup of setting/listing linear solver methods and preconditioners:]
-
To:
"Garth N. Wells" <gnw20@xxxxxxxxx>
-
From:
Anders Logg <logg@xxxxxxxxx>
-
Date:
Fri, 7 Oct 2011 18:05:29 +0200
-
Cc:
DOLFIN Mailing List <dolfin@xxxxxxxxxxxxxxxxxxx>
-
In-reply-to:
<CAA4C66OO0mO1-QFpwef2b+WB1c-BhSZY_R3E=69yzyNP16xtHQ@mail.gmail.com>
-
User-agent:
Mutt/1.5.21 (2010-09-15)
And btw boost::assign is very handy!
--
Anders
On Fri, Oct 07, 2011 at 04:47:56PM +0100, Garth N. Wells wrote:
> It would be handy to also have
>
> bool has_method("foo");
>
> Garth
>
> On 7 October 2011 14:20, Anders Logg <logg@xxxxxxxxx> wrote:
> > I set out to fix this bug:
> >
> > https://bugs.launchpad.net/dolfin/+bug/868465
> >
> > but things spread out and I ended up touching all the la files.
> > I won't push this to trunk until I've done some more testing, but
> > here's a summary of the changes:
> >
> > 1. Each solver defines a set of available methods and preconditioners
> > which can be accessed by
> >
> > FooLUSolver::list_methods()
> >
> > FooKrylovSolver::list_methods()
> > FooKrylovSolver::list_preconditioners()
> >
> > 2. New global functions that list available methods and Krylov solvers
> > for the currently chosen backend:
> >
> > list_lu_methods()
> >
> > list_krylov_methods()
> > list_preconditioners()
> >
> > list_solver_methods() = list_{lu + krylov}_methods
> >
> > 3. Changes in all factory classes to handle the above
> >
> > 4. Checks added to check whether a certain method is available and
> > that the preconditioner is set to "none" when using a Krylov method.
> >
> > The following output is printed when calling the above methods using
> > the PETSc backend:
> >
> > LU method | Description
> > -----------------------------------------------------------------------------
> > default | default LU solver
> > umfpack | UMFPACK (Unsymmetric MultiFrontal sparse LU factorization)
> > mumps | MUMPS (MUltifrontal Massively Parallel Sparse direct Solver)
> > pastix | PaStiX (Parallel Sparse matriX package)
> > spooles | SPOOLES (SParse Object Oriented Linear Equations Solver)
> > superlu | SuperLU
> > superlu_dist | Parallel SuperLU
> > petsc | PETSc builtin LU solver
> >
> > Krylov method | Description
> > --------------------------------------------------------------
> > default | default Krylov method
> > cg | Conjugate gradient method
> > gmres | Generalized minimal residual method
> > minres | Minimal residual method
> > tfqmr | Transpose-free quasi-minimal residual method
> > richardson | Richardson method
> > bicgstab | Biconjugate gradient stabilized method
> >
> > Preconditioner | Description
> > ---------------------------------------------------------------
> > default | default preconditioner
> > none | No preconditioner
> > ilu | Incomplete LU factorization
> > icc | Incomplete Cholesky factorization
> > jacobi | Jacobi iteration
> > bjacobi | Block Jacobi iteration
> > sor | Successive over-relaxation
> > additive_schwarz | Additive Schwarz
> > amg | Algebraic multigrid
> > hypre_amg | Hypre algebraic multigrid (BoomerAMG)
> > hypre_euclid | Hypre parallel incomplete LU factorization
> > hypre_parasails | Hypre parallel sparse approximate inverse
> > ml_amg | ML algebraic multigrid
> >
> >
> >
> > ---------- Forwarded message ----------
> > From: noreply@xxxxxxxxxxxxx
> > To: Anders Logg <logg@xxxxxxxxx>
> > Date: Fri, 07 Oct 2011 12:37:16 -0000
> > Subject: [Branch ~dolfin-core/dolfin/logg] Rev 6336: Big cleanup of setting/listing linear solver methods and preconditioners:
> > ------------------------------------------------------------
> > revno: 6336
> > committer: Anders Logg <logg@xxxxxxxxx>
> > branch nick: work
> > timestamp: Fri 2011-10-07 14:24:30 +0200
> > message:
> > Big cleanup of setting/listing linear solver methods and preconditioners:
> > - new global function list_lu_methods
> > - new global function list_krylov_methods
> > - new global function list_preconditioners
> > - extension of LinearAlgebraFactor interface above functions
> > - extension of all solvers and factories with above functions
> > modified:
> > ChangeLog
> > dolfin/la/CholmodCholeskySolver.cpp
> > dolfin/la/CholmodCholeskySolver.h
> > dolfin/la/DefaultFactory.cpp
> > dolfin/la/DefaultFactory.h
> > dolfin/la/EpetraFactory.cpp
> > dolfin/la/EpetraFactory.h
> > dolfin/la/EpetraKrylovSolver.cpp
> > dolfin/la/EpetraKrylovSolver.h
> > dolfin/la/EpetraLUSolver.cpp
> > dolfin/la/EpetraLUSolver.h
> > dolfin/la/ITLKrylovSolver.cpp
> > dolfin/la/ITLKrylovSolver.h
> > dolfin/la/KrylovSolver.cpp
> > dolfin/la/KrylovSolver.h
> > dolfin/la/LUSolver.cpp
> > dolfin/la/LUSolver.h
> > dolfin/la/LinearAlgebraFactory.h
> > dolfin/la/LinearSolver.cpp
> > dolfin/la/LinearSolver.h
> > dolfin/la/MTL4Factory.h
> > dolfin/la/PETScFactory.cpp
> > dolfin/la/PETScFactory.h
> > dolfin/la/PETScKrylovSolver.cpp
> > dolfin/la/PETScKrylovSolver.h
> > dolfin/la/PETScLUSolver.cpp
> > dolfin/la/PETScLUSolver.h
> > dolfin/la/PETScPreconditioner.cpp
> > dolfin/la/PETScPreconditioner.h
> > dolfin/la/STLFactory.h
> > dolfin/la/SingularSolver.cpp
> > dolfin/la/SingularSolver.h
> > dolfin/la/TrilinosPreconditioner.cpp
> > dolfin/la/TrilinosPreconditioner.h
> > dolfin/la/solve.cpp
> > dolfin/la/solve.h
> > dolfin/la/uBLASFactory.h
> > dolfin/la/uBLASKrylovSolver.cpp
> > dolfin/la/uBLASKrylovSolver.h
> > The size of the diff (2615 lines) is larger than your specified limit of 500 lines
> >
> >
> > Your team DOLFIN Core Team is subscribed to branch lp:~dolfin-core/dolfin/logg.
> > To unsubscribe from this branch go to https://code.launchpad.net/~dolfin-core/dolfin/logg/+edit-subscription
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~dolfin
> > Post to : dolfin@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~dolfin
> > More help : https://help.launchpad.net/ListHelp
> >
> >
References