FFC is now fully functional w.r.t. compilation of UFL forms, at least
judging by the demos in FFC which now all produce correct results.
The Poisson demo in DOLFIN has also been moved to UFL.
I therefore suggest we make new releases of FFC, UFL and DOLFIN:
DOLFIN 0.9.2
FFC 0.6.2
UFL 0.1.0 ?
SyFi/SFC?
This batch of releases will support both the old .form format and the
new .ufl format. After the release, we can get started on cleaning up
and removing the .form format.
In it's simplest form, the UFL form language looks very much like the
FFC form language. Here's a comparison for the Poisson demo:
FFC
---
element = FiniteElement("Lagrange", "triangle", 1)
v = TestFunction(element)
u = TrialFunction(element)
f = Function(element)
a = dot(grad(v), grad(u))*dx
L = v*f*dx
UFL
---
element = FiniteElement("Lagrange", triangle, 1)
v = TestFunction(element)
u = TrialFunction(element)
f = Function(element)
a = inner(grad(v), grad(u))*dx # dot also works
L = v*f*dx
However, UFL does much more, like treatment of tensor expressions,
nonlinear operators like sin, cos, exp, sqrt, differentiation of forms
w.r.t. variables etc. For more information, look at Martin's summary:
http://www.fenics.org/wiki/UFL
UFL includes a script form2ufl that can be used to convert from the
old FFC form language to the new UFL form language. The script is not
foolproof but it may help in converting to the new format.
So, let's make a new release now (after getting the buildbot green
again for DOLFIN) and then make the full transition after the release.
It's also time to promote UFL from a development project (/dev) to a
proper project (/hg) since now FFC, SFC and DOLFIN will depend on it.
Any objections?