libMesh
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
libMesh::ParallelMesh Class Reference

#include <parallel_mesh.h>

Inheritance diagram for libMesh::ParallelMesh:
[legend]

Public Types

typedef Predicates::multi_predicate Predicate
 We need an empty, generic class to act as a predicate for this and derived mesh classes. More...
 

Public Member Functions

 ParallelMesh (const Parallel::Communicator &comm_in, unsigned char dim=1)
 
 ParallelMesh (const UnstructuredMesh &other_mesh)
 
virtual std::unique_ptr< MeshBaseclone () const override
 Virtual copy-constructor, creates a copy of this mesh. More...
 
 ~ParallelMesh ()
 
virtual void clear () override
 Clear all internal data. More...
 
virtual void redistribute () override
 Redistribute elements between processors. More...
 
virtual void update_post_partitioning () override
 Recalculate cached data after elements and nodes have been repartitioned. More...
 
virtual bool is_serial () const override
 
virtual bool is_serial_on_zero () const override
 
virtual void set_distributed () override
 Asserts that not all elements and nodes of the mesh necessarily exist on the current processor. More...
 
virtual bool is_replicated () const override
 
template<typename T >
void libmesh_assert_valid_parallel_object_ids (const mapvector< T *, dof_id_type > &) const
 Verify id, processor_id, and if applicable unique_id consistency of a parallel objects container. More...
 
virtual void libmesh_assert_valid_parallel_ids () const override
 Verify id and processor_id consistency of our elements and nodes containers. More...
 
void libmesh_assert_valid_parallel_p_levels () const
 Verify p_level consistency of our elements containers. More...
 
void libmesh_assert_valid_parallel_flags () const
 Verify refinement_flag and p_refinement_flag consistency of our elements containers. More...
 
template<typename T >
dof_id_type renumber_dof_objects (mapvector< T *, dof_id_type > &)
 Renumber a parallel objects container. More...
 
virtual void renumber_nodes_and_elements () override
 Remove nullptr elements from arrays. More...
 
virtual void allgather () override
 Gathers all elements and nodes of the mesh onto every processor. More...
 
virtual void gather_to_zero () override
 Gathers all elements and nodes of the mesh onto processor zero. More...
 
virtual void delete_remote_elements () override
 Deletes all nonlocal elements of the mesh except for "ghosts" which touch a local element, and deletes all nodes which are not part of a local or ghost element. More...
 
virtual void add_extra_ghost_elem (Elem *e)
 Inserts the element and adds it to a list of elements that should not get deleted or have their descendants deleted by delete_remote_elements. More...
 
virtual void clear_extra_ghost_elems ()
 Clears extra ghost elements. More...
 
virtual dof_id_type n_nodes () const override
 
virtual dof_id_type max_node_id () const override
 
virtual void reserve_nodes (const dof_id_type) override
 Reserves space for a known number of nodes. More...
 
virtual dof_id_type n_elem () const override
 
virtual dof_id_type n_active_elem () const override
 
virtual dof_id_type max_elem_id () const override
 
virtual void reserve_elem (const dof_id_type) override
 Reserves space for a known number of elements. More...
 
virtual void update_parallel_id_counts () override
 Updates parallel caches so that methods like n_elem() accurately reflect changes on other processors. More...
 
virtual dof_id_type parallel_n_nodes () const override
 
dof_id_type parallel_max_node_id () const
 
virtual dof_id_type parallel_n_elem () const override
 
dof_id_type parallel_max_elem_id () const
 
virtual unique_id_type parallel_max_unique_id () const override
 
virtual const Pointpoint (const dof_id_type i) const override
 
virtual const Nodenode_ptr (const dof_id_type i) const override
 
virtual Nodenode_ptr (const dof_id_type i) override
 
virtual const Nodequery_node_ptr (const dof_id_type i) const override
 
virtual Nodequery_node_ptr (const dof_id_type i) override
 
virtual const Elemelem_ptr (const dof_id_type i) const override
 
virtual Elemelem_ptr (const dof_id_type i) override
 
virtual const Elemquery_elem_ptr (const dof_id_type i) const override
 
virtual Elemquery_elem_ptr (const dof_id_type i) override
 
virtual Nodeadd_point (const Point &p, const dof_id_type id=DofObject::invalid_id, const processor_id_type proc_id=DofObject::invalid_processor_id) override
 functions for adding /deleting nodes elements. More...
 
virtual Nodeadd_node (Node *n) override
 Add Node n to the end of the vertex array. More...
 
virtual Nodeinsert_node (Node *n) override
 Calls add_node(). More...
 
virtual void own_node (Node &n) override
 Takes ownership of node n on this partition of a distributed mesh, by setting n.processor_id() to this->processor_id(), as well as changing n.id() and moving it in the mesh's internal container to give it a new authoritative id. More...
 
virtual void delete_node (Node *n) override
 Removes the Node n from the mesh. More...
 
virtual void renumber_node (dof_id_type old_id, dof_id_type new_id) override
 Changes the id of node old_id, both by changing node(old_id)->id() and by moving node(old_id) in the mesh's internal container. More...
 
virtual Elemadd_elem (Elem *e) override
 Add elem e to the end of the element array. More...
 
virtual Eleminsert_elem (Elem *e) override
 Insert elem e to the element array, preserving its id and replacing/deleting any existing element with the same id. More...
 
virtual void delete_elem (Elem *e) override
 Removes element e from the mesh. More...
 
virtual void renumber_elem (dof_id_type old_id, dof_id_type new_id) override
 Changes the id of element old_id, both by changing elem(old_id)->id() and by moving elem(old_id) in the mesh's internal container. More...
 
virtual void fix_broken_node_and_element_numbering () override
 There is no reason for a user to ever call this function. More...
 
virtual element_iterator elements_begin () override
 Elem iterator accessor functions. More...
 
virtual const_element_iterator elements_begin () const override
 
virtual element_iterator elements_end () override
 
virtual const_element_iterator elements_end () const override
 
virtual SimpleRange< element_iteratorelement_ptr_range () override
 
virtual SimpleRange< const_element_iteratorelement_ptr_range () const override
 
virtual element_iterator active_elements_begin () override
 Active, local, and negation forms of the element iterators described above. More...
 
virtual const_element_iterator active_elements_begin () const override
 
virtual element_iterator active_elements_end () override
 
virtual const_element_iterator active_elements_end () const override
 
virtual SimpleRange< element_iteratoractive_element_ptr_range () override
 
virtual SimpleRange< const_element_iteratoractive_element_ptr_range () const override
 
virtual element_iterator ancestor_elements_begin () override
 Iterate over elements for which elem->ancestor() is true. More...
 
virtual const_element_iterator ancestor_elements_begin () const override
 
virtual element_iterator ancestor_elements_end () override
 
virtual const_element_iterator ancestor_elements_end () const override
 
virtual element_iterator subactive_elements_begin () override
 Iterate over elements for which elem->subactive() is true. More...
 
virtual const_element_iterator subactive_elements_begin () const override
 
virtual element_iterator subactive_elements_end () override
 
virtual const_element_iterator subactive_elements_end () const override
 
virtual element_iterator not_active_elements_begin () override
 
virtual const_element_iterator not_active_elements_begin () const override
 
virtual element_iterator not_active_elements_end () override
 
virtual const_element_iterator not_active_elements_end () const override
 
virtual element_iterator not_ancestor_elements_begin () override
 
virtual const_element_iterator not_ancestor_elements_begin () const override
 
virtual element_iterator not_ancestor_elements_end () override
 
virtual const_element_iterator not_ancestor_elements_end () const override
 
virtual element_iterator not_subactive_elements_begin () override
 
virtual const_element_iterator not_subactive_elements_begin () const override
 
virtual element_iterator not_subactive_elements_end () override
 
virtual const_element_iterator not_subactive_elements_end () const override
 
virtual element_iterator local_elements_begin () override
 
virtual const_element_iterator local_elements_begin () const override
 
virtual element_iterator local_elements_end () override
 
virtual const_element_iterator local_elements_end () const override
 
virtual element_iterator semilocal_elements_begin () override
 Iterate over elements for which elem->is_semilocal() is true for the current processor. More...
 
virtual const_element_iterator semilocal_elements_begin () const override
 
virtual element_iterator semilocal_elements_end () override
 
virtual const_element_iterator semilocal_elements_end () const override
 
virtual element_iterator active_semilocal_elements_begin () override
 
virtual const_element_iterator active_semilocal_elements_begin () const override
 
virtual element_iterator active_semilocal_elements_end () override
 
virtual const_element_iterator active_semilocal_elements_end () const override
 
virtual element_iterator facelocal_elements_begin () override
 Iterate over elements which are on or have a neighbor on the current processor. More...
 
virtual const_element_iterator facelocal_elements_begin () const override
 
virtual element_iterator facelocal_elements_end () override
 
virtual const_element_iterator facelocal_elements_end () const override
 
virtual element_iterator not_local_elements_begin () override
 
virtual const_element_iterator not_local_elements_begin () const override
 
virtual element_iterator not_local_elements_end () override
 
virtual const_element_iterator not_local_elements_end () const override
 
virtual element_iterator active_local_elements_begin () override
 
virtual const_element_iterator active_local_elements_begin () const override
 
virtual element_iterator active_local_elements_end () override
 
virtual const_element_iterator active_local_elements_end () const override
 
virtual SimpleRange< element_iteratoractive_local_element_ptr_range () override
 
virtual SimpleRange< const_element_iteratoractive_local_element_ptr_range () const override
 
virtual element_iterator active_not_local_elements_begin () override
 
virtual const_element_iterator active_not_local_elements_begin () const override
 
virtual element_iterator active_not_local_elements_end () override
 
virtual const_element_iterator active_not_local_elements_end () const override
 
virtual element_iterator level_elements_begin (unsigned int level) override
 Iterate over elements of a given level. More...
 
virtual const_element_iterator level_elements_begin (unsigned int level) const override
 
virtual element_iterator level_elements_end (unsigned int level) override
 
virtual const_element_iterator level_elements_end (unsigned int level) const override
 
virtual element_iterator not_level_elements_begin (unsigned int level) override
 
virtual const_element_iterator not_level_elements_begin (unsigned int level) const override
 
virtual element_iterator not_level_elements_end (unsigned int level) override
 
virtual const_element_iterator not_level_elements_end (unsigned int level) const override
 
virtual element_iterator local_level_elements_begin (unsigned int level) override
 
virtual const_element_iterator local_level_elements_begin (unsigned int level) const override
 
virtual element_iterator local_level_elements_end (unsigned int level) override
 
virtual const_element_iterator local_level_elements_end (unsigned int level) const override
 
virtual element_iterator local_not_level_elements_begin (unsigned int level) override
 
virtual const_element_iterator local_not_level_elements_begin (unsigned int level) const override
 
virtual element_iterator local_not_level_elements_end (unsigned int level) override
 
virtual const_element_iterator local_not_level_elements_end (unsigned int level) const override
 
virtual element_iterator pid_elements_begin (processor_id_type proc_id) override
 Iterate over all elements with a specified processor id. More...
 
virtual const_element_iterator pid_elements_begin (processor_id_type proc_id) const override
 
virtual element_iterator pid_elements_end (processor_id_type proc_id) override
 
virtual const_element_iterator pid_elements_end (processor_id_type proc_id) const override
 
virtual element_iterator type_elements_begin (ElemType type) override
 Iterate over all elements with a specified geometric type. More...
 
virtual const_element_iterator type_elements_begin (ElemType type) const override
 
virtual element_iterator type_elements_end (ElemType type) override
 
virtual const_element_iterator type_elements_end (ElemType type) const override
 
virtual element_iterator active_type_elements_begin (ElemType type) override
 
virtual const_element_iterator active_type_elements_begin (ElemType type) const override
 
virtual element_iterator active_type_elements_end (ElemType type) override
 
virtual const_element_iterator active_type_elements_end (ElemType type) const override
 
virtual element_iterator active_pid_elements_begin (processor_id_type proc_id) override
 
virtual const_element_iterator active_pid_elements_begin (processor_id_type proc_id) const override
 
virtual element_iterator active_pid_elements_end (processor_id_type proc_id) override
 
virtual const_element_iterator active_pid_elements_end (processor_id_type proc_id) const override
 
virtual element_iterator unpartitioned_elements_begin () override
 Iterate over unpartitioned elements in the Mesh. More...
 
virtual const_element_iterator unpartitioned_elements_begin () const override
 
virtual element_iterator unpartitioned_elements_end () override
 
virtual const_element_iterator unpartitioned_elements_end () const override
 
virtual element_iterator active_unpartitioned_elements_begin () override
 Iterate over active unpartitioned elements in the Mesh. More...
 
virtual const_element_iterator active_unpartitioned_elements_begin () const override
 
virtual element_iterator active_unpartitioned_elements_end () override
 
virtual const_element_iterator active_unpartitioned_elements_end () const override
 
virtual element_iterator active_local_subdomain_elements_begin (subdomain_id_type subdomain_id) override
 
virtual const_element_iterator active_local_subdomain_elements_begin (subdomain_id_type subdomain_id) const override
 
