20 #ifndef LIBMESH_UNSTRUCTURED_MESH_H 21 #define LIBMESH_UNSTRUCTURED_MESH_H 24 #include "libmesh/mesh_base.h" 103 virtual void read (
const std::string &
name,
104 void * mesh_data=
nullptr,
105 bool skip_renumber_nodes_and_elements=
false,
106 bool skip_find_neighbors=
false)
override;
111 virtual void write (
const std::string &
name)
override;
118 const std::vector<Number> & values,
119 const std::vector<std::string> & variable_names);
141 const bool full_ordered=
true)
override;
219 bool clear_stitched_boundary_ids=
false,
221 bool use_binary_search=
true,
222 bool enforce_all_nodes_match_on_boundaries=
false,
223 bool merge_boundary_nodes_all_or_nothing=
false,
224 bool remap_subdomain_ids=
false);
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);
253 const bool skip_find_neighbors =
false,
257 std::unordered_map<subdomain_id_type, subdomain_id_type> *
258 id_remapping =
nullptr);
269 virtual void find_neighbors (
const bool reset_remote_elements =
false,
270 const bool reset_current_list =
true)
override;
272 #ifdef LIBMESH_ENABLE_AMR 279 #endif // #ifdef LIBMESH_ENABLE_AMR 291 bool clear_stitched_boundary_ids,
293 bool use_binary_search,
294 bool enforce_all_nodes_match_on_boundaries,
295 bool skip_find_neighbors,
296 bool merge_boundary_nodes_all_or_nothing,
297 bool remap_subdomain_ids);
303 #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...
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)
Similar to stitch_meshes, except that we stitch two adjacent surfaces within this mesh...
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.
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.
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)
Helper function for stitch_meshes and stitch_surfaces that does the mesh stitching.
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)
Stitch other_mesh to this mesh so that this mesh is the union of the two meshes.
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.
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.
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...
virtual void write(const std::string &name) override
Write the file specified by name.