← Back to team overview

dolfin team mailing list archive

Re: Fwd: Added temporary fix for initial values for convection-diffusion. [...]

 

On Wed, Apr 13, 2005 at 09:04:15PM +0200, Garth N. Wells wrote:

> Dear All,
> 
> After spending some time implementing a solver for the linear
> shallow water equations, I have a few suggestions which I hope may
> help (at least they would help me :) )

Thanks for your suggestions, see my comments below. Did you get the
shallow water solver working? We'd be happy to add it as a module to
DOLFIN once you think it's ready.

> 1.  Add a function to the class NewFEM which is analogous to setBC,
> which instead of iterating over all boundary nodes, iterates over
> all nodes in the mesh. This is often needed to prescribe values at
> nodes inside the domain.

Good suggestion. This should be added but we need to think about how
to implement it (essentially picking the right name for the function).

> 2.  Consider making the basic, conventional FE functionality for
> creating stiffness matrices and RHS vectors accessible for users
> from linearform and bilinearform (loop over quadrature points,
> evaluation of shape functions at quadrature points). Otherwise, the
> functionality of Dolfin is limited by the functionality of FFC.

I can understand why you want this. However, our main strategy is to
implement this functionality outside of DOLFIN (in FIAT, FFC).
Sure, DOLFIN will be limited by the functionality of FIAT and FFC, but
since we're working on both DOLFIN and FFC the limitations will be the
same in the end.

> While FFC is very nice, I can envisige problems for which it is not
> suitable. For example, we work with crack propagation problems in which the
> number of dof's per node changes during a simulation at a limted number of
> nodes, and  where the integration scheme is  dependent on the location of a
> crack within an element. I'm also considering some methods which do not use
> conventional FE shape functions.

We should be able to support all of this through FIAT/FFC. Robert
Kirby (University of Chicago) is working very hard on supporting a
large number of finite elements in FIAT. All of these elements will be
supported by FFC and thus by DOLFIN. I'm sure he would be happy to
work with you to add new elements to FIAT if there is a demand.

Also, note that the language of FFC is not that limited, it's actually
Python. Take a look at the files generated by FFC if you compile for
example poisson.form. FFC first generates the file poisson.py which is
identical to poisson.form with some additional imports and
declarations. There is also an option to build multiple forms and use
them as components in DOLFIN (like Johan Hoffman is doing for
Navier-Stokes with one form for the pressure and one for the
velocity). It's also possible to implement the form by hand (write the
code for evaluation of the element stiffness matrix), using quadrature
or any other approach.

We might do a run-time version of FFC in the future so everything can
be done from within C++. FFC would still be used to generate code but
it would be hidden under the hood.

/Anders