virtual element_iterator active_local_subdomain_elements_end (subdomain_id_type subdomain_id) override
 
virtual const_element_iterator active_local_subdomain_elements_end (subdomain_id_type subdomain_id) const override
 
virtual element_iterator active_subdomain_elements_begin (subdomain_id_type subdomain_id) override
 
virtual const_element_iterator active_subdomain_elements_begin (subdomain_id_type subdomain_id) const override
 
virtual element_iterator active_subdomain_elements_end (subdomain_id_type subdomain_id) override
 
virtual const_element_iterator active_subdomain_elements_end (subdomain_id_type subdomain_id) const override
 
virtual element_iterator active_subdomain_set_elements_begin (std::set< subdomain_id_type > ss) override
 
virtual const_element_iterator active_subdomain_set_elements_begin (std::set< subdomain_id_type > ss) const override
 
virtual element_iterator active_subdomain_set_elements_end (std::set< subdomain_id_type > ss) override
 
virtual const_element_iterator active_subdomain_set_elements_end (std::set< subdomain_id_type > ss) const override
 
virtual element_iterator ghost_elements_begin () override
 Iterate over "ghost" elements in the Mesh. More...
 
virtual const_element_iterator ghost_elements_begin () const override
 
virtual element_iterator ghost_elements_end () override
 
virtual const_element_iterator ghost_elements_end () const override
 
virtual element_iterator evaluable_elements_begin (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) override
 Iterate over elements in the Mesh where the solution (as distributed by the given DofMap) can be evaluated, for the given variable var_num, or for all variables by default. More...
 
virtual const_element_iterator evaluable_elements_begin (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) const override
 
virtual element_iterator evaluable_elements_end (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) override
 
virtual const_element_iterator evaluable_elements_end (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) const override
 
virtual element_iterator flagged_elements_begin (unsigned char rflag) override
 Iterate over all elements with a specified refinement flag. More...
 
virtual const_element_iterator flagged_elements_begin (unsigned char rflag) const override
 
virtual element_iterator flagged_elements_end (unsigned char rflag) override
 
virtual const_element_iterator flagged_elements_end (unsigned char rflag) const override
 
virtual element_iterator flagged_pid_elements_begin (unsigned char rflag, processor_id_type pid) override
 Iterate over all elements with a specified refinement flag on a specified processor. More...
 
virtual const_element_iterator flagged_pid_elements_begin (unsigned char rflag, processor_id_type pid) const override
 
virtual element_iterator flagged_pid_elements_end (unsigned char rflag, processor_id_type pid) override
 
virtual const_element_iterator flagged_pid_elements_end (unsigned char rflag, processor_id_type pid) const override
 
virtual node_iterator nodes_begin () override
 Node iterator accessor functions. More...
 
virtual const_node_iterator nodes_begin () const override
 
virtual node_iterator nodes_end () override
 
virtual const_node_iterator nodes_end () const override
 
virtual SimpleRange< node_iteratornode_ptr_range () override
 
virtual SimpleRange< const_node_iteratornode_ptr_range () const override
 
virtual node_iterator active_nodes_begin () override
 Iterate over only the active nodes in the Mesh. More...
 
virtual const_node_iterator active_nodes_begin () const override
 
virtual node_iterator active_nodes_end () override
 
virtual const_node_iterator active_nodes_end () const override
 
virtual node_iterator local_nodes_begin () override
 Iterate over local nodes (nodes whose processor_id() matches the current processor). More...
 
virtual const_node_iterator local_nodes_begin () const override
 
virtual node_iterator local_nodes_end () override
 
virtual const_node_iterator local_nodes_end () const override
 
virtual SimpleRange< node_iteratorlocal_node_ptr_range () override
 
virtual SimpleRange< const_node_iteratorlocal_node_ptr_range () const override
 
virtual node_iterator pid_nodes_begin (processor_id_type proc_id) override
 Iterate over nodes with processor_id() == proc_id. More...
 
virtual const_node_iterator pid_nodes_begin (processor_id_type proc_id) const override
 
virtual node_iterator pid_nodes_end (processor_id_type proc_id) override
 
virtual const_node_iterator pid_nodes_end (processor_id_type proc_id) const override
 
virtual node_iterator bid_nodes_begin (boundary_id_type bndry_id) override
 Iterate over nodes for which BoundaryInfo::has_boundary_id(node, bndry_id) is true. More...
 
virtual const_node_iterator bid_nodes_begin (boundary_id_type bndry_id) const override
 
virtual node_iterator bid_nodes_end (boundary_id_type bndry_id) override
 
virtual const_node_iterator bid_nodes_end (boundary_id_type bndry_id) const override
 
virtual node_iterator bnd_nodes_begin () override
 Iterate over nodes for which BoundaryInfo::n_boundary_ids(node) > 0. More...
 
virtual const_node_iterator bnd_nodes_begin () const override
 
virtual node_iterator bnd_nodes_end () override
 
virtual const_node_iterator bnd_nodes_end () const override
 
virtual node_iterator evaluable_nodes_begin (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) override
 Iterate over nodes in the Mesh where the solution (as distributed by the given DofMap) can be evaluated, for the given variable var_num, or for all variables by default. More...
 
virtual const_node_iterator evaluable_nodes_begin (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) const override
 
virtual node_iterator evaluable_nodes_end (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) override
 
virtual const_node_iterator evaluable_nodes_end (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) const override
 
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. More...
 
virtual void write (const std::string &name) override
 Write the file specified by name. More...
 
void write (const std::string &name, const std::vector< Number > &values, const std::vector< std::string > &variable_names)
 Write to the file specified by name. More...
 
virtual void all_first_order () override
 Converts a mesh with higher-order elements into a mesh with linear elements. More...
 
virtual void all_second_order (const bool full_ordered=true) override
 Converts a (conforming, non-refined) mesh with linear elements into a mesh with second-order elements. More...
 
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. More...
 
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 and it_end and adding them to the new mesh. More...
 
virtual void copy_nodes_and_elements (const UnstructuredMesh &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)
 Deep copy of another unstructured mesh class (used by subclass copy constructors) More...
 
virtual void find_neighbors (const bool reset_remote_elements=false, const bool reset_current_list=true) override
 Other functions from MeshBase requiring re-definition. More...
 
