13 #include "libmesh/plane.h" 14 #include "libmesh/point.h" 15 #include "libmesh/mesh.h" 16 #include "libmesh/elem.h" 28 std::vector<const Elem *> & intersected_elems)
31 for (
const auto & elem :
mesh.element_ptr_range())
33 bool intersected =
false;
36 const Node & node0 = elem->node_ref(0);
40 for (
unsigned int i = 1; i < elem->n_nodes(); ++i)
42 const Node & node = elem->node_ref(i);
45 if (node0_above_plane != node_above_plane)
50 intersected_elems.push_back(elem);
58 std::vector<const Elem *> & intersected_elems)
61 intersected_elems.clear();
75 std::vector<const Elem *> & intersected_elems)
78 intersected_elems.clear();
void elementsIntersectedByPlane(const libMesh::Point &p0, const libMesh::Point &normal, const libMesh::MeshBase &mesh, std::vector< const libMesh::Elem *> &intersected_elems)
Find all of the elements intersected by a plane.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
virtual bool above_surface(const Point &p) const override
void findElementsIntersectedByPlane(const libMesh::Plane &plane, const MeshBase &mesh, std::vector< const Elem *> &intersected_elems)
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...