← Back to team overview

dolfin team mailing list archive

Re: curved elements

 

On Wed, Mar 23, 2011 at 11:24:37PM +0000, Garth N. Wells wrote:
> We've heard about this work, but never seen it ;).
>
> Can you post it somewhere? It could provide a discussion basis on how to
> move this along.
>
> I think that we should be careful in asking FFC to do too much. It may
> better to compute J, det(J), etc, outside tabulate_tensor(...) functions.

Aren't those computed using codesnippets just pasted in by FFC into
the code anyway? Perhaps those codesnippets can be expanded with
higher order codesnippets?

--
Anders


> Garth
>
> On 23/03/11 21:05, Peter Brune wrote:
> > I saw this thread and had already started running the tests I had for
> > this with the latest FFC to see if anything had changed recently.  I
> > never made isoparametry through UFL public because I could never get the
> > efficiency to be reasonable.  The situation appears to have improved a
> > little bit from a year ago, but not much.  With the latest FFC, it's
> > about 10x slower (in 2D) to assemble Poisson with P1 for the test/trial
> > space and P2 for the coordinates than the same problem with affine
> > coordinates.  It's even worse if you include things like
> > Piola-transformed surface normals into the mix.  When I was working on
> > this I only assembled a very small fraction of the elements (around a
> > cylinder in a flow) with the parametric Jacobian, so it worked OK for
> > small problems.
> >
> > I believe that it would do much, much better if the optimizing
> > quadrature compiler in FFC supported fractions.  This is necessary
> > because you need to apply the inverse isoparametric Jacobian, which
> > includes 1 / |J|, to any basis function derivatives in the form.
> >
> > For reference, here are the assembly times for the iso(super, I suppose
> > is more accurate)-parametric, optimized, and non-optimized Poisson
> > problems in 2D on a 256x256 square (with the parametric coordinates just
> > being the regular coordinates passed through).
> >
> > isoparametric assembly      |        3.2017      3.2017     1
> > optimized assembly          |       0.34515     0.34515     1
> > regular assembly            |       0.36524     0.36524     1
> >
> > I got really deep in FFC trying to make this work with no success, but
> > this was before the rewrite.  I'd be willing to declare victory on this
> > one and submit my code if someone else were willing to make it fast
> > enough to use.  There's also the issue of how exactly to extend the
> > interface to support this in an elegant fashion.  Right now I just call
> > a function that takes a form and a parametric Jacobian, runs a
> > Transformer on the form, and spits out a new form.
> >
> > - Peter
> >
> >
> > On Wed, Mar 23, 2011 at 3:30 PM, Anders Logg <logg@xxxxxxxxx
> > <mailto:logg@xxxxxxxxx>> wrote:
> >
> >     Peter Brune claims to have solved this by a small addition to the form
> >     language that automatically expresses the curved elements as a mapping
> >     and expands appropriately (and invisible to the user) those mappings
> >     to yield a form that may then be assembled. The higher order geometry
> >     is then expressed as a vector-field on the mesh.
> >
> >     Perhaps Peter can be pushed to polish up on his code and submit it.
> >
> >
> >
> >     On Wed, Mar 23, 2011 at 07:46:57PM +0000, Garth N. Wells wrote:
> >     > We haven't really looked at this. It was discussed a while back,
> >     but no
> >     > one has committed much time to it. We struggled to settle on an
> >     > appropriate abstraction to push on with.
> >     >
> >     > Garth
> >     >
> >     > On 23/03/11 18:40, Douglas Arnold wrote:
> >     > > What is the status of curved (e.g., isoparametric) elements in
> >     dolfin?
> >     > > I gather they are not implemented in the main branch.   Has anyone
> >     > > done anything with this can be used?  Is there any example code?
> >     > > (For example, if you want to
> >     > > solve the Poisson problem in a disc and get better than 2nd order
> >     > > convergence, you need to do better than polygonal approximation of
> >     > > the disc.)
> >     > >
> >     > >  -- Doug
> >     > >
> >     > > _______________________________________________
> >     > > Mailing list: https://launchpad.net/~dolfin
> >     <https://launchpad.net/%7Edolfin>
> >     > > Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> >     <mailto:dolfin@xxxxxxxxxxxxxxxxxxx>
> >     > > Unsubscribe : https://launchpad.net/~dolfin
> >     <https://launchpad.net/%7Edolfin>
> >     > > More help   : https://help.launchpad.net/ListHelp
> >     >
> >     > _______________________________________________
> >     > Mailing list: https://launchpad.net/~dolfin
> >     <https://launchpad.net/%7Edolfin>
> >     > Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> >     <mailto:dolfin@xxxxxxxxxxxxxxxxxxx>
> >     > Unsubscribe : https://launchpad.net/~dolfin
> >     <https://launchpad.net/%7Edolfin>
> >     > More help   : https://help.launchpad.net/ListHelp
> >
> >



References