virtual bool contract () override
 Delete subactive (i.e. More...
 
virtual std::unique_ptr< Partitioner > & partitioner ()
 A partitioner to use at each prepare_for_use() More...
 
const BoundaryInfoget_boundary_info () const
 The information about boundary ids on the mesh. More...
 
BoundaryInfoget_boundary_info ()
 Writable information about boundary ids on the mesh. More...
 
bool is_prepared () const
 
unsigned int mesh_dimension () const
 
void set_mesh_dimension (unsigned char d)
 Resets the logical dimension of the mesh. More...
 
const std::set< unsigned char > & elem_dimensions () const
 
unsigned int spatial_dimension () const
 
void set_spatial_dimension (unsigned char d)
 Sets the "spatial dimension" of the Mesh. More...
 
dof_id_type n_nodes_on_proc (const processor_id_type proc) const
 
dof_id_type n_local_nodes () const
 
dof_id_type n_unpartitioned_nodes () const
 
unique_id_type next_unique_id ()
 
void set_next_unique_id (unique_id_type id)
 Sets the next unique id to be used. More...
 
dof_id_type n_elem_on_proc (const processor_id_type proc) const
 
dof_id_type n_local_elem () const
 
dof_id_type n_unpartitioned_elem () const
 
dof_id_type n_active_elem_on_proc (const processor_id_type proc) const
 
dof_id_type n_active_local_elem () const
 
dof_id_type n_sub_elem () const
 
dof_id_type n_active_sub_elem () const
 Same as n_sub_elem(), but only counts active elements. More...
 
virtual const Nodenode_ref (const dof_id_type i) const
 
virtual Nodenode_ref (const dof_id_type i)
 
virtual const Nodenode (const dof_id_type i) const
 
virtual Nodenode (const dof_id_type i)
 
virtual const Elemelem_ref (const dof_id_type i) const
 
virtual Elemelem_ref (const dof_id_type i)
 
virtual const Elemelem (const dof_id_type i) const
 
virtual Elemelem (const dof_id_type i)
 
virtual const Elemquery_elem (const dof_id_type i) const
 
virtual Elemquery_elem (const dof_id_type i)
 
void prepare_for_use (const bool skip_renumber_nodes_and_elements=false, const bool skip_find_neighbors=false)
 Prepare a newly created (or read) mesh for use. More...
 
virtual void partition (const unsigned int n_parts)
 Call the default partitioner (currently metis_partition()). More...
 
void partition ()
 
void allow_renumbering (bool allow)
 If false is passed in then this mesh will no longer be renumbered when being prepared for use. More...
 
bool allow_renumbering () const
 
void allow_remote_element_removal (bool allow)
 If false is passed in then this mesh will no longer have remote elements deleted when being prepared for use; i.e. More...
 
bool allow_remote_element_removal () const
 
void skip_partitioning (bool skip)
 If true is passed in then this mesh will no longer be (re)partitioned. More...
 
bool skip_partitioning () const
 
void add_ghosting_functor (GhostingFunctor &ghosting_functor)
 Adds a functor which can specify ghosting requirements for use on distributed meshes. More...
 
void remove_ghosting_functor (GhostingFunctor &ghosting_functor)
 Removes a functor which was previously added to the set of ghosting functors. More...
 
std::set< GhostingFunctor * >::const_iterator ghosting_functors_begin () const
 Beginning of range of ghosting functors. More...
 
std::set< GhostingFunctor * >::const_iterator ghosting_functors_end () const
 End of range of ghosting functors. More...
 
GhostingFunctordefault_ghosting ()
 Default ghosting functor. More...
 
void subdomain_ids (std::set< subdomain_id_type > &ids) const
 Constructs a list of all subdomain identifiers in the global mesh. More...
 
subdomain_id_type n_subdomains () const
 
unsigned int n_partitions () const
 
std::string get_info () const
 
void print_info (std::ostream &os=libMesh::out) const
 Prints relevant information about the mesh. More...
 
unsigned int recalculate_n_partitions ()
 In a few (very rare) cases, the user may have manually tagged the elements with specific processor IDs by hand, without using a partitioner. More...
 
const PointLocatorBasepoint_locator () const
 
std::unique_ptr< PointLocatorBasesub_point_locator () const
 
void clear_point_locator ()
 Releases the current PointLocator object. More...
 
void set_count_lower_dim_elems_in_point_locator (bool count_lower_dim_elems)
 In the point locator, do we count lower dimensional elements when we refine point locator regions? This is relevant in tree-based point locators, for example. More...
 
bool get_count_lower_dim_elems_in_point_locator () const
 Get the current value of _count_lower_dim_elems_in_point_locator. More...
 
std::string & subdomain_name (subdomain_id_type id)
 
const std::string & subdomain_name (subdomain_id_type id) const
 
subdomain_id_type get_id_by_name (const std::string &name) const
 
std::map< subdomain_id_type, std::string > & set_subdomain_name_map ()
 
const std::map< subdomain_id_type, std::string > & get_subdomain_name_map () const
 
void cache_elem_dims ()
 Search the mesh and cache the different dimensions of the elements present in the mesh. More...
 
void detect_interior_parents ()
 Search the mesh for elements that have a neighboring element of dim+1 and set that element as the interior parent. More...
 
const Parallel::Communicatorcomm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Public Attributes

std::unique_ptr< BoundaryInfoboundary_info
 This class holds the boundary information. More...
 

Protected Member Functions

unsigned int & set_n_partitions ()
 

Protected Attributes

mapvector< Node *, dof_id_type_nodes
 The vertices (spatial coordinates) of the mesh. More...
 
mapvector< Elem *, dof_id_type_elements
 The elements in the mesh. More...
 
bool _is_serial
 A boolean remembering whether we're serialized or not. More...
 
bool _is_serial_on_proc_0
 A boolean remembering whether we're serialized to proc 0 or not. More...
 
dof_id_type _n_nodes
 Cached data from the last renumber_nodes_and_elements call. More...
 
dof_id_type _n_elem
 
dof_id_type _max_node_id
 
dof_id_type _max_elem_id
 
dof_id_type _next_free_local_node_id
 Guaranteed globally unused IDs for use when adding new nodes or elements. More...
 
dof_id_type _next_free_local_elem_id
 
dof_id_type _next_free_unpartitioned_node_id
 
dof_id_type _next_free_unpartitioned_elem_id
 
unique_id_type _next_unpartitioned_unique_id
 The next available unique id for assigning ids to unpartitioned DOF objects. More...
 
std::set< Elem * > _extra_ghost_elems
 These are extra ghost elements that we want to make sure not to delete when we call delete_remote_elements() More...
 
unsigned int _n_parts
 The number of partitions the mesh has. More...
 
bool _is_prepared
 Flag indicating if the mesh has been prepared for use. More...
 
std::unique_ptr< PointLocatorBase_point_locator
 A PointLocator class for this mesh. More...
 
bool _count_lower_dim_elems_in_point_locator
 Do we count lower dimensional elements in point locator refinement? This is relevant in tree-based point locators, for example. More...
 
std::unique_ptr< Partitioner_partitioner
 A partitioner to use at each prepare_for_use(). More...
 
unique_id_type _next_unique_id
 The next available unique id for assigning ids to DOF objects. More...
 
bool _skip_partitioning
 If this is true then no partitioning should be done. More...
 
bool _skip_renumber_nodes_and_elements
 If this is true then renumbering will be kept to a minimum. More...
 
bool _allow_remote_element_removal
 If this is false then even on DistributedMesh remote elements will not be deleted during mesh preparation. More...
 
std::map< subdomain_id_type, std::string > _block_id_to_name
 This structure maintains the mapping of named blocks for file formats that support named blocks. More...
 
std::set< unsigned char > _elem_dims
 We cache the dimension of the elements present in the mesh. More...
 
unsigned char _spatial_dimension
 The "spatial dimension" of the Mesh. More...
 
std::unique_ptr< GhostingFunctor_default_ghosting
 The default geometric GhostingFunctor, used to implement standard libMesh element ghosting behavior. More...
 
std::set< GhostingFunctor * > _ghosting_functors
 The list of all GhostingFunctor objects to be used when distributing a DistributedMesh. More...
 
const Parallel::Communicator_communicator
 

Detailed Description

Definition at line 34 of file parallel_mesh.h.

Member Typedef Documentation

◆ Predicate

We need an empty, generic class to act as a predicate for this and derived mesh classes.

Definition at line 931 of file mesh_base.h.

Constructor & Destructor Documentation

◆ ParallelMesh() [1/2]

libMesh::ParallelMesh::ParallelMesh ( const Parallel::Communicator comm_in,
unsigned char  dim = 1 
)
explicit

Definition at line 38 of file parallel_mesh.h.

40  : DistributedMesh(comm_in,dim) {}
DistributedMesh(const Parallel::Communicator &comm_in, unsigned char dim=1)
Constructor.

◆ ParallelMesh() [2/2]

libMesh::ParallelMesh::ParallelMesh ( const UnstructuredMesh other_mesh)

Definition at line 42 of file parallel_mesh.h.

42 : DistributedMesh(other_mesh) {}
DistributedMesh(const Parallel::Communicator &comm_in, unsigned char dim=1)
Constructor.

◆ ~ParallelMesh()

libMesh::ParallelMesh::~ParallelMesh ( )

Definition at line 47 of file parallel_mesh.h.

47 {}

Member Function Documentation

◆ active_element_ptr_range() [1/2]

virtual SimpleRange<element_iterator> libMesh::DistributedMesh::active_element_ptr_range ( )
overridevirtualinherited

Implements libMesh::MeshBase.

Definition at line 305 of file distributed_mesh.h.

References libMesh::DistributedMesh::active_elements_begin(), and libMesh::DistributedMesh::active_elements_end().

virtual element_iterator active_elements_begin() override
Active, local, and negation forms of the element iterators described above.
virtual element_iterator active_elements_end() override

◆ active_element_ptr_range() [2/2]

virtual SimpleRange<const_element_iterator> libMesh::DistributedMesh::active_element_ptr_range ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

Definition at line 306 of file distributed_mesh.h.

References libMesh::DistributedMesh::active_elements_begin(), and libMesh::DistributedMesh::active_elements_end().

virtual element_iterator active_elements_begin() override
Active, local, and negation forms of the element iterators described above.
virtual element_iterator active_elements_end() override

◆ active_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_elements_begin ( )
overridevirtualinherited

Active, local, and negation forms of the element iterators described above.

An "active" element is an element without children (i.e. has not been refined). A "local" element is one whose processor_id() matches the current processor.

Implements libMesh::MeshBase.

Referenced by libMesh::DistributedMesh::active_element_ptr_range().

◆ active_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_elements_end ( )
overridevirtualinherited

◆ active_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_local_element_ptr_range() [1/2]

virtual SimpleRange<element_iterator> libMesh::DistributedMesh::active_local_element_ptr_range ( )
overridevirtualinherited

Implements libMesh::MeshBase.

Definition at line 362 of file distributed_mesh.h.

References libMesh::DistributedMesh::active_local_elements_begin(), and libMesh::DistributedMesh::active_local_elements_end().

Referenced by FETest< order, family, elem_type >::setUp().

virtual element_iterator active_local_elements_end() override
virtual element_iterator active_local_elements_begin() override

◆ active_local_element_ptr_range() [2/2]

virtual SimpleRange<const_element_iterator> libMesh::DistributedMesh::active_local_element_ptr_range ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

Definition at line 363 of file distributed_mesh.h.

References libMesh::DistributedMesh::active_local_elements_begin(), and libMesh::DistributedMesh::active_local_elements_end().

virtual element_iterator active_local_elements_end() override
virtual element_iterator active_local_elements_begin() override

◆ active_local_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_local_elements_begin ( )
overridevirtualinherited

◆ active_local_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_local_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_local_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_local_elements_end ( )
overridevirtualinherited

◆ active_local_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_local_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_local_subdomain_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_local_subdomain_elements_begin ( subdomain_id_type  subdomain_id)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_local_subdomain_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_local_subdomain_elements_begin ( subdomain_id_type  subdomain_id) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_local_subdomain_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_local_subdomain_elements_end ( subdomain_id_type  subdomain_id)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_local_subdomain_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_local_subdomain_elements_end ( subdomain_id_type  subdomain_id) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_nodes_begin() [1/2]

virtual node_iterator libMesh::DistributedMesh::active_nodes_begin ( )
overridevirtualinherited

Iterate over only the active nodes in the Mesh.

Implements libMesh::MeshBase.

◆ active_nodes_begin() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::active_nodes_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_nodes_end() [1/2]

virtual node_iterator libMesh::DistributedMesh::active_nodes_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_nodes_end() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::active_nodes_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_not_local_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_not_local_elements_begin ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_not_local_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_not_local_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_not_local_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_not_local_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_not_local_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_not_local_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_pid_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_pid_elements_begin ( processor_id_type  proc_id)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_pid_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_pid_elements_begin ( processor_id_type  proc_id) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_pid_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_pid_elements_end ( processor_id_type  proc_id)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_pid_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_pid_elements_end ( processor_id_type  proc_id) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_semilocal_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_semilocal_elements_begin ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_semilocal_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_semilocal_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_semilocal_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_semilocal_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_semilocal_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_semilocal_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_subdomain_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_subdomain_elements_begin ( subdomain_id_type  subdomain_id)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_subdomain_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_subdomain_elements_begin ( subdomain_id_type  subdomain_id) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_subdomain_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_subdomain_elements_end ( subdomain_id_type  subdomain_id)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_subdomain_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_subdomain_elements_end ( subdomain_id_type  subdomain_id) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_subdomain_set_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_subdomain_set_elements_begin ( std::set< subdomain_id_type ss)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_subdomain_set_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_subdomain_set_elements_begin ( std::set< subdomain_id_type ss) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_subdomain_set_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_subdomain_set_elements_end ( std::set< subdomain_id_type ss)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_subdomain_set_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_subdomain_set_elements_end ( std::set< subdomain_id_type ss) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_type_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_type_elements_begin ( ElemType  type)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_type_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_type_elements_begin ( ElemType  type) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_type_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_type_elements_end ( ElemType  type)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_type_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_type_elements_end ( ElemType  type) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_unpartitioned_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_unpartitioned_elements_begin ( )
overridevirtualinherited

Iterate over active unpartitioned elements in the Mesh.

Implements libMesh::MeshBase.

◆ active_unpartitioned_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_unpartitioned_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_unpartitioned_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::active_unpartitioned_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ active_unpartitioned_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::active_unpartitioned_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ add_elem()

virtual Elem* libMesh::DistributedMesh::add_elem ( Elem e)
overridevirtualinherited

Add elem e to the end of the element array.

To add an element locally, set e->processor_id() before adding it. To ensure a specific element id, call e->set_id() before adding it; only do this in parallel if you are manually keeping ids consistent.

Users should call MeshBase::prepare_for_use() after elements are added to and/or deleted from the mesh.

Implements libMesh::MeshBase.

◆ add_extra_ghost_elem()

virtual void libMesh::DistributedMesh::add_extra_ghost_elem ( Elem e)
virtualinherited

Inserts the element and adds it to a list of elements that should not get deleted or have their descendants deleted by delete_remote_elements.

This is handy for inserting otherwise off-processor elements that you want to keep track of on this processor.

◆ add_ghosting_functor()

void libMesh::MeshBase::add_ghosting_functor ( GhostingFunctor ghosting_functor)
inherited

Adds a functor which can specify ghosting requirements for use on distributed meshes.

Multiple ghosting functors can be added; any element which is required by any functor will be ghosted.

GhostingFunctor memory must be managed by the code which calls this function; the GhostingFunctor lifetime is expected to extend until either the functor is removed or the Mesh is destructed.

Definition at line 823 of file mesh_base.h.

References libMesh::MeshBase::_ghosting_functors.

824  { _ghosting_functors.insert(&ghosting_functor); }
std::set< GhostingFunctor * > _ghosting_functors
The list of all GhostingFunctor objects to be used when distributing a DistributedMesh.
Definition: mesh_base.h:1475

◆ add_node()

virtual Node* libMesh::DistributedMesh::add_node ( Node n)
overridevirtualinherited

Add Node n to the end of the vertex array.

Implements libMesh::MeshBase.

◆ add_point()

virtual Node* libMesh::DistributedMesh::add_point ( const Point p,
const dof_id_type  id = DofObject::invalid_id,
const processor_id_type  proc_id = DofObject::invalid_processor_id 
)
overridevirtualinherited

functions for adding /deleting nodes elements.

Implements libMesh::MeshBase.

◆ all_first_order()

virtual void libMesh::UnstructuredMesh::all_first_order ( )
overridevirtualinherited

Converts a mesh with higher-order elements into a mesh with linear elements.

For example, a mesh consisting of Tet10 will be converted to a mesh with Tet4 etc.

Implements libMesh::MeshBase.

◆ all_second_order()

virtual void libMesh::UnstructuredMesh::all_second_order ( const bool  full_ordered = true)
overridevirtualinherited

Converts a (conforming, non-refined) mesh with linear elements into a mesh with second-order elements.

For example, a mesh consisting of Tet4 will be converted to a mesh with Tet10 etc.

Note
For some elements like Hex8 there exist two higher order equivalents, Hex20 and Hex27. When full_ordered is true (default), then Hex27 is built. Otherwise, Hex20 is built. The same holds obviously for Quad4, Prism6, etc.

Implements libMesh::MeshBase.

◆ allgather()

virtual void libMesh::DistributedMesh::allgather ( )
overridevirtualinherited

Gathers all elements and nodes of the mesh onto every processor.

Reimplemented from libMesh::MeshBase.

◆ allow_remote_element_removal() [1/2]

void libMesh::MeshBase::allow_remote_element_removal ( bool  allow)
inherited

If false is passed in then this mesh will no longer have remote elements deleted when being prepared for use; i.e.

even a DistributedMesh will remain (if it is already) serialized. This may adversely affect performance and memory use.

Definition at line 791 of file mesh_base.h.

References libMesh::MeshBase::_allow_remote_element_removal.

bool _allow_remote_element_removal
If this is false then even on DistributedMesh remote elements will not be deleted during mesh prepara...
Definition: mesh_base.h:1439

◆ allow_remote_element_removal() [2/2]

bool libMesh::MeshBase::allow_remote_element_removal ( ) const
inherited

Definition at line 792 of file mesh_base.h.

References libMesh::MeshBase::_allow_remote_element_removal.

bool _allow_remote_element_removal
If this is false then even on DistributedMesh remote elements will not be deleted during mesh prepara...
Definition: mesh_base.h:1439

◆ allow_renumbering() [1/2]

void libMesh::MeshBase::allow_renumbering ( bool  allow)
inherited

If false is passed in then this mesh will no longer be renumbered when being prepared for use.

This may slightly adversely affect performance during subsequent element access, particularly when using a distributed mesh.

Important! When allow_renumbering(false) is set, ReplicatedMesh::n_elem() and ReplicatedMesh::n_nodes() will return wrong values whenever adaptive refinement is followed by adaptive coarsening. (Uniform refinement followed by uniform coarsening is OK.) This is due to the fact that n_elem() and n_nodes() are currently O(1) functions that just return the size of the respective underlying vectors, and this size is wrong when the numbering includes "gaps" from nodes and elements that have been deleted. We plan to implement a caching mechanism in the near future that will fix this incorrect behavior.

Definition at line 782 of file mesh_base.h.

References libMesh::MeshBase::_skip_renumber_nodes_and_elements.

bool _skip_renumber_nodes_and_elements
If this is true then renumbering will be kept to a minimum.
Definition: mesh_base.h:1431

◆ allow_renumbering() [2/2]

bool libMesh::MeshBase::allow_renumbering ( ) const
inherited

Definition at line 783 of file mesh_base.h.

References libMesh::MeshBase::_skip_renumber_nodes_and_elements.

bool _skip_renumber_nodes_and_elements
If this is true then renumbering will be kept to a minimum.
Definition: mesh_base.h:1431

◆ ancestor_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::ancestor_elements_begin ( )
overridevirtualinherited

Iterate over elements for which elem->ancestor() is true.

Implements libMesh::MeshBase.

◆ ancestor_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::ancestor_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ ancestor_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::ancestor_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ ancestor_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::ancestor_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ bid_nodes_begin() [1/2]

virtual node_iterator libMesh::DistributedMesh::bid_nodes_begin ( boundary_id_type  bndry_id)
overridevirtualinherited

Iterate over nodes for which BoundaryInfo::has_boundary_id(node, bndry_id) is true.

Implements libMesh::MeshBase.

◆ bid_nodes_begin() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::bid_nodes_begin ( boundary_id_type  bndry_id) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ bid_nodes_end() [1/2]

virtual node_iterator libMesh::DistributedMesh::bid_nodes_end ( boundary_id_type  bndry_id)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ bid_nodes_end() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::bid_nodes_end ( boundary_id_type  bndry_id) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ bnd_nodes_begin() [1/2]

virtual node_iterator libMesh::DistributedMesh::bnd_nodes_begin ( )
overridevirtualinherited

Iterate over nodes for which BoundaryInfo::n_boundary_ids(node) > 0.

Implements libMesh::MeshBase.

◆ bnd_nodes_begin() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::bnd_nodes_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ bnd_nodes_end() [1/2]

virtual node_iterator libMesh::DistributedMesh::bnd_nodes_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ bnd_nodes_end() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::bnd_nodes_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ cache_elem_dims()

void libMesh::MeshBase::cache_elem_dims ( )
inherited

Search the mesh and cache the different dimensions of the elements present in the mesh.

This is done in prepare_for_use(), but can be done manually by other classes after major mesh modifications.

◆ clear()

virtual void libMesh::DistributedMesh::clear ( )
overridevirtualinherited

Clear all internal data.

Reimplemented from libMesh::MeshBase.

◆ clear_extra_ghost_elems()

virtual void libMesh::DistributedMesh::clear_extra_ghost_elems ( )
virtualinherited

Clears extra ghost elements.

Definition at line 216 of file distributed_mesh.h.

References libMesh::DistributedMesh::_extra_ghost_elems.

216 { _extra_ghost_elems.clear(); }
std::set< Elem * > _extra_ghost_elems
These are extra ghost elements that we want to make sure not to delete when we call delete_remote_ele...

◆ clear_point_locator()

void libMesh::MeshBase::clear_point_locator ( )
inherited

Releases the current PointLocator object.

◆ clone()

virtual std::unique_ptr<MeshBase> libMesh::ParallelMesh::clone ( ) const
overridevirtual

Virtual copy-constructor, creates a copy of this mesh.

Reimplemented from libMesh::DistributedMesh.

Definition at line 44 of file parallel_mesh.h.

45  { return libmesh_make_unique<ParallelMesh>(*this); }

◆ comm()

const Parallel::Communicator& libMesh::ParallelObject::comm ( ) const
inherited

◆ contract()

virtual bool libMesh::UnstructuredMesh::contract ( )
overridevirtualinherited

Delete subactive (i.e.

children of coarsened) elements. This removes all elements descended from currently active elements in the mesh.

Implements libMesh::MeshBase.

◆ copy_nodes_and_elements()

virtual void libMesh::UnstructuredMesh::copy_nodes_and_elements ( const UnstructuredMesh 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 
)
virtualinherited

Deep copy of another unstructured mesh class (used by subclass copy constructors)

◆ create_pid_mesh()

void libMesh::UnstructuredMesh::create_pid_mesh ( UnstructuredMesh pid_mesh,
const processor_id_type  pid 
) const
inherited

Generates a new mesh containing all the elements which are assigned to processor pid.

This mesh is written to the pid_mesh reference which you must create and pass to the function.

◆ create_submesh()

void libMesh::UnstructuredMesh::create_submesh ( UnstructuredMesh new_mesh,
const const_element_iterator it,
const const_element_iterator it_end 
) const
inherited

Constructs a mesh called "new_mesh" from the current mesh by iterating over the elements between it and it_end and adding them to the new mesh.

◆ default_ghosting()

GhostingFunctor& libMesh::MeshBase::default_ghosting ( )
inherited

Default ghosting functor.

Definition at line 847 of file mesh_base.h.

References libMesh::MeshBase::_default_ghosting.

847 { return *_default_ghosting; }
std::unique_ptr< GhostingFunctor > _default_ghosting
The default geometric GhostingFunctor, used to implement standard libMesh element ghosting behavior...
Definition: mesh_base.h:1466

◆ delete_elem()

virtual void libMesh::DistributedMesh::delete_elem ( Elem e)
overridevirtualinherited

Removes element e from the mesh.

This method must be implemented in derived classes in such a way that it does not invalidate element iterators. Users should call MeshBase::prepare_for_use() after elements are added to and/or deleted from the mesh.

Note
Calling this method may produce isolated nodes, i.e. nodes not connected to any element.

Implements libMesh::MeshBase.

◆ delete_node()

virtual void libMesh::DistributedMesh::delete_node ( Node n)
overridevirtualinherited

Removes the Node n from the mesh.

Implements libMesh::MeshBase.

◆ delete_remote_elements()

virtual void libMesh::DistributedMesh::delete_remote_elements ( )
overridevirtualinherited

Deletes all nonlocal elements of the mesh except for "ghosts" which touch a local element, and deletes all nodes which are not part of a local or ghost element.

Reimplemented from libMesh::MeshBase.

◆ detect_interior_parents()

void libMesh::MeshBase::detect_interior_parents ( )
inherited

Search the mesh for elements that have a neighboring element of dim+1 and set that element as the interior parent.

◆ elem() [1/2]

virtual const Elem* libMesh::MeshBase::elem ( const dof_id_type  i) const
virtualinherited
Returns
A pointer to the $ i^{th} $ element, which should be present in this processor's subset of the mesh data structure.
Deprecated:
Use the less confusingly-named elem_ptr() instead.

Definition at line 537 of file mesh_base.h.

References libMesh::MeshBase::elem_ptr().

538  {
539  libmesh_deprecated();
540  return this->elem_ptr(i);
541  }
virtual const Elem * elem_ptr(const dof_id_type i) const =0

◆ elem() [2/2]

virtual Elem* libMesh::MeshBase::elem ( const dof_id_type  i)
virtualinherited
Returns
A writable pointer to the $ i^{th} $ element, which should be present in this processor's subset of the mesh data structure.
Deprecated:
Use the less confusingly-named elem_ptr() instead.

Definition at line 552 of file mesh_base.h.

References libMesh::MeshBase::elem_ptr().

553  {
554  libmesh_deprecated();
555  return this->elem_ptr(i);
556  }
virtual const Elem * elem_ptr(const dof_id_type i) const =0

◆ elem_dimensions()

const std::set<unsigned char>& libMesh::MeshBase::elem_dimensions ( ) const
inherited
Returns
A const reference to a std::set of element dimensions present in the mesh.

Definition at line 220 of file mesh_base.h.

References libMesh::MeshBase::_elem_dims.

221  { return _elem_dims; }
std::set< unsigned char > _elem_dims
We cache the dimension of the elements present in the mesh.
Definition: mesh_base.h:1453

◆ elem_ptr() [1/2]

virtual const Elem* libMesh::DistributedMesh::elem_ptr ( const dof_id_type  i) const
overridevirtualinherited
Returns
A pointer to the $ i^{th} $ element, which should be present in this processor's subset of the mesh data structure.

Implements libMesh::MeshBase.

◆ elem_ptr() [2/2]

virtual Elem* libMesh::DistributedMesh::elem_ptr ( const dof_id_type  i)
overridevirtualinherited
Returns
A writable pointer to the $ i^{th} $ element, which should be present in this processor's subset of the mesh data structure.

Implements libMesh::MeshBase.

◆ elem_ref() [1/2]

virtual const Elem& libMesh::MeshBase::elem_ref ( const dof_id_type  i) const
virtualinherited
Returns
A reference to the $ i^{th} $ element, which should be present in this processor's subset of the mesh data structure.

Definition at line 504 of file mesh_base.h.

References libMesh::MeshBase::elem_ptr().

Referenced by libMesh::SyncRefinementFlags::act_on_data(), libMesh::SyncRefinementFlags::gather_data(), libMesh::Parallel::sync_element_data_by_parent_id(), and libMesh::Parallel::sync_node_data_by_element_id_once().

504  {
505  return *this->elem_ptr(i);
506  }
virtual const Elem * elem_ptr(const dof_id_type i) const =0

◆ elem_ref() [2/2]

virtual Elem& libMesh::MeshBase::elem_ref ( const dof_id_type  i)
virtualinherited
Returns
A writable reference to the $ i^{th} $ element, which should be present in this processor's subset of the mesh data structure.

Definition at line 513 of file mesh_base.h.

References libMesh::MeshBase::elem_ptr().

513  {
514  return *this->elem_ptr(i);
515  }
virtual const Elem * elem_ptr(const dof_id_type i) const =0

◆ element_ptr_range() [1/2]

virtual SimpleRange<element_iterator> libMesh::DistributedMesh::element_ptr_range ( )
overridevirtualinherited

Implements libMesh::MeshBase.

Definition at line 298 of file distributed_mesh.h.

References libMesh::DistributedMesh::elements_begin(), and libMesh::DistributedMesh::elements_end().

298 { return {elements_begin(), elements_end()}; }
virtual element_iterator elements_end() override
virtual element_iterator elements_begin() override
Elem iterator accessor functions.

◆ element_ptr_range() [2/2]

virtual SimpleRange<const_element_iterator> libMesh::DistributedMesh::element_ptr_range ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

Definition at line 299 of file distributed_mesh.h.

References libMesh::DistributedMesh::elements_begin(), and libMesh::DistributedMesh::elements_end().

299 { return {elements_begin(), elements_end()}; }
virtual element_iterator elements_end() override
virtual element_iterator elements_begin() override
Elem iterator accessor functions.

◆ elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::elements_begin ( )
overridevirtualinherited

Elem iterator accessor functions.

Implements libMesh::MeshBase.

Referenced by libMesh::DistributedMesh::element_ptr_range().

◆ elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::elements_end ( )
overridevirtualinherited

◆ elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ evaluable_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::evaluable_elements_begin ( const DofMap dof_map,
unsigned int  var_num = libMesh::invalid_uint 
)
overridevirtualinherited

Iterate over elements in the Mesh where the solution (as distributed by the given DofMap) can be evaluated, for the given variable var_num, or for all variables by default.

Implements libMesh::MeshBase.

◆ evaluable_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::evaluable_elements_begin ( const DofMap dof_map,
unsigned int  var_num = libMesh::invalid_uint 
) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ evaluable_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::evaluable_elements_end ( const DofMap dof_map,
unsigned int  var_num = libMesh::invalid_uint 
)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ evaluable_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::evaluable_elements_end ( const DofMap dof_map,
unsigned int  var_num = libMesh::invalid_uint 
) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ evaluable_nodes_begin() [1/2]

virtual node_iterator libMesh::DistributedMesh::evaluable_nodes_begin ( const DofMap dof_map,
unsigned int  var_num = libMesh::invalid_uint 
)
overridevirtualinherited

Iterate over nodes in the Mesh where the solution (as distributed by the given DofMap) can be evaluated, for the given variable var_num, or for all variables by default.

Implements libMesh::MeshBase.

◆ evaluable_nodes_begin() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::evaluable_nodes_begin ( const DofMap dof_map,
unsigned int  var_num = libMesh::invalid_uint 
) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ evaluable_nodes_end() [1/2]

virtual node_iterator libMesh::DistributedMesh::evaluable_nodes_end ( const DofMap dof_map,
unsigned int  var_num = libMesh::invalid_uint 
)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ evaluable_nodes_end() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::evaluable_nodes_end ( const DofMap dof_map,
unsigned int  var_num = libMesh::invalid_uint 
) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ facelocal_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::facelocal_elements_begin ( )
overridevirtualinherited

Iterate over elements which are on or have a neighbor on the current processor.

Implements libMesh::MeshBase.

◆ facelocal_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::facelocal_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ facelocal_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::facelocal_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ facelocal_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::facelocal_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ find_neighbors()

virtual void libMesh::UnstructuredMesh::find_neighbors ( const bool  reset_remote_elements = false,
const bool  reset_current_list = true 
)
overridevirtualinherited

Other functions from MeshBase requiring re-definition.

Implements libMesh::MeshBase.

◆ fix_broken_node_and_element_numbering()

virtual void libMesh::DistributedMesh::fix_broken_node_and_element_numbering ( )
overridevirtualinherited

There is no reason for a user to ever call this function.

This function restores a previously broken element/node numbering such that mesh.node_ref(n).id() == n.

Implements libMesh::MeshBase.

◆ flagged_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::flagged_elements_begin ( unsigned char  rflag)
overridevirtualinherited

Iterate over all elements with a specified refinement flag.

Implements libMesh::MeshBase.

◆ flagged_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::flagged_elements_begin ( unsigned char  rflag) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ flagged_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::flagged_elements_end ( unsigned char  rflag)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ flagged_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::flagged_elements_end ( unsigned char  rflag) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ flagged_pid_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::flagged_pid_elements_begin ( unsigned char  rflag,
processor_id_type  pid 
)
overridevirtualinherited

Iterate over all elements with a specified refinement flag on a specified processor.

Implements libMesh::MeshBase.

◆ flagged_pid_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::flagged_pid_elements_begin ( unsigned char  rflag,
processor_id_type  pid 
) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ flagged_pid_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::flagged_pid_elements_end ( unsigned char  rflag,
processor_id_type  pid 
)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ flagged_pid_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::flagged_pid_elements_end ( unsigned char  rflag,
processor_id_type  pid 
) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ gather_to_zero()

virtual void libMesh::DistributedMesh::gather_to_zero ( )
overridevirtualinherited

Gathers all elements and nodes of the mesh onto processor zero.

Reimplemented from libMesh::MeshBase.

◆ get_boundary_info() [1/2]

const BoundaryInfo& libMesh::MeshBase::get_boundary_info ( ) const
inherited

The information about boundary ids on the mesh.

Definition at line 131 of file mesh_base.h.

References libMesh::MeshBase::boundary_info.

Referenced by AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), and AssemblyA2::boundary_assembly().

