Skip to content
This repository has been archived by the owner on Feb 21, 2022. It is now read-only.

Include information needed to compute permutations of dofs #38

Open
mscroggs opened this issue Nov 6, 2019 · 5 comments
Open

Include information needed to compute permutations of dofs #38

mscroggs opened this issue Nov 6, 2019 · 5 comments

Comments

@mscroggs
Copy link
Member

mscroggs commented Nov 6, 2019

Information about the number of co-located dofs on each entity is needed for FEniCS/ffcx#176.

Most likely, this information would need to be an unflattening map or the shape of the unflattened dof map.

@wence-
Copy link
Collaborator

wence- commented Nov 7, 2019

Is this for VectorElement etc... Because for scalar nodal elements there won't be co-located dofs, no?

@garth-wells
Copy link
Member

Yes.

@michalhabera
Copy link
Contributor

michalhabera commented Nov 7, 2019

My opinion is, that FIAT is poor in handling dual spaces. It correctly stores the shape of basis functions, but unfortunately unrolls (flattens) dual basis during dual set construction.

For example, RT element of degree 3 (on triangle) has 9 integral moment dofs on facets of shape (co-shape?)=() but 3 integral moment dofs on cell of shape=(spatial_dim, ).

@dham
Copy link
Collaborator

dham commented Nov 14, 2019

I think that the original question here misses the point. @mscroggs is trying to get Dolfin to recover lost information. Recovering lost information almost always indicates that the design is wrong. Instead of providing hints to the reconstruction process, FIAT elements need a method basis_permutation(entity, s) where entity is a cell entity and s is an encoding of a member of that cell's symmetry group. FIAT should then return the signed permutation of the basis. The information to construct this is by definition available at FIAT level (though someone has to do the legwork) and this saves Dolfin from having to recover it in a hacky way.

@mscroggs mscroggs changed the title Include information needed to compute entity block sizes Include information needed to compute permutations of dofs Feb 13, 2020
@mscroggs
Copy link
Member Author

I've changed the title of this, as the entity block size is not constant (eg N2curl has different dof types on a face).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants