← Back to team overview

fenics team mailing list archive

Call for ideas in the design of UFL

 

We've had plans for some time to define a Unified Form Language, which
is to be the input language for both FFC and SyFi.

Those who want to participate in the design should join the mailing
list ufl-dev@xxxxxxxxxx:
http://www.fenics.org/wiki/Contact

We will begin by defining everything we need to include on this page:
http://www.fenics.org/wiki/UFL


Some initial thoughts:

What I think we can quickly agree on is that it should:
- be a fenics project
- be a pure Python module
- be very close to the current FFC form language
- not depend on ffc, syfi, fiat, ginac, ...

There are some features missing from FFC that we need to add, and
there might be some small adjustments. Some of the features we need
may not be handled by all form compiler configurations (f.ex.
quadrature code can easily handle exp(f), but not the tensor
representation of FFC or symbolic integration of SyFi).

Major features I myself need that is missing from the FFC form language:
- basic functions like exp, ln, pow, sin, cos, ... (this is trivial)
- differentiation w.r.t. user-defined variables
- automatic computation of the Jacobi for a nonlinear form

I've written a prototype with the basics which you can get by:
  hg clone http://www.fenics.org/hg/dev/ufl
but remember this is just a prototype.

(We _may_ consider building the implementation on top of SymPy, which
will ease the implementation, give access to some more powerful
symbolic tools, at the cost of a dependency and less control over the
exact appearance.)

--
Martin


Follow ups