131 { return *boundary_info; }
std::unique_ptr< BoundaryInfo > boundary_info
This class holds the boundary information.
Definition: mesh_base.h:1363

◆ get_boundary_info() [2/2]

BoundaryInfo& libMesh::MeshBase::get_boundary_info ( )
inherited

Writable information about boundary ids on the mesh.

Definition at line 136 of file mesh_base.h.

References libMesh::MeshBase::boundary_info.

136 { return *boundary_info; }
std::unique_ptr< BoundaryInfo > boundary_info
This class holds the boundary information.
Definition: mesh_base.h:1363

◆ get_count_lower_dim_elems_in_point_locator()

bool libMesh::MeshBase::get_count_lower_dim_elems_in_point_locator ( ) const
inherited

Get the current value of _count_lower_dim_elems_in_point_locator.

◆ get_id_by_name()

subdomain_id_type libMesh::MeshBase::get_id_by_name ( const std::string &  name) const
inherited
Returns
The id of the named subdomain if it exists, Elem::invalid_subdomain_id otherwise.

◆ get_info()

std::string libMesh::MeshBase::get_info ( ) const
inherited
Returns
A string containing relevant information about the mesh.

◆ get_subdomain_name_map()

const std::map<subdomain_id_type, std::string>& libMesh::MeshBase::get_subdomain_name_map ( ) const
inherited

