libMesh
Public Member Functions | Protected Member Functions | List of all members
AllTriTest Class Reference
Inheritance diagram for AllTriTest:
[legend]

Public Member Functions

 LIBMESH_CPPUNIT_TEST_SUITE (AllTriTest)
 The goal of this test is to verify proper operation of the Mesh Extruder with the optional object callback for setting custom subdomain IDs. More...
 
 CPPUNIT_TEST (testAllTriTri)
 
 CPPUNIT_TEST (testAllTriQuad)
 
 CPPUNIT_TEST (testAllTriQuad8)
 
 CPPUNIT_TEST (testAllTriQuad9)
 
 CPPUNIT_TEST (testAllTriC0Polygon)
 
 CPPUNIT_TEST (testAllTriC0PolygonOctagon)
 
 CPPUNIT_TEST (testAllTriPrism6)
 
 CPPUNIT_TEST (testAllTriPrism18)
 
 CPPUNIT_TEST (testAllTriPrism20)
 
 CPPUNIT_TEST (testAllTriPrism21)
 
 CPPUNIT_TEST (testAllTriC0PolyhedronCube)
 
 CPPUNIT_TEST (testAllTriC0PolyhedronHexagonalPrism)
 
 CPPUNIT_TEST_SUITE_END ()
 
void setUp ()
 
void tearDown ()
 
void testAllTriTri ()
 
void testAllTriQuad ()
 
void testAllTriQuad8 ()
 
void testAllTriQuad9 ()
 
void testAllTriPrism6 ()
 
void testAllTriPrism18 ()
 
void testAllTriPrism20 ()
 
void testAllTriPrism21 ()
 
void testAllTriC0Polygon ()
 
void testAllTriC0PolygonOctagon ()
 
void testAllTriC0PolyhedronCube ()
 
void testAllTriC0PolyhedronHexagonalPrism ()
 

Protected Member Functions

void test_helper_2D (ElemType elem_type, dof_id_type n_elem_expected, std::size_t n_boundary_conds_expected)
 
void test_helper_3D (ElemType elem_type, dof_id_type n_elem_expected, std::size_t n_boundary_conds_expected)
 
void test_helper_c0polyhedron (const std::vector< Point > &points, const std::vector< std::vector< unsigned int >> &nodes_on_side)
 

Detailed Description

Definition at line 21 of file all_tri.C.

Member Function Documentation

◆ CPPUNIT_TEST() [1/12]

AllTriTest::CPPUNIT_TEST ( testAllTriTri  )

◆ CPPUNIT_TEST() [2/12]

AllTriTest::CPPUNIT_TEST ( testAllTriQuad  )

◆ CPPUNIT_TEST() [3/12]

AllTriTest::CPPUNIT_TEST ( testAllTriQuad8  )

◆ CPPUNIT_TEST() [4/12]

AllTriTest::CPPUNIT_TEST ( testAllTriQuad9  )

◆ CPPUNIT_TEST() [5/12]

AllTriTest::CPPUNIT_TEST ( testAllTriC0Polygon  )

◆ CPPUNIT_TEST() [6/12]

AllTriTest::CPPUNIT_TEST ( testAllTriC0PolygonOctagon  )

◆ CPPUNIT_TEST() [7/12]

AllTriTest::CPPUNIT_TEST ( testAllTriPrism6  )

◆ CPPUNIT_TEST() [8/12]

AllTriTest::CPPUNIT_TEST ( testAllTriPrism18  )

◆ CPPUNIT_TEST() [9/12]

AllTriTest::CPPUNIT_TEST ( testAllTriPrism20  )

◆ CPPUNIT_TEST() [10/12]

AllTriTest::CPPUNIT_TEST ( testAllTriPrism21  )

◆ CPPUNIT_TEST() [11/12]

AllTriTest::CPPUNIT_TEST ( testAllTriC0PolyhedronCube  )

◆ CPPUNIT_TEST() [12/12]

AllTriTest::CPPUNIT_TEST ( testAllTriC0PolyhedronHexagonalPrism  )

◆ CPPUNIT_TEST_SUITE_END()

AllTriTest::CPPUNIT_TEST_SUITE_END ( )

◆ LIBMESH_CPPUNIT_TEST_SUITE()

AllTriTest::LIBMESH_CPPUNIT_TEST_SUITE ( AllTriTest  )

The goal of this test is to verify proper operation of the Mesh Extruder with the optional object callback for setting custom subdomain IDs.

We pass a custom object for generating subdomains based on the old element ID and the current layer and assert the proper values.

◆ setUp()

void AllTriTest::setUp ( )
inline

Definition at line 105 of file all_tri.C.

105 {}

◆ tearDown()

void AllTriTest::tearDown ( )
inline

Definition at line 107 of file all_tri.C.

107 {}

◆ test_helper_2D()

void AllTriTest::test_helper_2D ( ElemType  elem_type,
dof_id_type  n_elem_expected,
std::size_t  n_boundary_conds_expected 
)
inlineprotected

Definition at line 56 of file all_tri.C.

References libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_square(), libMesh::MeshBase::get_boundary_info(), mesh, libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshBase::n_elem(), and TestCommWorld.

59  {
60  ReplicatedMesh mesh(*TestCommWorld, /*dim=*/2);
61 
62  // Build a 2x1 TRI3 mesh and ask to split it into triangles.
63  // Should be a no-op
65  /*nx=*/2, /*ny=*/1,
66  /*xmin=*/0., /*xmax=*/1.,
67  /*ymin=*/0., /*ymax=*/1.,
68  elem_type);
69 
71 
72  // Make sure that the expected number of elements is found.
73  CPPUNIT_ASSERT_EQUAL(n_elem_expected, mesh.n_elem());
74 
75  // Make sure the expected number of BCs is found.
76  CPPUNIT_ASSERT_EQUAL(n_boundary_conds_expected, mesh.get_boundary_info().n_boundary_conds());
77  }
std::size_t n_boundary_conds() const
The ReplicatedMesh class is derived from the MeshBase class, and is used to store identical copies of...
libMesh::Parallel::Communicator * TestCommWorld
Definition: driver.C:218
MeshBase & mesh
void build_square(UnstructuredMesh &mesh, const unsigned int nx, const unsigned int ny, const Real xmin=0., const Real xmax=1., const Real ymin=0., const Real ymax=1., const ElemType type=INVALID_ELEM, const bool gauss_lobatto_grid=false)
A specialized build_cube() for 2D meshes.
const BoundaryInfo & get_boundary_info() const
The information about boundary ids on the mesh.
Definition: mesh_base.h:170
void all_tri(MeshBase &mesh)
Subdivides any non-simplex elements in a Mesh to produce simplex (triangular in 2D, tetrahedral in 3D) elements.
virtual dof_id_type n_elem() const =0

◆ test_helper_3D()

void AllTriTest::test_helper_3D ( ElemType  elem_type,
dof_id_type  n_elem_expected,
std::size_t  n_boundary_conds_expected 
)
inlineprotected

Definition at line 80 of file all_tri.C.

References libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshBase::get_boundary_info(), mesh, libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshBase::n_elem(), and TestCommWorld.

83  {
84  ReplicatedMesh mesh(*TestCommWorld, /*dim=*/3);
85 
86  // Build a 2x1 TRI3 mesh and ask to split it into triangles.
87  // Should be a no-op
89  /*nx=*/1, /*ny=*/1, /*nz=*/1,
90  /*xmin=*/0., /*xmax=*/1.,
91  /*ymin=*/0., /*ymax=*/1.,
92  /*zmin=*/0., /*zmax=*/1.,
93  elem_type);
94 
96 
97  // Make sure that the expected number of elements is found.
98  CPPUNIT_ASSERT_EQUAL(n_elem_expected, mesh.n_elem());
99 
100  // Make sure the expected number of BCs is found.
101  CPPUNIT_ASSERT_EQUAL(n_boundary_conds_expected, mesh.get_boundary_info().n_boundary_conds());
102  }
std::size_t n_boundary_conds() const
The ReplicatedMesh class is derived from the MeshBase class, and is used to store identical copies of...
libMesh::Parallel::Communicator * TestCommWorld
Definition: driver.C:218
MeshBase & mesh
const BoundaryInfo & get_boundary_info() const
The information about boundary ids on the mesh.
Definition: mesh_base.h:170
void all_tri(MeshBase &mesh)
Subdivides any non-simplex elements in a Mesh to produce simplex (triangular in 2D, tetrahedral in 3D) elements.
virtual dof_id_type n_elem() const =0
void build_cube(UnstructuredMesh &mesh, const unsigned int nx=0, const unsigned int ny=0, const unsigned int nz=0, const Real xmin=0., const Real xmax=1., const Real ymin=0., const Real ymax=1., const Real zmin=0., const Real zmax=1., const ElemType type=INVALID_ELEM, const bool gauss_lobatto_grid=false)
Builds a (elements) cube.

