← Back to team overview

dolfin team mailing list archive

Re: Cleanup of linear algebra

 

On Tue, Aug 08, 2006 at 10:06:43AM +0200, Garth N. Wells wrote:
> 
> 
> Anders Logg wrote:
> > On Tue, Aug 08, 2006 at 09:30:52AM +0200, Johan Hoffman wrote:
> > 
> >> I would be happy to help out, for example with renaming or updating the
> >> manual.
> > 
> > I think Garth is done with the renaming. We just need to agree on
> > DenseVector I think. After that, I'll take a look at it again and
> > update the class diagram.
> > 
> 
> Just need to sort out uBlasLinearSolver. This is related to how 
> preconditioners should handled and the fact that uBlasSparseMatrix is 
> derived from uBlasKrylovMatrix (leads to an issue with uBlasLUSolver).
>
> > It would be great if we could all look over the design and agree on it
> > so we can finalize it and finish the manual.
> > 
> > In particular, we should look closely on GenericMatrix and
> > GenericVector. Are we completely happy with the current interface?
> > Should we remove something? Or add something? There are some functions
> > like zero(), ident() and nzmax() that we need for assembly but that
> > seem to be very special.
> > 
> > Another thing is the design of preconditioners which is not the same
> > for uBlas and PETSc. Can we fix this?
> > 
> 
> I'll have a crack at this today. I prefer the way it's done for 
> PETScKrylovSolver in which the preconditioner is set when declaring a 
> Krylov solver,
> 
>     PETScKrylovSolver petsc_solver(PETScPreconditioner pc);
>     petsc_solver.solve(A, x ,b);	
> 
> rather than
> 
>     UblasKrylovSolver ublas_solver;
>     ublas_solver.solve(A, x ,b, pc);

I also like the first version.

There is also another difference between the preconditioners. For
PETSc, you have the option to specify the preconditioner by an enum
variable:

    PETScKrylovSolver petsc_solver(PETScPreconditioner::ilu);

but for uBlas, you need to create an instance of
uBlasILUPreconditioner.

Could we unify this in some way?

> The second case can be problematic for functions which may use either a 
> direct or Krylov solver.
> 
> > We should also try to make better use of the bugzilla system for
> > assigning tasks. Let's throw everything in there. There are currently
> > 4 open bugs that we need to take care of but there are plenty more
> > we need to fix before the next release.
> > 
> 
> Would be nice if I knew how to use it :)

Can you log in? You should be able to log in with user name
garth@xxxxxxxxxx. Then just press "Enter a bug report", choose DOLFIN
and write something. We'll work out a policy of how to write the bug
reports/tasks as we go along, but for now it's not so important how
we write the reports.

> >> Although, I seem to have some problems compiling the current dolfin hg
> >> version. Anyone who recognize this? Is there a bug, or do I have some
> >> problem with my linking?
> > 
> > You seem to have an old version of ublas. Try upgrading to the latest
> > version.
> > 
> 
> It would be nice to test for the Boost version, but it's a horrible task 
> with autoconf. We should update the dependencies file.

It looks difficult to me since I can't find any version numbers in my
uBlas installation. Maybe we can wait until Scons and solve it then?

/Anders


References