Definition at line 1337 of file mesh_base.h.

References libMesh::MeshBase::_block_id_to_name.

1338  { return _block_id_to_name; }
std::map< subdomain_id_type, std::string > _block_id_to_name
This structure maintains the mapping of named blocks for file formats that support named blocks...
Definition: mesh_base.h:1446

◆ ghost_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::ghost_elements_begin ( )
overridevirtualinherited

Iterate over "ghost" elements in the Mesh.

A ghost element is one which is not local, but is semilocal.

Implements libMesh::MeshBase.

◆ ghost_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::ghost_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ ghost_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::ghost_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ ghost_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::ghost_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ ghosting_functors_begin()

std::set<GhostingFunctor *>::const_iterator libMesh::MeshBase::ghosting_functors_begin ( ) const
inherited

Beginning of range of ghosting functors.

Definition at line 835 of file mesh_base.h.

References libMesh::MeshBase::_ghosting_functors.

836  { return _ghosting_functors.begin(); }
std::set< GhostingFunctor * > _ghosting_functors
The list of all GhostingFunctor objects to be used when distributing a DistributedMesh.
Definition: mesh_base.h:1475

◆ ghosting_functors_end()

std::set<GhostingFunctor *>::const_iterator libMesh::MeshBase::ghosting_functors_end ( ) const
inherited

End of range of ghosting functors.

Definition at line 841 of file mesh_base.h.

References libMesh::MeshBase::_ghosting_functors.

842  { return _ghosting_functors.end(); }
std::set< GhostingFunctor * > _ghosting_functors
The list of all GhostingFunctor objects to be used when distributing a DistributedMesh.
Definition: mesh_base.h:1475

◆ insert_elem()

virtual Elem* libMesh::DistributedMesh::insert_elem ( Elem e)
overridevirtualinherited

Insert elem e to the element array, preserving its id and replacing/deleting any existing element with the same id.

Users should call MeshBase::prepare_for_use() after elements are added to and/or deleted from the mesh.

Implements libMesh::MeshBase.

◆ insert_node()

virtual Node* libMesh::DistributedMesh::insert_node ( Node n)
overridevirtualinherited

Calls add_node().

Implements libMesh::MeshBase.

◆ is_prepared()

bool libMesh::MeshBase::is_prepared ( ) const
inherited
Returns
true if the mesh has been prepared via a call to prepare_for_use, false otherwise.

Definition at line 147 of file mesh_base.h.

References libMesh::MeshBase::_is_prepared.

148  { return _is_prepared; }
bool _is_prepared
Flag indicating if the mesh has been prepared for use.
Definition: mesh_base.h:1389

◆ is_replicated()

virtual bool libMesh::DistributedMesh::is_replicated ( ) const
overridevirtualinherited
Returns
true if new elements and nodes can and should be created in synchronization on all processors, false otherwise

Reimplemented from libMesh::MeshBase.

Definition at line 141 of file distributed_mesh.h.

142  { return false; }

◆ is_serial()

virtual bool libMesh::DistributedMesh::is_serial ( ) const
overridevirtualinherited
Returns
true if all elements and nodes of the mesh exist on the current processor, false otherwise

Reimplemented from libMesh::MeshBase.

Definition at line 119 of file distributed_mesh.h.

References libMesh::DistributedMesh::_is_serial.

120  { return _is_serial; }
bool _is_serial
A boolean remembering whether we&#39;re serialized or not.

◆ is_serial_on_zero()

virtual bool libMesh::DistributedMesh::is_serial_on_zero ( ) const
overridevirtualinherited
Returns
true if all elements and nodes of the mesh exist on the processor 0, false otherwise

Reimplemented from libMesh::MeshBase.

Definition at line 126 of file distributed_mesh.h.

References libMesh::DistributedMesh::_is_serial, and libMesh::DistributedMesh::_is_serial_on_proc_0.

127  { return _is_serial || _is_serial_on_proc_0; }
bool _is_serial_on_proc_0
A boolean remembering whether we&#39;re serialized to proc 0 or not.
bool _is_serial
A boolean remembering whether we&#39;re serialized or not.

◆ level_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::level_elements_begin ( unsigned int  level)
overridevirtualinherited

Iterate over elements of a given level.

Implements libMesh::MeshBase.

◆ level_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::level_elements_begin ( unsigned int  level) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ level_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::level_elements_end ( unsigned int  level)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ level_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::level_elements_end ( unsigned int  level) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ libmesh_assert_valid_parallel_flags()

void libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags ( ) const
inherited

Verify refinement_flag and p_refinement_flag consistency of our elements containers.

Calls libmesh_assert() on each possible failure.

◆ libmesh_assert_valid_parallel_ids()

virtual void libMesh::DistributedMesh::libmesh_assert_valid_parallel_ids ( ) const
overridevirtualinherited

Verify id and processor_id consistency of our elements and nodes containers.

Calls libmesh_assert() on each possible failure.

Reimplemented from libMesh::MeshBase.

◆ libmesh_assert_valid_parallel_object_ids()

template<typename T >
void libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids ( const mapvector< T *, dof_id_type > &  ) const
inherited

Verify id, processor_id, and if applicable unique_id consistency of a parallel objects container.

Calls libmesh_assert() on each possible failure in that container.

◆ libmesh_assert_valid_parallel_p_levels()

void libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels ( ) const
inherited

Verify p_level consistency of our elements containers.

Calls libmesh_assert() on each possible failure.

◆ local_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::local_elements_begin ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::local_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::local_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::local_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_level_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::local_level_elements_begin ( unsigned int  level)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_level_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::local_level_elements_begin ( unsigned int  level) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_level_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::local_level_elements_end ( unsigned int  level)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_level_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::local_level_elements_end ( unsigned int  level) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_node_ptr_range() [1/2]

virtual SimpleRange<node_iterator> libMesh::DistributedMesh::local_node_ptr_range ( )
overridevirtualinherited

Implements libMesh::MeshBase.

Definition at line 491 of file distributed_mesh.h.

References libMesh::DistributedMesh::local_nodes_begin(), and libMesh::DistributedMesh::local_nodes_end().

491 { return {local_nodes_begin(), local_nodes_end()}; }
virtual node_iterator local_nodes_end() override
virtual node_iterator local_nodes_begin() override
Iterate over local nodes (nodes whose processor_id() matches the current processor).

◆ local_node_ptr_range() [2/2]

virtual SimpleRange<const_node_iterator> libMesh::DistributedMesh::local_node_ptr_range ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

Definition at line 492 of file distributed_mesh.h.

References libMesh::DistributedMesh::local_nodes_begin(), and libMesh::DistributedMesh::local_nodes_end().

492 { return {local_nodes_begin(), local_nodes_end()}; }
virtual node_iterator local_nodes_end() override
virtual node_iterator local_nodes_begin() override
Iterate over local nodes (nodes whose processor_id() matches the current processor).

◆ local_nodes_begin() [1/2]

virtual node_iterator libMesh::DistributedMesh::local_nodes_begin ( )
overridevirtualinherited

Iterate over local nodes (nodes whose processor_id() matches the current processor).

Implements libMesh::MeshBase.

Referenced by libMesh::DistributedMesh::local_node_ptr_range().

◆ local_nodes_begin() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::local_nodes_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_nodes_end() [1/2]

virtual node_iterator libMesh::DistributedMesh::local_nodes_end ( )
overridevirtualinherited

◆ local_nodes_end() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::local_nodes_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_not_level_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::local_not_level_elements_begin ( unsigned int  level)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_not_level_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::local_not_level_elements_begin ( unsigned int  level) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_not_level_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::local_not_level_elements_end ( unsigned int  level)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ local_not_level_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::local_not_level_elements_end ( unsigned int  level) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ max_elem_id()

virtual dof_id_type libMesh::DistributedMesh::max_elem_id ( ) const
overridevirtualinherited
Returns
A number greater than or equal to the maximum element id in the mesh.

Implements libMesh::MeshBase.

Definition at line 224 of file distributed_mesh.h.

References libMesh::DistributedMesh::_max_elem_id.

224 { return _max_elem_id; }

◆ max_node_id()

virtual dof_id_type libMesh::DistributedMesh::max_node_id ( ) const
overridevirtualinherited
Returns
A number greater than or equal to the maximum node id in the mesh.

Implements libMesh::MeshBase.

Definition at line 220 of file distributed_mesh.h.

References libMesh::DistributedMesh::_max_node_id.

220 { return _max_node_id; }

◆ mesh_dimension()

unsigned int libMesh::MeshBase::mesh_dimension ( ) const
inherited
Returns
The logical dimension of the mesh; i.e. the manifold dimension of the elements in the mesh. If we ever support multi-dimensional meshes (e.g. hexes and quads in the same mesh) then this will return the largest such dimension.

◆ n_active_elem()

virtual dof_id_type libMesh::DistributedMesh::n_active_elem ( ) const
overridevirtualinherited
Returns
The number of active elements in the mesh.

Implemented in terms of active_element_iterators.

Implements libMesh::MeshBase.

◆ n_active_elem_on_proc()

dof_id_type libMesh::MeshBase::n_active_elem_on_proc ( const processor_id_type  proc) const
inherited
Returns
The number of active elements on processor proc.

Referenced by libMesh::MeshBase::n_active_local_elem().

◆ n_active_local_elem()

dof_id_type libMesh::MeshBase::n_active_local_elem ( ) const
inherited
Returns
The number of active elements on the local processor.

Definition at line 403 of file mesh_base.h.

References libMesh::MeshBase::n_active_elem_on_proc(), and libMesh::ParallelObject::processor_id().

404  { return this->n_active_elem_on_proc (this->processor_id()); }
dof_id_type n_active_elem_on_proc(const processor_id_type proc) const
processor_id_type processor_id() const

◆ n_active_sub_elem()

dof_id_type libMesh::MeshBase::n_active_sub_elem ( ) const
inherited

Same as n_sub_elem(), but only counts active elements.

◆ n_elem()

virtual dof_id_type libMesh::DistributedMesh::n_elem ( ) const
overridevirtualinherited
Returns
The number of elements in the mesh.

The standard n_elem() function may return a cached value on distributed meshes, and so can be called by any processor at any time.

Implements libMesh::MeshBase.

Definition at line 222 of file distributed_mesh.h.

References libMesh::DistributedMesh::_n_elem.

222 { return _n_elem; }

◆ n_elem_on_proc()

dof_id_type libMesh::MeshBase::n_elem_on_proc ( const processor_id_type  proc) const
inherited
Returns
The number of elements on processor proc.

Referenced by libMesh::MeshBase::n_local_elem(), and libMesh::MeshBase::n_unpartitioned_elem().

◆ n_local_elem()

dof_id_type libMesh::MeshBase::n_local_elem ( ) const
inherited
Returns
The number of elements on the local processor.

