dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #02178
[HG] Allow PETSc matrix type to be set through the Matrix constructor.
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
Follow ups