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
