20 #ifndef LIBMESH_UNSTRUCTURED_MESH_H 21 #define LIBMESH_UNSTRUCTURED_MESH_H 24 #include "libmesh/mesh_base.h" 109 virtual void read (
const std::string &
name,
110 void * mesh_data=
nullptr,
111 bool skip_renumber_nodes_and_elements=
false,
112 bool skip_find_neighbors=
false)
override;
117 virtual void write (
const std::string &
name)
const override;
124 const std::vector<Number> & values,
125 const std::vector<std::string> & variable_names)
const;
147 const bool full_ordered=
true)
override;
232 bool clear_stitched_boundary_ids=
false,
234 bool use_binary_search=
true,
235 bool enforce_all_nodes_match_on_boundaries=
false,
236 bool merge_boundary_nodes_all_or_nothing=
false,
237 bool remap_subdomain_ids=
false,
238 bool prepare_after_stitching=
true);
246 bool clear_stitched_boundary_ids=
false,
248 bool use_binary_search=
true,
249 bool enforce_all_nodes_match_on_boundaries=
false,
250 bool merge_boundary_nodes_all_or_nothing=
false,
251 bool prepare_after_stitching=
true);
268 const bool skip_find_neighbors =
false,
272 std::unordered_map<subdomain_id_type, subdomain_id_type> *
273 id_remapping =
nullptr);
284 virtual void find_neighbors (
const bool reset_remote_elements =
false,
285 const bool reset_current_list =
true)
override;
287 #ifdef LIBMESH_ENABLE_AMR 294 #endif // #ifdef LIBMESH_ENABLE_AMR 306 bool clear_stitched_boundary_ids,
308 bool use_binary_search,
309 bool enforce_all_nodes_match_on_boundaries,
310 bool skip_find_neighbors,
311 bool merge_boundary_nodes_all_or_nothing,
312 bool remap_subdomain_ids,
313 bool prepare_after_stitching);
319 #endif // LIBMESH_UNSTRUCTURED_MESH_H std::string name(const ElemQuality q)
This function returns a string containing some name for q.
UnstructuredMesh & operator=(const UnstructuredMesh &)=delete
Copy assignment is not allowed.
The SimpleRange templated class is intended to make it easy to construct ranges from pairs of iterato...
virtual void all_complete_order_range(const SimpleRange< element_iterator > &range) override
Converts a (conforming, non-refined) mesh with linear elements into a mesh with "complete" order elem...
virtual void copy_nodes_and_elements(const MeshBase &other_mesh, const bool skip_find_neighbors=false, dof_id_type element_id_offset=0, dof_id_type node_id_offset=0, unique_id_type unique_id_offset=0, std::unordered_map< subdomain_id_type, subdomain_id_type > *id_remapping=nullptr)
Deep copy of nodes and elements from another mesh object (used by subclass copy constructors and by m...
The definition of the const_element_iterator struct.
static constexpr Real TOLERANCE
virtual void all_first_order() override
Converts a mesh with higher-order elements into a mesh with linear elements.
virtual void find_neighbors(const bool reset_remote_elements=false, const bool reset_current_list=true) override
Other functions from MeshBase requiring re-definition.
The libMesh namespace provides an interface to certain functionality in the library.
void create_pid_mesh(UnstructuredMesh &pid_mesh, const processor_id_type pid) const
Generates a new mesh containing all the elements which are assigned to processor pid.
std::size_t stitching_helper(const MeshBase *other_mesh, boundary_id_type boundary_id_1, boundary_id_type boundary_id_2, Real tol, bool clear_stitched_boundary_ids, bool verbose, bool use_binary_search, bool enforce_all_nodes_match_on_boundaries, bool skip_find_neighbors, bool merge_boundary_nodes_all_or_nothing, bool remap_subdomain_ids, bool prepare_after_stitching)
Helper function for stitch_meshes and stitch_surfaces that does the mesh stitching.
virtual void all_second_order_range(const SimpleRange< element_iterator > &range, const bool full_ordered=true) override
Converts a (conforming, non-refined) mesh with linear elements into a mesh with second-order elements...
uint8_t processor_id_type
This is the MeshBase class.
virtual bool contract() override
Delete subactive (i.e.
virtual void move_nodes_and_elements(MeshBase &&other_mesh)=0
Move node and elements from other_mesh to this mesh.
The UnstructuredMesh class is derived from the MeshBase class.
UnstructuredMesh(const Parallel::Communicator &comm_in, unsigned char dim=1)
Constructor.
virtual MeshBase & assign(MeshBase &&other_mesh) override=0
Shim to allow operator = (&&) to behave like a virtual function without having to be one...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual ~UnstructuredMesh()
Destructor.
std::size_t stitch_surfaces(boundary_id_type boundary_id_1, boundary_id_type boundary_id_2, Real tol=TOLERANCE, bool clear_stitched_boundary_ids=false, bool verbose=true, bool use_binary_search=true, bool enforce_all_nodes_match_on_boundaries=false, bool merge_boundary_nodes_all_or_nothing=false, bool prepare_after_stitching=true)
Similar to stitch_meshes, except that we stitch two adjacent surfaces within this mesh...
virtual void read(const std::string &name, void *mesh_data=nullptr, bool skip_renumber_nodes_and_elements=false, bool skip_find_neighbors=false) override
Reads the file specified by name.
virtual void write(const std::string &name) const override
Write the file specified by name.
std::size_t stitch_meshes(const MeshBase &other_mesh, boundary_id_type this_mesh_boundary, boundary_id_type other_mesh_boundary, Real tol=TOLERANCE, bool clear_stitched_boundary_ids=false, bool verbose=true, bool use_binary_search=true, bool enforce_all_nodes_match_on_boundaries=false, bool merge_boundary_nodes_all_or_nothing=false, bool remap_subdomain_ids=false, bool prepare_after_stitching=true)
Stitch other_mesh to this mesh so that this mesh is the union of the two meshes.
void create_submesh(UnstructuredMesh &new_mesh, const const_element_iterator &it, const const_element_iterator &it_end) const
Constructs a mesh called "new_mesh" from the current mesh by iterating over the elements between it a...