Following some discussions on getting non-affine maps working with FEniCS, I’d 
like to propose adding the function

    ufc::finite_element::tabulate_dof_coordinates(double* coordinates);

This function will tabulate the dof coordinates on the reference element. The 
purpose is to allow us to match the coordinates of ‘higher order nodes’ that 
come from a mesh generator (for example) to the UFC dofs. Coordinate matching 
is necessary because UFC does not specify anything as to how dofs are ordered 
locally for a cell.

Related to this, it would make sense to move/change the function

    ufc::dofmap::tabulate_coordinates(double** dof_coordinates, const double* 
vertex_coordinates) const = 0;

to the ufc::finite_element class:

    ufc::finite_element::tabulate_coordinates(double* dof_coordinates, const 
double* vertex_coordinates) const = 0;

and to remove the function 

    std::size_t ufc::dofmap::geometric_dimension() const = 0;

This would make a ufc::dofmap purely topological, and would be consistent with 
the proposed addition of ufc::finite_element::tabulate_dof_coordinates.

Garth
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to