← Back to team overview

dolfin team mailing list archive

Re: [noreply@xxxxxxxxxxxxx: [Branch ~dolfin-core/dolfin/main] Rev 4776: Remove UFCDofMap. Keeping it simple.]

 



On 01/06/10 19:11, Anders Logg wrote:
On Tue, Jun 01, 2010 at 07:01:48PM +0100, Garth N. Wells wrote:


On 01/06/10 18:59, Anders Logg wrote:
On Tue, Jun 01, 2010 at 06:57:33PM +0100, Garth N. Wells wrote:


On 01/06/10 18:51, Anders Logg wrote:
On Tue, Jun 01, 2010 at 05:13:11PM +0100, Garth N. Wells wrote:


On 01/06/10 17:07, Anders Logg wrote:
On Tue, Jun 01, 2010 at 03:19:50PM +0100, Garth N. Wells wrote:


On 01/06/10 15:10, Anders Logg wrote:
What is the difference from before? Is it only that the dofs are
always tabulated and stored (never computed on the fly)?


More or less. There are some bug fixes and some missing features
have been added (collapsed dof maps for renumbered maps, work in
parallel now).

It was too complicated (for me at least) to have both tabulated dofs
and on the fly computation via UFC in the same class. It's much
easier to follow now (which helped in finding some bugs).

Garth

Can you remind me of what collapse do? What is a contiguous dofmap?


A sub-dofmap will be, by default, a view into the original dof map.
It will extract the the relevant indices, but it won't change them.
It's suitable for when the sub-function shares the vector with the
original equation, e.g.

   Function&    u = U[0];
   Function&    p = U[1];  // U, u and p shared the same vector

A collapsed dof map is independent of the original dof map, with the
lowest index = 0 and the greatest = global_dimension -1. It's used
when a sub-function is extracted from a Function such that it has
it's own vector, e.g.

   Function u = U[0]; // u has its own vector
   Function p = U[1]; // p has its own vector

Garth

ok. And is it the case that if the dof map has not been renumbered,
then collapsing it is the same as subtracting the offset,

Yes.

but when it
has been renumbered, a new numbering will be computed?


Yes, and a map from the ufc dof index (as given by the ufc_dofmap
object) to the actual dof index.

Why is that map needed? If the dof map has been renumbered (in build),
why do we need to ever think about the old UFC dof map?


When we want to extract a sub-dof map. We first get the ufc
sub-dofmap which uses UFC numbering, which we then need to map to
the current numbering.

Is that because the separation between sub systems may be lost in the
renumbered map while being clearly separated in the UFC dof map?


Yes.

Garth

--
Anders




Follow ups

References