← Back to team overview

fenics team mailing list archive

FEniCS

 

Let's try again to move this discussion over to fenics-dev@xxxxxxxxxx,
shall we? Everyone interested can follow the thread at

    http://www.fenics.org/pipermail/fenics-dev/

or sign up to the email list if they want. I have cc:ed everyone on
our previous discussion in this post, but perhaps they can decide for
themselves if they want to follow the continuing discussion.


So, back to the discussion...

1. DOLFIN vs. Sundance

As Rob points out, Sundance can do many things that DOLFIN can't:

    - It's fully parallel
    - It has automation for nonlinear problems
    - It has automation for PDE-constrained optimization 
    - It can do more general boundary conditions

None of these features would be very hard to get into DOLFIN (and the
plan is to add a large part of these features within a couple of
weeks/months), but as I've said before, it's no use in reinventing
things already in Sundance if not necessary. (And I'll discuss below
why it might be necessary.)

On the other hand, DOLFIN can do a number of things that Sundance can't:

    - Full use of FFC/FIAT for more efficient evaluation of forms
    - Higher order elements (any degree q on triangles and tets)
    - Arbitrary mixed elements
    - The mono- and multi-adaptive ODE solvers
    - A set of very good built-in solvers/modules for Navier-Stokes
      and updated elasticity

In addition to these differences, Sundance uses Trilinos and DOLFIN
uses PETSc.


2. Developing for Sundance?

Rob suggests that the most efficient path to take would be to develop
for Sundance, rather than for DOLFIN. The logic would be that it would
be easier to add the missing features to Sundance (full use of
FIAT/FFC, higher order elements, mixed elements) than to add the
missing features to DOLFIN (parallel mesh, support for nonlinear
problems).

For this to happen, I would like to have the following questions
answered, preferably all with a "yes". Unfortunately though, I
suspect the answer to most questions is "no".

    - Does Kevin have any interest in working with us?
    
    - Can we get CVS access (rw) to Sundance?

    - Can we make the development model for Sundance completely open?

    - Can we make frequent releases of Sundance? Without needing to go
      through a security audit by the US military?

    - Can we install Trilinos without registering at Sandia?

    - Can we get Sundance to use FFC as the backend for evaluating
      multilinear forms?

    - Can we include Matt and the people at Argonne in the development?

    - Can we put the code on fenics.org?


3. My suggestion

Instead of trying to push everything into one package, let's try to
develop middleware/components that encapsulate important functionality
in self-contained modules. This way, we can get around all the obvious
political difficulties of developing a common system.

This is how we have built DOLFIN. In itself, DOLFIN is actually pretty
dumb (intentionally). It knows very little about the finite element
method, and it knows nothing about linear algebra. It just delegates
the functionality to other components (PETSc, FFC, FIAT) and wraps it
with a consistent user-interface. The current plan for DOLFIN is to
delegate even more of the functionality, starting with replacing the
DOLFIN mesh library with Sieve.


4. FEniCS

Rob, what is your vision for the FEniCS project, and fenics.org?

Mine is to develop and distribute free software for the Automation of
Computational Mathematical Modeling.

Another purpose of FEniCS is to enable the development of a common
codebase that is free of ties to any particular person, group,
university or national lab.

/Anders



Follow ups