← Back to team overview

dolfin team mailing list archive

Re: Cleanup of linear algebra

 



Anders Logg wrote:
I have made a class diagram for the linear algebra classes, which can
be found either in doc/manual/{dia,eps}/class-diagram-la.{dia,eps} or at

    http://home.simula.no/~logg/tmp/class-diagram.eps


Something wrong with this link.

From this diagram, it is clear there are some inconsistencies. Here
are some suggestions:

1. Rename PETScSparseMatrix --> PETScMatrix since there is only one
PETSc matrix.

2. Rename DenseVector --> uBlasVector. DenseVector can be a typedef.

3. Break up LinearSolver in two classes: PETScLinearSolver and
uBlasLinearSolver and make both pure virtual interfaces.

4. Rename PETScLU --> PETScLUSolver to make it consistent.

5. Rename VirtualMatrix --> PETScKrylovMatrix to make it consistent
with uBlasKrylovMatrix.

6. Rename Preconditioner --> PETScPreconditioner to make it consistent
with uBlasPreconditioner.

7. Typedefs for common default types should include the following:

   Matrix
   Vector

   DenseMatrix
   DenseVector    (something that works with DenseMatrix)

   SparseMatrix
   SparseVector   (something that works with SparseVector)

   LinearSolver
   KrylovSolver
   GMRES
   LU

   VirtualMatrix  (something that works with KrylovSolver)
   Preconditioner (something that works with KrylovSolver)


All looks good. Can add

  Rename EigenvalueSolver --> PETScEigenvalueSolver.

Here's a little list of things I think we should fix before releasing 0.6.2:

 - Fix the above cleanups

 - Make sure the linear algebra works nicely in PyDOLFIN

 - Update the class diagram

 - Complete the linear algebra chapter in the manual

 - Add a linear algebra benchmark in src/bench

 - Add a linear algebra test in src/test

 - Add a linear algebra demo in src/demo


We should also get everything compiling working with the --disable-petsc flag (some demos don't compile at the moment) and remove PETSc-specific operations if they're not necessary.

Garth

It would be great if we could all help out so everyone agrees on and
knows the design of the linear algebra library. We would then have a
well functioning and stable linear algebra library that would require
little maintenance so we can focus on other things (like porting to
the new mesh library).

/Anders
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev




Follow ups

References