dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #02180
Re: [HG] Allow PETSc matrix type to be set through the Matrix constructor.
Matt told me that the PETSc LU solver is poor, but still I was really
surprised at the speed-up.
Garth
On Wed, 2006-03-22 at 09:39 -0600, Anders Logg wrote:
> Very nice.
>
> /Anders
>
> On Wed, Mar 22, 2006 at 04:41:54PM +0100, DOLFIN wrote:
> > One or more new changesets pushed to the primary DOLFIN repository.
> > A short summary of the last three changesets is included below.
> >
> > changeset: 1794:236275c67493735a92352a3735c6e525313ae723
> > tag: tip
> > user: "Garth N. Wells <g.n.wells@xxxxxxxxxx>"
> > date: Wed Mar 22 16:41:19 2006 +0100
> > files: src/kernel/la/KrylovSolver.cpp src/kernel/la/Matrix.cpp src/kernel/la/dolfin/Matrix.h src/kernel/nls/NewtonSolver.cpp src/kernel/nls/dolfin/NewtonSolver.h src/kernel/parameter/dolfin/DefaultParameters.h src/kernel/pde/LinearPDE.cpp
> > description:
> > Allow PETSc matrix type to be set through the Matrix constructor.
> >
> > The type of PETSc matrix determines which LU solver is used when doing a direct solve. Currently implemented matrix types are:
> > Matrix::default_solver (PETSc MATSEQAIJS)
> > Matrix::spooles (PETSC MATSEQAIJSPOOLES)
> > Matrix::superlu (PETSc MATSUPERLU)
> > Matrix::umfpack (PETSC MATUMFPACK)
> >
> > By default, PDE.solve() will use Matrix::umfpack if Umfpack has been compiled with PETSc, otherwise it will use the default PETSc LU solver.
> >
> >
> > Benchmark (for the linear solve only) for the problem in src/demo/pde/elasticity
> >
> > default_solver: 48.4s
> > spooles: 3.45s
> > superlu: 5.77s
> > umfpack: 1.68s
> >
> >
> > changeset: 1793:6c11a3f3c36279d71838fba51caf128fd4a70c1e
> > user: "Garth N. Wells <g.n.wells@xxxxxxxxxx>"
> > date: Fri Mar 17 13:54:30 2006 +0100
> > files: src/kernel/la/KrylovSolver.cpp
> > description:
> > Temporary fix to avoid PETSc error when using Hypre preconditioner.
> >
> > The function KrylovSolver::init() is not called when a KrylovSolver is created with the Hypre preconditioner. If a user creates a KrylovSolver with the Hypre preconditioner and then attempts to access the pointer to the PETSc solver before the solver has been used to solve a system, an error will result.
> >
> >
> > changeset: 1792:339e1b957d0433c13176174e13b3ed2122db7677
> > user: "Garth N. Wells <g.n.wells@xxxxxxxxxx>"
> > date: Thu Mar 16 15:30:52 2006 +0100
> > files: src/demo/fem/convergence/main.cpp
> > description:
> > Replace removed KrylovSolve::setRtol() function with solver.set("Krylov relative tolerance, ..).
> >
> >
> > -------------------------------------------------------
> > For more details, visit http://www.fenics.org/hg/dolfin
> >
> > _______________________________________________
> > DOLFIN-dev mailing list
> > DOLFIN-dev@xxxxxxxxxx
> > http://www.fenics.org/cgi-bin/mailman/listinfo/dolfin-dev
> >
Follow ups
References