Shawn Walker wrote:
> I cleared out the old email some because the discussion had changed a 
> little.  See below for a recap of higher order mesh data stuff:
> 
> -------------
> 
>>>> It will if we want to be able to store a higher-order function space
>>>> as a function space with a regular mesh and an additional function
>>>> that stores the layout of the coordinates.
>>>>
>>> Perhaps that is not the best way to do the higher order mesh 
> coordinates.
>>> If we want the higher order mesh data to be a general Function 
> (requiring
>>> a FunctionSpace), then I do not see how you can get away from needing 
> the
>>> FiniteElement signature associated with it, and possibly other things.
>>>
>>> Even if you have the vector of data and the DoFmap, that info must 
> still
>>> be used to create a Function/FunctionSpace in the code.  And in order 
> for
>>> that to work the DoFmap must be `compatible' with the particular
>>> FiniteElement you will be using.  I probably have this wrong, sorry for
>>> my confusion.
>>>
>>> Another way to do the higher order mesh data would be to keep a little
>>> simpler.  Have a vector of data, a DoFmap, and an indicator about the
>>> degree of polynomial used.  This would be less general but not bad.  In
>>> case of higher-order mesh data, you will ALWAYS use a continuous 
> lagrange
>>> finite element.  At least I cannot think of a situation where you would
>>> use something else.  Would this not be desirable?
>>
>> If we decide to remove input/output for Functions and FunctionSpaces
>> (as I've understood is desirable since we then we don't need to rely
>> on precompiled elements and dofmaps) then how should we read in a
>> higher-order mesh from file?
>>
>>
>> Anders wrote:
>> Here's one option:
>>
>>   Mesh mesh("mesh");
>>   LagrangeFunctionSpace V(mesh);
>>   File file("mesh_coordinate_vector.xml");
>>   Vector x;
>>   file >> x;
>>   V.set_coordinates(x);
>>
>> That might work, but it's a bit long. There should be room for
>> improvement.
> 
> The discussion on higher-order meshes got a bit confusing for me a
> little while back. In summary, exactly what information intended to be
> in the mesh file for a high-order mesh?
> 
> Garth
> 
> -------------------------------------------
> 
> Ok, I will try to recap the higher order mesh stuff.
> 
> Currently, in a triangulation, there is an implicit assumption on the 
> form of the map that takes you from the `unit' reference triangle (or 
> tetrahedron).  The assumption is that the local map is linear.  As you 
> well know, this makes for various simplifications which can be used 
> during matrix assembly.
> 
> But, for various reasons, it can be more useful (or possibly required 
> depending on the nature of the FEM method) to have a curved triangle to 
> better approximate domain boundaries or to better compute higher order 
> geometric motion!
> 
> In this case, one could use a vector quadratic polynomial map and have a 
> triangle with edges given by a quadratic parametrization.  The 
> implementation of this only requires a local Lagrange finite element 
> basis, whose DoFs are just the coordinates of the nodes (for a quadratic 
> polynomial on a 2-D triangle, this would be 6 nodes per triangle).  Of 
> course, you will have this for every triangle, and it makes sense to 
> take the finite element basis to be continuous lagrange over the whole 
> domain. This continuity is especially important when deforming the mesh!
> 
> So, way back we thought it would be a good idea to have a separate 
> functionspace to store this `higher order' mesh data.  But that seemed 
> problematic.
> 

Sounds complicated.

> However, in principle, all you need is a DoFmap and a vector of data 
> containing the node coordinate positions.  

This is what I thought. Will we add a field the Mesh xml file to store 
this extra data?

And you need a method for
> updating the positions (for a deforming mesh) but that isn't a big deal. 
> Once this information is properly stored, and accessible to the matrix 
> assembler, THEN...
> 
> Then the next step would be to modify FFC to use this higher order 
> (locally defined) map to compute the local matrices, INSTEAD of the 
> linear map that is implicitly assumed now.
> 
> I realize this will take some time, but we at least need to get a 
> storage scheme for the higher order mesh data to even proceed!
>

Kristian is looking at the UFL transition for the FFC quadrature 
representation at the moment which will be needed for non-affine maps.

Perhaps a smaller first step in the non-affine direction would be to 
support quadrilateral elements.

Garth


> - Shawn


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

Reply via email to