← Back to team overview

dolfin team mailing list archive

[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