← Back to team overview

dolfin team mailing list archive

Re: Evaluating dolfin for use

 

On Fri, Oct 22, 2004 at 04:54:31AM -0700, Hugo Duncan wrote:

> Hi,
> 
> I am starting to look at DOLFIN to evaluate using it for developing some  
> cfd
> problem codes, and I have a couple of initial questions.
> 
> i) What is your rationale for not using an existing matrix/vector library
>     such as ublas (http://www.boost.org)?

We used PETSc in the early stages of DOLFIN development but were not
happy with it. (Difficult to install, no standard configure/make
install process, and we didn't like the syntax.) So we decided to
develop our own linear algebra. This has been possible since it is
enough in many cases to be able to do indexing and multiplication.

However, we are definitely moving in the direction of using some
existing linear algebra package, either if someone is willing to
maintain a linear algebra package as a FEniCS project, or if we just
create a wrapper in DOLFIN for some existing package. Two things need
to happen for this to become a reality:

1. We find a linear algebra package that we like. (Should be actively
maintained and at least close to becoming a standard.)

2. Someone has the time to do the job.

The second point is the most critical right now.

> ii) Would it be feasable to "plug in" ublas instead of dolfin's own
>      matrix/vector classes (ie. do dolfin matrix and vector classes
>      have a well defined interface or concept?)

It might be possible to do that. Just create a subclass of the Matrix
class and overload the operators that you need. Check the example in 

    src/demo/la/generic_matrix/

This example creates a matrix that can only do multiplication which is
enough to use it with the GMRES solver.

> iii) Have you considered expression templates or a domain specific
>       language (eg see boost.spirit's domain specific language for
>       parser generation)?

Yes we have. I had some plans to do this with the linear algebra
(making expressions like x = B*y + z possible), but I'm waiting until
we come to a decision on a strategy for the linear algebra.

One area where we're taking the approach of developing a domain
specific language is for the evaluation of variational forms. I'm
currently working on a new project called the FEniCS Form Compiler
(FFC), which is about creating a language for variational forms and
generating code (C or C++) for the evaluation of the forms. This will
be integrated with DOLFIN (in fact, I will add a test example later
today) and make the assembly in DOLFIN extremely fast, just as fast as
if you do all the precomputations and optimizations by hand.

> The goals for fenics are very ambitious, and definitely in line
> with what I am looking for!
> 
> Regards,
> Hugo
> 
> 
> Succesfully installed dolfin on:
> Linux linux 2.6.5-7.108-smp #1 SMP Wed Aug 25 13:34:40 UTC 2004 i686 i686  
> i386 GNU/Linux

Good to hear!

/Anders



References