← Back to team overview

fiat team mailing list archive

Re: entity_ids for DiscontinuousVectorLagrange

 

Perhaps it would be good to make it consistent between the two, just in case we need it.

It strikes me that what we really want to do is optimize Cartesian-product vector-valued elements for FIAT and FFC eventually where I just wrap a scalar element (less data, fewer operations, etc). In FFC, making use of this will make inferring and exploiting block structure easier. Also, for FErari, I can really focus on optimizing scalar-valued element forms, since I will be just fed in blocks.

Rob

Robert C. Kirby
Assistant Professor
Department of Computer Science
The University of Chicago
http://people.cs.uchicago.edu/~kirby
On May 11, 2005, at 8:47 PM, Anders Logg wrote:

It doesn't really matter for the mapping of dofs other than resulting
in different types of maps for for continuous and discontinuous
Lagrange elements. (And yes, all components are there so it's not
wrong, only different.)

For linear Lagrange with two components, FFC generates the following
map:

dofs[0] = cell.nodeID(0)
dofs[1] = cell.nodeID(1)
dofs[2] = cell.nodeID(2)
int offset = mesh.noNodes()
dofs[3] = offset + cell.nodeID(0)
dofs[4] = offset + cell.nodeID(1)
dofs[5] = offset + cell.nodeID(2)

And for discontinuous linear Lagrance with two components, FFC
generates the following map:

dofs[0] = 6*cell.id() + 0
dofs[1] = 6*cell.id() + 1
dofs[2] = 6*cell.id() + 2
dofs[3] = 6*cell.id() + 3
dofs[4] = 6*cell.id() + 4
dofs[5] = 6*cell.id() + 5

In the first case the dofs are blocked wrt components and in the
second case they are interleaved.

One place where it does matter is when I need to generate code for
projections (see other post). Maybe this can be solved by adding a
descriptor of the type of dof to DualBasis? In addition to entity ids
associated with nodes, could you store some enum which tells me the
type of node (for example point evaluation) and the corresponding
coordinate. Or is that already in there?

/Anders

On Wed, May 11, 2005 at 06:26:25PM -0500, Robert C.Kirby wrote:

Doesn't matter -- all the nodes are internal -- did I only do one
component's worth on the inside?

Rob

Robert C. Kirby
Assistant Professor
Department of Computer Science
The University of Chicago
http://people.cs.uchicago.edu/~kirby
On May 11, 2005, at 5:29 PM, Anders Logg wrote:

Rob, could you update entity_ids for DiscontinuousVectorLagrange to
the new format (same as for VectorLagrange)? Seems like num_reps is 1.

/Anders

_______________________________________________
FIAT-dev mailing list
FIAT-dev@xxxxxxxxxx
http://www.fenics.org/cgi-bin/mailman/listinfo/fiat-dev



--
Anders Logg
Research Assistant Professor
Toyota Technological Institute at Chicago
http://www.tti-c.org/logg/

_______________________________________________
FIAT-dev mailing list
FIAT-dev@xxxxxxxxxx
http://www.fenics.org/cgi-bin/mailman/listinfo/fiat-dev




Follow ups

References