dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #22275
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