Definition at line 386 of file mesh_base.h.

References libMesh::MeshBase::n_elem_on_proc(), and libMesh::ParallelObject::processor_id().

387  { return this->n_elem_on_proc (this->processor_id()); }
dof_id_type n_elem_on_proc(const processor_id_type proc) const
processor_id_type processor_id() const

◆ n_local_nodes()

dof_id_type libMesh::MeshBase::n_local_nodes ( ) const
inherited
Returns
The number of nodes on the local processor.

Definition at line 286 of file mesh_base.h.

References libMesh::MeshBase::n_nodes_on_proc(), and libMesh::ParallelObject::processor_id().

287  { return this->n_nodes_on_proc (this->processor_id()); }
dof_id_type n_nodes_on_proc(const processor_id_type proc) const
processor_id_type processor_id() const

◆ n_nodes()

virtual dof_id_type libMesh::DistributedMesh::n_nodes ( ) const
overridevirtualinherited
Returns
The number of nodes in the mesh.

This function and others must be defined in derived classes since the MeshBase class has no specific storage for nodes or elements. The standard n_nodes() function may return a cached value on distributed meshes, and so can be called by any processor at any time.

Implements libMesh::MeshBase.

Definition at line 219 of file distributed_mesh.h.

References libMesh::DistributedMesh::_n_nodes.

219 { return _n_nodes; }
dof_id_type _n_nodes
Cached data from the last renumber_nodes_and_elements call.

◆ n_nodes_on_proc()

dof_id_type libMesh::MeshBase::n_nodes_on_proc ( const processor_id_type  proc) const
inherited
Returns
The number of nodes on processor proc.

Referenced by libMesh::MeshBase::n_local_nodes(), and libMesh::MeshBase::n_unpartitioned_nodes().

◆ n_partitions()

unsigned int libMesh::MeshBase::n_partitions ( ) const
inherited
Returns
The number of partitions which have been defined via a call to either mesh.partition() or by building a Partitioner object and calling partition.
Note
The partitioner object is responsible for setting this value.

Definition at line 875 of file mesh_base.h.

References libMesh::MeshBase::_n_parts.

876  { return _n_parts; }
unsigned int _n_parts
The number of partitions the mesh has.
Definition: mesh_base.h:1384

◆ n_processors()

processor_id_type libMesh::ParallelObject::n_processors ( ) const
inherited
Returns
The number of processors in the group.

Definition at line 93 of file parallel_object.h.

References libMesh::ParallelObject::_communicator, and libMesh::Parallel::Communicator::size().

Referenced by libMesh::MeshBase::partition().

94  { return cast_int<processor_id_type>(_communicator.size()); }
processor_id_type size() const
Definition: communicator.h:175
const Parallel::Communicator & _communicator

◆ n_sub_elem()

dof_id_type libMesh::MeshBase::n_sub_elem ( ) const
inherited
Returns
The number of elements that will be written out in certain I/O formats.

For example, a 9-noded quadrilateral will be broken into 4 linear sub-elements for plotting purposes. Thus, for a mesh of 2 QUAD9 elements n_tecplot_elem() will return 8. Implemented in terms of element_iterators.

◆ n_subdomains()

subdomain_id_type libMesh::MeshBase::n_subdomains ( ) const
inherited
Returns
The number of subdomains in the global mesh. Subdomains correspond to separate subsets of the mesh which could correspond e.g. to different materials in a solid mechanics application, or regions where different physical processes are important. The subdomain mapping is independent from the parallel decomposition.

◆ n_unpartitioned_elem()

dof_id_type libMesh::MeshBase::n_unpartitioned_elem ( ) const
inherited
Returns
The number of elements owned by no processor.

Definition at line 392 of file mesh_base.h.

References libMesh::DofObject::invalid_processor_id, and libMesh::MeshBase::n_elem_on_proc().

dof_id_type n_elem_on_proc(const processor_id_type proc) const
static const processor_id_type invalid_processor_id
An invalid processor_id to distinguish DoFs that have not been assigned to a processor.
Definition: dof_object.h:358

◆ n_unpartitioned_nodes()

dof_id_type libMesh::MeshBase::n_unpartitioned_nodes ( ) const
inherited
Returns
The number of nodes owned by no processor.

Definition at line 292 of file mesh_base.h.

References libMesh::DofObject::invalid_processor_id, and libMesh::MeshBase::n_nodes_on_proc().

static const processor_id_type invalid_processor_id
An invalid processor_id to distinguish DoFs that have not been assigned to a processor.
Definition: dof_object.h:358
dof_id_type n_nodes_on_proc(const processor_id_type proc) const

◆ next_unique_id()

unique_id_type libMesh::MeshBase::next_unique_id ( )
inherited
Returns
The next unique id to be used.

Definition at line 305 of file mesh_base.h.

References libMesh::MeshBase::_next_unique_id.

305 { return _next_unique_id; }
unique_id_type _next_unique_id
The next available unique id for assigning ids to DOF objects.
Definition: mesh_base.h:1418

◆ node() [1/2]

virtual const Node& libMesh::MeshBase::node ( const dof_id_type  i) const
virtualinherited
Returns
A constant reference (for reading only) to the $ i^{th} $ node, which should be present in this processor's subset of the mesh data structure.
Deprecated:
Use the less confusingly-named node_ref() instead.

Definition at line 454 of file mesh_base.h.

References libMesh::MeshBase::node_ptr().

455  {
456  libmesh_deprecated();
457  return *this->node_ptr(i);
458  }
virtual const Node * node_ptr(const dof_id_type i) const =0

◆ node() [2/2]

virtual Node& libMesh::MeshBase::node ( const dof_id_type  i)
virtualinherited
Returns
A reference to the $ i^{th} $ node, which should be present in this processor's subset of the mesh data structure.
Deprecated:
Use the less confusingly-named node_ref() instead.

Definition at line 468 of file mesh_base.h.

References libMesh::MeshBase::node_ptr().

469  {
470  libmesh_deprecated();
471  return *this->node_ptr(i);
472  }
virtual const Node * node_ptr(const dof_id_type i) const =0

◆ node_ptr() [1/2]

virtual const Node* libMesh::DistributedMesh::node_ptr ( const dof_id_type  i) const
overridevirtualinherited
Returns
A pointer to the $ i^{th} $ node, which should be present in this processor's subset of the mesh data structure.

Implements libMesh::MeshBase.

◆ node_ptr() [2/2]

virtual Node* libMesh::DistributedMesh::node_ptr ( const dof_id_type  i)
overridevirtualinherited
Returns
A writable pointer to the $ i^{th} $ node, which should be present in this processor's subset of the mesh data structure.

Implements libMesh::MeshBase.

◆ node_ptr_range() [1/2]

virtual SimpleRange<node_iterator> libMesh::DistributedMesh::node_ptr_range ( )
overridevirtualinherited

Implements libMesh::MeshBase.

Definition at line 479 of file distributed_mesh.h.

References libMesh::DistributedMesh::nodes_begin(), and libMesh::DistributedMesh::nodes_end().

479 { return {nodes_begin(), nodes_end()}; }
virtual node_iterator nodes_begin() override
Node iterator accessor functions.
virtual node_iterator nodes_end() override

◆ node_ptr_range() [2/2]

virtual SimpleRange<const_node_iterator> libMesh::DistributedMesh::node_ptr_range ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

Definition at line 480 of file distributed_mesh.h.

References libMesh::DistributedMesh::nodes_begin(), and libMesh::DistributedMesh::nodes_end().

480 { return {nodes_begin(), nodes_end()}; }
virtual node_iterator nodes_begin() override
Node iterator accessor functions.
virtual node_iterator nodes_end() override

◆ node_ref() [1/2]

virtual const Node& libMesh::MeshBase::node_ref ( const dof_id_type  i) const
virtualinherited
Returns
A constant reference (for reading only) to the $ i^{th} $ node, which should be present in this processor's subset of the mesh data structure.

Definition at line 434 of file mesh_base.h.

References libMesh::MeshBase::node_ptr().

434  {
435  return *this->node_ptr(i);
436  }
virtual const Node * node_ptr(const dof_id_type i) const =0

◆ node_ref() [2/2]

virtual Node& libMesh::MeshBase::node_ref ( const dof_id_type  i)
virtualinherited
Returns
A reference to the $ i^{th} $ node, which should be present in this processor's subset of the mesh data structure.

Definition at line 442 of file mesh_base.h.

References libMesh::MeshBase::node_ptr().

442  {
443  return *this->node_ptr(i);
444  }
virtual const Node * node_ptr(const dof_id_type i) const =0

◆ nodes_begin() [1/2]

virtual node_iterator libMesh::DistributedMesh::nodes_begin ( )
overridevirtualinherited

Node iterator accessor functions.

Implements libMesh::MeshBase.

Referenced by libMesh::DistributedMesh::node_ptr_range().

◆ nodes_begin() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::nodes_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ nodes_end() [1/2]

virtual node_iterator libMesh::DistributedMesh::nodes_end ( )
overridevirtualinherited

◆ nodes_end() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::nodes_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_active_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::not_active_elements_begin ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_active_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::not_active_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_active_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::not_active_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_active_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::not_active_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_ancestor_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::not_ancestor_elements_begin ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_ancestor_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::not_ancestor_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_ancestor_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::not_ancestor_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_ancestor_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::not_ancestor_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_level_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::not_level_elements_begin ( unsigned int  level)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_level_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::not_level_elements_begin ( unsigned int  level) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_level_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::not_level_elements_end ( unsigned int  level)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_level_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::not_level_elements_end ( unsigned int  level) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_local_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::not_local_elements_begin ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_local_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::not_local_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_local_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::not_local_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_local_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::not_local_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_subactive_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::not_subactive_elements_begin ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_subactive_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::not_subactive_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_subactive_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::not_subactive_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ not_subactive_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::not_subactive_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ own_node()

virtual void libMesh::DistributedMesh::own_node ( Node n)
overridevirtualinherited

Takes ownership of node n on this partition of a distributed mesh, by setting n.processor_id() to this->processor_id(), as well as changing n.id() and moving it in the mesh's internal container to give it a new authoritative id.

Reimplemented from libMesh::MeshBase.

◆ parallel_max_elem_id()

dof_id_type libMesh::DistributedMesh::parallel_max_elem_id ( ) const
inherited

◆ parallel_max_node_id()

dof_id_type libMesh::DistributedMesh::parallel_max_node_id ( ) const
inherited

◆ parallel_max_unique_id()

virtual unique_id_type libMesh::DistributedMesh::parallel_max_unique_id ( ) const
overridevirtualinherited
Returns
A number greater than or equal to the maximum unique_id in the mesh.

Implements libMesh::MeshBase.

◆ parallel_n_elem()

virtual dof_id_type libMesh::DistributedMesh::parallel_n_elem ( ) const
overridevirtualinherited
Returns
The number of elements in the mesh.

The parallel_n_elem() function computes a parallel-synchronized value on distributed meshes, and so must be called in parallel only.

Implements libMesh::MeshBase.

◆ parallel_n_nodes()

virtual dof_id_type libMesh::DistributedMesh::parallel_n_nodes ( ) const
overridevirtualinherited
Returns
The number of nodes in the mesh.

This function and others must be overridden in derived classes since the MeshBase class has no specific storage for nodes or elements. The parallel_n_nodes() function computes a parallel-synchronized value on distributed meshes, and so must be called in parallel only.

Implements libMesh::MeshBase.

◆ partition() [1/2]

virtual void libMesh::MeshBase::partition ( const unsigned int  n_parts)
virtualinherited

Call the default partitioner (currently metis_partition()).

◆ partition() [2/2]

void libMesh::MeshBase::partition ( )
inherited

Definition at line 749 of file mesh_base.h.

References libMesh::ParallelObject::n_processors().

750  { this->partition(this->n_processors()); }
processor_id_type n_processors() const

◆ partitioner()

virtual std::unique_ptr<Partitioner>& libMesh::MeshBase::partitioner ( )
virtualinherited

A partitioner to use at each prepare_for_use()

Definition at line 126 of file mesh_base.h.

References libMesh::MeshBase::_partitioner.

126 { return _partitioner; }
std::unique_ptr< Partitioner > _partitioner
A partitioner to use at each prepare_for_use().
Definition: mesh_base.h:1412

◆ pid_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::pid_elements_begin ( processor_id_type  proc_id)
overridevirtualinherited

Iterate over all elements with a specified processor id.

Implements libMesh::MeshBase.

◆ pid_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::pid_elements_begin ( processor_id_type  proc_id) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ pid_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::pid_elements_end ( processor_id_type  proc_id)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ pid_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::pid_elements_end ( processor_id_type  proc_id) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ pid_nodes_begin() [1/2]

virtual node_iterator libMesh::DistributedMesh::pid_nodes_begin ( processor_id_type  proc_id)
overridevirtualinherited

Iterate over nodes with processor_id() == proc_id.

Implements libMesh::MeshBase.

◆ pid_nodes_begin() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::pid_nodes_begin ( processor_id_type  proc_id) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ pid_nodes_end() [1/2]

