← Back to team overview

ffc team mailing list archive

Re: iso-parametric mappings

 

I think you are right.  I would propose the following:

1. Add a meshfunction to the mesh.xml file. The name of it will correspond to a new enum variable in ufc::cell. For example, say we have piecewise quadratics for the local map, so we call it "P2_map". Maybe later this could be made a more permanent xml data type, but for now this should be ok. The mesh function would just be a vector lagrange 2nd order function. And there would also be a boolean function on each cell to say whether the element is straight or not. This of course rules out mixing curved types, i.e. having P3 and P2 in the same mesh. But I am ok with that for now.

2. In ufc::cell, we have another enum variable called "map_type":

enum map_type {P1_map, P2_map, P3_map, etc...}

Of course, this will only be for lagrange type polynomial maps. But this enum variable can have other types (i.e. iso-geometric). We then create a variable "map_type cell_map_type;"

3. When the mesh is read in, and the element is created, I think the "coordinates" variable can store the vertex positions of the element, including the extra ones for the curved sides. If not, then some other variable would need to be created to store it; actually, that may be better. Also, the "cell_map_type" will be set to either P1_map, or P2_map, or etc...

4. The tabulate_tensor routine will have a switch to pick the correct routine for computing the tensor coefs. This will require modifying FFC which I don't know yet.

5. Another thing that should change will be the basis function evaluations. This may be a pain. Computing the inverse map to get the location of the coordinates in the reference element may be inconvenient. This can be ignored for now; this isn't really critical for what I would like to do.

I am a little confused on where the ufc::cell data gets set by the data in the mesh.xml file. I'm still very new to this code. Any help would be appreciated. If I am totally off on this, please say so!

- Shawn

On Thu, 14 Aug 2008, Anders Logg wrote:

On Thu, Aug 14, 2008 at 09:02:06AM -0400, Shawn Walker wrote:
I'm not against changing the xml format.  Actually, it would be nice to
have a format that is backwards compatible; that way you could ignore the
curved information and just use the mesh as straight if you want.  That
seems do-able.

And then add a local struct to the UFC format that is accessible by the
tabulate_tensor routine.  This local struct would have the local nonlinear
map for each cell and facet in place.  I need to look at the UFC manual
some more and see how this might work...

- Shawn

The mesh XML format has a data section that may contain arbitrarily
named data so it should be easy to extend (if/when we decide to
implement this).

--
Anders



Follow ups

References