Skip to content

Commit 71fc72d

Browse files
authored
Merge pull request #3752 from roystgnr/low_order_key
Use vertices to define low_order_key() for neighbor-finding and mesh stitching
2 parents a38ab53 + 43c742d commit 71fc72d

39 files changed

+546
-86
lines changed

include/geom/cell_hex.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,11 +125,18 @@ class Hex : public Cell
125125

126126
/**
127127
* \returns An id associated with the \p s side of this element.
128-
* The id is not necessarily unique, but should be close. This is
129-
* particularly useful in the \p MeshBase::find_neighbors() routine.
128+
* The id is not necessarily unique, but should be close.
130129
*/
131130
virtual dof_id_type key (const unsigned int s) const override;
132131

132+
/**
133+
* \returns An id associated with the \p s side of this element, as
134+
* defined solely by element vertices. The id is not necessarily
135+
* unique, but should be close. This is particularly useful in the
136+
* \p MeshBase::find_neighbors() routine.
137+
*/
138+
virtual dof_id_type low_order_key (const unsigned int s) const override;
139+
133140
/**
134141
* \returns \p Hex8::side_nodes_map[side][side_node] after doing some range checking.
135142
*/

include/geom/cell_hex27.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,7 @@ class Hex27 final : public Hex
151151

152152
/**
153153
* \returns An id associated with the \p s side of this element.
154-
* The id is not necessarily unique, but should be close. This is
155-
* particularly useful in the \p MeshBase::find_neighbors() routine.
154+
* The id is not necessarily unique, but should be close.
156155
*
157156
* We reimplement this method here for the \p Hex27 since we can
158157
* use the center node of each face to provide a perfect (unique)

include/geom/cell_inf_hex.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,18 @@ class InfHex : public InfCell
151151

152152
/**
153153
* \returns An id associated with the \p s side of this element.
154-
* The id is not necessarily unique, but should be close. This is
155-
* particularly useful in the \p MeshBase::find_neighbors() routine.
154+
* The id is not necessarily unique, but should be close.
156155
*/
157156
virtual dof_id_type key (const unsigned int s) const override;
158157

158+
/**
159+
* \returns An id associated with the \p s side of this element, as
160+
* defined solely by element vertices. The id is not necessarily
161+
* unique, but should be close. This is particularly useful in the
162+
* \p MeshBase::find_neighbors() routine.
163+
*/
164+
virtual dof_id_type low_order_key (const unsigned int s) const override;
165+
159166
/**
160167
* \returns \p InfHex8::side_nodes_map[side][side_node] after doing some range checking.
161168
*/

include/geom/cell_inf_hex18.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,7 @@ class InfHex18 final : public InfHex
160160

161161
/**
162162
* \returns An id associated with the \p s side of this element.
163-
* The id is not necessarily unique, but should be close. This is
164-
* particularly useful in the \p MeshBase::find_neighbors() routine.
163+
* The id is not necessarily unique, but should be close.
165164
*
166165
* We reimplement this method here for the \p InfHex18 since we can
167166
* use the center node of the bottom face to provide a perfect (unique)

include/geom/cell_inf_prism.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,18 @@ class InfPrism : public InfCell
143143

144144
/**
145145
* \returns An id associated with the \p s side of this element.
146-
* The id is not necessarily unique, but should be close. This is
147-
* particularly useful in the \p MeshBase::find_neighbors() routine.
146+
* The id is not necessarily unique, but should be close.
148147
*/
149148
virtual dof_id_type key (const unsigned int s) const override;
150149

150+
/**
151+
* \returns An id associated with the \p s side of this element, as
152+
* defined solely by element vertices. The id is not necessarily
153+
* unique, but should be close. This is particularly useful in the
154+
* \p MeshBase::find_neighbors() routine.
155+
*/
156+
virtual dof_id_type low_order_key (const unsigned int s) const override;
157+
151158
/**
152159
* \returns InfPrism6::side_nodes_map[side][side_node] after doing some range checking.
153160
*/

include/geom/cell_prism.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,18 @@ class Prism : public Cell
117117

118118
/**
119119
* \returns An id associated with the \p s side of this element.
120-
* The id is not necessarily unique, but should be close. This is
121-
* particularly useful in the \p MeshBase::find_neighbors() routine.
120+
* The id is not necessarily unique, but should be close.
122121
*/
123122
virtual dof_id_type key (const unsigned int s) const override;
124123

124+
/**
125+
* \returns An id associated with the \p s side of this element, as
126+
* defined solely by element vertices. The id is not necessarily
127+
* unique, but should be close. This is particularly useful in the
128+
* \p MeshBase::find_neighbors() routine.
129+
*/
130+
virtual dof_id_type low_order_key (const unsigned int s) const override;
131+
125132
/**
126133
* \returns \p Prism6::side_nodes_map[side][side_node] after doing some range checking.
127134
*/

include/geom/cell_prism18.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,7 @@ class Prism18 final : public Prism
156156

157157
/**
158158
* \returns An id associated with the \p s side of this element.
159-
* The id is not necessarily unique, but should be close. This is
160-
* particularly useful in the \p MeshBase::find_neighbors() routine.
159+
* The id is not necessarily unique, but should be close.
161160
*
162161
* We reimplement this method here for the \p Prism18 since we can
163162
* use the center node of each quad face to provide a perfect (unique)

include/geom/cell_prism20.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,7 @@ class Prism20 final : public Prism
160160

161161
/**
162162
* \returns An id associated with the \p s side of this element.
163-
* The id is not necessarily unique, but should be close. This is
164-
* particularly useful in the \p MeshBase::find_neighbors() routine.
163+
* The id is not necessarily unique, but should be close.
165164
*
166165
* We reimplement this method here for the \p Prism20 since we can
167166
* use the center node of each quad face to provide a perfect (unique)

include/geom/cell_prism21.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,7 @@ class Prism21 final : public Prism
163163

164164
/**
165165
* \returns An id associated with the \p s side of this element.
166-
* The id is not necessarily unique, but should be close. This is
167-
* particularly useful in the \p MeshBase::find_neighbors() routine.
166+
* The id is not necessarily unique, but should be close.
168167
*
169168
* We reimplement this method here for the \p Prism21 since we can
170169
* use the center node of each quad face to provide a perfect (unique)

include/geom/cell_pyramid.h

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,14 +120,21 @@ class Pyramid : public Cell
120120
*/
121121
using Elem::key;
122122

123-
/**
123+
/**
124124
* \returns An id associated with the \p s side of this element.
125-
* The id is not necessarily unique, but should be close. This is
126-
* particularly useful in the \p MeshBase::find_neighbors() routine.
125+
* The id is not necessarily unique, but should be close.
127126
*/
128127
virtual dof_id_type key (const unsigned int s) const override;
129128

130129
/**
130+
* \returns An id associated with the \p s side of this element, as
131+
* defined solely by element vertices. The id is not necessarily
132+
* unique, but should be close. This is particularly useful in the
133+
* \p MeshBase::find_neighbors() routine.
134+
*/
135+
virtual dof_id_type low_order_key (const unsigned int s) const override;
136+
137+
/**
131138
* \returns \p Pyramid5::side_nodes_map[side][side_node] after doing some range checking.
132139
*/
133140
virtual unsigned int local_side_node(unsigned int side,

0 commit comments

Comments
 (0)