virtual node_iterator libMesh::DistributedMesh::pid_nodes_end ( processor_id_type  proc_id)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ pid_nodes_end() [2/2]

virtual const_node_iterator libMesh::DistributedMesh::pid_nodes_end ( processor_id_type  proc_id) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ point()

virtual const Point& libMesh::DistributedMesh::point ( const dof_id_type  i) const
overridevirtualinherited
Returns
A constant reference (for reading only) to the $ i^{th} $ point, which should be present in this processor's subset of the mesh data structure.

Implements libMesh::MeshBase.

◆ point_locator()

const PointLocatorBase& libMesh::MeshBase::point_locator ( ) const
inherited
Returns
A pointer to a PointLocatorBase object for this mesh, constructing a master PointLocator first if necessary.
Deprecated:
This should never be used in threaded or non-parallel_only code.

◆ prepare_for_use()

void libMesh::MeshBase::prepare_for_use ( const bool  skip_renumber_nodes_and_elements = false,
const bool  skip_find_neighbors = false 
)
inherited

Prepare a newly created (or read) mesh for use.

This involves 4 steps: 1.) call find_neighbors() 2.) call partition() 3.) call renumber_nodes_and_elements() 4.) call cache_elem_dims()

The argument to skip renumbering is now deprecated - to prevent a mesh from being renumbered, set allow_renumbering(false).

If this is a distributed mesh, local copies of remote elements will be deleted here - to keep those elements replicated during preparation, set allow_remote_element_removal(false).

◆ print_info()

void libMesh::MeshBase::print_info ( std::ostream &  os = libMesh::out) const
inherited

Prints relevant information about the mesh.

◆ processor_id()

processor_id_type libMesh::ParallelObject::processor_id ( ) const
inherited

◆ query_elem() [1/2]

virtual const Elem* libMesh::MeshBase::query_elem ( const dof_id_type  i) const
virtualinherited
Returns
A pointer to the $ i^{th} $ element, or nullptr if no such element exists in this processor's mesh data structure.
Deprecated:
Use the less confusingly-named query_elem_ptr() instead.

Definition at line 578 of file mesh_base.h.

References libMesh::MeshBase::query_elem_ptr().

579  {
580  libmesh_deprecated();
581  return this->query_elem_ptr(i);
582  }
virtual const Elem * query_elem_ptr(const dof_id_type i) const =0

◆ query_elem() [2/2]

virtual Elem* libMesh::MeshBase::query_elem ( const dof_id_type  i)
virtualinherited
Returns
A writable pointer to the $ i^{th} $ element, or nullptr if no such element exists in this processor's mesh data structure.
Deprecated:
Use the less confusingly-named query_elem_ptr() instead.

Definition at line 592 of file mesh_base.h.

References libMesh::MeshBase::query_elem_ptr().

593  {
594  libmesh_deprecated();
595  return this->query_elem_ptr(i);
596  }
virtual const Elem * query_elem_ptr(const dof_id_type i) const =0

◆ query_elem_ptr() [1/2]

virtual const Elem* libMesh::DistributedMesh::query_elem_ptr ( const dof_id_type  i) const
overridevirtualinherited
Returns
A pointer to the $ i^{th} $ element, or nullptr if no such element exists in this processor's mesh data structure.

Implements libMesh::MeshBase.

◆ query_elem_ptr() [2/2]

virtual Elem* libMesh::DistributedMesh::query_elem_ptr ( const dof_id_type  i)
overridevirtualinherited
Returns
A writable pointer to the $ i^{th} $ element, or nullptr if no such element exists in this processor's mesh data structure.

Implements libMesh::MeshBase.

◆ query_node_ptr() [1/2]

virtual const Node* libMesh::DistributedMesh::query_node_ptr ( const dof_id_type  i) const
overridevirtualinherited
Returns
A pointer to the $ i^{th} $ node, or nullptr if no such node exists in this processor's mesh data structure.

Implements libMesh::MeshBase.

◆ query_node_ptr() [2/2]

virtual Node* libMesh::DistributedMesh::query_node_ptr ( const dof_id_type  i)
overridevirtualinherited
Returns
A writable pointer to the $ i^{th} $ node, or nullptr if no such node exists in this processor's mesh data structure.

Implements libMesh::MeshBase.

◆ read()

virtual void libMesh::UnstructuredMesh::read ( const std::string &  name,
void *  mesh_data = nullptr,
bool  skip_renumber_nodes_and_elements = false,
bool  skip_find_neighbors = false 
)
overridevirtualinherited

Reads the file specified by name.

Attempts to figure out the proper method by the file extension. This is now the only way to read a mesh. The UnstructuredMesh then initializes its data structures and is ready for use.

The skip_renumber_nodes_and_elements argument is now deprecated - to disallow renumbering, set MeshBase::allow_renumbering(false).

Set skip_find_neighbors=true to skip the find-neighbors operation during prepare_for_use. This operation isn't always necessary and it can be time-consuming, which is why we provide an option to skip it.

Implements libMesh::MeshBase.

◆ recalculate_n_partitions()

unsigned int libMesh::MeshBase::recalculate_n_partitions ( )
inherited

In a few (very rare) cases, the user may have manually tagged the elements with specific processor IDs by hand, without using a partitioner.

In this case, the Mesh will not know that the total number of partitions, _n_parts, has changed, unless you call this function. This is an O(N active elements) calculation. The return value is the number of partitions, and _n_parts is also set by this function.

◆ redistribute()

virtual void libMesh::DistributedMesh::redistribute ( )
overridevirtualinherited

Redistribute elements between processors.

This gets called automatically by the Partitioner, and is a no-op in the case of a serialized mesh.

Reimplemented from libMesh::MeshBase.

◆ remove_ghosting_functor()

void libMesh::MeshBase::remove_ghosting_functor ( GhostingFunctor ghosting_functor)
inherited

Removes a functor which was previously added to the set of ghosting functors.

◆ renumber_dof_objects()

template<typename T >
dof_id_type libMesh::DistributedMesh::renumber_dof_objects ( mapvector< T *, dof_id_type > &  )
inherited

Renumber a parallel objects container.

Returns
The smallest globally unused id for that container.

◆ renumber_elem()

virtual void libMesh::DistributedMesh::renumber_elem ( dof_id_type  old_id,
dof_id_type  new_id 
)
overridevirtualinherited

Changes the id of element old_id, both by changing elem(old_id)->id() and by moving elem(old_id) in the mesh's internal container.

No element with the id new_id should already exist.

Implements libMesh::MeshBase.

◆ renumber_node()

virtual void libMesh::DistributedMesh::renumber_node ( dof_id_type  old_id,
dof_id_type  new_id 
)
overridevirtualinherited

Changes the id of node old_id, both by changing node(old_id)->id() and by moving node(old_id) in the mesh's internal container.

No element with the id new_id should already exist.

Implements libMesh::MeshBase.

◆ renumber_nodes_and_elements()

virtual void libMesh::DistributedMesh::renumber_nodes_and_elements ( )
overridevirtualinherited

Remove nullptr elements from arrays.

Implements libMesh::MeshBase.

◆ reserve_elem()

virtual void libMesh::DistributedMesh::reserve_elem ( const dof_id_type  ne)
overridevirtualinherited

Reserves space for a known number of elements.

Note
This method may or may not do anything, depending on the actual Mesh implementation. If you know the number of elements you will add and call this method before repeatedly calling add_point() the implementation will be more efficient.

Implements libMesh::MeshBase.

Definition at line 225 of file distributed_mesh.h.

225 {}

◆ reserve_nodes()

virtual void libMesh::DistributedMesh::reserve_nodes ( const dof_id_type  nn)
overridevirtualinherited

Reserves space for a known number of nodes.

Note
This method may or may not do anything, depending on the actual Mesh implementation. If you know the number of nodes you will add and call this method before repeatedly calling add_point() the implementation will be more efficient.

Implements libMesh::MeshBase.

Definition at line 221 of file distributed_mesh.h.

221 {}

◆ semilocal_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::semilocal_elements_begin ( )
overridevirtualinherited

Iterate over elements for which elem->is_semilocal() is true for the current processor.

Implements libMesh::MeshBase.

◆ semilocal_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::semilocal_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ semilocal_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::semilocal_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ semilocal_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::semilocal_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ set_count_lower_dim_elems_in_point_locator()

void libMesh::MeshBase::set_count_lower_dim_elems_in_point_locator ( bool  count_lower_dim_elems)
inherited

In the point locator, do we count lower dimensional elements when we refine point locator regions? This is relevant in tree-based point locators, for example.

◆ set_distributed()

virtual void libMesh::DistributedMesh::set_distributed ( )
overridevirtualinherited

Asserts that not all elements and nodes of the mesh necessarily exist on the current processor.

Reimplemented from libMesh::MeshBase.

Definition at line 133 of file distributed_mesh.h.

References libMesh::DistributedMesh::_is_serial, and libMesh::DistributedMesh::_is_serial_on_proc_0.

134  { _is_serial = false;
135  _is_serial_on_proc_0 = false; }
bool _is_serial_on_proc_0
A boolean remembering whether we&#39;re serialized to proc 0 or not.
bool _is_serial
A boolean remembering whether we&#39;re serialized or not.

◆ set_mesh_dimension()

void libMesh::MeshBase::set_mesh_dimension ( unsigned char  d)
inherited

Resets the logical dimension of the mesh.

If the mesh has elements of multiple dimensions, this should be set to the largest dimension. E.g. if the mesh has 1D and 2D elements, this should be set to 2. If the mesh has 2D and 3D elements, this should be set to 3.

Definition at line 213 of file mesh_base.h.

References libMesh::MeshBase::_elem_dims.

214  { _elem_dims.clear(); _elem_dims.insert(d); }
std::set< unsigned char > _elem_dims
We cache the dimension of the elements present in the mesh.
Definition: mesh_base.h:1453

◆ set_n_partitions()

unsigned int& libMesh::MeshBase::set_n_partitions ( )
protectedinherited
Returns
A writable reference to the number of partitions.

Definition at line 1371 of file mesh_base.h.

References libMesh::MeshBase::_n_parts.

1372  { return _n_parts; }
unsigned int _n_parts
The number of partitions the mesh has.
Definition: mesh_base.h:1384

◆ set_next_unique_id()

void libMesh::MeshBase::set_next_unique_id ( unique_id_type  id)
inherited

Sets the next unique id to be used.

Definition at line 310 of file mesh_base.h.

References libMesh::MeshBase::_next_unique_id.

310 { _next_unique_id = id; }
unique_id_type _next_unique_id
The next available unique id for assigning ids to DOF objects.
Definition: mesh_base.h:1418

◆ set_spatial_dimension()

void libMesh::MeshBase::set_spatial_dimension ( unsigned char  d)
inherited

Sets the "spatial dimension" of the Mesh.

See the documentation for Mesh::spatial_dimension() for more information.

◆ set_subdomain_name_map()

std::map<subdomain_id_type, std::string>& libMesh::MeshBase::set_subdomain_name_map ( )
inherited
Returns
A writable reference to the whole subdomain name map

Definition at line 1335 of file mesh_base.h.

References libMesh::MeshBase::_block_id_to_name.

1336  { return _block_id_to_name; }
std::map< subdomain_id_type, std::string > _block_id_to_name
This structure maintains the mapping of named blocks for file formats that support named blocks...
Definition: mesh_base.h:1446

◆ skip_partitioning() [1/2]

void libMesh::MeshBase::skip_partitioning ( bool  skip)
inherited

If true is passed in then this mesh will no longer be (re)partitioned.

It would probably be a bad idea to call this on a DistributedMesh before the first partitioning has happened... because no elements would get assigned to your processor pool.

Note
Turning on skip_partitioning() can have adverse effects on your performance when using AMR... i.e. you could get large load imbalances. However you might still want to use this if the communication and computation of the rebalance and repartition is too high for your application.

It is also possible, for backwards-compatibility purposes, to skip partitioning by resetting the partitioner() pointer for this mesh.

Definition at line 811 of file mesh_base.h.

References libMesh::MeshBase::_skip_partitioning.

811 { _skip_partitioning = skip; }
bool _skip_partitioning
If this is true then no partitioning should be done.
Definition: mesh_base.h:1424

◆ skip_partitioning() [2/2]

bool libMesh::MeshBase::skip_partitioning ( ) const
inherited

Definition at line 812 of file mesh_base.h.

References libMesh::MeshBase::_partitioner, and libMesh::MeshBase::_skip_partitioning.

812 { return _skip_partitioning || !_partitioner.get(); }
bool _skip_partitioning
If this is true then no partitioning should be done.
Definition: mesh_base.h:1424
std::unique_ptr< Partitioner > _partitioner
A partitioner to use at each prepare_for_use().
Definition: mesh_base.h:1412

◆ spatial_dimension()

unsigned int libMesh::MeshBase::spatial_dimension ( ) const
inherited
Returns
The "spatial dimension" of the mesh.

The spatial dimension is defined as:

1 - for an exactly x-aligned mesh of 1D elements 2 - for an exactly x-y planar mesh of 2D elements 3 - otherwise

No tolerance checks are performed to determine whether the Mesh is x-aligned or x-y planar, only strict equality with zero in the higher dimensions is checked. Also, x-z and y-z planar meshes are considered to have spatial dimension == 3.

