Skip to content

What is DirichletBC().nodes ? #2451

Discussion options

You must be logged in to vote

Firedrake traverses the mesh entities (cells, facets, edges, vertices) and collects DoFs defined on each entity. The order of traversal is determined by mesh._plex_renumbering (

self._plex_renumbering = dmcommon.plex_renumbering(self.topology_dm,
) (basically, a depth-first DAG traversal).

For instance, for N = 10 and p = 4, Firedrake collects DoFs as the following:

x-o-o-o-x-o-o-o-x...x-o-o-o-x
3 0 1 2 4 5 6 7 8 ... 36 37 38 39 40,

which agrees with your observation. We should note, however, that it is not guaranteed that we visit the left-most cell first.

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@APaganini
Comment options

APaganini May 25, 2022
Collaborator Author

Answer selected by APaganini
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants