On Mon, Aug 07, 2006 at 03:00:58PM +0200, Garth N. Wells wrote:
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.
Should be
http://home.simula.no/~logg/tmp/class-diagram-la.eps
>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.
Agreed.
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.
Agreed.
Is it possible to divide the labor among us (Hoffman, Jansson, Logg,
Wells) and fix this quickly?