The spatial dimension is updated during prepare_for_use() based on the dimensions of the various elements present in the Mesh, but is never automatically decreased by this function.

For example, if the user calls set_spatial_dimension(2) and then later inserts 3D elements into the mesh, Mesh::spatial_dimension() will return 3 after the next call to prepare_for_use(). On the other hand, if the user calls set_spatial_dimension(3) and then inserts only x-aligned 1D elements into the Mesh, mesh.spatial_dimension() will remain 3.

◆ sub_point_locator()

std::unique_ptr<PointLocatorBase> libMesh::MeshBase::sub_point_locator ( ) const
inherited
Returns
A pointer to a subordinate PointLocatorBase object for this mesh, constructing a master PointLocator first if necessary. This should not be used in threaded or non-parallel_only code unless the master has already been constructed.

◆ subactive_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::subactive_elements_begin ( )
overridevirtualinherited

Iterate over elements for which elem->subactive() is true.

Implements libMesh::MeshBase.

◆ subactive_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::subactive_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ subactive_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::subactive_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ subactive_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::subactive_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ subdomain_ids()

void libMesh::MeshBase::subdomain_ids ( std::set< subdomain_id_type > &  ids) const
inherited

Constructs a list of all subdomain identifiers in the global mesh.

Subdomains correspond to separate subsets of the mesh which could correspond e.g. to different materials in a solid mechanics application, or regions where different physical processes are important. The subdomain mapping is independent from the parallel decomposition.

◆ subdomain_name() [1/2]

std::string& libMesh::MeshBase::subdomain_name ( subdomain_id_type  id)
inherited
Returns
A writable reference for getting/setting an optional name for a subdomain.

◆ subdomain_name() [2/2]

const std::string& libMesh::MeshBase::subdomain_name ( subdomain_id_type  id) const
inherited

◆ type_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::type_elements_begin ( ElemType  type)
overridevirtualinherited

Iterate over all elements with a specified geometric type.

Implements libMesh::MeshBase.

◆ type_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::type_elements_begin ( ElemType  type) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ type_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::type_elements_end ( ElemType  type)
overridevirtualinherited

Implements libMesh::MeshBase.

◆ type_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::type_elements_end ( ElemType  type) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ unpartitioned_elements_begin() [1/2]

virtual element_iterator libMesh::DistributedMesh::unpartitioned_elements_begin ( )
overridevirtualinherited

Iterate over unpartitioned elements in the Mesh.

Implements libMesh::MeshBase.

◆ unpartitioned_elements_begin() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::unpartitioned_elements_begin ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ unpartitioned_elements_end() [1/2]

virtual element_iterator libMesh::DistributedMesh::unpartitioned_elements_end ( )
overridevirtualinherited

Implements libMesh::MeshBase.

◆ unpartitioned_elements_end() [2/2]

virtual const_element_iterator libMesh::DistributedMesh::unpartitioned_elements_end ( ) const
overridevirtualinherited

Implements libMesh::MeshBase.

◆ update_parallel_id_counts()

virtual void libMesh::DistributedMesh::update_parallel_id_counts ( )
overridevirtualinherited

Updates parallel caches so that methods like n_elem() accurately reflect changes on other processors.

Implements libMesh::MeshBase.

◆ update_post_partitioning()

virtual void libMesh::DistributedMesh::update_post_partitioning ( )
overridevirtualinherited

Recalculate cached data after elements and nodes have been repartitioned.

Reimplemented from libMesh::MeshBase.

◆ write() [1/2]

virtual void libMesh::UnstructuredMesh::write ( const std::string &  name)
overridevirtualinherited

Write the file specified by name.

Attempts to figure out the proper method by the file extension.

Implements libMesh::MeshBase.

◆ write() [2/2]

void libMesh::UnstructuredMesh::write ( const std::string &  name,
const std::vector< Number > &  values,
const std::vector< std::string > &  variable_names 
)
inherited

Write to the file specified by name.

Attempts to figure out the proper method by the file extension. Also writes data.

Member Data Documentation

◆ _allow_remote_element_removal

bool libMesh::MeshBase::_allow_remote_element_removal
protectedinherited

If this is false then even on DistributedMesh remote elements will not be deleted during mesh preparation.

This is true by default.

Definition at line 1439 of file mesh_base.h.

Referenced by libMesh::MeshBase::allow_remote_element_removal().

◆ _block_id_to_name

std::map<subdomain_id_type, std::string> libMesh::MeshBase::_block_id_to_name
protectedinherited

This structure maintains the mapping of named blocks for file formats that support named blocks.

Currently this is only implemented for ExodusII

Definition at line 1446 of file mesh_base.h.

Referenced by libMesh::MeshBase::get_subdomain_name_map(), and libMesh::MeshBase::set_subdomain_name_map().

◆ _communicator

const Parallel::Communicator& libMesh::ParallelObject::_communicator
protectedinherited

◆ _count_lower_dim_elems_in_point_locator

bool libMesh::MeshBase::_count_lower_dim_elems_in_point_locator
protectedinherited

Do we count lower dimensional elements in point locator refinement? This is relevant in tree-based point locators, for example.

Definition at line 1404 of file mesh_base.h.

◆ _default_ghosting

std::unique_ptr<GhostingFunctor> libMesh::MeshBase::_default_ghosting
protectedinherited

The default geometric GhostingFunctor, used to implement standard libMesh element ghosting behavior.

We use a base class pointer here to avoid dragging in more header dependencies.

Definition at line 1466 of file mesh_base.h.

Referenced by libMesh::MeshBase::default_ghosting().

◆ _elem_dims

std::set<unsigned char> libMesh::MeshBase::_elem_dims
protectedinherited

We cache the dimension of the elements present in the mesh.

So, if we have a mesh with 1D and 2D elements, this structure will contain 1 and 2.

Definition at line 1453 of file mesh_base.h.

Referenced by libMesh::MeshBase::elem_dimensions(), and libMesh::MeshBase::set_mesh_dimension().

◆ _elements

mapvector<Elem *, dof_id_type> libMesh::DistributedMesh::_elements
protectedinherited

The elements in the mesh.

Definition at line 533 of file distributed_mesh.h.

◆ _extra_ghost_elems

std::set<Elem *> libMesh::DistributedMesh::_extra_ghost_elems
protectedinherited

These are extra ghost elements that we want to make sure not to delete when we call delete_remote_elements()

Definition at line 570 of file distributed_mesh.h.

Referenced by libMesh::DistributedMesh::clear_extra_ghost_elems().

◆ _ghosting_functors

std::set<GhostingFunctor *> libMesh::MeshBase::_ghosting_functors
protectedinherited

The list of all GhostingFunctor objects to be used when distributing a DistributedMesh.

Basically unused by ReplicatedMesh for now, but belongs to MeshBase because the cost is trivial.

Definition at line 1475 of file mesh_base.h.

Referenced by libMesh::MeshBase::add_ghosting_functor(), libMesh::MeshBase::ghosting_functors_begin(), and libMesh::MeshBase::ghosting_functors_end().

◆ _is_prepared

bool libMesh::MeshBase::_is_prepared
protectedinherited

Flag indicating if the mesh has been prepared for use.

Definition at line 1389 of file mesh_base.h.

Referenced by libMesh::MeshBase::is_prepared().

◆ _is_serial

bool libMesh::DistributedMesh::_is_serial
protectedinherited

A boolean remembering whether we're serialized or not.

Definition at line 538 of file distributed_mesh.h.

Referenced by libMesh::DistributedMesh::is_serial(), libMesh::DistributedMesh::is_serial_on_zero(), and libMesh::DistributedMesh::set_distributed().

◆ _is_serial_on_proc_0

bool libMesh::DistributedMesh::_is_serial_on_proc_0
protectedinherited

A boolean remembering whether we're serialized to proc 0 or not.

Definition at line 543 of file distributed_mesh.h.

Referenced by libMesh::DistributedMesh::is_serial_on_zero(), and libMesh::DistributedMesh::set_distributed().

◆ _max_elem_id

dof_id_type libMesh::DistributedMesh::_max_elem_id
protectedinherited

Definition at line 548 of file distributed_mesh.h.

Referenced by libMesh::DistributedMesh::max_elem_id().

◆ _max_node_id

dof_id_type libMesh::DistributedMesh::_max_node_id
protectedinherited

Definition at line 548 of file distributed_mesh.h.

Referenced by libMesh::DistributedMesh::max_node_id().

◆ _n_elem

dof_id_type libMesh::DistributedMesh::_n_elem
protectedinherited

Definition at line 548 of file distributed_mesh.h.

Referenced by libMesh::DistributedMesh::n_elem().

◆ _n_nodes

dof_id_type libMesh::DistributedMesh::_n_nodes
protectedinherited

Cached data from the last renumber_nodes_and_elements call.

Definition at line 548 of file distributed_mesh.h.

Referenced by libMesh::DistributedMesh::n_nodes().

◆ _n_parts

unsigned int libMesh::MeshBase::_n_parts
protectedinherited

The number of partitions the mesh has.

This is set by the partitioners, and may not be changed directly by the user.

Note
The number of partitions need not equal this->n_processors(), consider for example the case where you simply want to partition a mesh on one processor and view the result in GMV.

Definition at line 1384 of file mesh_base.h.

Referenced by libMesh::MeshBase::n_partitions(), and libMesh::MeshBase::set_n_partitions().

◆ _next_free_local_elem_id

dof_id_type libMesh::DistributedMesh::_next_free_local_elem_id
protectedinherited

Definition at line 554 of file distributed_mesh.h.

◆ _next_free_local_node_id

dof_id_type libMesh::DistributedMesh::_next_free_local_node_id
protectedinherited

Guaranteed globally unused IDs for use when adding new nodes or elements.

Definition at line 554 of file distributed_mesh.h.

◆ _next_free_unpartitioned_elem_id

dof_id_type libMesh::DistributedMesh::_next_free_unpartitioned_elem_id
protectedinherited

Definition at line 556 of file distributed_mesh.h.

◆ _next_free_unpartitioned_node_id

dof_id_type libMesh::DistributedMesh::_next_free_unpartitioned_node_id
protectedinherited

Definition at line 556 of file distributed_mesh.h.

◆ _next_unique_id

unique_id_type libMesh::MeshBase::_next_unique_id
protectedinherited

The next available unique id for assigning ids to DOF objects.

Definition at line 1418 of file mesh_base.h.

Referenced by libMesh::MeshBase::next_unique_id(), and libMesh::MeshBase::set_next_unique_id().

◆ _next_unpartitioned_unique_id

unique_id_type libMesh::DistributedMesh::_next_unpartitioned_unique_id
protectedinherited

The next available unique id for assigning ids to unpartitioned DOF objects.

Definition at line 563 of file distributed_mesh.h.

◆ _nodes

mapvector<Node *, dof_id_type> libMesh::DistributedMesh::_nodes
protectedinherited

The vertices (spatial coordinates) of the mesh.

Definition at line 528 of file distributed_mesh.h.

◆ _partitioner

std::unique_ptr<Partitioner> libMesh::MeshBase::_partitioner
protectedinherited

A partitioner to use at each prepare_for_use().

This will be built in the constructor of each derived class, but can be replaced by the user through the partitioner() accessor.

Definition at line 1412 of file mesh_base.h.

Referenced by libMesh::MeshBase::partitioner(), and libMesh::MeshBase::skip_partitioning().

◆ _point_locator

std::unique_ptr<PointLocatorBase> libMesh::MeshBase::_point_locator
mutableprotectedinherited

A PointLocator class for this mesh.

This will not actually be built unless needed. Further, since we want our point_locator() method to be const (yet do the dynamic allocating) this needs to be mutable. Since the PointLocatorBase::build() member is used, and it operates on a constant reference to the mesh, this is OK.

Definition at line 1398 of file mesh_base.h.

◆ _skip_partitioning

bool libMesh::MeshBase::_skip_partitioning
protectedinherited

If this is true then no partitioning should be done.

Definition at line 1424 of file mesh_base.h.

Referenced by libMesh::MeshBase::skip_partitioning().

◆ _skip_renumber_nodes_and_elements

bool libMesh::MeshBase::_skip_renumber_nodes_and_elements
protectedinherited

If this is true then renumbering will be kept to a minimum.

This is set when prepare_for_use() is called.

Definition at line 1431 of file mesh_base.h.

Referenced by libMesh::MeshBase::allow_renumbering().

◆ _spatial_dimension

unsigned char libMesh::MeshBase::_spatial_dimension
protectedinherited

The "spatial dimension" of the Mesh.

See the documentation for Mesh::spatial_dimension() for more information.

Definition at line 1459 of file mesh_base.h.

◆ boundary_info

std::unique_ptr<BoundaryInfo> libMesh::MeshBase::boundary_info
inherited

This class holds the boundary information.

It can store nodes, edges, and faces with a corresponding id that facilitates setting boundary conditions.

Direct access to this class will be removed in future libMesh versions. Use the get_boundary_info() accessor instead.

Definition at line 1363 of file mesh_base.h.

Referenced by libMesh::MeshBase::get_boundary_info().


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