← Back to team overview

dolfin team mailing list archive

Re: dof_map / finite element consistency

 



Anders Logg wrote:
On Wed, Oct 07, 2009 at 10:47:53AM +0100, Garth N. Wells wrote:
We added some time ago

   dof_map::max_local_dimension()

and perhaps we also need

   finite_element::max_local_dimension()

and

   finite_element::local_dimension(const ufc_cell& )

I have a problem for which the number of dofs an element has can grow
during a computation. You may say that this is then a different element,
but that would make it hard to handle in DOLFIN and hard to generate
code for.

Here's an example of an inconsistency. In dolfin::Function, we
initialise some scratch space for the dof map based on the element space
dimension,

   dofs = new uint[element.space_dimension()];
   for (uint i = 0; i < element.space_dimension(); i++)
     dofs[i] = 0;

whereas is dolfin::UFC we use dof_map::max_local_dimension().

Yes, it would be natural to have max_ in both and an optional cell
argument.

But for the finite element class, it would be better to have

  unsigned int max_space_dimension() const;
  unsigned int space_dimension(const cell& cell) const;

rather than (max_)local_dimension, since there is always only one
dimension for an element (not local and global).


Yes, these names are what I intended.

We should list things as Blueprints on Launchpad and pick a date on which to discuss what should and shouldn't be in the next UFC release. Otherwise things bounce around for a long time.

Garth


--
Anders


------------------------------------------------------------------------

_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev




Follow ups

References