◆ test_helper_c0polyhedron()

void AllTriTest::test_helper_c0polyhedron ( const std::vector< Point > &  points,
const std::vector< std::vector< unsigned int >> &  nodes_on_side 
)
inlineprotected

Definition at line 215 of file all_tri.C.

References libMesh::MeshBase::add_elem(), libMesh::MeshBase::add_node(), libMesh::MeshBase::add_point(), libMesh::BoundaryInfo::add_side(), libMesh::MeshTools::Modification::all_tri(), b, libMesh::MeshBase::get_boundary_info(), libMesh::BoundaryInfo::has_boundary_id(), libMesh::index_range(), libMesh::invalid_int, libMesh::make_range(), mesh, libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshBase::n_elem(), libMesh::Elem::n_sides(), libMesh::Elem::n_sub_elem(), libMesh::MeshBase::node_ptr(), libMesh::MeshBase::prepare_for_use(), libMesh::Real, libMesh::DofObject::set_id(), TestCommWorld, libMesh::TET4, libMesh::TOLERANCE, and libMesh::MeshTools::volume().

217  {
218  ReplicatedMesh mesh(*TestCommWorld, /*dim=*/3);
219 
220  for (auto p : index_range(points))
221  mesh.add_point(points[p], /*id=*/p);
222 
223  std::vector<std::shared_ptr<Polygon>> sides(nodes_on_side.size());
224  for (auto s : index_range(nodes_on_side))
225  {
226  const auto & nodes_on_s = nodes_on_side[s];
227  sides[s] = std::make_shared<C0Polygon>(nodes_on_s.size());
228  for (auto i : index_range(nodes_on_s))
229  sides[s]->set_node(i, mesh.node_ptr(nodes_on_s[i]));
230  }
231 
232  std::unique_ptr<Node> mid_elem_node;
233  std::unique_ptr<Elem> polyhedron =
234  std::make_unique<C0Polyhedron>(sides, mid_elem_node);
235  if (mid_elem_node)
236  mesh.add_node(std::move(mid_elem_node));
237  polyhedron->set_id() = 0;
238  Elem * elem = mesh.add_elem(std::move(polyhedron));
239 
240  const auto * poly = cast_ptr<const C0Polyhedron *>(elem);
241  const dof_id_type n_elem_expected = poly->n_subelements();
242 
243  // Mark every external face with a boundary id so we can verify
244  // boundary information is transferred to the new tets.
245  for (unsigned int s = 0; s < elem->n_sides(); ++s)
246  mesh.get_boundary_info().add_side(elem, s, /*bnd_id=*/s);
247 
248  // The number of boundary triangles produced is the total number of
249  // subtriangles across the polyhedron's polygonal faces.
250  std::size_t n_bcs_expected = 0;
251  for (unsigned int s = 0; s < elem->n_sides(); ++s)
252  n_bcs_expected += sides[s]->n_subtriangles();
253 
254  // Keep this map for future checks
255  std::vector<std::array<int, 4>> sub_elem_sides_to_parent_side(elem->n_sub_elem());
256  for (unsigned int b = 0; b < elem->n_sub_elem(); ++b)
257  sub_elem_sides_to_parent_side[b] = poly->subelement_sides_to_poly_sides(b);
258 
259  Real poly_volume = poly->volume();
261 
263 
264  CPPUNIT_ASSERT_EQUAL(n_elem_expected, mesh.n_elem());
265  CPPUNIT_ASSERT_EQUAL(n_bcs_expected,
267 
268  for (const Elem * e : mesh.element_ptr_range())
269  CPPUNIT_ASSERT_EQUAL(ElemType(TET4), e->type());
270 
271  // Check that the boundary info and numbering is as expected
272  for (const Elem * e : mesh.element_ptr_range())
273  for (const auto s : make_range(e->n_sides()))
274  {
275  // Get parent side
276  const auto side = sub_elem_sides_to_parent_side[e->id()][s];
277  // Check boundary exists on the tet side if the tet side is on a poly side
278  if (side != invalid_int)
279  CPPUNIT_ASSERT_EQUAL(mesh.get_boundary_info().has_boundary_id(e, s, side), true);
280  }
281  LIBMESH_ASSERT_NUMBERS_EQUAL(poly_volume, MeshTools::volume(mesh), TOLERANCE);
282  }
std::size_t n_boundary_conds() const
ElemType
Defines an enum for geometric element types.
The ReplicatedMesh class is derived from the MeshBase class, and is used to store identical copies of...
bool has_boundary_id(const Node *const node, const boundary_id_type id) const
libMesh::Parallel::Communicator * TestCommWorld
Definition: driver.C:218
static constexpr Real TOLERANCE
void prepare_for_use(const bool skip_renumber_nodes_and_elements, const bool skip_find_neighbors)
Prepare a newly created (or read) mesh for use.
Definition: mesh_base.C:824
This is the base class from which all geometric element types are derived.
Definition: elem.h:94
MeshBase & mesh
const BoundaryInfo & get_boundary_info() const
The information about boundary ids on the mesh.
Definition: mesh_base.h:170
virtual Node * add_point(const Point &p, const dof_id_type id=DofObject::invalid_id, const processor_id_type proc_id=DofObject::invalid_processor_id)=0
Add a new Node at Point p to the end of the vertex array, with processor_id procid.
dof_id_type & set_id()
Definition: dof_object.h:827
void all_tri(MeshBase &mesh)
Subdivides any non-simplex elements in a Mesh to produce simplex (triangular in 2D, tetrahedral in 3D) elements.
const int invalid_int
A number which is used quite often to represent an invalid or uninitialized value for an integer...
Definition: libmesh.h:309
virtual Elem * add_elem(Elem *e)=0
Add elem e to the end of the element array.
Real volume(const MeshBase &mesh, unsigned int dim=libMesh::invalid_uint)
Find the total volume of a mesh (interpreting that as area for dim = 2, or total arc length for dim =...
Definition: mesh_tools.C:1020
virtual Node * add_node(Node *n)=0
Add Node n to the end of the vertex array.
virtual unsigned int n_sides() const =0
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const Real b
void add_side(const dof_id_type elem, const unsigned short int side, const boundary_id_type id)
Add side side of element number elem with boundary id id to the boundary information data structure...
IntRange< T > make_range(T beg, T end)
The 2-parameter make_range() helper function returns an IntRange<T> when both input parameters are of...
Definition: int_range.h:176
virtual unsigned int n_sub_elem() const =0
virtual dof_id_type n_elem() const =0
virtual const Node * node_ptr(const dof_id_type i) const =0
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
Definition: int_range.h:153
uint8_t dof_id_type
Definition: id_types.h:67

◆ testAllTriC0Polygon()

void AllTriTest::testAllTriC0Polygon ( )
inline

Definition at line 129 of file all_tri.C.

References libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_square(), libMesh::C0POLYGON, libMesh::MeshBase::get_boundary_info(), mesh, libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshBase::n_elem(), libMesh::Polygon::n_subtriangles(), TestCommWorld, and libMesh::TRI3.

130  {
131  LOG_UNIT_TEST;
132 
133  ReplicatedMesh mesh(*TestCommWorld, /*dim=*/2);
134 
136  /*nx=*/2, /*ny=*/2,
137  /*xmin=*/0., /*xmax=*/1.,
138  /*ymin=*/0., /*ymax=*/1.,
139  C0POLYGON);
140 
141  // The post-all_tri element count is the sum of the per-polygon
142  // subtriangle counts, and external sides should be preserved one
143  // for one as TRI3 sides.
144  dof_id_type n_elem_expected = 0;
145  for (const Elem * elem : mesh.element_ptr_range())
146  {
147  const Polygon * poly = dynamic_cast<const Polygon *>(elem);
148  CPPUNIT_ASSERT(poly != nullptr);
149  n_elem_expected += poly->n_subtriangles();
150  }
151 
152  const std::size_t n_bcs_before =
154 
156 
157  CPPUNIT_ASSERT_EQUAL(n_elem_expected, mesh.n_elem());
158  CPPUNIT_ASSERT_EQUAL(n_bcs_before,
160 
161  for (const Elem * elem : mesh.element_ptr_range())
162  CPPUNIT_ASSERT_EQUAL(ElemType(TRI3), elem->type());
163  }
std::size_t n_boundary_conds() const
ElemType
Defines an enum for geometric element types.
The ReplicatedMesh class is derived from the MeshBase class, and is used to store identical copies of...
unsigned int n_subtriangles() const
Definition: face_polygon.h:212
libMesh::Parallel::Communicator * TestCommWorld
Definition: driver.C:218
This is the base class from which all geometric element types are derived.
Definition: elem.h:94
MeshBase & mesh
void build_square(UnstructuredMesh &mesh, const unsigned int nx, const unsigned int ny, const Real xmin=0., const Real xmax=1., const Real ymin=0., const Real ymax=1., const ElemType type=INVALID_ELEM, const bool gauss_lobatto_grid=false)
A specialized build_cube() for 2D meshes.
const BoundaryInfo & get_boundary_info() const
The information about boundary ids on the mesh.
Definition: mesh_base.h:170
void all_tri(MeshBase &mesh)
Subdivides any non-simplex elements in a Mesh to produce simplex (triangular in 2D, tetrahedral in 3D) elements.
The Polygon is an element in 2D with an arbitrary (but fixed) number of sides.
Definition: face_polygon.h:39
virtual dof_id_type n_elem() const =0
uint8_t dof_id_type
Definition: id_types.h:67

◆ testAllTriC0PolygonOctagon()

void AllTriTest::testAllTriC0PolygonOctagon ( )
inline

Definition at line 168 of file all_tri.C.

References libMesh::MeshBase::add_elem(), libMesh::MeshBase::add_point(), libMesh::BoundaryInfo::add_side(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshBase::get_boundary_info(), mesh, libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshBase::n_elem(), libMesh::pi, libMesh::MeshBase::prepare_for_use(), libMesh::Real, libMesh::DofObject::set_id(), TestCommWorld, libMesh::TOLERANCE, libMesh::TRI3, and libMesh::MeshTools::volume().

169  {
170  LOG_UNIT_TEST;
171 
172  constexpr unsigned int n_sides = 8;
173 
174  ReplicatedMesh mesh(*TestCommWorld, /*dim=*/2);
175 
176  std::unique_ptr<Elem> octagon = std::make_unique<C0Polygon>(n_sides);
177  for (unsigned int i = 0; i < n_sides; ++i)
178  {
179  const Real angle = 2 * libMesh::pi * i / n_sides;
180  Node * node = mesh.add_point(Point(std::cos(angle), std::sin(angle), 0.),
181  /*id=*/i);
182  octagon->set_node(i, node);
183  }
184  octagon->set_id() = 0;
185  Real poly_volume = octagon->volume();
186  Elem * elem = mesh.add_elem(std::move(octagon));
187 
188  // Mark every external side with a boundary id so we can verify
189  // boundary information is transferred to the new triangles.
190  for (unsigned int s = 0; s < n_sides; ++s)
191  mesh.get_boundary_info().add_side(elem, s, /*bnd_id=*/0);
192 
194 
196 
197  // n_sides - 2 = 6 subtriangles
198  CPPUNIT_ASSERT_EQUAL(dof_id_type(n_sides - 2), mesh.n_elem());
199  CPPUNIT_ASSERT_EQUAL(std::size_t(n_sides),
201 
202  for (const Elem * e : mesh.element_ptr_range())
203  CPPUNIT_ASSERT_EQUAL(ElemType(TRI3), e->type());
204 
205  LIBMESH_ASSERT_NUMBERS_EQUAL(poly_volume, MeshTools::volume(mesh), TOLERANCE);
206  }
std::size_t n_boundary_conds() const
ElemType
Defines an enum for geometric element types.
The ReplicatedMesh class is derived from the MeshBase class, and is used to store identical copies of...
A Node is like a Point, but with more information.
Definition: node.h:52
libMesh::Parallel::Communicator * TestCommWorld
Definition: driver.C:218
static constexpr Real TOLERANCE
void prepare_for_use(const bool skip_renumber_nodes_and_elements, const bool skip_find_neighbors)
Prepare a newly created (or read) mesh for use.
Definition: mesh_base.C:824
This is the base class from which all geometric element types are derived.
Definition: elem.h:94
MeshBase & mesh
const BoundaryInfo & get_boundary_info() const
The information about boundary ids on the mesh.
Definition: mesh_base.h:170
virtual Node * add_point(const Point &p, const dof_id_type id=DofObject::invalid_id, const processor_id_type proc_id=DofObject::invalid_processor_id)=0
Add a new Node at Point p to the end of the vertex array, with processor_id procid.
dof_id_type & set_id()
Definition: dof_object.h:827
void all_tri(MeshBase &mesh)
Subdivides any non-simplex elements in a Mesh to produce simplex (triangular in 2D, tetrahedral in 3D) elements.
virtual Elem * add_elem(Elem *e)=0
Add elem e to the end of the element array.
Real volume(const MeshBase &mesh, unsigned int dim=libMesh::invalid_uint)
Find the total volume of a mesh (interpreting that as area for dim = 2, or total arc length for dim =...
Definition: mesh_tools.C:1020
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void add_side(const dof_id_type elem, const unsigned short int side, const boundary_id_type id)
Add side side of element number elem with boundary id id to the boundary information data structure...
virtual dof_id_type n_elem() const =0
A Point defines a location in LIBMESH_DIM dimensional Real space.
Definition: point.h:39
uint8_t dof_id_type
Definition: id_types.h:67
const Real pi
.
Definition: libmesh.h:292

◆ testAllTriC0PolyhedronCube()

void AllTriTest::testAllTriC0PolyhedronCube ( )
inline

Definition at line 288 of file all_tri.C.

289  {
290  LOG_UNIT_TEST;
291 
292  const std::vector<Point> points =
293  { {0,0,0}, {1,0,0}, {1,1,0}, {0,1,0},
294  {0,0,1}, {1,0,1}, {1,1,1}, {0,1,1} };
295 
296  const std::vector<std::vector<unsigned int>> nodes_on_side =
297  { {0, 1, 2, 3}, // min z
298  {0, 1, 5, 4}, // min y
299  {2, 6, 5, 1}, // max x
300  {2, 3, 7, 6}, // max y
301  {0, 4, 7, 3}, // min x
302  {5, 6, 7, 4} }; // max z
303 
304  test_helper_c0polyhedron(points, nodes_on_side);
305  }
void test_helper_c0polyhedron(const std::vector< Point > &points, const std::vector< std::vector< unsigned int >> &nodes_on_side)
Definition: all_tri.C:215

◆ testAllTriC0PolyhedronHexagonalPrism()

void AllTriTest::testAllTriC0PolyhedronHexagonalPrism ( )
inline

Definition at line 309 of file all_tri.C.

310  {
311  LOG_UNIT_TEST;
312 
313  const std::vector<Point> points =
314  { { 0, -2, 0}, {-1, -1, 0}, {-1, 1, 0},
315  { 0, 2, 0}, { 1, 1, 0}, { 1, -1, 0},
316  { 0, -2, 1}, {-1, -1, 1}, {-1, 1, 1},
317  { 0, 2, 1}, { 1, 1, 1}, { 1, -1, 1} };
318 
319  const std::vector<std::vector<unsigned int>> nodes_on_side =
320  { {0, 1, 2, 3, 4, 5},
321  {0, 1, 7, 6},
322  {1, 2, 8, 7},
323  {2, 3, 9, 8},
324  {3, 4, 10, 9},
325  {4, 5, 11, 10},
326  {5, 0, 6, 11},
327  {6, 7, 8, 9, 10, 11} };
328 
329  test_helper_c0polyhedron(points, nodes_on_side);
330  }
void test_helper_c0polyhedron(const std::vector< Point > &points, const std::vector< std::vector< unsigned int >> &nodes_on_side)
Definition: all_tri.C:215

◆ testAllTriPrism18()

void AllTriTest::testAllTriPrism18 ( )
inline

Definition at line 123 of file all_tri.C.

References libMesh::PRISM18.

123 { LOG_UNIT_TEST; test_helper_3D(PRISM18, /*nelem=*/6, /*nbcs=*/12); }
void test_helper_3D(ElemType elem_type, dof_id_type n_elem_expected, std::size_t n_boundary_conds_expected)
Definition: all_tri.C:80

◆ testAllTriPrism20()

void AllTriTest::testAllTriPrism20 ( )
inline

Definition at line 124 of file all_tri.C.

References libMesh::PRISM20.

124 { LOG_UNIT_TEST; test_helper_3D(PRISM20, /*nelem=*/6, /*nbcs=*/12); }
void test_helper_3D(ElemType elem_type, dof_id_type n_elem_expected, std::size_t n_boundary_conds_expected)
Definition: all_tri.C:80

◆ testAllTriPrism21()

void AllTriTest::testAllTriPrism21 ( )
inline

Definition at line 125 of file all_tri.C.

References libMesh::PRISM21.

125 { LOG_UNIT_TEST; test_helper_3D(PRISM21, /*nelem=*/6, /*nbcs=*/12); }
void test_helper_3D(ElemType elem_type, dof_id_type n_elem_expected, std::size_t n_boundary_conds_expected)
Definition: all_tri.C:80

◆ testAllTriPrism6()

void AllTriTest::testAllTriPrism6 ( )
inline

Definition at line 122 of file all_tri.C.

References libMesh::PRISM6.

122 { LOG_UNIT_TEST; test_helper_3D(PRISM6, /*nelem=*/6, /*nbcs=*/12); }
void test_helper_3D(ElemType elem_type, dof_id_type n_elem_expected, std::size_t n_boundary_conds_expected)
Definition: all_tri.C:80

◆ testAllTriQuad()

void AllTriTest::testAllTriQuad ( )
inline

Definition at line 113 of file all_tri.C.

References libMesh::QUAD4.

113 { LOG_UNIT_TEST; test_helper_2D(QUAD4, /*nelem=*/4, /*nbcs=*/6); }
void test_helper_2D(ElemType elem_type, dof_id_type n_elem_expected, std::size_t n_boundary_conds_expected)
Definition: all_tri.C:56

◆ testAllTriQuad8()

void AllTriTest::testAllTriQuad8 ( )
inline

Definition at line 116 of file all_tri.C.

References libMesh::QUAD8.

116 { LOG_UNIT_TEST; test_helper_2D(QUAD8, /*nelem=*/4, /*nbcs=*/6); }
void test_helper_2D(ElemType elem_type, dof_id_type n_elem_expected, std::size_t n_boundary_conds_expected)
Definition: all_tri.C:56

◆ testAllTriQuad9()

void AllTriTest::testAllTriQuad9 ( )
inline

Definition at line 119 of file all_tri.C.

References libMesh::QUAD9.

119 { LOG_UNIT_TEST; test_helper_2D(QUAD9, /*nelem=*/4, /*nbcs=*/6); }
void test_helper_2D(ElemType elem_type, dof_id_type n_elem_expected, std::size_t n_boundary_conds_expected)
Definition: all_tri.C:56

◆ testAllTriTri()

void AllTriTest::testAllTriTri ( )
inline

Definition at line 110 of file all_tri.C.

References libMesh::TRI3.

110 { LOG_UNIT_TEST; test_helper_2D(TRI3, /*nelem=*/4, /*nbcs=*/6); }
void test_helper_2D(ElemType elem_type, dof_id_type n_elem_expected, std::size_t n_boundary_conds_expected)
Definition: all_tri.C:56

The documentation for this class was generated from the following file: