← Back to team overview

dolfin team mailing list archive

Re: dof_map / finite element consistency

 

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).

--
Anders

Attachment: signature.asc
Description: Digital signature


Follow ups

References