← Back to team overview

dolfin team mailing list archive

Re: [HG DOLFIN] merge

 

On Fri, Dec 07, 2007 at 01:52:36PM +0100, DOLFIN wrote:
> One or more new changesets pushed to the primary dolfin repository.
> A short summary of the last three changesets is included below.
> 
> changeset:   3463:8951cec821a5d4f6d6f9c983cbcb836fb2c5a1b8
> tag:         tip
> parent:      3462:b8f73cb2e5a998999fb9a5ac714ebec11890f7a8
> parent:      3452:44e94b868ca473f050bf02d606179e0161299d12
> user:        "Ola Skavhaug <skavhaug@xxxxxxxxx>"
> date:        Fri Dec 07 12:21:11 2007 +0100

A short summary:

1. A new base class GenericSparsityPattern has been added.

2. A new base class LinearAlgebraFactory has been added.

3. Implementations of the factory interface has been added for all
backends (PETSc and uBLAS).

This makes it possible to use different representations of the
sparsity pattern for different backends (Trilinos has its own) but
reuse the same interface.

Also, the factories can be used to propagate the choice of backend to
places where we need to create new matrices or vectors. For example,
in DiscreteFunction we do

  x = new Vector(n);

which ties the implementation of DiscreteFunction to the default
DOLFIN backend. Instead, one can now call the factory() function on
any linear algebra object (like a vector or matrix) and get a
singleton factory that knows how to create matrices and vectors that
use the same backend as the object the factory was taken from.

Altogether, this means that we can now add a backend for Trilinos
(Epetra) and users of DOLFIN can use their own backend (by
implementing wrappers that follow the interfaces GenericMatrix,
GenericVector and GenericSparsityPattern) and use those with DOLFIN.

-- 
Anders


Follow ups

References