Anders Logg wrote:
> On Fri, Mar 27, 2009 at 09:49:47AM +0100, Kristian Oelgaard wrote:
>> Quoting "Garth N. Wells" <[email protected]>:
>>
>>>
>>> Anders Logg wrote:
>>>> 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?
>>>>
>>> It would be worth checking with Kristian how far away the quadrature
>>> optimisations are for FFC + UFL. If it's only a few days, it would be
>>> good to wait on the FFC release since the new quadrature code is quite a
>>> bit slower than the old code (around a factor of 5 in some of my tests).
>> It's already there, just uncomment the optimise_options lines at the top of 
>> the
>> uflquadraturegenerator.py file.
>> However, there might still be bugs in the generated code and it compiles 
>> slower
>> (I've seen a factor of around 6-7 in some cases)
>>
>> Some benchmark tests:
>>
>> PressureEquation       FFC comp.    num. ops  assemble 2.5e6 times
>> Old FFC (*.form),+opt: 45.0s         26679          28.2s
>> New FFC (*.ufl), -opt:  0.9s        166086         110.0s
>> New FFC (*.ufl), +opt:  3.4s         15771          21.8s
>>
>> DGElastoDynamics  FFC comp. | ops. a, dx | ops. a, dS | ops. L, dx | ops. L, 
>> dS
>> (*.form), +opt:     16m20s        791        2098         1571         4305
>> (*.ufl),  -opt:         7s      25776       93600        10008        23280
>> (*.ufl),  -opt:        45s       1217        2529         1375         2923
>>
>> For the elasto-dynmics case, running 10 time steps on a 9000 element mesh 
>> takes
>> roughly 14.5s for both of the two optimised versions. The new FFC without
>> optimisation runs 1 second slower (15.6s).
>>
>> Kristian
> 
> I don't think we need to wait for further testing / optimization. The
> old .form format is still functioning and it's the default choice.
> 

If the optimisations are implemented with UFL, it's easier to test the 
new UFL-based code for correctness. It seems that the optimisations are 
largely in place anyway.

Garth

> If we make a release, it will be easier to add the optimizations since
> we can remove all the old stuff and reset the references for the
> regression tests to the new format (simplifying and speeding up
> testing).
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> DOLFIN-dev mailing list
> [email protected]
> http://www.fenics.org/mailman/listinfo/dolfin-dev


_______________________________________________
DOLFIN-dev mailing list
[email protected]
http://www.fenics.org/mailman/listinfo/dolfin-dev

Reply via email to