Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quadrature permutations for DG and some negating of vector-valued spaces #201

Merged
merged 109 commits into from
Feb 19, 2020

Conversation

mscroggs
Copy link
Member

  • Added quadrature permutations to permute the quadrature points to make DG work.
  • Accept facet rotation and reflection data from dolfinx so these can be used to calculate quadrature permutations and vector direction swaps
  • Moved dof permutations into FFC, as these will likely eventually be calculated using data directly from FIAT.
  • Separated out the reverse engineering based on dof types into dof_permutations.py
  • Read UFC_HEADER_DECL from ufc.h instead of duplicating it.
  • High order vector-valued spaces are not yet supported on unordered meshes, warnings to say this are added.
  • entity_block_size is removed, as this is not constant for higher order vector spaces. Instead, this functionality is now included in the calculate of the base dof permutations.

This pull request resolves FEniCS/dolfinx#742, and partially covers FEniCS/dolfinx#736 and FEniCS/dolfinx#737

This is an updated version of #190, and is twinned with FEniCS/dolfinx#770.

@mscroggs mscroggs changed the title Mscroggs/move base perms to ffc Quadrature permutations for DG and some negating of vector-valued spaces Feb 14, 2020
const double* restrict coordinate_dofs, const int* entity_local_index,
const uint8_t* restrict quadrature_permutation,
const bool* edge_reflections, const bool* face_reflections,
const uint8_t* face_rotations);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You didn't document face_rotations. Also, it feels a bit weird now. If I understand correctly, in general, for vector dofs you need to know face_rotations for a cell integrals too, right? So for a interior facet integrals, isnt now information about rotations of codim 1 entities, facets, duplicated?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

quadrature_permutation has information about the rotation from two cells either side, while the other inputs are information about the different entities on one cell. But I agree that restructuring what these inputs are at some point is a good idea.

@coveralls
Copy link

coveralls commented Feb 17, 2020

Coverage Status

Coverage increased (+0.05%) to 77.225% when pulling f30eaa3 on mscroggs/move_base_perms_to_ffc into 687cd93 on master.

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

Successfully merging this pull request may close these issues.

Deal with spaces that have more than on dof type on an entity
4 participants