|
libMesh
|
The UnstructuredMesh class is derived from the MeshBase class.
More...
#include <unstructured_mesh.h>
Public Types | |
| typedef std::set< elemset_id_type > | elemset_type |
| Typedef for the "set" container used to store elemset ids. More... | |
| typedef std::vector< GhostingFunctor * >::const_iterator | GhostingFunctorIterator |
| Iterator type for ghosting functor ranges. More... | |
| typedef Predicates::multi_predicate | Predicate |
| We need an empty, generic class to act as a predicate for this and derived mesh classes. More... | |
| typedef StoredRange< MeshBase::const_element_iterator, const Elem * > | ConstElemRange |
| typedef std::vector< std::pair< std::pair< const Elem *, unsigned int >, Real > > | constraint_rows_mapped_type |
| typedef std::map< const Node *, constraint_rows_mapped_type > | constraint_rows_type |
Public Member Functions | |
| UnstructuredMesh (const Parallel::Communicator &comm_in, unsigned char dim=1) | |
| Constructor. More... | |
| UnstructuredMesh (const UnstructuredMesh &)=default | |
| UnstructuredMesh uses a defaulted copy constructor. More... | |
| UnstructuredMesh (const MeshBase &) | |
| UnstructuredMesh constructor from arbitrary (e.g. More... | |
| UnstructuredMesh (UnstructuredMesh &&)=delete | |
| Move-constructor deleted in MeshBase. More... | |
| UnstructuredMesh & | operator= (const UnstructuredMesh &)=delete |
| Copy assignment is not allowed. More... | |
| UnstructuredMesh & | operator= (UnstructuredMesh &&other_mesh)=default |
| Move assignment is allowed, by subclasses who handle post_dofobject_moves() More... | |
| virtual MeshBase & | assign (MeshBase &&other_mesh) override=0 |
| Shim to allow operator = (&&) to behave like a virtual function without having to be one. More... | |
| virtual | ~UnstructuredMesh () |
| Destructor. More... | |
| virtual void | read (const std::string &name, void *mesh_data=nullptr, bool skip_renumber_nodes_and_elements=false, bool skip_find_neighbors=false, bool skip_detect_interior_parents=false) override |
Reads the file specified by name. More... | |
| virtual void | write (const std::string &name) const 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) const |
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_range (const SimpleRange< element_iterator > &range, const bool full_ordered=true) override |
| Converts a (conforming, non-refined) mesh with linear elements into a mesh with second-order elements. More... | |
| virtual void | all_complete_order_range (const SimpleRange< element_iterator > &range) override |
| Converts a (conforming, non-refined) mesh with linear elements into a mesh with "complete" order elements, i.e. 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... | |
| std::size_t | stitch_meshes (const MeshBase &other_mesh, boundary_id_type this_mesh_boundary, boundary_id_type other_mesh_boundary, Real tol=TOLERANCE, bool clear_stitched_boundary_ids=false, bool verbose=true, bool use_binary_search=true, bool enforce_all_nodes_match_on_boundaries=false, bool merge_boundary_nodes_all_or_nothing=false, bool remap_subdomain_ids=false, bool prepare_after_stitching=true) |
Stitch other_mesh to this mesh so that this mesh is the union of the two meshes. More... | |
| std::size_t | stitch_surfaces (boundary_id_type boundary_id_1, boundary_id_type boundary_id_2, Real tol=TOLERANCE, bool clear_stitched_boundary_ids=false, bool verbose=true, bool use_binary_search=true, bool enforce_all_nodes_match_on_boundaries=false, bool merge_boundary_nodes_all_or_nothing=false, bool prepare_after_stitching=true) |
| Similar to stitch_meshes, except that we stitch two adjacent surfaces within this mesh. More... | |
| virtual void | copy_nodes_and_elements (const MeshBase &other_mesh, const bool skip_find_neighbors=false, dof_id_type element_id_offset=0, dof_id_type node_id_offset=0, unique_id_type unique_id_offset=0, std::unordered_map< subdomain_id_type, subdomain_id_type > *id_remapping=nullptr, const bool skip_preparation=false) |
| Deep copy of nodes and elements from another mesh object (used by subclass copy constructors and by mesh merging operations) More... | |
| virtual void | move_nodes_and_elements (MeshBase &&other_mesh)=0 |
| Move node and elements from other_mesh to this mesh. More... | |
| virtual void | find_neighbors (const bool reset_remote_elements=false, const bool reset_current_list=true, const bool assert_valid=true) override |
| Other functions from MeshBase requiring re-definition. More... | |
| virtual bool | contract () override |
| Delete subactive (i.e. More... | |
| bool | operator== (const MeshBase &other_mesh) const |
| This tests for exactly-equal data in all the senses that a mathematician would care about (element connectivity, nodal coordinates), but in the senses a programmer would care about it allows for non-equal equivalence in some ways (we accept different Elem/Node addresses in memory) but not others (we do not accept different subclass types, nor even different Elem/Node ids). More... | |
| bool | operator!= (const MeshBase &other_mesh) const |
| bool | locally_equals (const MeshBase &other_mesh) const |
| This behaves the same as operator==, but only for the local and ghosted aspects of the mesh; i.e. More... | |
| virtual std::unique_ptr< MeshBase > | clone () const =0 |
| Virtual "copy constructor". More... | |
| virtual std::unique_ptr< Partitioner > & | partitioner () |
| A partitioner to use at each partitioning. More... | |
| const BoundaryInfo & | get_boundary_info () const |
| The information about boundary ids on the mesh. More... | |
| BoundaryInfo & | get_boundary_info () |
| Writable information about boundary ids on the mesh. More... | |
| virtual void | clear () |
| Deletes all the element and node data that is currently stored. More... | |
| virtual void | clear_elems ()=0 |
| Deletes all the element data that is currently stored. More... | |
| bool | is_prepared () const |
| Preparation | preparation () const |
| void | set_isnt_prepared () |
| Tells this we have done some operation where we should no longer consider ourself prepared. More... | |
| void | unset_is_prepared () |
| Tells this we have done some operation where we should no longer consider ourself prepared. More... | |
| void | unset_is_partitioned () |
| Tells this we have done some operation creating unpartitioned elements. More... | |
| void | unset_has_synched_id_counts () |
| Tells this we have done some operation (e.g. More... | |
| void | unset_has_neighbor_ptrs () |
| Tells this we have done some operation (e.g. More... | |
| void | unset_has_cached_elem_data () |
| Tells this we have done some operation (e.g. More... | |
| void | unset_has_interior_parent_ptrs () |
| Tells this we have done some operation (e.g. More... | |
| void | unset_has_removed_remote_elements () |
| Tells this we have done some operation (e.g. More... | |
| void | unset_has_removed_orphaned_nodes () |
| Tells this we have done some operation (e.g. More... | |
| void | unset_has_reinit_ghosting_functors () |
| Tells this we have done some operation (e.g. More... | |
| void | unset_has_boundary_id_sets () |
| Tells this we have done some operation which may have invalidated our cached boundary id sets. More... | |
| virtual bool | is_serial () const |
| virtual bool | is_serial_on_zero () const |
| virtual void | set_distributed () |
| Asserts that not all elements and nodes of the mesh necessarily exist on the current processor. More... | |
| virtual bool | is_replicated () const |
| virtual void | allgather () |
| Gathers all elements and nodes of the mesh onto every processor. More... | |
| virtual void | gather_to_zero () |
| Gathers all elements and nodes of the mesh onto processor zero. More... | |
| virtual void | delete_remote_elements () |
| When supported, 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... | |
| void | reinit_ghosting_functors () |
| Loops over ghosting functors and calls mesh_reinit() More... | |
| 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 |
| const std::set< Order > & | elem_default_orders () const |
| Order | supported_nodal_order () const |
| void | set_elem_dimensions (std::set< unsigned char > elem_dims) |
| Most of the time you should not need to call this, as the element dimensions will be set automatically by a call to cache_elem_data(), therefore only call this if you know what you're doing. More... | |
| void | add_elemset_code (dof_id_type code, MeshBase::elemset_type id_set) |
Tabulate a user-defined "code" for elements which belong to the element sets specified in id_set. More... | |
| unsigned int | n_elemsets () const |
| Returns the number of unique elemset ids which have been added via add_elemset_code(), which is the size of the _all_elemset_ids set. More... | |
| void | get_elemsets (dof_id_type elemset_code, MeshBase::elemset_type &id_set_to_fill) const |
| Look up the element sets for a given elemset code and vice-versa. More... | |
| dof_id_type | get_elemset_code (const MeshBase::elemset_type &id_set) const |
| std::vector< dof_id_type > | get_elemset_codes () const |
| Return a vector of all elemset codes defined on the mesh. More... | |
| void | change_elemset_code (dof_id_type old_code, dof_id_type new_code) |
| Replace elemset code "old_code" with "new_code". More... | |
| void | change_elemset_id (elemset_id_type old_id, elemset_id_type new_id) |
| Replace elemset id "old_id" with "new_id". More... | |
| unsigned int | spatial_dimension () const |
| void | set_spatial_dimension (unsigned char d) |
| Sets the "spatial dimension" of the Mesh. More... | |
| virtual dof_id_type | n_nodes () const =0 |
| virtual dof_id_type | parallel_n_nodes () const =0 |
| 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 |
| virtual dof_id_type | max_node_id () const =0 |
| unique_id_type | next_unique_id () const |
| virtual void | set_next_unique_id (unique_id_type id)=0 |
| Sets the next available unique id to be used. More... | |
| virtual void | reserve_nodes (const dof_id_type nn)=0 |
| Reserves space for a known number of nodes. More... | |
| virtual dof_id_type | n_elem () const =0 |
| virtual dof_id_type | parallel_n_elem () const =0 |
| virtual dof_id_type | max_elem_id () const =0 |
| virtual unique_id_type | parallel_max_unique_id () const =0 |
| virtual void | reserve_elem (const dof_id_type ne)=0 |
| Reserves space for a known number of elements. More... | |
| virtual void | update_parallel_id_counts ()=0 |
| Updates parallel caches so that methods like n_elem() accurately reflect changes on other processors. More... | |
| virtual dof_id_type | n_active_elem () const =0 |
| 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 Point & | point (const dof_id_type i) const =0 |
| virtual const Node & | node_ref (const dof_id_type i) const |
| virtual Node & | node_ref (const dof_id_type i) |
| virtual const Node * | node_ptr (const dof_id_type i) const =0 |
| virtual Node * | node_ptr (const dof_id_type i)=0 |
| virtual const Node * | query_node_ptr (const dof_id_type i) const =0 |
| virtual Node * | query_node_ptr (const dof_id_type i)=0 |
| virtual const Elem & | elem_ref (const dof_id_type i) const |
| virtual Elem & | elem_ref (const dof_id_type i) |
| virtual const Elem * | elem_ptr (const dof_id_type i) const =0 |
| virtual Elem * | elem_ptr (const dof_id_type i)=0 |
| virtual const Elem * | query_elem_ptr (const dof_id_type i) const =0 |
| virtual Elem * | query_elem_ptr (const dof_id_type i)=0 |
| virtual Node * | add_point (const Point &p, const dof_id_type id=DofObject::invalid_id, const processor_id_type proc_id=DofObject::invalid_processor_id)=0 |
Add a new Node at Point p to the end of the vertex array, with processor_id procid. More... | |
| virtual Node * | add_node (Node *n)=0 |
Add Node n to the end of the vertex array. More... | |
| virtual Node * | add_node (std::unique_ptr< Node > n)=0 |
| Version of add_node() taking a std::unique_ptr by value. More... | |
| virtual void | delete_node (Node *n)=0 |
| Removes the Node n from the mesh. More... | |
| virtual void | own_node (Node &) |
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 | renumber_node (dof_id_type old_id, dof_id_type new_id)=0 |
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 Elem * | add_elem (Elem *e)=0 |
Add elem e to the end of the element array. More... | |
| virtual Elem * | add_elem (std::unique_ptr< Elem > e)=0 |
| Version of add_elem() taking a std::unique_ptr by value. More... | |
| virtual Elem * | insert_elem (Elem *e)=0 |
Insert elem e to the element array, preserving its id and replacing/deleting any existing element with the same id. More... | |
| virtual Elem * | insert_elem (std::unique_ptr< Elem > e)=0 |
| Version of insert_elem() taking a std::unique_ptr by value. More... | |
| virtual void | delete_elem (Elem *e)=0 |
Removes element e from the mesh. More... | |
| virtual void | renumber_elem (dof_id_type old_id, dof_id_type new_id)=0 |
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... | |
| ElemMappingType | default_mapping_type () const |
| Returns the default master space to physical space mapping basis functions to be used on newly added elements. More... | |
| void | set_default_mapping_type (const ElemMappingType type) |
| Set the default master space to physical space mapping basis functions to be used on newly added elements. More... | |
| unsigned char | default_mapping_data () const |
| Returns any default data value used by the master space to physical space mapping. More... | |
| void | set_default_mapping_data (const unsigned char data) |
| Set the default master space to physical space mapping basis functions to be used on newly added elements. More... | |
| void | remove_orphaned_nodes () |
| Removes any orphaned nodes, nodes not connected to any elements. More... | |
| virtual void | renumber_nodes_and_elements ()=0 |
| After partitioning a mesh it is useful to renumber the nodes and elements so that they lie in contiguous blocks on the processors. More... | |
| virtual void | fix_broken_node_and_element_numbering ()=0 |
| There is no reason for a user to ever call this function. More... | |
| unsigned int | add_elem_integer (std::string name, bool allocate_data=true, dof_id_type default_value=DofObject::invalid_id) |
| Register an integer datum (of type dof_id_type) to be added to each element in the mesh. More... | |
| std::vector< unsigned int > | add_elem_integers (const std::vector< std::string > &names, bool allocate_data=true, const std::vector< dof_id_type > *default_values=nullptr) |
| Register integer data (of type dof_id_type) to be added to each element in the mesh, one string name for each new integer. More... | |
| unsigned int | get_elem_integer_index (std::string_view name) const |
| bool | has_elem_integer (std::string_view name) const |
| const std::string & | get_elem_integer_name (unsigned int i) const |
| unsigned int | n_elem_integers () const |
| template<typename T > | |
| unsigned int | add_elem_datum (const std::string &name, bool allocate_data=true, const T *default_value=nullptr) |
| Register a datum (of type T) to be added to each element in the mesh. More... | |
| template<typename T > | |
| std::vector< unsigned int > | add_elem_data (const std::vector< std::string > &names, bool allocate_data=true, const std::vector< T > *default_values=nullptr) |
| Register data (of type T) to be added to each element in the mesh. More... | |
| unsigned int | add_node_integer (std::string name, bool allocate_data=true, dof_id_type default_value=DofObject::invalid_id) |
| Register an integer datum (of type dof_id_type) to be added to each node in the mesh. More... | |
| std::vector< unsigned int > | add_node_integers (const std::vector< std::string > &names, bool allocate_data=true, const std::vector< dof_id_type > *default_values=nullptr) |
| Register integer data (of type dof_id_type) to be added to each node in the mesh. More... | |
| unsigned int | get_node_integer_index (std::string_view name) const |
| bool | has_node_integer (std::string_view name) const |
| const std::string & | get_node_integer_name (unsigned int i) const |
| unsigned int | n_node_integers () const |
| template<typename T > | |
| unsigned int | add_node_datum (const std::string &name, bool allocate_data=true, const T *default_value=nullptr) |
| Register a datum (of type T) to be added to each node in the mesh. More... | |
| template<typename T > | |
| std::vector< unsigned int > | add_node_data (const std::vector< std::string > &name, bool allocate_data=true, const std::vector< T > *default_values=nullptr) |
| Register data (of type T) to be added to each node in the mesh. More... | |
| void | prepare_for_use (const bool skip_renumber_nodes_and_elements, const bool skip_find_neighbors) |
| Prepare a newly created (or read) mesh for use. More... | |
| void | prepare_for_use (const bool skip_renumber_nodes_and_elements) |
| void | prepare_for_use () |
| void | complete_preparation () |
| virtual void | partition (const unsigned int n_parts) |
Call the default partitioner (currently metis_partition()). More... | |
| void | partition () |
| virtual void | redistribute () |
| Redistribute elements between processors. More... | |
| virtual void | update_post_partitioning () |
| Recalculate any cached data (or invalidate any caches that are computed on the fly) after elements and nodes have been repartitioned. More... | |
| 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_find_neighbors (bool allow) |
If false is passed then this mesh will no longer work to find element neighbors when being prepared for use. More... | |
| bool | allow_find_neighbors () const |
| void | allow_detect_interior_parents (bool allow) |
If false is passed then this mesh will no longer work to detect interior parents when being prepared for use. More... | |
| bool | allow_detect_interior_parents () 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 | allow_node_and_elem_unique_id_overlap (bool allow) |
If true is passed, then this mesh will no longer require unique_ids to be unique across the set of all DofObjects. More... | |
| bool | allow_node_and_elem_unique_id_overlap () const |
| void | skip_noncritical_partitioning (bool skip) |
| If true is passed in then the elements on this mesh will no longer be (re)partitioned, and the nodes on this mesh will only be repartitioned if they are found "orphaned" via coarsening or other removal of the last element responsible for their node/element processor id consistency. More... | |
| bool | skip_noncritical_partitioning () const |
| void | skip_partitioning (bool skip) |
| If true is passed in then nothing on this mesh will 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 | add_ghosting_functor (std::shared_ptr< 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... | |
| GhostingFunctorIterator | ghosting_functors_begin () const |
| Beginning of range of ghosting functors. More... | |
| GhostingFunctorIterator | ghosting_functors_end () const |
| End of range of ghosting functors. More... | |
| GhostingFunctor & | default_ghosting () |
| Default ghosting functor. More... | |
| void | subdomain_ids (std::set< subdomain_id_type > &ids, const bool global=true) const |
Constructs a list of all subdomain identifiers in the local mesh if global == false, and in the global mesh if global == true (default). More... | |
| subdomain_id_type | n_subdomains () const |
| subdomain_id_type | n_local_subdomains () const |
| unsigned int | n_partitions () const |
| std::string | get_info (const unsigned int verbosity=0, const bool global=true) const |
| void | print_info (std::ostream &os=libMesh::out, const unsigned int verbosity=0, const bool global=true) const |
| Prints relevant information about the mesh. More... | |
| void | all_second_order (const bool full_ordered=true) |
| Calls the range-based version of this function with a range consisting of all elements in the mesh. More... | |
| virtual void | all_complete_order () |
| Calls the range-based version of this function with a range consisting of all elements in 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... | |
| std::unique_ptr< PointLocatorBase > | sub_point_locator () const |
| void | set_point_locator_close_to_point_tol (Real val) |
| Set value used by PointLocatorBase::close_to_point_tol(). More... | |
| Real | get_point_locator_close_to_point_tol () 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... | |
| virtual void | libmesh_assert_valid_parallel_ids () const |
| Verify id and processor_id consistency of our elements and nodes containers. 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 (std::string_view name) const |
| ABSTRACT_ELEM_ITERATORS (,) ABSTRACT_ELEM_ITERATORS(active_ | |
| ABSTRACT_ELEM_ITERATORS (ancestor_,) ABSTRACT_ELEM_ITERATORS(subactive_ | |
| ABSTRACT_ELEM_ITERATORS (local_,) ABSTRACT_ELEM_ITERATORS(unpartitioned_ | |
| ABSTRACT_ELEM_ITERATORS (facelocal_,) ABSTRACT_ELEM_ITERATORS(level_ | |
| unsigned int level | ABSTRACT_ELEM_ITERATORS (pid_, processor_id_type pid) ABSTRACT_ELEM_ITERATORS(type_ |
| unsigned int level ElemType type | ABSTRACT_ELEM_ITERATORS (active_subdomain_, subdomain_id_type sid) ABSTRACT_ELEM_ITERATORS(active_subdomain_set_ |
| unsigned int level ElemType type std::set< subdomain_id_type > ss | ABSTRACT_ELEM_ITERATORS (not_active_,) ABSTRACT_ELEM_ITERATORS(not_ancestor_ |
| unsigned int level ElemType type std::set< subdomain_id_type > ss | ABSTRACT_ELEM_ITERATORS (not_subactive_,) ABSTRACT_ELEM_ITERATORS(not_local_ |
| unsigned int level ElemType type std::set< subdomain_id_type > ss | ABSTRACT_ELEM_ITERATORS (not_level_, unsigned int level) ABSTRACT_ELEM_ITERATORS(active_local_ |
| unsigned int level ElemType type std::set< subdomain_id_type > ss | ABSTRACT_ELEM_ITERATORS (active_not_local_,) ABSTRACT_ELEM_ITERATORS(active_unpartitioned_ |
| unsigned int level ElemType type std::set< subdomain_id_type > ss | ABSTRACT_ELEM_ITERATORS (active_type_, ElemType type) ABSTRACT_ELEM_ITERATORS(active_pid_ |
| unsigned int level ElemType type std::set< subdomain_id_type > ss processor_id_type pid | ABSTRACT_ELEM_ITERATORS (local_level_, unsigned int level) ABSTRACT_ELEM_ITERATORS(local_not_level_ |
| unsigned int level ElemType type std::set< subdomain_id_type > ss processor_id_type pid unsigned int level | ABSTRACT_ELEM_ITERATORS (active_local_subdomain_, subdomain_id_type sid) ABSTRACT_ELEM_ITERATORS(active_local_subdomain_set_ |
| ABSTRACT_ELEM_ITERATORS (semilocal_,) ABSTRACT_ELEM_ITERATORS(ghost_ | |
| ABSTRACT_ELEM_ITERATORS (active_semilocal_,) ABSTRACT_ELEM_ITERATORS(evaluable_ | |
| unsigned int level ElemType type std::set< subdomain_id_type > ss processor_id_type pid unsigned int level std::set< subdomain_id_type > virtual ss SimpleRange< element_iterator > | active_subdomain_elements_ptr_range (subdomain_id_type sid)=0 |
| virtual SimpleRange< const_element_iterator > | active_subdomain_elements_ptr_range (subdomain_id_type sid) const =0 |
| virtual SimpleRange< element_iterator > | active_local_subdomain_elements_ptr_range (subdomain_id_type sid)=0 |
| virtual SimpleRange< const_element_iterator > | active_local_subdomain_elements_ptr_range (subdomain_id_type sid) const =0 |
| virtual SimpleRange< element_iterator > | active_subdomain_set_elements_ptr_range (std::set< subdomain_id_type > ss)=0 |
| virtual SimpleRange< const_element_iterator > | active_subdomain_set_elements_ptr_range (std::set< subdomain_id_type > ss) const =0 |
| const ElemRange & | element_stored_range () |
| const ConstElemRange & | active_local_element_stored_range () const |
| void | clear_stored_ranges () |
| Clears stored ranges, to indicate that the mesh has changed and they should be regenerated when next needed. More... | |
| std::map< subdomain_id_type, std::string > & | set_subdomain_name_map () |
| const std::map< subdomain_id_type, std::string > & | get_subdomain_name_map () const |
| constraint_rows_type & | get_constraint_rows () |
| Constraint rows accessors. More... | |
| const constraint_rows_type & | get_constraint_rows () const |
| dof_id_type | n_constraint_rows () const |
| void | copy_constraint_rows (const MeshBase &other_mesh) |
| Copy the constraints from the other mesh to this mesh. More... | |
| template<typename T > | |
| void | copy_constraint_rows (const SparseMatrix< T > &constraint_operator, bool precondition_constraint_operator=false) |
| Copy the constraints from the given matrix to this mesh. More... | |
| void | print_constraint_rows (std::ostream &os=libMesh::out, bool print_nonlocal=false) const |
| Prints (from processor 0) all mesh constraint rows. More... | |
| std::string | get_local_constraints (bool print_nonlocal=false) const |
| Gets a string reporting all mesh constraint rows local to this processor. More... | |
| void | cache_elem_dims () |
| void | cache_elem_data () |
| void | sync_subdomain_name_map () |
| libMesh often expects all processors to know about names of all subdomain ids, but distributed mesh generators may only know about part of a mesh when creating names. 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 MeshBase & | interior_mesh () const |
| MeshBase & | interior_mesh () |
| void | set_interior_mesh (MeshBase &int_mesh) |
| Sets the interior mesh. More... | |
| const std::set< subdomain_id_type > & | get_mesh_subdomains () const |
| void | add_disjoint_neighbor_boundary_pairs (const boundary_id_type b1, const boundary_id_type b2, const RealVectorValue &translation) |
| Register a pair of boundaries as disjoint neighbor boundary pairs. More... | |
| PeriodicBoundaries * | get_disjoint_neighbor_boundary_pairs () |
| const PeriodicBoundaries * | get_disjoint_neighbor_boundary_pairs () const |
| void | remove_disjoint_boundary_pair (const boundary_id_type b1, const boundary_id_type b2) |
| const Parallel::Communicator & | comm () const |
| processor_id_type | n_processors () const |
| processor_id_type | processor_id () const |
Public Attributes | |
| const DofMap &dof_map LIBMESH_COMMA unsigned int | var_num |
| const DofMap &dof_map LIBMESH_COMMA unsigned int Elem * | ElemRange |
Protected Member Functions | |
| void | post_dofobject_moves (MeshBase &&other_mesh) |
| Moves any superclass data (e.g. More... | |
| void | copy_cached_data (const MeshBase &other_mesh) |
Helper class to copy cached data, to synchronize with a possibly unprepared other_mesh. More... | |
| virtual bool | subclass_locally_equals (const MeshBase &other_mesh) const =0 |
| Shim to allow operator == (&) to behave like a virtual function without having to be one. More... | |
| bool | nodes_and_elements_equal (const MeshBase &other_mesh) const |
| Tests for equality of all elements and nodes in the mesh. More... | |
| unsigned int & | set_n_partitions () |
| void | size_elem_extra_integers () |
| Size extra-integer arrays of all elements in the mesh. More... | |
| void | size_node_extra_integers () |
| Size extra-integer arrays of all nodes in the mesh. More... | |
| std::pair< std::vector< unsigned int >, std::vector< unsigned int > > | merge_extra_integer_names (const MeshBase &other) |
Merge extra-integer arrays from an other mesh. More... | |
Protected Attributes | |
| std::unique_ptr< PeriodicBoundaries > | _disjoint_neighbor_boundary_pairs |
| The disjoint neighbor boundary id pairs. More... | |
| std::unique_ptr< BoundaryInfo > | boundary_info |
| This class holds the boundary information. More... | |
| unsigned int | _n_parts |
| The number of partitions the mesh has. More... | |
| ElemMappingType | _default_mapping_type |
| The default mapping type (typically Lagrange) between master and physical space to assign to newly added elements. More... | |
| unsigned char | _default_mapping_data |
| The default mapping data (unused with Lagrange, used for nodal weight lookup index with rational bases) to assign to newly added elements. More... | |
| Preparation | _preparation |
Flags indicating in what ways this mesh has been prepared. More... | |
| std::unique_ptr< ElemRange > | _element_stored_range |
A cached ElemRange for threaded mutation of all semilocal elements of this mesh. More... | |
| std::unique_ptr< ConstElemRange > | _const_active_local_element_stored_range |
A cached ConstElemRange for threaded calculation on all local elements of this mesh. 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... | |
| MeshBase * | _interior_mesh |
Defaulting to this, a pointer to the mesh used to generate boundary elements on this. More... | |
| bool | _skip_noncritical_partitioning |
| If this is true then no partitioning should be done with the possible exception of orphaned nodes. More... | |
| bool | _skip_all_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 | _skip_find_neighbors |
If this is true then we will skip find_neighbors in prepare_for_use. More... | |
| bool | _skip_detect_interior_parents |
If this is true then we will skip detect_interior_parents in prepare_for_use. More... | |
| bool | _allow_remote_element_removal |
| If this is false then even on DistributedMesh remote elements will not be deleted during mesh preparation. More... | |
| bool | _allow_node_and_elem_unique_id_overlap |
| The Exodus reader (and potentially other readers in the future?) now supports setting Node and Elem unique_ids based on values from within the Exodus file itself, rather than generating them automatically in LibMesh. 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... | |
| std::set< Order > | _elem_default_orders |
| We cache the (default) order of the geometric elements present in the mesh. More... | |
| Order | _supported_nodal_order |
| We cache the maximum nodal order supported by all the mesh's elements (the minimum supported_nodal_order() of any element) More... | |
| std::set< subdomain_id_type > | _mesh_subdomains |
| We cache the subdomain ids of the elements present in the mesh. More... | |
| std::map< dof_id_type, const MeshBase::elemset_type * > | _elemset_codes |
| Map from "element set code" to list of set ids to which that element belongs (and vice-versa). More... | |
| std::map< MeshBase::elemset_type, dof_id_type > | _elemset_codes_inverse_map |
| MeshBase::elemset_type | _all_elemset_ids |
| unsigned char | _spatial_dimension |
| The "spatial dimension" of the Mesh. More... | |
| std::vector< std::string > | _elem_integer_names |
| The array of names for integer data associated with each element in the mesh. More... | |
| std::vector< dof_id_type > | _elem_integer_default_values |
| The array of default initialization values for integer data associated with each element in the mesh. More... | |
| std::vector< std::string > | _node_integer_names |
| The array of names for integer data associated with each node in the mesh. More... | |
| std::vector< dof_id_type > | _node_integer_default_values |
| The array of default initialization values for integer data associated with each node in the mesh. More... | |
| std::unique_ptr< GhostingFunctor > | _default_ghosting |
| The default geometric GhostingFunctor, used to implement standard libMesh element ghosting behavior. More... | |
| std::vector< GhostingFunctor * > | _ghosting_functors |
| The list of all GhostingFunctor objects to be used when distributing a DistributedMesh. More... | |
| std::map< GhostingFunctor *, std::shared_ptr< GhostingFunctor > > | _shared_functors |
| Hang on to references to any GhostingFunctor objects we were passed in shared_ptr form. More... | |
| constraint_rows_type | _constraint_rows |
| Real | _point_locator_close_to_point_tol |
| If nonzero, we will call PointLocatorBase::set_close_to_point_tol() on any PointLocators that we create. More... | |
| const Parallel::Communicator & | _communicator |
Private Member Functions | |
| std::size_t | stitching_helper (const MeshBase *other_mesh, boundary_id_type boundary_id_1, boundary_id_type boundary_id_2, Real tol, bool clear_stitched_boundary_ids, bool verbose, bool use_binary_search, bool enforce_all_nodes_match_on_boundaries, bool skip_find_neighbors, bool merge_boundary_nodes_all_or_nothing, bool remap_subdomain_ids, bool prepare_after_stitching) |
| Helper function for stitch_meshes and stitch_surfaces that does the mesh stitching. More... | |
The UnstructuredMesh class is derived from the MeshBase class.
The user will typically want to instantiate and use the Mesh class in her applications, which is currently a simple derived class of UnstructuredMesh. In order to use the adaptive mesh refinement capabilities of the library, first instantiate a MeshRefinement object with a reference to this class. Then call the appropriate refinement functions from that object. To interact with the boundary, instantiate a BoundaryMesh with a reference to this class, and then use that object's functionality.
Definition at line 48 of file unstructured_mesh.h.
|
protectedinherited |
Definition at line 2452 of file mesh_base.h.
|
protectedinherited |
Definition at line 2472 of file mesh_base.h.
|
protectedinherited |
Definition at line 2459 of file mesh_base.h.
|
protectedinherited |
Definition at line 2485 of file mesh_base.h.
|
inherited |
Definition at line 1865 of file mesh_base.h.
|
inherited |
Definition at line 1899 of file mesh_base.h.
|
inherited |
Definition at line 1900 of file mesh_base.h.
|
protectedinherited |
The original iterator classes weren't properly const-safe; relying on their const-incorrectness is now deprecated.
Definition at line 2447 of file mesh_base.h.
|
protectedinherited |
Definition at line 2467 of file mesh_base.h.
|
inherited |
Typedef for the "set" container used to store elemset ids.
The main requirements are that the entries be sorted and unique, so std::set works for this, but there may be more efficient alternatives.
Definition at line 456 of file mesh_base.h.
|
inherited |
Iterator type for ghosting functor ranges.
This has changed in the past and may change again; code should use auto or the type here.
Definition at line 1457 of file mesh_base.h.
|
protectedinherited |
Definition at line 2454 of file mesh_base.h.
|
protectedinherited |
Definition at line 2480 of file mesh_base.h.
|
inherited |
We need an empty, generic class to act as a predicate for this and derived mesh classes.
Definition at line 1575 of file mesh_base.h.
|
explicit |
Constructor.
Takes dim, the dimension of the mesh. The mesh dimension can be changed (and may automatically be changed by mesh generation/loading) later.
Definition at line 628 of file unstructured_mesh.C.
References libMesh::initialized(), and libMesh::libmesh_assert().
|
default |
UnstructuredMesh uses a defaulted copy constructor.
| libMesh::UnstructuredMesh::UnstructuredMesh | ( | const MeshBase & | other_mesh | ) |
UnstructuredMesh constructor from arbitrary (e.g.
Cartesian someday?) meshes
Definition at line 637 of file unstructured_mesh.C.
References libMesh::initialized(), and libMesh::libmesh_assert().
|
delete |
Move-constructor deleted in MeshBase.
|
virtual |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
Iterating over only local elements is most useful for computing on the mesh, so we only have a non-const version for now.
Definition at line 1928 of file mesh_base.C.
References libMesh::MeshBase::_const_active_local_element_stored_range, libMesh::Threads::in_threads, and libMesh::libmesh_assert().
Referenced by libMesh::FEMSystem::assemble_qoi(), libMesh::FEMSystem::assemble_qoi_derivative(), libMesh::FEMSystem::assembly(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::MeshTetInterface::check_hull_integrity(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::MeshTools::n_active_local_levels(), libMesh::FEMSystem::postprocess(), and libMesh::MeshBase::subdomain_ids().
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by assemble_SchroedingerEquation().
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtualinherited |
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
inherited |
Register a pair of boundaries as disjoint neighbor boundary pairs.
Definition at line 2232 of file mesh_base.C.
References libMesh::MeshBase::_disjoint_neighbor_boundary_pairs, libMesh::PeriodicBoundary::clone(), libMesh::PeriodicBoundaryBase::myboundary, and libMesh::PeriodicBoundaryBase::pairedboundary.
Referenced by DisjointNeighborTest::build_four_disjoint_elems(), DisjointNeighborTest::build_split_mesh_with_interface(), DisjointNeighborTest::build_two_disjoint_elems(), stitching_helper(), DisjointNeighborTest::testDisjointNeighborConflictError(), and DisjointNeighborTest::testStitchCrossMesh().
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::complete_preparation() after elements are added to and/or deleted from the mesh.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::GMVIO::_read_one_cell(), libMesh::MeshTools::Subdivision::add_boundary_ghosts(), LinearElasticityWithContact::add_contact_edge_elements(), add_cube_convex_hull_to_mesh(), libMesh::MeshRefinement::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::MeshTools::Modification::all_tri(), AllSecondOrderTest::allCompleteOrderMixed(), AllSecondOrderTest::allCompleteOrderRange(), AllSecondOrderTest::allSecondOrderMixed(), AllSecondOrderTest::allSecondOrderRange(), libMesh::MeshTools::Generation::build_extrusion(), DisjointNeighborTest::build_four_disjoint_elems(), libMesh::InfElemBuilder::build_inf_elem(), DisjointNeighborTest::build_split_mesh_with_interface(), DisjointNeighborTest::build_two_disjoint_elems(), VolumeTest::buildC0Polyhedron(), libMesh::MeshBase::copy_constraint_rows(), copy_nodes_and_elements(), libMesh::TriangleWrapper::copy_tri_to_mesh(), create_submesh(), libMesh::TetGenIO::element_in(), libMesh::UNVIO::elements_in(), libMesh::MeshTools::Modification::flatten(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::TetGenMeshInterface::pointset_convexhull(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::VTKIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::AbaqusIO::read_elements(), libMesh::UCDIO::read_implementation(), libMesh::GmshIO::read_mesh(), libMesh::DynaIO::read_mesh(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::MeshTools::Generation::surface_octahedron(), AllTriTest::test_helper_c0polyhedron(), AllTriTest::testAllTriC0PolygonOctagon(), VolumeTest::testC0Polygon(), SystemsTest::testDofCouplingWithVarGroups(), MeshTriangulationTest::testEdge3Mesh(), MeshTriangulationTest::testEdgesMesh(), MeshTriangulationTest::testHalfDomain(), NodalNeighborsTest::testOrientation(), MeshTriangulationTest::testPoly2TriBad1DMultiBoundary(), MeshTriangulationTest::testPoly2TriBad2DMultiBoundary(), MeshTriangulationTest::testPoly2TriBadEdges(), EquationSystemsTest::testPostInitAddElem(), SystemsTest::testProjectMatrix3D(), InfFERadialTest::testRefinement(), EquationSystemsTest::testReinitWithNodeElem(), SystemsTest::testSetSystemParameterOverEquationSystem(), BoundaryInfoTest::testShellFaceConstraints(), MeshTetTest::testTetsToTets(), MeshSubdomainIDTest::testUnpartitioned(), libMesh::NetGenMeshInterface::triangulate(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::Poly2TriTriangulator::triangulate_current_points(), libMesh::TetGenMeshInterface::triangulate_pointset(), and libMesh::MeshTetInterface::volume_to_surface_mesh().
Version of add_elem() taking a std::unique_ptr by value.
The version taking a dumb pointer will eventually be deprecated in favor of this version. This API is intended to indicate that ownership of the Elem is transferred to the Mesh when this function is called, and it should play more nicely with the Elem::build() API which has always returned a std::unique_ptr.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
inlineinherited |
Register data (of type T) to be added to each element in the mesh.
If the mesh already has elements, data is allocated in each.
Newly allocated values for the new datum with name names[i] will be initialized to default_values[i], or to meaningless memcpy output if default_values is null.
If type T is larger than dof_id_type, each datum will end up spanning multiple index values, but will be queried with the starting index number.
No type checking is done with this function! If you add data of type T, don't try to access it with a call specifying type U.
Definition at line 2621 of file mesh_base.h.
References libMesh::MeshBase::_elem_integer_names, libMesh::index_range(), libMesh::libmesh_assert(), and libMesh::MeshBase::size_elem_extra_integers().
|
inlineinherited |
Register a datum (of type T) to be added to each element in the mesh.
If the mesh already has elements, data by default is allocated in each of them. This may be expensive to do repeatedly; use add_elem_data instead. Alternatively, the allocate_data option can be manually set to false, but if this is done then a manual call to size_elem_extra_integers() will need to be done before the new space is usable.
Newly allocated values for the new datum will be initialized to *default_value if default_value is not null, or to meaningless memcpy output otherwise.
If type T is larger than dof_id_type, its data will end up spanning multiple index values, but will be queried with the starting index number.
No type checking is done with this function! If you add data of type T, don't try to access it with a call specifying type U.
Definition at line 2597 of file mesh_base.h.
References libMesh::MeshBase::_elem_integer_names, libMesh::MeshBase::add_elem_integer(), libMesh::DofObject::invalid_id, and libMesh::MeshBase::size_elem_extra_integers().
Referenced by ExtraIntegersTest::build_mesh().
|
inherited |
Register an integer datum (of type dof_id_type) to be added to each element in the mesh.
If the mesh already has elements, data by default is allocated in each of them. This may be expensive to do repeatedly; use add_elem_integers instead. Alternatively, the allocate_data option can be manually set to false, but if this is done then a manual call to size_elem_extra_integers() will need to be done before the new space is usable.
Newly allocated values for the new datum will be initialized to default_value
Definition at line 623 of file mesh_base.C.
References libMesh::MeshBase::_elem_integer_default_values, libMesh::MeshBase::_elem_integer_names, libMesh::index_range(), libMesh::Quality::name(), and libMesh::MeshBase::size_elem_extra_integers().
Referenced by libMesh::MeshBase::add_elem_datum(), libMesh::BoundaryInfo::add_elements(), ExtraIntegersTest::build_mesh(), ExtraIntegersTest::checkpoint_helper(), libMesh::ExodusII_IO::read(), libMesh::CheckpointIO::read_header(), ExtraIntegersTest::test_helper(), MeshStitchTest::testMeshStitchElemsets(), and WriteElemsetData::testWriteImpl().
|
inherited |
Register integer data (of type dof_id_type) to be added to each element in the mesh, one string name for each new integer.
If the mesh already has elements, data by default is allocated in each of them.
Newly allocated values for the new datum with name names[i] will be initialized to default_values[i], or to DofObject::invalid_id if default_values is null.
Definition at line 646 of file mesh_base.C.
References libMesh::MeshBase::_elem_integer_default_values, libMesh::MeshBase::_elem_integer_names, libMesh::index_range(), libMesh::DofObject::invalid_id, libMesh::libmesh_assert(), libMesh::Quality::name(), and libMesh::MeshBase::size_elem_extra_integers().
Referenced by libMesh::MeshBase::merge_extra_integer_names(), and libMesh::XdrIO::read_header().
|
inherited |
Tabulate a user-defined "code" for elements which belong to the element sets specified in id_set.
For example, suppose that we have two elemsets A and B with the following Elem ids: Elemset A = {1, 3} Elemset B = {2, 3}
This implies the following mapping from elem id to elemset id: Elem 1 -> {A} Elem 2 -> {B} Elem 3 -> {A,B}
In this case, we would need to tabulate three different elemset codes, e.g.: 0 -> {A} 1 -> {B} 2 -> {A,B}
Also sets up the inverse mapping, so that if one knows all the element sets an Elem belongs to, one can look up the corresponding elemset code.
Definition at line 456 of file mesh_base.C.
References libMesh::MeshBase::_all_elemset_ids, libMesh::MeshBase::_elemset_codes, and libMesh::MeshBase::_elemset_codes_inverse_map.
Referenced by libMesh::MeshBase::change_elemset_code(), libMesh::ExodusII_IO::read(), libMesh::XdrIO::read_header(), stitching_helper(), MeshStitchTest::testMeshStitchElemsets(), and WriteElemsetData::testWriteImpl().
|
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 1071 of file mesh_base.C.
References libMesh::MeshBase::_ghosting_functors, and libMesh::libmesh_assert().
Referenced by libMesh::DofMap::add_algebraic_ghosting_functor(), libMesh::DofMap::add_coupling_functor(), libMesh::MeshBase::add_ghosting_functor(), main(), libMesh::MeshBase::MeshBase(), and EquationSystemsTest::testDisableDefaultGhosting().
|
inlineinherited |
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 when using this method is managed by the shared_ptr mechanism.
Definition at line 1442 of file mesh_base.h.
References libMesh::MeshBase::_shared_functors, and libMesh::MeshBase::add_ghosting_functor().
Add Node n to the end of the vertex array.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), VolumeTest::buildC0Polyhedron(), libMesh::XdrIO::read_serialized_connectivity(), and AllTriTest::test_helper_c0polyhedron().
Version of add_node() taking a std::unique_ptr by value.
The version taking a dumb pointer will eventually be deprecated in favor of this version. This API is intended to indicate that ownership of the Node is transferred to the Mesh when this function is called, and it should play more nicely with the Node::build() API which has always returned a std::unique_ptr.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
inlineinherited |
Register data (of type T) to be added to each node in the mesh.
If the mesh already has nodes, data by default is allocated in each.
Newly allocated values for the new datum with name names[i] will be initialized to default_values[i], or to meaningless memcpy output if default_values is null.
If type T is larger than dof_id_type, its data will end up spanning multiple index values, but will be queried with the starting index number.
No type checking is done with this function! If you add data of type T, don't try to access it with a call specifying type U.
Definition at line 2670 of file mesh_base.h.
References libMesh::MeshBase::_node_integer_names, libMesh::index_range(), libMesh::libmesh_assert(), and libMesh::MeshBase::size_node_extra_integers().
|
inlineinherited |
Register a datum (of type T) to be added to each node in the mesh.
If the mesh already has nodes, data by default is allocated in each of them. This may be expensive to do repeatedly; use add_node_data instead. Alternatively, the allocate_data option can be manually set to false, but if this is done then a manual call to size_node_extra_integers() will need to be done before the new space is usable.
Newly allocated values for the new datum will be initialized to *default_value if default_value is not null, or to meaningless memcpy output otherwise.
If type T is larger than dof_id_type, its data will end up spanning multiple index values, but will be queried with the starting index number.
No type checking is done with this function! If you add data of type T, don't try to access it with a call specifying type U.
Definition at line 2646 of file mesh_base.h.
References libMesh::MeshBase::_node_integer_names, libMesh::MeshBase::add_node_integer(), libMesh::DofObject::invalid_id, and libMesh::MeshBase::size_node_extra_integers().
Referenced by libMesh::MeshTools::Modification::all_rbb(), ExtraIntegersTest::build_mesh(), libMesh::ExodusII_IO::read(), and libMesh::DynaIO::read_mesh().
|
inherited |
Register an integer datum (of type dof_id_type) to be added to each node in the mesh.
If the mesh already has nodes, data by default is allocated in each of them. This may be expensive to do repeatedly; use add_node_integers instead. Alternatively, the allocate_data option can be manually set to false, but if this is done then a manual call to size_node_extra_integers() will need to be done before the new space is usable.
Newly allocated values for the new datum will be initialized to default_value
Definition at line 712 of file mesh_base.C.
References libMesh::MeshBase::_node_integer_default_values, libMesh::MeshBase::_node_integer_names, libMesh::index_range(), libMesh::Quality::name(), and libMesh::MeshBase::size_node_extra_integers().
Referenced by libMesh::MeshBase::add_node_datum(), ExtraIntegersTest::build_mesh(), ExtraIntegersTest::checkpoint_helper(), libMesh::CheckpointIO::read_header(), and ExtraIntegersTest::test_helper().
|
inherited |
Register integer data (of type dof_id_type) to be added to each node in the mesh.
If the mesh already has nodes, data by default is allocated in each.
Newly allocated values for the new datum with name names[i] will be initialized to default_values[i], or to DofObject::invalid_id if default_values is null.
Definition at line 735 of file mesh_base.C.
References libMesh::MeshBase::_node_integer_default_values, libMesh::MeshBase::_node_integer_names, libMesh::index_range(), libMesh::DofObject::invalid_id, libMesh::libmesh_assert(), libMesh::Quality::name(), and libMesh::MeshBase::size_node_extra_integers().
Referenced by libMesh::MeshBase::merge_extra_integer_names(), and libMesh::XdrIO::read_header().
|
pure virtualinherited |
Add a new Node at Point p to the end of the vertex array, with processor_id procid.
Use DofObject::invalid_processor_id (default) to add a node to all processors, or this->processor_id() to add a node to the local processor only. If adding a node locally, passing an id other than DofObject::invalid_id will set that specific node id. Only do this in parallel if you are manually keeping ids consistent.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::Subdivision::add_boundary_ghosts(), add_cube_convex_hull_to_mesh(), libMesh::MeshRefinement::add_node(), libMesh::MeshTools::Modification::all_tri(), AllSecondOrderTest::allCompleteOrderMixed(), AllSecondOrderTest::allCompleteOrderRange(), AllSecondOrderTest::allSecondOrderMixed(), AllSecondOrderTest::allSecondOrderRange(), libMesh::MeshTools::Generation::build_delaunay_square(), DisjointNeighborTest::build_four_disjoint_elems(), libMesh::InfElemBuilder::build_inf_elem(), DisjointNeighborTest::build_split_mesh_with_interface(), DisjointNeighborTest::build_two_disjoint_elems(), libMesh::MeshBase::copy_constraint_rows(), copy_nodes_and_elements(), libMesh::TriangleWrapper::copy_tri_to_mesh(), create_submesh(), libMesh::TriangulatorInterface::insert_any_extra_boundary_points(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::TetGenIO::node_in(), libMesh::UNVIO::nodes_in(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::VTKIO::read(), libMesh::STLIO::read_ascii(), libMesh::STLIO::read_binary(), libMesh::UCDIO::read_implementation(), libMesh::GmshIO::read_mesh(), libMesh::DynaIO::read_mesh(), libMesh::AbaqusIO::read_nodes(), libMesh::CheckpointIO::read_nodes(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::MeshTools::Generation::surface_octahedron(), libMesh::BoundaryInfo::sync(), AllTriTest::test_helper_c0polyhedron(), AllTriTest::testAllTriC0PolygonOctagon(), VolumeTest::testC0Polygon(), VolumeTest::testC0PolyhedronCube(), VolumeTest::testC0PolyhedronHexagonalPrism(), SystemsTest::testDofCouplingWithVarGroups(), MeshTriangulationTest::testEdge3Mesh(), MeshTriangulationTest::testEdgesMesh(), MeshTriangulationTest::testHalfDomain(), NodalNeighborsTest::testOrientation(), MeshTriangulationTest::testPoly2TriBad1DMultiBoundary(), MeshTriangulationTest::testPoly2TriBad2DMultiBoundary(), MeshTriangulationTest::testPoly2TriBadEdges(), SystemsTest::testProjectMatrix3D(), InfFERadialTest::testRefinement(), SystemsTest::testSetSystemParameterOverEquationSystem(), BoundaryInfoTest::testShellFaceConstraints(), MeshTetTest::testTetsToTets(), MeshTriangulationTest::testTriangulator(), MeshTriangulationTest::testTriangulatorHoles(), MeshTriangulationTest::testTriangulatorMeshedHoles(), MeshTriangulationTest::testTriangulatorRoundHole(), MeshTriangulationTest::testTriangulatorSegments(), MeshTriangulationTest::testTriangulatorTrapMesh(), MeshSubdomainIDTest::testUnpartitioned(), libMesh::NetGenMeshInterface::triangulate(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::Poly2TriTriangulator::triangulate_current_points(), and triangulate_domain().
|
virtualinherited |
Calls the range-based version of this function with a range consisting of all elements in the mesh.
Definition at line 1801 of file mesh_base.C.
References libMesh::MeshBase::all_complete_order_range().
Referenced by AllSecondOrderTest::allCompleteOrder(), libMesh::TriangulatorInterface::increase_triangle_order(), and main().
|
overridevirtual |
Converts a (conforming, non-refined) mesh with linear elements into a mesh with "complete" order elements, i.e.
elements which can store degrees of freedom on any vertex, edge, or face. For example, a mesh consisting of Tet4 or Tet10 will be converted to a mesh with Tet14 etc.
Implements libMesh::MeshBase.
Definition at line 1800 of file unstructured_mesh.C.
References libMesh::Elem::complete_order_equivalent_type(), libMesh::MeshBase::mesh_dimension(), libMesh::MeshBase::n_nodes(), and libMesh::MeshBase::reserve_nodes().
|
overridevirtual |
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.
Prepare to identify (and then delete) a bunch of no-longer-used nodes.
If the second order element had any boundary conditions they should be transferred to the first-order element. The old boundary conditions will be removed from the BoundaryInfo data structure by insert_elem.
Implements libMesh::MeshBase.
Definition at line 1598 of file unstructured_mesh.C.
References libMesh::Elem::add_child(), libMesh::DofObject::add_extra_integers(), libMesh::Elem::build(), libMesh::Elem::child_ptr(), libMesh::BoundaryInfo::copy_boundary_ids(), libMesh::MeshBase::delete_node(), libMesh::Elem::first_order_equivalent_type(), libMesh::MeshBase::get_boundary_info(), libMesh::Elem::inherit_data_from(), libMesh::MeshBase::insert_elem(), libMesh::libmesh_assert(), libMesh::MeshBase::max_node_id(), libMesh::Elem::n_vertices(), libMesh::Elem::node_id(), libMesh::Elem::parent(), libMesh::MeshBase::prepare_for_use(), libMesh::BoundaryInfo::regenerate_id_sets(), libMesh::remote_elem, libMesh::Elem::replace_child(), libMesh::DofObject::set_extra_integer(), libMesh::DofObject::set_id(), libMesh::Elem::set_neighbor(), libMesh::Elem::set_node(), libMesh::Partitioner::set_node_processor_ids(), libMesh::Elem::set_p_level(), libMesh::Elem::set_p_refinement_flag(), libMesh::Elem::set_parent(), libMesh::Elem::set_refinement_flag(), and libMesh::DofObject::set_unique_id().
|
inherited |
Calls the range-based version of this function with a range consisting of all elements in the mesh.
Definition at line 1796 of file mesh_base.C.
References libMesh::MeshBase::all_second_order_range().
Referenced by AllSecondOrderTest::allSecondOrder(), build_domain(), libMesh::TriangulatorInterface::increase_triangle_order(), main(), ExtraIntegersTest::test_helper(), and InfFERadialTest::testRefinement().
|
overridevirtual |
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.
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.
Definition at line 1732 of file unstructured_mesh.C.
References libMesh::MeshBase::mesh_dimension(), libMesh::MeshBase::n_nodes(), libMesh::MeshBase::reserve_nodes(), and libMesh::Elem::second_order_equivalent_type().
|
inlinevirtualinherited |
Gathers all elements and nodes of the mesh onto every processor.
Reimplemented in libMesh::DistributedMesh.
Definition at line 376 of file mesh_base.h.
Referenced by libMesh::EquationSystems::allgather(), libMesh::MeshSerializer::MeshSerializer(), and PartitionerTest< PartitionerSubclass, MeshClass >::testPartition().
|
inlineinherited |
If false is passed then this mesh will no longer work to detect interior parents when being prepared for use.
Definition at line 1359 of file mesh_base.h.
References libMesh::MeshBase::_skip_detect_interior_parents.
Referenced by copy_nodes_and_elements(), libMesh::DistributedMesh::DistributedMesh(), and libMesh::ReplicatedMesh::ReplicatedMesh().
|
inlineinherited |
Definition at line 1360 of file mesh_base.h.
References libMesh::MeshBase::_skip_detect_interior_parents.
Referenced by copy_nodes_and_elements(), libMesh::DistributedMesh::DistributedMesh(), read(), and libMesh::ReplicatedMesh::ReplicatedMesh().
|
inlineinherited |
If false is passed then this mesh will no longer work to find element neighbors when being prepared for use.
Definition at line 1352 of file mesh_base.h.
References libMesh::MeshBase::_skip_find_neighbors.
Referenced by libMesh::DistributedMesh::DistributedMesh(), and libMesh::ReplicatedMesh::ReplicatedMesh().
|
inlineinherited |
Definition at line 1353 of file mesh_base.h.
References libMesh::MeshBase::_skip_find_neighbors.
Referenced by copy_nodes_and_elements(), libMesh::DistributedMesh::DistributedMesh(), libMesh::MeshBase::prepare_for_use(), read(), libMesh::ReplicatedMesh::ReplicatedMesh(), and stitching_helper().
|
inlineinherited |
If true is passed, then this mesh will no longer require unique_ids to be unique across the set of all DofObjects.
That is, although no two Elems (resp. Nodes) will share the same unique_id, a given Elem and Node might share the same unique_id.
Definition at line 1377 of file mesh_base.h.
References libMesh::MeshBase::_allow_node_and_elem_unique_id_overlap.
Referenced by libMesh::MeshTools::libmesh_assert_valid_unique_ids(), and libMesh::ExodusII_IO::read().
|
inlineinherited |
Definition at line 1378 of file mesh_base.h.
References libMesh::MeshBase::_allow_node_and_elem_unique_id_overlap.
|
inlineinherited |
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 1368 of file mesh_base.h.
References libMesh::MeshBase::_allow_remote_element_removal.
Referenced by AllSecondOrderTest::allCompleteOrder(), AllSecondOrderTest::allCompleteOrderDoNothing(), AllSecondOrderTest::allSecondOrder(), AllSecondOrderTest::allSecondOrderDoNothing(), libMesh::DistributedMesh::DistributedMesh(), libMesh::MeshSerializer::MeshSerializer(), libMesh::ReplicatedMesh::ReplicatedMesh(), ConnectedComponentsTest::testEdge(), PeriodicBCTest::testPeriodicBC(), and libMesh::MeshSerializer::~MeshSerializer().
|
inlineinherited |
Definition at line 1369 of file mesh_base.h.
References libMesh::MeshBase::_allow_remote_element_removal.
Referenced by copy_nodes_and_elements(), libMesh::DistributedMesh::DistributedMesh(), libMesh::ReplicatedMesh::ReplicatedMesh(), and stitching_helper().
|
inlineinherited |
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 1345 of file mesh_base.h.
References libMesh::MeshBase::_skip_renumber_nodes_and_elements.
Referenced by AllSecondOrderTest::allSecondOrderMixedFixing(), DisjointNeighborTest::build_four_disjoint_elems(), DisjointNeighborTest::build_two_disjoint_elems(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::DistributedMesh::DistributedMesh(), main(), AllSecondOrderTest::MixedFixingImpl(), libMesh::NameBasedIO::read(), libMesh::GMVIO::read(), libMesh::ReplicatedMesh::ReplicatedMesh(), libMesh::C0Polyhedron::retriangulate(), WriteVecAndScalar::setupTests(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), MeshGenerationTest::testBuildSphere(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), ConstraintOperatorTest::testCoreform(), DisjointNeighborTest::testDisjointNeighborConflictError(), MeshGenerationTest::tester(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), ExtraIntegersTest::testExtraIntegersExodusReading(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), EquationSystemsTest::testRefineThenReinitPreserveFlags(), EquationSystemsTest::testRepartitionThenReinit(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), DisjointNeighborTest::testStitchCrossMesh(), MeshSmootherTest::testVariationalPrism21MultipleSubdomains(), MeshInputTest::testVTKPreserveElemIds(), MeshInputTest::testVTKPreserveSubdomainIds(), WriteNodesetData::testWriteImpl(), WriteSidesetData::testWriteImpl(), and WriteElemsetData::testWriteImpl().
|
inlineinherited |
Definition at line 1346 of file mesh_base.h.
References libMesh::MeshBase::_skip_renumber_nodes_and_elements.
Referenced by copy_nodes_and_elements(), libMesh::DistributedMesh::DistributedMesh(), libMesh::MeshBase::prepare_for_use(), read(), and libMesh::ReplicatedMesh::ReplicatedMesh().
Shim to allow operator = (&&) to behave like a virtual function without having to be one.
Implements libMesh::MeshBase.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
inherited |
Definition at line 1959 of file mesh_base.C.
References libMesh::MeshBase::_elem_default_orders, libMesh::MeshBase::_elem_dims, libMesh::MeshBase::_mesh_subdomains, libMesh::MeshBase::_preparation, libMesh::MeshBase::_spatial_dimension, libMesh::MeshBase::_supported_nodal_order, libMesh::ParallelObject::comm(), libMesh::MeshBase::Preparation::has_cached_elem_data, libMesh::MeshBase::is_serial(), libMesh::MAXIMUM, libMesh::MeshBase::mesh_dimension(), TIMPI::Communicator::min(), and TIMPI::Communicator::set_union().
Referenced by libMesh::MeshBase::cache_elem_dims(), libMesh::MeshBase::complete_preparation(), main(), libMesh::MeshBase::set_elem_dimensions(), and MeshSmootherTest::testVariationalSmoother().
|
inherited |
cache_elem_data which caches data in addition to elem dimensions (e.g.elem subdomain ids) 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.
Definition at line 1951 of file mesh_base.C.
References libMesh::MeshBase::cache_elem_data().
|
inherited |
Replace elemset code "old_code" with "new_code".
This function loops over all elements and changes the extra integer corresponding to the "elemset_code" label, and updates the _elemset_codes and _elemset_codes_inverse_map members. Does not change the elemset ids of any of the sets.
Definition at line 512 of file mesh_base.C.
References libMesh::MeshBase::_elemset_codes, libMesh::MeshBase::_elemset_codes_inverse_map, libMesh::MeshBase::add_elemset_code(), libMesh::MeshBase::element_stored_range(), libMesh::MeshBase::get_elem_integer_index(), libMesh::MeshBase::has_elem_integer(), and libMesh::Threads::parallel_for().
|
inherited |
Replace elemset id "old_id" with "new_id".
Does not change any of the elemset codes, so does not need to loop over the elements themselves.
Definition at line 565 of file mesh_base.C.
References libMesh::MeshBase::_all_elemset_ids, libMesh::MeshBase::_elemset_codes, and libMesh::MeshBase::_elemset_codes_inverse_map.
|
virtualinherited |
Deletes all the element and node data that is currently stored.
elem and node extra_integer data is nevertheless retained here, for better compatibility between that feature and older code's use of MeshBase::clear()
Reimplemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Definition at line 1029 of file mesh_base.C.
References libMesh::MeshBase::_constraint_rows, libMesh::MeshBase::_elem_default_orders, libMesh::MeshBase::_elem_dims, libMesh::MeshBase::_elemset_codes, libMesh::MeshBase::_elemset_codes_inverse_map, libMesh::MeshBase::_n_parts, libMesh::MeshBase::_preparation, libMesh::MeshBase::_supported_nodal_order, libMesh::MeshBase::boundary_info, libMesh::MeshBase::clear_point_locator(), libMesh::MeshBase::clear_stored_ranges(), and libMesh::MAXIMUM.
Referenced by libMesh::MeshTools::Generation::build_delaunay_square(), DisjointNeighborTest::build_four_disjoint_elems(), DisjointNeighborTest::build_split_mesh_with_interface(), libMesh::ReplicatedMesh::clear(), libMesh::DistributedMesh::clear(), libMesh::TriangleWrapper::copy_tri_to_mesh(), create_submesh(), main(), libMesh::AbaqusIO::read(), libMesh::STLIO::read(), libMesh::GMVIO::read(), libMesh::ExodusII_IO::read(), libMesh::VTKIO::read(), libMesh::GmshIO::read_mesh(), libMesh::DynaIO::read_mesh(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::BoundaryInfo::sync(), MeshAssignTest::testMeshMoveAssign(), libMesh::NetGenMeshInterface::triangulate(), and libMesh::MeshBase::~MeshBase().
|
pure virtualinherited |
Deletes all the element data that is currently stored.
No Node is removed from the mesh, however even NodeElem elements are deleted, so the remaining Nodes will be considered "unused" and cleared unless they are reconnected to new elements before the next preparation step.
This does not affect BoundaryInfo data; any boundary information associated elements should already be cleared.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::TriangulatorInterface::elems_to_segments(), and libMesh::Poly2TriTriangulator::triangulate_current_points().
|
inherited |
Releases the current PointLocator object.
Definition at line 1859 of file mesh_base.C.
References libMesh::MeshBase::_point_locator.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::MeshBase::clear(), contract(), libMesh::ReplicatedMesh::delete_elem(), libMesh::DistributedMesh::delete_elem(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::MeshTools::Modification::distort(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::MeshBase::prepare_for_use(), libMesh::MeshTools::Modification::redistribute(), libMesh::MeshTools::Modification::rotate(), libMesh::MeshTools::Modification::scale(), libMesh::MeshTools::Modification::smooth(), libMesh::MeshTools::Modification::translate(), and libMesh::MeshBase::unset_is_prepared().
|
inherited |
Clears stored ranges, to indicate that the mesh has changed and they should be regenerated when next needed.
Definition at line 1943 of file mesh_base.C.
References libMesh::MeshBase::_const_active_local_element_stored_range, and libMesh::MeshBase::_element_stored_range.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::MeshBase::clear(), libMesh::ReplicatedMesh::delete_elem(), libMesh::DistributedMesh::delete_elem(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::MeshBase::prepare_for_use(), libMesh::ReplicatedMesh::renumber_elem(), libMesh::DistributedMesh::renumber_elem(), and libMesh::MeshBase::unset_is_prepared().
|
pure virtualinherited |
Virtual "copy constructor".
The copy will be of the same subclass as this, and will satisfy "copy == this" when it is created.
Implemented in libMesh::DistributedMesh, libMesh::ReplicatedMesh, libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by LinearElasticityWithContact::get_least_and_max_gap_function(), libMesh::ErrorVector::plot_error(), LinearElasticityWithContact::residual_and_jacobian(), libMesh::BoundaryInfo::sync(), DisjointNeighborTest::testCloneEquality(), BoundaryInfoTest::testEdgeBoundaryConditions(), BoundaryInfoTest::testMesh(), MeshInputTest::testProjectionRegression(), BoundaryInfoTest::testShellFaceConstraints(), and libMesh::MeshTools::valid_is_prepared().
|
inlineinherited |
Parallel::Communicator object used by this mesh. Definition at line 97 of file parallel_object.h.
References libMesh::ParallelObject::_communicator.
Referenced by libMesh::__libmesh_petsc_diff_solver_jacobian(), libMesh::__libmesh_petsc_diff_solver_monitor(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::__libmesh_tao_equality_constraints(), libMesh::__libmesh_tao_equality_constraints_jacobian(), libMesh::__libmesh_tao_gradient(), libMesh::__libmesh_tao_hessian(), libMesh::__libmesh_tao_inequality_constraints(), libMesh::__libmesh_tao_inequality_constraints_jacobian(), libMesh::__libmesh_tao_objective(), libMesh::MeshRefinement::_coarsen_elements(), libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult_add(), libMesh::MeshRefinement::_refine_elements(), libMesh::MeshRefinement::_smooth_flags(), libMesh::DofMap::add_constraints_to_send_list(), add_cube_convex_hull_to_mesh(), libMesh::PetscDMWrapper::add_dofs_helper(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::TransientRBConstruction::add_IC_to_RB_space(), libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::CondensedEigenSystem::add_matrices(), libMesh::EigenSystem::add_matrices(), libMesh::System::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::DofMap::add_variable(), libMesh::DofMap::add_variables(), libMesh::System::add_vector(), libMesh::MeshTools::Modification::all_tri(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::RBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::assemble_affine_expansion(), libMesh::AdvectionSystem::assemble_claw_rhs(), libMesh::FEMSystem::assemble_qoi(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::MeshCommunication::assign_global_indices(), libMesh::Partitioner::assign_partitioning(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_section(), libMesh::PetscDMWrapper::build_sf(), libMesh::MeshBase::cache_elem_data(), libMesh::System::calculate_norm(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::MeshTetInterface::check_hull_integrity(), libMesh::MeshBase::complete_preparation(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::DofMap::computed_sparsity_already(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::ContinuationSystem::ContinuationSystem(), libMesh::MeshBase::copy_constraint_rows(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::CondensedEigenSystem::copy_super_to_sub(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::create_bounding_box(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::create_nodal_bounding_box(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::MeshTools::create_subdomain_bounding_box(), libMesh::PetscMatrix< T >::create_submatrix_nosort(), create_wrapped_function(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::RBEIMEvaluation::distribute_bfs(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), DMVariableBounds_libMesh(), libMesh::DTKSolutionTransfer::DTKSolutionTransfer(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::EpetraVector< T >::EpetraVector(), AssembleOptimization::equality_constraints(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::SmoothnessEstimator::estimate_smoothness(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::DofMap::gather_constraints(), libMesh::MeshfreeInterpolation::gather_remote_data(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::RBEIMEvaluation::get_eim_basis_function_node_value(), libMesh::RBEIMEvaluation::get_eim_basis_function_side_value(), libMesh::RBEIMEvaluation::get_eim_basis_function_value(), libMesh::System::get_info(), libMesh::MeshBase::get_info(), libMesh::DofMap::get_info(), libMesh::RBEIMEvaluation::get_interior_basis_functions_as_vecs(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::RBEIMConstruction::get_max_abs_value(), libMesh::RBEIMConstruction::get_node_max_abs_value(), libMesh::RBEIMEvaluation::get_parametrized_function_node_value(), libMesh::RBEIMEvaluation::get_parametrized_function_side_value(), libMesh::RBEIMEvaluation::get_parametrized_function_value(), libMesh::RBEIMConstruction::get_random_point(), libMesh::MeshTetInterface::improve_hull_integrity(), AssembleOptimization::inequality_constraints(), AssembleOptimization::inequality_constraints_jacobian(), libMesh::LocationMap< T >::init(), libMesh::TimeSolver::init(), libMesh::StaticCondensation::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::AdvectionSystem::init_data(), libMesh::ClawSystem::init_data(), libMesh::PetscDMWrapper::init_petscdm(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBEIMConstruction::inner_product(), integrate_function(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_equal_connectivity(), libMesh::MeshTools::libmesh_assert_equal_points(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::libmesh_petsc_linesearch_shellfunc(), libMesh::libmesh_petsc_preconditioner_apply(), libMesh::libmesh_petsc_recalculate_monitor(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_interface(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_postcheck(), libMesh::libmesh_petsc_snes_precheck(), libMesh::libmesh_petsc_snes_residual(), libMesh::libmesh_petsc_snes_residual_helper(), libMesh::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::limit_overrefined_boundary(), libMesh::MeshRefinement::limit_underrefined_boundary(), libMesh::LinearImplicitSystem::LinearImplicitSystem(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshRefinement::make_flags_parallel_consistent(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_new_nodes_parallel_consistent(), libMesh::MeshCommunication::make_node_bcids_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), libMesh::FEMSystem::mesh_position_set(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), LinearElasticityWithContact::move_mesh(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshTools::n_connected_components(), libMesh::DofMap::n_constrained_dofs(), libMesh::MeshBase::n_constraint_rows(), libMesh::DofMap::n_dofs(), libMesh::DofMap::n_dofs_per_processor(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::MeshTools::n_levels(), MixedOrderTest::n_neighbor_links(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::SparsityPattern::Build::n_nonzeros(), libMesh::MeshTools::n_p_levels(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::RBEIMEvaluation::node_distribute_bfs(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::RBEIMConstruction::node_inner_product(), libMesh::PetscVector< libMesh::Number >::operator=(), libMesh::MeshBase::operator==(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_n_elem(), libMesh::DistributedMesh::parallel_n_nodes(), libMesh::SparsityPattern::Build::parallel_sync(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::MeshTools::paranoid_n_levels(), libMesh::Partitioner::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::petsc_auto_fieldsplit(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Partitioner::processor_pairs_to_interface_nodes(), libMesh::InterMeshProjection::project_system_vectors(), FEMParameters::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO::read_header(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::RBEIMEvaluation::read_in_interior_basis_functions(), libMesh::RBEIMEvaluation::read_in_node_basis_functions(), libMesh::RBEIMEvaluation::read_in_side_basis_functions(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), MeshFunctionTest::read_variable_info_from_output_data(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::StaticCondensationDofMap::reinit(), libMesh::BoundaryInfo::remove_edge_id(), libMesh::BoundaryInfo::remove_node_id(), libMesh::BoundaryInfo::remove_shellface_id(), libMesh::BoundaryInfo::remove_side_id(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), LinearElasticityWithContact::residual_and_jacobian(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), scale_mesh_and_plot(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::send_and_insert_dof_values(), libMesh::TransientRBConstruction::set_error_temporal_data(), libMesh::Partitioner::set_interface_node_processor_ids_BFS(), libMesh::Partitioner::set_interface_node_processor_ids_linear(), libMesh::Partitioner::set_interface_node_processor_ids_petscpartitioner(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::RBEIMEvaluation::side_distribute_bfs(), libMesh::RBEIMEvaluation::side_gather_bfs(), libMesh::RBEIMConstruction::side_inner_product(), libMesh::Partitioner::single_partition(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::VariationalMeshSmoother::smooth(), libMesh::ClawSystem::solve_conservation_law(), libMesh::split_mesh(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::MeshBase::subdomain_ids(), libMesh::BoundaryInfo::sync(), libMesh::MeshBase::sync_subdomain_name_map(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), MeshFunctionTest::test_bad_gradient_var_with_out_of_mesh_value(), MeshFunctionTest::test_bad_hessian_var_with_out_of_mesh_value(), libMesh::MeshRefinement::test_level_one(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), libMesh::MeshRefinement::test_unflagged(), DofMapTest::testBadElemFECombo(), SystemsTest::testBlockRestrictedVarNDofs(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), VolumeTest::testC0PolygonMethods(), VolumeTest::testC0PolyhedronMethods(), ConstraintOperatorTest::testCoreform(), ConnectedComponentsTest::testEdge(), MeshInputTest::testExodusIGASidesets(), MeshTriangulationTest::testFoundCenters(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), PointLocatorTest::testPlanar(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testProjectCubeWithMeshFunction(), BoundaryInfoTest::testRenumber(), BoundaryInfoTest::testSelectiveRenumber(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), MeshTriangulationTest::testTriangulatorRoundHole(), MeshSmootherTest::testVariationalSmoother(), libMesh::MeshTools::total_weight(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::Poly2TriTriangulator::triangulate(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::MeshRefinement::uniformly_coarsen(), update_current_local_solution(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::MeshTools::volume(), libMesh::STLIO::write(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::VTKIO::write_nodal_data(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), libMesh::RBEvaluation::write_out_vectors(), libMesh::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::RBDataSerialization::RBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::TransientRBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::RBEIMEvaluationSerialization::write_to_file(), and libMesh::RBDataSerialization::RBSCMEvaluationSerialization::write_to_file().
|
inherited |
Definition at line 874 of file mesh_base.C.
References libMesh::MeshBase::_allow_remote_element_removal, libMesh::MeshBase::_preparation, libMesh::MeshBase::_skip_detect_interior_parents, libMesh::MeshBase::_skip_find_neighbors, libMesh::MeshBase::_skip_renumber_nodes_and_elements, libMesh::MeshBase::cache_elem_data(), libMesh::ParallelObject::comm(), libMesh::MeshBase::delete_remote_elements(), libMesh::MeshBase::detect_interior_parents(), libMesh::MeshBase::find_neighbors(), libMesh::MeshBase::get_boundary_info(), libMesh::MeshBase::Preparation::has_boundary_id_sets, libMesh::MeshBase::Preparation::has_cached_elem_data, libMesh::MeshBase::Preparation::has_interior_parent_ptrs, libMesh::MeshBase::Preparation::has_neighbor_ptrs, libMesh::MeshBase::Preparation::has_reinit_ghosting_functors, libMesh::MeshBase::Preparation::has_removed_orphaned_nodes, libMesh::MeshBase::Preparation::has_removed_remote_elements, libMesh::MeshBase::Preparation::has_synched_id_counts, libMesh::MeshBase::Preparation::is_partitioned, libMesh::MeshBase::is_serial(), libMesh::libmesh_assert(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::MeshBase::n_unpartitioned_elem(), libMesh::MeshBase::n_unpartitioned_nodes(), libMesh::MeshBase::partition(), libMesh::BoundaryInfo::regenerate_id_sets(), libMesh::MeshBase::reinit_ghosting_functors(), libMesh::MeshBase::remove_orphaned_nodes(), libMesh::MeshBase::renumber_nodes_and_elements(), libMesh::MeshBase::skip_partitioning(), and libMesh::MeshBase::update_parallel_id_counts().
Referenced by libMesh::MeshBase::prepare_for_use(), MeshBaseTest::testMeshBaseVerifyHasCachedElemData(), MeshBaseTest::testMeshBaseVerifyHasNeighborPtrs(), and MeshBaseTest::testMeshBaseVerifyRemovalPreparation().
|
overridevirtual |
Delete subactive (i.e.
children of coarsened) elements. This removes all elements descended from currently active elements in the mesh.
Implements libMesh::MeshBase.
Definition at line 1535 of file unstructured_mesh.C.
References libMesh::as_range(), libMesh::MeshBase::clear_point_locator(), libMesh::MeshBase::delete_elem(), libMesh::MeshBase::ghosting_functors_begin(), libMesh::MeshBase::ghosting_functors_end(), libMesh::libmesh_assert(), and libMesh::MeshBase::renumber_nodes_and_elements().
|
protectedinherited |
Helper class to copy cached data, to synchronize with a possibly unprepared other_mesh.
Definition at line 2391 of file mesh_base.C.
References libMesh::MeshBase::_elem_default_orders, libMesh::MeshBase::_elem_dims, libMesh::MeshBase::_mesh_subdomains, libMesh::MeshBase::_spatial_dimension, and libMesh::MeshBase::_supported_nodal_order.
|
inherited |
Copy the constraints from the other mesh to this mesh.
Definition at line 2450 of file mesh_base.C.
References libMesh::MeshBase::_constraint_rows, libMesh::MeshBase::elem_ptr(), libMesh::MeshBase::get_constraint_rows(), and libMesh::MeshBase::node_ptr().
Referenced by libMesh::DistributedMesh::DistributedMesh(), libMesh::ReplicatedMesh::ReplicatedMesh(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), ConstraintOperatorTest::testCoreform(), and ConnectedComponentsTest::testEdge().
|
inherited |
Copy the constraints from the given matrix to this mesh.
The constraint_operator should be an mxn matrix, where m == this->n_nodes() and the operator indexing matches the current node indexing. This may require users to disable mesh renumbering in between loading a mesh file and loading a constraint matrix which matches it.
If any "constraint" rows in the matrix are unit vectors, the node corresponding to that row index will be left unconstrained, and will be used to constrain any other nodes which have a non-zero in the column index of that unit vector.
For each matrix column index which does not correspond to an existing node, a new NodeElem will be added to the mesh on which to store the new unconstrained degree(s) of freedom.
If precondition_constraint_operator is true, then the values of those new unconstrained degrees of freedom may be scaled to improve the conditioning of typical PDE matrices integrated on constrained mesh elements.
T for the constraint_operator in this function should be Real or Number ... and the data should be Real - we just allow complex T for the sake of subclasses which have to be configured and compiled with only one runtime option.
Definition at line 2474 of file mesh_base.C.
References libMesh::MeshBase::_constraint_rows, libMesh::MeshBase::_elem_default_orders, libMesh::MeshBase::_elem_dims, libMesh::MeshBase::_mesh_subdomains, libMesh::MeshBase::_supported_nodal_order, libMesh::MeshBase::add_elem(), libMesh::MeshBase::add_point(), TIMPI::Communicator::allgather(), libMesh::Elem::build(), libMesh::ParallelObject::comm(), libMesh::Elem::default_order(), libMesh::MeshBase::elem_ptr(), libMesh::SparseMatrix< T >::get_row(), libMesh::DofObject::id(), libMesh::index_range(), libMesh::libmesh_assert(), libMesh::libmesh_real(), libMesh::SparseMatrix< T >::m(), libMesh::make_range(), libMesh::SparseMatrix< T >::n(), libMesh::MeshBase::n_nodes(), libMesh::MeshBase::node_ptr(), libMesh::MeshBase::node_ref(), libMesh::NODEELEM, libMesh::DofObject::processor_id(), libMesh::Real, libMesh::SparseMatrix< T >::row_start(), libMesh::SparseMatrix< T >::row_stop(), TIMPI::Communicator::set_union(), libMesh::MeshBase::subdomain_ids(), libMesh::Elem::supported_nodal_order(), and libMesh::TOLERANCE.
|
virtual |
Deep copy of nodes and elements from another mesh object (used by subclass copy constructors and by mesh merging operations)
This will not copy most "high level" data in the mesh; that is done separately by constructors. An exception is that, if the other_mesh has element or node extra_integer data, any names for that data which do not already exist on this mesh are added so that all such data can be copied.
If an id_remapping map is provided, then element subdomain ids in other_mesh will be converted using it before adding them to this mesh.
For backwards compatibility, this does some limited mesh preparation after the copy: everything except for renumbering, remote element removal, and partitioning. To skip just the step of that preparation which finds new neighbor_ptr links between elements, set skip_find_neighbors. To skip all of that preparation, set skip_preparation. If preparation is skipped, it is the users responsibility to set the flags indicating what preparation may still be necessary before using the mesh later.
Definition at line 645 of file unstructured_mesh.C.
References libMesh::MeshBase::_elem_integer_names, libMesh::MeshBase::_interior_mesh, libMesh::MeshBase::_node_integer_names, libMesh::Elem::add_child(), libMesh::MeshBase::add_elem(), libMesh::DofObject::add_extra_integers(), libMesh::MeshBase::add_point(), libMesh::MeshBase::allow_detect_interior_parents(), libMesh::MeshBase::allow_find_neighbors(), libMesh::MeshBase::allow_remote_element_removal(), libMesh::MeshBase::allow_renumbering(), libMesh::Elem::disconnected_clone(), libMesh::MeshBase::elem_ptr(), libMesh::MeshBase::element_stored_range(), libMesh::DofObject::id(), libMesh::MeshBase::interior_mesh(), libMesh::MeshBase::is_prepared(), libMesh::libmesh_assert(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_amr_elem_ids(), libMesh::MeshBase::merge_extra_integer_names(), libMesh::MeshBase::n_elem(), libMesh::MeshBase::n_nodes(), libMesh::MeshBase::n_partitions(), libMesh::ParallelObject::n_processors(), libMesh::Elem::neighbor_ptr(), libMesh::Threads::parallel_for(), libMesh::MeshBase::parallel_max_unique_id(), libMesh::Elem::parent(), libMesh::MeshBase::prepare_for_use(), libMesh::remote_elem, libMesh::MeshBase::reserve_elem(), libMesh::MeshBase::reserve_nodes(), libMesh::MeshBase::set_interior_mesh(), libMesh::Elem::set_neighbor(), libMesh::MeshBase::set_next_unique_id(), libMesh::MeshBase::skip_partitioning(), and libMesh::MeshBase::unset_is_prepared().
Referenced by libMesh::DistributedMesh::DistributedMesh(), libMesh::ReplicatedMesh::ReplicatedMesh(), and stitching_helper().
| void libMesh::UnstructuredMesh::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.
This mesh is written to the pid_mesh reference which you must create and pass to the function.
Definition at line 1423 of file unstructured_mesh.C.
References create_submesh(), libMesh::ParallelObject::n_processors(), and libMesh::out.
| void libMesh::UnstructuredMesh::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.
Definition at line 1458 of file unstructured_mesh.C.
References libMesh::MeshBase::_node_integer_names, libMesh::MeshBase::add_elem(), libMesh::DofObject::add_extra_integers(), libMesh::MeshBase::add_point(), libMesh::BoundaryInfo::add_side(), libMesh::as_range(), libMesh::BoundaryInfo::boundary_ids(), libMesh::MeshBase::clear(), libMesh::MeshBase::delete_remote_elements(), libMesh::MeshBase::get_boundary_info(), libMesh::MeshBase::is_serial(), libMesh::libmesh_assert(), libMesh::MeshBase::merge_extra_integer_names(), libMesh::MeshBase::n_elem(), libMesh::MeshBase::n_nodes(), libMesh::MeshBase::node_ptr(), libMesh::MeshBase::prepare_for_use(), libMesh::MeshBase::query_node_ptr(), libMesh::DofObject::set_extra_integer(), libMesh::Elem::set_node(), and libMesh::DofObject::set_unique_id().
Referenced by create_pid_mesh().
|
inlineinherited |
Default ghosting functor.
Definition at line 1474 of file mesh_base.h.
References libMesh::MeshBase::_default_ghosting.
|
inlineinherited |
Returns any default data value used by the master space to physical space mapping.
Definition at line 949 of file mesh_base.h.
References libMesh::MeshBase::_default_mapping_data.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), MeshInputTest::helperTestingDynaQuad(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::VTKIO::nodes_to_vtk(), AllRBBTest::test_box(), and MeshInputTest::testDynaReadPatch().
|
inlineinherited |
Returns the default master space to physical space mapping basis functions to be used on newly added elements.
Definition at line 931 of file mesh_base.h.
References libMesh::MeshBase::_default_mapping_type.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::VTKIO::cells_to_vtk(), MeshInputTest::helperTestingDynaQuad(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::VTKIO::nodes_to_vtk(), libMesh::VTKIO::read(), MeshInputTest::testDynaFileMappings(), MeshInputTest::testDynaReadPatch(), and MeshInputTest::testExodusFileMappings().
|
pure virtualinherited |
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::complete_preparation() after elements are added to and/or deleted from the mesh.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::clear_spline_nodes(), contract(), libMesh::MeshTetInterface::delete_2D_hull_elements(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::MeshTools::Modification::flatten(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::TetGenMeshInterface::pointset_convexhull(), libMesh::AbaqusIO::read(), libMesh::UNVIO::read_implementation(), libMesh::GmshIO::read_mesh(), libMesh::SimplexRefiner::refine_via_edges(), MeshDeletionsTest::testDeleteElem(), ConnectedComponentsTest::testEdge(), MeshBaseTest::testMeshBaseVerifyRemovalPreparation(), MeshTetTest::testTrisToTetsError(), libMesh::NetGenMeshInterface::triangulate(), and libMesh::MeshTetInterface::volume_to_surface_mesh().
|
pure virtualinherited |
Removes the Node n from the mesh.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by all_first_order(), libMesh::MeshTools::clear_spline_nodes(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::TriangulatorInterface::elems_to_segments(), libMesh::MeshBase::remove_orphaned_nodes(), and stitching_helper().
|
inlinevirtualinherited |
When supported, 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 in libMesh::DistributedMesh.
Definition at line 389 of file mesh_base.h.
References libMesh::MeshBase::_preparation, and libMesh::MeshBase::Preparation::has_removed_remote_elements.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshBase::complete_preparation(), create_submesh(), libMesh::Nemesis_IO::read(), libMesh::BoundaryInfo::sync(), and libMesh::MeshSerializer::~MeshSerializer().
|
inherited |
Search the mesh for elements that have a neighboring element of dim+1 and set that element as the interior parent.
Definition at line 2049 of file mesh_base.C.
References libMesh::MeshBase::_preparation, libMesh::Elem::dim(), libMesh::MeshBase::elem_dimensions(), libMesh::MeshBase::elem_ptr(), libMesh::MeshBase::elem_ref(), libMesh::MeshBase::Preparation::has_cached_elem_data, libMesh::MeshBase::Preparation::has_interior_parent_ptrs, libMesh::MeshBase::interior_mesh(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::MeshBase::max_elem_id(), and libMesh::MeshTools::Subdivision::next.
Referenced by libMesh::MeshBase::complete_preparation().
|
inlineinherited |
Definition at line 427 of file mesh_base.h.
References libMesh::MeshBase::_elem_default_orders.
Referenced by MeshSmootherTest::testVariationalSmoother().
|
inlineinherited |
Definition at line 420 of file mesh_base.h.
References libMesh::MeshBase::_elem_dims.
Referenced by libMesh::System::calculate_norm(), libMesh::MeshBase::detect_interior_parents(), libMesh::TreeNode< N >::insert(), and libMesh::VariationalMeshSmoother::setup().
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by NonManifoldTestPartitioner::_do_partition(), libMesh::MeshTools::Subdivision::add_boundary_ghosts(), libMesh::BoundaryInfo::add_edge(), libMesh::BoundaryInfo::add_elements(), libMesh::BoundaryInfo::add_shellface(), libMesh::BoundaryInfo::add_side(), AllSecondOrderTest::allCompleteOrderMixed(), AllSecondOrderTest::allCompleteOrderRange(), AllSecondOrderTest::allSecondOrderMixed(), AllSecondOrderTest::allSecondOrderRange(), DisjointNeighborTest::build_four_disjoint_elems(), libMesh::MeshBase::copy_constraint_rows(), copy_nodes_and_elements(), libMesh::MeshBase::detect_interior_parents(), libMesh::DTKAdapter::DTKAdapter(), libMesh::MeshBase::elem_ref(), libMesh::DTKEvaluator::evaluate(), find_neighbors(), libMesh::ExodusII_IO_Helper::get_sideset_data_indices(), libMesh::UNVIO::groups_in(), libMesh::MeshTetInterface::improve_hull_integrity(), libMesh::ErrorVector::is_active_elem(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), LinearElasticityWithContact::move_mesh(), libMesh::MeshTools::n_connected_components(), AugmentSparsityOnNodes::operator()(), libMesh::BoundaryInfo::operator=(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::query_ghosting_functors(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::ExodusII_IO_Helper::read_edge_blocks(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::ExodusII_IO_Helper::read_sideset_data(), stitching_helper(), VolumeTest::testHex20PLevelTrueCentroid(), InfFERadialTest::testInfQuants(), InfFERadialTest::testInfQuants_numericDeriv(), InfFERadialTest::testRefinement(), EquationSystemsTest::testRefineThenReinitPreserveFlags(), InfFERadialTest::testSides(), InfFERadialTest::testSingleOrder(), VolumeTest::testTwistedVolume(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_sideset_data(), and libMesh::ExodusII_IO_Helper::write_sidesets().
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
inlinevirtualinherited |
Definition at line 778 of file mesh_base.h.
References libMesh::MeshBase::elem_ptr().
Referenced by libMesh::SyncRefinementFlags::act_on_data(), libMesh::SyncSubdomainIds::act_on_data(), libMesh::SyncElementIntegers::act_on_data(), libMesh::AbaqusIO::assign_sideset_ids(), libMesh::AbaqusIO::assign_subdomain_ids(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::MeshBase::detect_interior_parents(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::SyncRefinementFlags::gather_data(), libMesh::SyncSubdomainIds::gather_data(), libMesh::SyncElementIntegers::gather_data(), libMesh::MeshTetInterface::improve_hull_integrity(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), MeshPerElemTest< elem_type >::meshes_equal_enough(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), libMesh::ExodusII_IO::read(), libMesh::CheckpointIO::read_remote_elem(), SystemsTest::testDofCouplingWithVarGroups(), MeshExtruderTest::testExtruder(), SystemsTest::testSetSystemParameterOverEquationSystem(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::FroIO::write(), libMesh::Nemesis_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::GmshIO::write_mesh(), and libMesh::ExodusII_IO_Helper::write_sidesets().
|
inlinevirtualinherited |
Definition at line 788 of file mesh_base.h.
References libMesh::MeshBase::elem_ptr().
|
inherited |
Iterating over all semilocal elements is most useful for modifying the mesh, so we only have a non-const version for now.
Definition at line 1913 of file mesh_base.C.
References libMesh::MeshBase::_element_stored_range, libMesh::Threads::in_threads, and libMesh::libmesh_assert().
Referenced by libMesh::EquationSystems::_add_system_to_nodes_and_elems(), libMesh::EquationSystems::allgather(), libMesh::MeshBase::change_elemset_code(), libMesh::MeshTools::Modification::change_subdomain_id(), libMesh::MeshRefinement::coarsen_elements(), copy_nodes_and_elements(), find_neighbors(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::MeshRefinement::refine_elements(), libMesh::DofMap::reinit(), libMesh::EquationSystems::reinit_mesh(), libMesh::EquationSystems::reinit_solutions(), and libMesh::MeshBase::size_elem_extra_integers().
|
overridevirtual |
Other functions from MeshBase requiring re-definition.
Here we look at all of the child elements which don't already have valid neighbors.
If a child element has a nullptr neighbor it is either because it is on the boundary or because its neighbor is at a different level. In the latter case we must get the neighbor from the parent.
If a child element has a remote_elem neighbor on a boundary it shares with its parent, that info may have become out-dated through coarsening of the neighbor's parent. In this case, if the parent's neighbor is active then the child should share it.
Furthermore, that neighbor better be active, otherwise we missed a child somewhere.
We also need to look through children ordered by increasing refinement level in order to add new interior_parent() links in boundary elements which have just been generated by refinement, and fix links in boundary elements whose previous interior_parent() has just been coarsened away.
Implements libMesh::MeshBase.
Definition at line 955 of file unstructured_mesh.C.
References libMesh::MeshBase::_preparation, libMesh::Elem::active(), libMesh::Elem::ancestor(), libMesh::as_range(), libMesh::Elem::child_ptr(), libMesh::Elem::child_ref_range(), libMesh::MeshBase::elem_ptr(), libMesh::MeshBase::element_stored_range(), libMesh::err, libMesh::MeshBase::get_boundary_info(), libMesh::MeshBase::get_disjoint_neighbor_boundary_pairs(), libMesh::BoundaryInfo::has_boundary_id(), libMesh::Elem::has_children(), libMesh::MeshBase::Preparation::has_neighbor_ptrs, libMesh::Elem::hmin(), libMesh::DofObject::id(), libMesh::Elem::interior_parent(), libMesh::Elem::is_ancestor_of(), libMesh::Elem::is_child_on_side(), libMesh::Elem::level(), libMesh::libmesh_assert(), libMesh::MeshTools::libmesh_assert_valid_amr_interior_parents(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::libmesh_ignore(), libMesh::Elem::n_children(), libMesh::MeshTools::n_levels(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::neighbor_ptr_range(), libMesh::Threads::parallel_for(), libMesh::Elem::parent(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), libMesh::Real, libMesh::remote_elem, libMesh::Elem::set_interior_parent(), libMesh::Elem::set_neighbor(), libMesh::Elem::side_ptr(), libMesh::MeshBase::sub_point_locator(), libMesh::Elem::subactive(), libMesh::TOLERANCE, libMesh::Elem::vertex_average(), libMesh::Elem::which_child_am_i(), and libMesh::NameBasedIO::write().
Referenced by libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::MeshTetInterface::improve_hull_integrity(), libMesh::Poly2TriTriangulator::insert_refinement_points(), stitching_helper(), and libMesh::TriangleInterface::triangulate().
|
pure virtualinherited |
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.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::EquationSystems::read(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), and libMesh::RBEvaluation::write_out_vectors().
|
inlinevirtualinherited |
Gathers all elements and nodes of the mesh onto processor zero.
Reimplemented in libMesh::DistributedMesh.
Definition at line 382 of file mesh_base.h.
Referenced by libMesh::MeshSerializer::MeshSerializer().
|
inlineinherited |
The information about boundary ids on the mesh.
Definition at line 170 of file mesh_base.h.
References libMesh::MeshBase::boundary_info.
Referenced by libMesh::MeshRefinement::_coarsen_elements(), libMesh::MeshTools::Subdivision::add_boundary_ghosts(), all_first_order(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), LinearElasticity::assemble(), assemble_elasticity(), assemble_poisson(), assemble_shell(), assemble_temperature_jump(), libMesh::AbaqusIO::assign_boundary_node_ids(), libMesh::AbaqusIO::assign_sideset_ids(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF0::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyA2::boundary_assembly(), AssemblyF2::boundary_assembly(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), DisjointNeighborTest::build_four_disjoint_elems(), DisjointNeighborTest::build_split_mesh_with_interface(), DisjointNeighborTest::build_two_disjoint_elems(), libMesh::MeshTools::Modification::change_boundary_id(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::MeshBase::complete_preparation(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), libMesh::TriangleWrapper::copy_tri_to_mesh(), create_submesh(), libMesh::MeshTetInterface::delete_2D_hull_elements(), libMesh::ReplicatedMesh::delete_elem(), libMesh::DistributedMesh::delete_elem(), libMesh::ReplicatedMesh::delete_node(), libMesh::DistributedMesh::delete_node(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::DistributedMesh(), find_neighbors(), libMesh::MeshTools::Modification::flatten(), libMesh::MeshBase::get_info(), libMesh::UNVIO::groups_in(), libMesh::MeshTetInterface::improve_hull_integrity(), libMesh::HDGProblem::init(), libMesh::ExodusII_IO_Helper::initialize(), LinearElasticityWithContact::initialize_contact_load_paths(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::HDGProblem::jacobian(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), main(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::MeshTools::Modification::orient_elements(), libMesh::TetGenMeshInterface::pointset_convexhull(), libMesh::Nemesis_IO::prepare_to_write_nodal_data(), libMesh::AbaqusIO::read(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::CheckpointIO::read_bcs(), libMesh::ExodusII_IO_Helper::read_edge_blocks(), libMesh::CheckpointIO::read_header(), libMesh::GmshIO::read_mesh(), libMesh::CheckpointIO::read_nodesets(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::SimplexRefiner::refine_via_edges(), MeshStitchTest::renameAndShift(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::ReplicatedMesh::ReplicatedMesh(), libMesh::HDGProblem::residual(), SolidSystem::side_time_derivative(), libMesh::PetscDiffSolver::solve(), stitching_helper(), libMesh::MeshTools::Generation::surface_octahedron(), libMesh::BoundaryInfo::sync(), AllTriTest::test_helper_2D(), AllTriTest::test_helper_3D(), AllTriTest::test_helper_c0polyhedron(), AllTriTest::testAllTriC0Polygon(), AllTriTest::testAllTriC0PolygonOctagon(), MeshTetTest::testBcids(), BoundaryInfoTest::testBoundaryIDs(), BoundaryInfoTest::testBoundaryOnChildrenBoundaryIDs(), BoundaryInfoTest::testBoundaryOnChildrenBoundarySides(), BoundaryInfoTest::testBoundaryOnChildrenElementsRefineCoarsen(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), SystemsTest::testBoundaryProjectCube(), BoundaryInfoTest::testBuildNodeListFromSideList(), BoundaryInfoTest::testBuildSideListFromNodeList(), VolumeTest::testC0PolygonMethods(), DisjointNeighborTest::testDisjointNeighborConflictError(), BoundaryInfoTest::testEdgeBoundaryConditions(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testGmshBCIDOverlap(), BoundaryInfoTest::testInternalBoundary(), MeshInputTest::testLowOrderEdgeBlocks(), BoundaryInfoTest::testMesh(), BoundaryInfoTest::testNameCopying(), PeriodicBCTest::testPeriodicBC(), MeshTriangulationTest::testPoly2TriHolesInteriorRefinedBase(), BoundaryInfoTest::testRenumber(), BoundaryInfoTest::testSelectiveRenumber(), BoundaryInfoTest::testShellFaceConstraints(), DisjointNeighborTest::testStitchCrossMesh(), MeshTetTest::testTrisToTets(), MeshSmootherTest::testVariationalSmoother(), WriteNodesetData::testWriteImpl(), WriteEdgesetData::testWriteImpl(), WriteSidesetData::testWriteImpl(), libMesh::NetGenMeshInterface::triangulate(), libMesh::Poly2TriTriangulator::triangulate_current_points(), libMesh::MeshTetInterface::volume_to_surface_mesh(), libMesh::FroIO::write(), libMesh::Nemesis_IO::write(), libMesh::XdrIO::write(), libMesh::CheckpointIO::write(), libMesh::ExodusII_IO::write(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::GmshIO::write_mesh(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::XdrIO::write_serialized_nodesets(), and libMesh::ExodusII_IO_Helper::write_sidesets().
|
inlineinherited |
Writable information about boundary ids on the mesh.
Definition at line 175 of file mesh_base.h.
References libMesh::MeshBase::boundary_info.
|
inlineinherited |
Constraint rows accessors.
Definition at line 1905 of file mesh_base.h.
References libMesh::MeshBase::_constraint_rows.
Referenced by libMesh::Partitioner::build_graph(), libMesh::DofMap::calculate_constraining_subdomains(), libMesh::MeshTools::clear_spline_nodes(), libMesh::MeshBase::copy_constraint_rows(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), libMesh::MeshBase::locally_equals(), libMesh::MeshTools::n_connected_components(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::ExodusII_IO::read(), libMesh::DynaIO::read_mesh(), and scale_mesh_and_plot().
|
inlineinherited |
Definition at line 1908 of file mesh_base.h.
References libMesh::MeshBase::_constraint_rows.
|
inherited |
Get the current value of _count_lower_dim_elems_in_point_locator.
Definition at line 1873 of file mesh_base.C.
References libMesh::MeshBase::_count_lower_dim_elems_in_point_locator.
Referenced by libMesh::TreeNode< N >::insert().
|
inherited |
Definition at line 2256 of file mesh_base.C.
References libMesh::MeshBase::_disjoint_neighbor_boundary_pairs.
Referenced by find_neighbors(), libMesh::MeshRefinement::refine_elements(), stitching_helper(), DisjointNeighborTest::testPreserveDisjointNeighborPairsAfterStitch(), and DisjointNeighborTest::testStitchCrossMesh().
|
inherited |
Definition at line 2261 of file mesh_base.C.
References libMesh::MeshBase::_disjoint_neighbor_boundary_pairs.
|
inherited |
Definition at line 689 of file mesh_base.C.
References libMesh::MeshBase::_elem_integer_names, libMesh::index_range(), libMesh::invalid_uint, and libMesh::Quality::name().
Referenced by libMesh::MeshBase::change_elemset_code(), WriteElemsetData::checkElemsetCodes(), ExtraIntegersTest::testExtraIntegersExodusReading(), and libMesh::ExodusII_IO_Helper::write_elemsets().
|
inlineinherited |
Definition at line 1069 of file mesh_base.h.
References libMesh::MeshBase::_elem_integer_names.
Referenced by libMesh::XdrIO::write(), and libMesh::CheckpointIO::write().
|
inherited |
Definition at line 497 of file mesh_base.C.
References libMesh::MeshBase::_elemset_codes_inverse_map, and libMesh::DofObject::invalid_id.
Referenced by WriteElemsetData::checkElemsetCodes(), and libMesh::ExodusII_IO::read().
|
inherited |
Return a vector of all elemset codes defined on the mesh.
We get this by looping over the _elemset_codes map.
Definition at line 503 of file mesh_base.C.
References libMesh::MeshBase::_elemset_codes.
Referenced by stitching_helper(), and libMesh::XdrIO::write().
|
inherited |
Look up the element sets for a given elemset code and vice-versa.
The elemset must have been previously stored by calling add_elemset_code(). If no such code/set is found, returns the empty set or DofObject::invalid_id, respectively.
Definition at line 487 of file mesh_base.C.
References libMesh::MeshBase::_elemset_codes.
Referenced by stitching_helper(), WriteElemsetData::testWriteImpl(), libMesh::XdrIO::write(), and libMesh::ExodusII_IO_Helper::write_elemsets().
|
inherited |
Elem::invalid_subdomain_id otherwise. Definition at line 1900 of file mesh_base.C.
References libMesh::MeshBase::_block_id_to_name, libMesh::Elem::invalid_subdomain_id, and libMesh::Quality::name().
|
inherited |
verbosity sets the verbosity, with 0 being the least and 2 being the greatest. 0 - Dimensions, number of nodes, number of elems, number of subdomains, number of partitions, prepared status. 1 - Adds the mesh bounding box, mesh element types, specific nodesets/edgesets/sidesets with element types, number of nodes/edges/sides. 2 - Adds volume information and bounding boxes to boundary information.
The global parameter pertains primarily to verbosity levels 1 and above. When global == true, information is only output on rank 0 and the information is reduced. When global == false, information is output on all ranks that pertains only to that local partition.
Definition at line 1268 of file mesh_base.C.
References libMesh::MeshBase::_elem_default_orders, libMesh::MeshBase::_elem_dims, libMesh::MeshBase::_elemset_codes, libMesh::Elem::build_edge_ptr(), libMesh::ParallelObject::comm(), libMesh::MeshTools::create_bounding_box(), libMesh::MeshTools::create_local_bounding_box(), libMesh::MeshTools::elem_types(), libMesh::Utility::enum_to_string(), libMesh::MeshBase::get_boundary_info(), libMesh::BoundaryInfo::get_edge_boundary_ids(), libMesh::BoundaryInfo::get_edgeset_name_map(), libMesh::BoundaryInfo::get_node_boundary_ids(), libMesh::BoundaryInfo::get_nodeset_name_map(), libMesh::BoundaryInfo::get_side_boundary_ids(), libMesh::BoundaryInfo::get_sideset_name_map(), libMesh::MeshBase::get_subdomain_name_map(), libMesh::DofObject::id(), libMesh::DofObject::invalid_processor_id, libMesh::MeshBase::is_prepared(), libMesh::MeshBase::is_replicated(), libMesh::libmesh_assert(), libMesh::Elem::loose_bounding_box(), TIMPI::Communicator::max(), TIMPI::Communicator::min(), libMesh::MeshBase::n_active_elem(), libMesh::MeshBase::n_elem(), libMesh::MeshBase::n_elemsets(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_local_nodes(), libMesh::MeshBase::n_local_subdomains(), libMesh::MeshBase::n_nodes(), libMesh::MeshBase::n_partitions(), libMesh::ParallelObject::n_processors(), libMesh::MeshBase::n_subdomains(), libMesh::n_threads(), libMesh::Quality::name(), libMesh::Elem::node_ref_range(), libMesh::ParallelObject::processor_id(), libMesh::Real, TIMPI::Communicator::set_union(), libMesh::MeshBase::spatial_dimension(), TIMPI::Communicator::sum(), libMesh::MeshBase::supported_nodal_order(), libMesh::Elem::type(), libMesh::BoundingBox::union_with(), libMesh::MeshTools::volume(), and libMesh::Elem::volume().
Referenced by libMesh::MeshBase::print_info().
|
inherited |
Gets a string reporting all mesh constraint rows local to this processor.
If print_nonlocal is true, then nonlocal constraints which are locally known are included.
Definition at line 2771 of file mesh_base.C.
References libMesh::MeshBase::_constraint_rows, and libMesh::ParallelObject::processor_id().
Referenced by libMesh::MeshBase::print_constraint_rows().
|
inlineinherited |
Definition at line 2025 of file mesh_base.h.
References libMesh::MeshBase::_mesh_subdomains, libMesh::MeshBase::is_prepared(), and libMesh::libmesh_assert().
|
inherited |
Definition at line 778 of file mesh_base.C.
References libMesh::MeshBase::_node_integer_names, libMesh::index_range(), libMesh::invalid_uint, and libMesh::Quality::name().
|
inlineinherited |
Definition at line 1191 of file mesh_base.h.
References libMesh::MeshBase::_node_integer_names.
Referenced by libMesh::XdrIO::write(), and libMesh::CheckpointIO::write().
|
inherited |
Definition at line 2314 of file mesh_base.C.
References libMesh::MeshBase::_point_locator_close_to_point_tol.
|
inlineinherited |
Definition at line 1896 of file mesh_base.h.
References libMesh::MeshBase::_block_id_to_name.
Referenced by libMesh::DistributedMesh::DistributedMesh(), libMesh::MeshBase::get_info(), libMesh::ReplicatedMesh::ReplicatedMesh(), stitching_helper(), MeshInputTest::testGmshBCIDOverlap(), libMesh::XdrIO::write_serialized_subdomain_names(), and libMesh::CheckpointIO::write_subdomain_names().
|
inlineinherited |
Beginning of range of ghosting functors.
Definition at line 1462 of file mesh_base.h.
References libMesh::MeshBase::_ghosting_functors.
Referenced by contract(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::query_ghosting_functors(), libMesh::MeshBase::redistribute(), and EquationSystemsTest::testDisableDefaultGhosting().
|
inlineinherited |
End of range of ghosting functors.
Definition at line 1468 of file mesh_base.h.
References libMesh::MeshBase::_ghosting_functors.
Referenced by contract(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::query_ghosting_functors(), libMesh::MeshBase::redistribute(), and EquationSystemsTest::testDisableDefaultGhosting().
|
inherited |
Definition at line 701 of file mesh_base.C.
References libMesh::MeshBase::_elem_integer_names, and libMesh::Quality::name().
Referenced by libMesh::MeshBase::change_elemset_code(), WriteElemsetData::checkElemsetCodes(), ExtraIntegersTest::checkpoint_helper(), libMesh::ExodusII_IO_Helper::initialize(), ExtraIntegersTest::testExtraIntegersExodusReading(), and libMesh::ExodusII_IO_Helper::write_elemsets().
|
inherited |
Definition at line 790 of file mesh_base.C.
References libMesh::MeshBase::_node_integer_names, and libMesh::Quality::name().
Referenced by ExtraIntegersTest::checkpoint_helper().
Insert elem e to the element array, preserving its id and replacing/deleting any existing element with the same id.
Users should call MeshBase::complete_preparation() after elements are added to and/or deleted from the mesh.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by all_first_order(), and libMesh::MeshTools::Subdivision::all_subdivision().
Version of insert_elem() taking a std::unique_ptr by value.
The version taking a dumb pointer will eventually be deprecated in favor of this version. This API is intended to indicate that ownership of the Elem is transferred to the Mesh when this function is called, and it should play more nicely with the Elem::build() API which has always returned a std::unique_ptr.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
inlineinherited |
Definition at line 2008 of file mesh_base.h.
References libMesh::MeshBase::_interior_mesh.
Referenced by libMesh::BoundaryInfo::add_elements(), copy_nodes_and_elements(), and libMesh::MeshBase::detect_interior_parents().
|
inlineinherited |
Definition at line 2013 of file mesh_base.h.
References libMesh::MeshBase::_interior_mesh.
|
inherited |
true if the mesh is marked as having undergone all of the preparation done in a call to prepare_for_use, false otherwise. Definition at line 1057 of file mesh_base.C.
References libMesh::MeshBase::_preparation.
Referenced by libMesh::MeshRefinement::_refine_elements(), libMesh::MeshTools::Modification::all_tri(), copy_nodes_and_elements(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::Modification::flatten(), libMesh::BoundaryInfo::get_global_boundary_ids(), libMesh::MeshBase::get_info(), libMesh::MeshBase::get_mesh_subdomains(), libMesh::SimplexRefiner::refine_elements(), libMesh::DofMap::reinit(), stitching_helper(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), ConstraintOperatorTest::testCoreform(), MeshBaseTest::testMeshBaseVerifyHasCachedElemData(), MeshBaseTest::testMeshBaseVerifyHasNeighborPtrs(), MeshBaseTest::testMeshBaseVerifyRemovalPreparation(), libMesh::MeshTools::valid_is_prepared(), and libMesh::MeshTetInterface::volume_to_surface_mesh().
|
inlinevirtualinherited |
true if new elements and nodes can and should be created in synchronization on all processors, false otherwise Reimplemented in libMesh::DistributedMesh.
Definition at line 369 of file mesh_base.h.
Referenced by libMesh::MeshRefinement::_refine_elements(), libMesh::BoundaryInfo::add_elements(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Modification::flatten(), libMesh::MeshBase::get_info(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::CheckpointIO::read(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::MeshRefinement::uniformly_coarsen(), and libMesh::MeshTetInterface::volume_to_surface_mesh().
|
inlinevirtualinherited |
true if all elements and nodes of the mesh exist on the current processor, false otherwise Reimplemented in libMesh::DistributedMesh.
Definition at line 347 of file mesh_base.h.
Referenced by libMesh::MeshRefinement::_coarsen_elements(), libMesh::MeshRefinement::_smooth_flags(), libMesh::BoundaryInfo::add_elements(), libMesh::MeshTools::Modification::all_tri(), libMesh::EquationSystems::allgather(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::MeshTools::build_nodes_to_elem_map(), libMesh::MeshBase::cache_elem_data(), libMesh::MeshBase::complete_preparation(), libMesh::DofMap::create_dof_constraints(), create_submesh(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::LocationMap< T >::init(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshSerializer::MeshSerializer(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::MeshBase::partition(), libMesh::Nemesis_IO::read(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::BoundaryInfo::regenerate_id_sets(), libMesh::ReplicatedMesh::ReplicatedMesh(), scale_mesh_and_plot(), libMesh::DofMap::scatter_constraints(), libMesh::Partitioner::set_node_processor_ids(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::BoundaryInfo::sync(), libMesh::BoundaryInfo::synchronize_global_id_set(), MeshInputTest::testExodusIGASidesets(), PointLocatorTest::testLocator(), MeshInputTest::testLowOrderEdgeBlocks(), BoundaryInfoTest::testMesh(), PointLocatorTest::testPlanar(), BoundaryInfoTest::testRenumber(), BoundaryInfoTest::testSelectiveRenumber(), MeshInputTest::testTetgenIO(), WriteNodesetData::testWriteImpl(), WriteSidesetData::testWriteImpl(), libMesh::MeshTools::total_weight(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::STLIO::write(), libMesh::CheckpointIO::write(), and libMesh::XdrIO::write_parallel().
|
inlinevirtualinherited |
true if all elements and nodes of the mesh exist on the processor 0, false otherwise Reimplemented in libMesh::DistributedMesh.
Definition at line 354 of file mesh_base.h.
Referenced by libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), and libMesh::MeshTools::n_connected_components().
|
inlinevirtualinherited |
Verify id and processor_id consistency of our elements and nodes containers.
Calls libmesh_assert() on each possible failure. Currently only implemented on DistributedMesh; a serial data structure is much harder to get out of sync.
Reimplemented in libMesh::DistributedMesh.
Definition at line 1688 of file mesh_base.h.
Referenced by libMesh::MeshRefinement::_refine_elements(), libMesh::InfElemBuilder::build_inf_elem(), and libMesh::MeshRefinement::refine_and_coarsen_elements().
|
inherited |
This behaves the same as operator==, but only for the local and ghosted aspects of the mesh; i.e.
operator== is true iff local equality is true on every rank.
Definition at line 281 of file mesh_base.C.
References libMesh::MeshBase::_all_elemset_ids, libMesh::MeshBase::_allow_node_and_elem_unique_id_overlap, libMesh::MeshBase::_allow_remote_element_removal, libMesh::MeshBase::_block_id_to_name, libMesh::MeshBase::_constraint_rows, libMesh::MeshBase::_count_lower_dim_elems_in_point_locator, libMesh::MeshBase::_default_ghosting, libMesh::MeshBase::_default_mapping_data, libMesh::MeshBase::_default_mapping_type, libMesh::MeshBase::_disjoint_neighbor_boundary_pairs, libMesh::MeshBase::_elem_default_orders, libMesh::MeshBase::_elem_dims, libMesh::MeshBase::_elem_integer_default_values, libMesh::MeshBase::_elem_integer_names, libMesh::MeshBase::_elemset_codes, libMesh::MeshBase::_ghosting_functors, libMesh::MeshBase::_interior_mesh, libMesh::MeshBase::_mesh_subdomains, libMesh::MeshBase::_n_parts, libMesh::MeshBase::_node_integer_default_values, libMesh::MeshBase::_node_integer_names, libMesh::MeshBase::_partitioner, libMesh::MeshBase::_point_locator_close_to_point_tol, libMesh::MeshBase::_preparation, libMesh::MeshBase::_skip_all_partitioning, libMesh::MeshBase::_skip_detect_interior_parents, libMesh::MeshBase::_skip_find_neighbors, libMesh::MeshBase::_skip_noncritical_partitioning, libMesh::MeshBase::_skip_renumber_nodes_and_elements, libMesh::MeshBase::_spatial_dimension, libMesh::MeshBase::_supported_nodal_order, libMesh::MeshBase::boundary_info, libMesh::MeshBase::get_constraint_rows(), libMesh::index_range(), libMesh::libmesh_assert(), libMesh::MeshBase::query_node_ptr(), and libMesh::MeshBase::subclass_locally_equals().
Referenced by libMesh::MeshBase::operator==().
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::BoundaryInfo::add_elements(), libMesh::MeshTools::Modification::all_tri(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), CopyNodesAndElementsTest::collectMeshes(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::MeshBase::detect_interior_parents(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_equal_connectivity(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), main(), AllSecondOrderTest::MixedFixingImpl(), libMesh::MeshTools::Modification::permute_elements(), libMesh::Partitioner::set_parent_processor_ids(), stitching_helper(), AllRBBTest::test_box(), EquationSystemsTest::testPostInitAddElem(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testVTKPreserveElemIds(), libMesh::MeshTetInterface::volume_to_surface_mesh(), libMesh::ExodusII_IO_Helper::write_elements(), and libMesh::GmshIO::write_mesh().
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by all_first_order(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::MeshTools::build_nodes_to_elem_map(), libMesh::EquationSystems::build_parallel_solution_vector(), CopyNodesAndElementsTest::collectMeshes(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::MeshTools::Modification::distort(), libMesh::LaplaceMeshSmoother::init(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::TriangulatorInterface::insert_any_extra_boundary_points(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_equal_points(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), main(), libMesh::LaplaceMeshSmoother::smooth(), stitching_helper(), ConnectedComponentsTest::testEdge(), libMesh::TriangleInterface::triangulate(), libMesh::Poly2TriTriangulator::triangulate_current_points(), libMesh::XdrIO::write(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::ExodusII_IO_Helper::write_elements(), and libMesh::XdrIO::write_serialized_nodes().
|
protectedinherited |
Merge extra-integer arrays from an other mesh.
Returns two mappings from index values in other to (possibly newly created) index values with the same string name in this mesh, the first for element integers and the second for node integers.
Definition at line 2345 of file mesh_base.C.
References libMesh::MeshBase::_elem_integer_default_values, libMesh::MeshBase::_elem_integer_names, libMesh::MeshBase::_node_integer_default_values, libMesh::MeshBase::_node_integer_names, libMesh::MeshBase::add_elem_integers(), and libMesh::MeshBase::add_node_integers().
Referenced by copy_nodes_and_elements(), and create_submesh().
|
inherited |
Definition at line 430 of file mesh_base.C.
References libMesh::MeshBase::_elem_dims.
Referenced by libMesh::HPCoarsenTest::add_projection(), all_complete_order_range(), all_second_order_range(), libMesh::MeshTools::Modification::all_tri(), alternative_fe_assembly(), assemble(), LinearElasticity::assemble(), assemble_1D(), AssembleOptimization::assemble_A_and_F(), assemble_biharmonic(), assemble_cd(), assemble_divgrad(), assemble_elasticity(), assemble_ellipticdg(), assemble_func(), assemble_graddiv(), assemble_helmholtz(), assemble_laplace(), assemble_mass(), assemble_matrices(), assemble_poisson(), assemble_SchroedingerEquation(), assemble_shell(), assemble_stokes(), assemble_temperature_jump(), assemble_wave(), libMesh::MeshBase::cache_elem_data(), compute_enriched_soln(), compute_jacobian(), compute_residual(), compute_stresses(), LinearElasticityWithContact::compute_stresses(), LinearElasticity::compute_stresses(), LargeDeformationElasticity::compute_stresses(), libMesh::VariationalSmootherConstraint::constrain_node_to_line(), libMesh::VariationalSmootherConstraint::constrain_node_to_plane(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::Modification::distort(), SolidSystem::element_time_derivative(), HeatSystem::element_time_derivative(), fe_assembly(), libMesh::VariationalSmootherConstraint::fix_node(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), form_functionA(), form_functionB(), form_matrixA(), libMesh::ReplicatedMesh::get_boundary_points(), libMesh::LaplaceMeshSmoother::init(), SolidSystem::init_data(), libMesh::ExodusII_IO_Helper::initialize(), integrate_function(), LaplaceYoung::jacobian(), LargeDeformationElasticity::jacobian(), main(), libMesh::GMVIO::read(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::VTKIO::read(), libMesh::System::read_header(), libMesh::UCDIO::read_implementation(), libMesh::XdrIO::read_serialized_connectivity(), LaplaceYoung::residual(), LargeDeformationElasticity::residual(), LinearElasticityWithContact::residual_and_jacobian(), SolidSystem::save_initial_mesh(), libMesh::PetscPreconditioner< T >::set_hypre_ads_data(), libMesh::PetscPreconditioner< T >::set_hypre_ams_data(), libMesh::PetscPreconditioner< T >::set_petsc_aux_data(), setup(), libMesh::MeshTools::Modification::smooth(), MeshSpatialDimensionTest::test1D(), MeshSpatialDimensionTest::test2D(), InfFERadialTest::testInfQuants(), InfFERadialTest::testInfQuants_numericDeriv(), InfFERadialTest::testSides(), InfFERadialTest::testSingleOrder(), MeshSmootherTest::testVariationalSmootherRegression(), libMesh::BoundaryVolumeSolutionTransfer::transfer(), libMesh::DTKSolutionTransfer::transfer(), libMesh::MeshTools::volume(), libMesh::PostscriptIO::write(), libMesh::CheckpointIO::write(), libMesh::TecplotIO::write_binary(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::UCDIO::write_implementation(), libMesh::UCDIO::write_nodal_data(), libMesh::EnsightIO::write_scalar_ascii(), libMesh::GnuPlotIO::write_solution(), and libMesh::EnsightIO::write_vector_ascii().
|
pure virtual |
Move node and elements from other_mesh to this mesh.
Implemented in libMesh::ReplicatedMesh.
|
pure virtualinherited |
Implemented in terms of active_element_iterators.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by OverlappingTestPartitioner::_do_partition(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::MeshTools::Modification::flatten(), libMesh::MeshBase::get_info(), libMesh::ExodusII_IO_Helper::initialize(), main(), libMesh::Partitioner::partition(), libMesh::Partitioner::repartition(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::GmshIO::write_mesh(), write_output_solvedata(), and libMesh::GnuPlotIO::write_solution().
|
inherited |
proc. Definition at line 1235 of file mesh_base.C.
References distance(), and libMesh::ParallelObject::n_processors().
Referenced by libMesh::MeshBase::n_active_local_elem().
|
inlineinherited |
Definition at line 704 of file mesh_base.h.
References libMesh::MeshBase::n_active_elem_on_proc(), and libMesh::ParallelObject::processor_id().
Referenced by libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::Partitioner::assign_partitioning(), libMesh::Partitioner::build_graph(), libMesh::VTKIO::cells_to_vtk(), and BoundaryInfoTest::testBoundaryOnChildrenElementsRefineCoarsen().
|
inherited |
Same as n_sub_elem(), but only counts active elements.
Definition at line 1256 of file mesh_base.C.
Referenced by libMesh::TecplotIO::write_ascii(), libMesh::GMVIO::write_ascii_old_impl(), and libMesh::TecplotIO::write_binary().
|
inherited |
Definition at line 2431 of file mesh_base.C.
References libMesh::MeshBase::_constraint_rows, libMesh::ParallelObject::comm(), libMesh::DofObject::invalid_processor_id, libMesh::ParallelObject::processor_id(), and TIMPI::Communicator::sum().
Referenced by libMesh::MeshCommunication::delete_remote_elements().
|
pure virtualinherited |
The standard n_elem() function may return a cached value on distributed meshes, and so can be called by any processor at any time.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::Subdivision::add_boundary_ghosts(), libMesh::MeshTools::Modification::all_tri(), AllSecondOrderTest::allCompleteOrderDoNothing(), AllSecondOrderTest::allCompleteOrderMixed(), AllSecondOrderTest::allCompleteOrderRange(), AllSecondOrderTest::allSecondOrderDoNothing(), AllSecondOrderTest::allSecondOrderMixed(), AllSecondOrderTest::allSecondOrderRange(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::MeshTools::build_nodes_to_elem_map(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::MeshTetInterface::check_hull_integrity(), copy_nodes_and_elements(), libMesh::DofMap::create_dof_constraints(), create_submesh(), libMesh::MeshTools::Modification::distort(), libMesh::TriangulatorInterface::elems_to_segments(), libMesh::MeshBase::get_info(), main(), AllSecondOrderTest::MixedFixingImpl(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::XdrIO::read_serialized_nodes(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::MeshTools::Modification::redistribute(), ConstraintOperatorTest::test1DCoarseningNewNodes(), AllRBBTest::test_box(), AllRBBTest::test_cylinder(), AllRBBTest::test_disk(), AllTriTest::test_helper_2D(), AllTriTest::test_helper_3D(), AllTriTest::test_helper_c0polyhedron(), MeshInputTest::testAbaqusRead(), AllTriTest::testAllTriC0Polygon(), AllTriTest::testAllTriC0PolygonOctagon(), MeshGenerationTest::testBuildCube(), MeshGenerationTest::testBuildLine(), MeshGenerationTest::testBuildSquare(), MeshDeletionsTest::testDeleteElem(), MeshInputTest::testDynaNoSplines(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshTriangulationTest::testEdge3ToTri6Base(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testGoodGmsh(), MeshInputTest::testGoodSTL(), MeshInputTest::testGoodSTLBinary(), InfFERadialTest::testInfQuants(), InfFERadialTest::testInfQuants_numericDeriv(), MeshAssignTest::testMeshMoveAssign(), MeshInputTest::testNemesisReadImpl(), MeshTriangulationTest::testPoly2TriRefinementBase(), EquationSystemsTest::testSelectivePRefine(), InfFERadialTest::testSides(), InfFERadialTest::testSingleOrder(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshTetTest::testTetInterfaceBase(), MeshTriangulationTest::testTriangulatorBase(), MeshTriangulationTest::testTriangulatorHoles(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), MeshTriangulationTest::testTriangulatorRoundHole(), MeshInputTest::testVTKPreserveElemIds(), MeshInputTest::testVTKPreserveSubdomainIds(), libMesh::NetGenMeshInterface::triangulate(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::FroIO::write(), libMesh::TetGenIO::write(), libMesh::XdrIO::write(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::UCDIO::write_implementation(), libMesh::UCDIO::write_nodal_data(), libMesh::XdrIO::write_serialized_connectivity(), and libMesh::System::write_serialized_vectors().
|
inlineinherited |
Definition at line 1080 of file mesh_base.h.
References libMesh::MeshBase::_elem_integer_names.
Referenced by libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::write(), and libMesh::CheckpointIO::write().
|
inherited |
proc. Definition at line 1222 of file mesh_base.C.
References distance(), libMesh::DofObject::invalid_processor_id, libMesh::libmesh_assert(), and libMesh::ParallelObject::n_processors().
Referenced by libMesh::MeshBase::n_local_elem(), and libMesh::MeshBase::n_unpartitioned_elem().
|
inherited |
Returns the number of unique elemset ids which have been added via add_elemset_code(), which is the size of the _all_elemset_ids set.
Definition at line 482 of file mesh_base.C.
References libMesh::MeshBase::_all_elemset_ids.
Referenced by libMesh::MeshBase::get_info(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO::read(), and libMesh::ExodusII_IO_Helper::write_elemsets().
|
inlineinherited |
Definition at line 687 of file mesh_base.h.
References libMesh::MeshBase::n_elem_on_proc(), and libMesh::ParallelObject::processor_id().
Referenced by libMesh::DTKAdapter::DTKAdapter(), libMesh::MeshBase::get_info(), libMesh::DistributedMesh::parallel_n_elem(), and DofMapTest::testBadElemFECombo().
|
inlineinherited |
Definition at line 581 of file mesh_base.h.
References libMesh::MeshBase::n_nodes_on_proc(), and libMesh::ParallelObject::processor_id().
Referenced by libMesh::MeshBase::get_info(), libMesh::VTKIO::nodes_to_vtk(), and libMesh::DistributedMesh::parallel_n_nodes().
|
inherited |
Definition at line 1197 of file mesh_base.C.
References libMesh::MeshBase::subdomain_ids().
Referenced by libMesh::MeshBase::get_info().
|
inlineinherited |
Definition at line 1202 of file mesh_base.h.
References libMesh::MeshBase::_node_integer_names.
Referenced by libMesh::CheckpointIO::read_nodes(), libMesh::XdrIO::write(), and libMesh::CheckpointIO::write().
|
pure virtualinherited |
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.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by all_complete_order_range(), all_second_order_range(), AllSecondOrderTest::allCompleteOrderDoNothing(), AllSecondOrderTest::allCompleteOrderMixed(), AllSecondOrderTest::allCompleteOrderRange(), AllSecondOrderTest::allSecondOrderDoNothing(), AllSecondOrderTest::allSecondOrderMixed(), AllSecondOrderTest::allSecondOrderRange(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshBase::copy_constraint_rows(), copy_nodes_and_elements(), create_submesh(), libMesh::MeshTools::Modification::distort(), fill_dirichlet_bc(), libMesh::TetGenMeshInterface::fill_pointlist(), libMesh::MeshBase::get_info(), libMesh::VTKIO::get_local_node_values(), libMesh::TreeNode< N >::insert(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), main(), AllSecondOrderTest::MixedFixingImpl(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::UCDIO::read_implementation(), libMesh::XdrIO::read_serialized_nodes(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::MeshTools::Modification::redistribute(), libMesh::MeshTools::Modification::smooth(), ConstraintOperatorTest::test1DCoarseningNewNodes(), MeshInputTest::testAbaqusRead(), SystemsTest::testBoundaryProjectCube(), MeshGenerationTest::testBuildCube(), MeshGenerationTest::testBuildLine(), MeshGenerationTest::testBuildSquare(), SystemsTest::testDofCouplingWithVarGroups(), MeshInputTest::testDynaNoSplines(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), ConnectedComponentsTest::testEdge(), VolumeTest::testEdge3Volume(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testGoodSTLBinary(), MeshInputTest::testNemesisReadImpl(), MeshInputTest::testTetgenIO(), MeshTetTest::testTetInterfaceBase(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorRoundHole(), MeshSmootherTest::testVariationalSmootherRegression(), MeshInputTest::testVTKPreserveElemIds(), MeshInputTest::testVTKPreserveSubdomainIds(), libMesh::DirectSolutionTransfer::transfer(), libMesh::TreeNode< N >::transform_nodes_to_elements(), libMesh::TriangleInterface::triangulate(), libMesh::NetGenMeshInterface::triangulate(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::Poly2TriTriangulator::triangulate_current_points(), libMesh::FroIO::write(), libMesh::TetGenIO::write(), libMesh::MEDITIO::write_ascii(), libMesh::TecplotIO::write_ascii(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::TecplotIO::write_binary(), libMesh::GMVIO::write_binary(), libMesh::UCDIO::write_header(), libMesh::GmshIO::write_mesh(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::GmshIO::write_post(), libMesh::System::write_serialized_vectors(), and libMesh::UCDIO::write_soln().
|
inherited |
proc. Definition at line 1209 of file mesh_base.C.
References distance(), libMesh::DofObject::invalid_processor_id, libMesh::libmesh_assert(), and libMesh::ParallelObject::n_processors().
Referenced by libMesh::MeshBase::n_local_nodes(), and libMesh::MeshBase::n_unpartitioned_nodes().
|
inlineinherited |
Definition at line 1516 of file mesh_base.h.
References libMesh::MeshBase::_n_parts.
Referenced by libMesh::Partitioner::assign_partitioning(), copy_nodes_and_elements(), libMesh::MeshBase::get_info(), libMesh::BoundaryInfo::sync(), CheckpointIOTest::testSplitter(), libMesh::NameBasedIO::write(), libMesh::GMVIO::write_ascii_new_impl(), and libMesh::GMVIO::write_ascii_old_impl().
|
inlineinherited |
Definition at line 103 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, libMesh::libmesh_assert(), and TIMPI::Communicator::size().
Referenced by libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::DofMap::add_constraints_to_send_list(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::System::add_vector(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::Partitioner::build_graph(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), copy_nodes_and_elements(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::EnsightIO::EnsightIO(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::MeshBase::get_info(), libMesh::StaticCondensation::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_petscdm(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), libMesh::NumericVector< Number >::is_effectively_ghosted(), libMesh::NumericVector< Number >::is_effectively_serial(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::DofMap::local_variable_indices(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshBase::n_active_elem_on_proc(), libMesh::DofMap::n_dofs_per_processor(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::Partitioner::partition(), libMesh::MeshBase::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::prepare_send_list(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_header(), libMesh::CheckpointIO::read_nodes(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vector(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::Partitioner::repartition(), OverlappingFunctorTest::run_partitioner_test(), libMesh::DofMap::scatter_constraints(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), WriteVecAndScalar::setupTests(), libMesh::RBEIMEvaluation::side_gather_bfs(), DistributedMeshTest::testRemoteElemError(), CheckpointIOTest::testSplitter(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::VTKIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::System::write_parallel_data(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().
|
inherited |
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.
Definition at line 1244 of file mesh_base.C.
|
inherited |
Definition at line 1183 of file mesh_base.C.
References libMesh::MeshBase::subdomain_ids().
Referenced by libMesh::MeshBase::get_info(), MeshSubdomainIDTest::testUnpartitioned(), libMesh::XdrIO::write(), and libMesh::NameBasedIO::write_nodal_data().
|
inlineinherited |
Definition at line 693 of file mesh_base.h.
References libMesh::DofObject::invalid_processor_id, and libMesh::MeshBase::n_elem_on_proc().
Referenced by libMesh::MeshBase::complete_preparation(), libMesh::DistributedMesh::parallel_n_elem(), and libMesh::MeshBase::partition().
|
inlineinherited |
Definition at line 587 of file mesh_base.h.
References libMesh::DofObject::invalid_processor_id, and libMesh::MeshBase::n_nodes_on_proc().
Referenced by libMesh::MeshBase::complete_preparation(), and libMesh::DistributedMesh::parallel_n_nodes().
|
inlineinherited |
Definition at line 600 of file mesh_base.h.
References libMesh::MeshBase::_next_unique_id.
Referenced by libMesh::ExodusII_IO_Helper::set_dof_object_unique_id(), and libMesh::ExodusII_IO_Helper::write_elements().
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::GMVIO::_read_one_cell(), add_cube_convex_hull_to_mesh(), libMesh::MeshRefinement::add_node(), AllSecondOrderTest::allCompleteOrderMixed(), AllSecondOrderTest::allCompleteOrderRange(), libMesh::DofMap::allgather_recursive_constraints(), AllSecondOrderTest::allSecondOrderMixed(), AllSecondOrderTest::allSecondOrderRange(), libMesh::AbaqusIO::assign_boundary_node_ids(), libMesh::TetGenMeshInterface::assign_nodes_to_elem(), libMesh::MeshTools::Generation::build_extrusion(), DisjointNeighborTest::build_four_disjoint_elems(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), DisjointNeighborTest::build_split_mesh_with_interface(), DisjointNeighborTest::build_two_disjoint_elems(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::MeshBase::copy_constraint_rows(), libMesh::TriangleWrapper::copy_tri_to_mesh(), create_submesh(), libMesh::TetGenIO::element_in(), libMesh::TriangulatorInterface::elems_to_segments(), libMesh::TriangulatorInterface::insert_any_extra_boundary_points(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), main(), libMesh::MeshBase::node_ref(), libMesh::BoundaryInfo::operator=(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::VTKIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::ExodusII_IO_Helper::read_edge_blocks(), libMesh::AbaqusIO::read_elements(), libMesh::UCDIO::read_implementation(), libMesh::GmshIO::read_mesh(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::DofMap::scatter_constraints(), stitching_helper(), libMesh::MeshTools::Generation::surface_octahedron(), libMesh::BoundaryInfo::sync(), AllTriTest::test_helper_c0polyhedron(), VolumeTest::testC0PolygonMethods(), VolumeTest::testC0PolyhedronCube(), VolumeTest::testC0PolyhedronHexagonalPrism(), MeshInputTest::testExodusSetNodeUniqueIdsFromMaps_implementation(), NodalNeighborsTest::testOrientation(), EquationSystemsTest::testPostInitAddElem(), SystemsTest::testProjectMatrix3D(), InfFERadialTest::testRefinement(), EquationSystemsTest::testReinitWithNodeElem(), BoundaryInfoTest::testShellFaceConstraints(), MeshTetTest::testTetsToTets(), MeshSubdomainIDTest::testUnpartitioned(), libMesh::NetGenMeshInterface::triangulate(), and libMesh::CheckpointIO::write_nodesets().
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
inlinevirtualinherited |
Definition at line 735 of file mesh_base.h.
References libMesh::MeshBase::node_ptr().
Referenced by libMesh::SyncNodalPositions::act_on_data(), LinearElasticityWithContact::add_contact_edge_elements(), assemble_matrix_and_rhs(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::MeshBase::copy_constraint_rows(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::DTKAdapter::DTKAdapter(), fill_dirichlet_bc(), main(), libMesh::ReplicatedMesh::point(), libMesh::DistributedMesh::point(), libMesh::ExodusII_IO::read(), libMesh::XdrIO::read_serialized_nodes(), libMesh::DistributedMesh::renumber_nodes_and_elements(), LinearElasticityWithContact::residual_and_jacobian(), libMesh::Partitioner::set_interface_node_processor_ids_BFS(), libMesh::Partitioner::set_interface_node_processor_ids_linear(), libMesh::Partitioner::set_interface_node_processor_ids_petscpartitioner(), libMesh::Partitioner::set_node_processor_ids(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::VariationalMeshSmoother::smooth(), libMesh::MeshTools::Modification::smooth(), stitching_helper(), MeshTriangulationTest::testPoly2TriHolesInterpRefined(), MeshSmootherTest::testVariationalSmoother(), MeshSmootherTest::testVariationalSmootherRegression(), libMesh::DTKAdapter::update_variable_values(), and libMesh::GmshIO::write_mesh().
|
inlinevirtualinherited |
Definition at line 744 of file mesh_base.h.
References libMesh::MeshBase::node_ptr().
|
protectedinherited |
Tests for equality of all elements and nodes in the mesh.
Helper function for subclass_equals() in unstructured mesh subclasses.
Definition at line 2401 of file mesh_base.C.
References libMesh::MeshBase::query_elem_ptr(), and libMesh::MeshBase::query_node_ptr().
|
inlineinherited |
Definition at line 138 of file mesh_base.h.
|
delete |
Copy assignment is not allowed.
Referenced by libMesh::ReplicatedMesh::operator=().
|
default |
Move assignment is allowed, by subclasses who handle post_dofobject_moves()
|
inherited |
This tests for exactly-equal data in all the senses that a mathematician would care about (element connectivity, nodal coordinates), but in the senses a programmer would care about it allows for non-equal equivalence in some ways (we accept different Elem/Node addresses in memory) but not others (we do not accept different subclass types, nor even different Elem/Node ids).
Though this method is non-virtual, its implementation calls the virtual function subclass_locally_equals() to test for equality of subclass-specific data as well.
Definition at line 271 of file mesh_base.C.
References libMesh::ParallelObject::comm(), libMesh::MeshBase::locally_equals(), and TIMPI::Communicator::min().
|
inlinevirtualinherited |
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 in libMesh::DistributedMesh.
Definition at line 859 of file mesh_base.h.
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::BoundaryInfo::add_elements(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), CopyNodesAndElementsTest::collectMeshes(), copy_nodes_and_elements(), libMesh::DistributedMesh::DistributedMesh(), main(), libMesh::Nemesis_IO::read(), stitching_helper(), and libMesh::MeshTetInterface::volume_to_surface_mesh().
|
pure virtualinherited |
The parallel_n_elem() function computes a parallel-synchronized value on distributed meshes, and so must be called in parallel only.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::Nemesis_IO_Helper::initialize(), and libMesh::Nemesis_IO::read().
|
pure virtualinherited |
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.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::Nemesis_IO_Helper::initialize(), libMesh::Nemesis_IO::read(), DisjointNeighborTest::testPreserveDisjointNeighborPairsAfterStitch(), and DisjointNeighborTest::testStitchingDiscontinuousBoundaries().
|
virtualinherited |
Call the default partitioner (currently metis_partition()).
Definition at line 1762 of file mesh_base.C.
References libMesh::MeshBase::_preparation, libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshBase::Preparation::is_partitioned, libMesh::MeshBase::is_serial(), libMesh::libmesh_assert(), libMesh::MeshBase::n_unpartitioned_elem(), libMesh::MeshBase::partitioner(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshBase::skip_noncritical_partitioning(), and libMesh::MeshBase::update_post_partitioning().
Referenced by main(), libMesh::split_mesh(), ExtraIntegersTest::test_helper(), MappedSubdomainPartitionerTest::testMappedSubdomainPartitioner(), EquationSystemsTest::testRepartitionThenReinit(), and CheckpointIOTest::testSplitter().
|
inlineinherited |
Definition at line 1310 of file mesh_base.h.
References libMesh::ParallelObject::n_processors().
Referenced by libMesh::MeshBase::complete_preparation().
|
inlinevirtualinherited |
A partitioner to use at each partitioning.
Definition at line 165 of file mesh_base.h.
References libMesh::MeshBase::_partitioner.
Referenced by main(), libMesh::MeshBase::partition(), libMesh::BoundaryInfo::sync(), MultiEvaluablePredTest::test(), MeshDeletionsTest::testDeleteElem(), and MappedSubdomainPartitionerTest::testMappedSubdomainPartitioner().
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::Modification::all_tri(), AllSecondOrderTest::allCompleteOrderMixed(), AllSecondOrderTest::allCompleteOrderRange(), AllSecondOrderTest::allSecondOrderMixed(), AllSecondOrderTest::allSecondOrderRange(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::VTKIO::cells_to_vtk(), libMesh::SyncNodalPositions::gather_data(), LinearElasticityWithContact::initialize_contact_load_paths(), main(), libMesh::TriangulatorInterface::nodes_to_segments(), libMesh::LaplaceMeshSmoother::smooth(), stitching_helper(), libMesh::FroIO::write(), libMesh::TetGenIO::write(), libMesh::MEDITIO::write_ascii(), libMesh::TecplotIO::write_ascii(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::TecplotIO::write_binary(), libMesh::GMVIO::write_binary(), and libMesh::GnuPlotIO::write_solution().
|
protectedinherited |
Moves any superclass data (e.g.
GhostingFunctors that might rely on element and nodal data (which is managed by subclasses!) being already moved first.
Must be manually called in dofobject-managing subclass move operators.
Definition at line 2356 of file mesh_base.C.
References libMesh::MeshBase::_constraint_rows, libMesh::MeshBase::_default_ghosting, libMesh::MeshBase::_ghosting_functors, libMesh::MeshBase::_partitioner, and libMesh::MeshBase::_shared_functors.
Referenced by libMesh::ReplicatedMesh::operator=().
|
inlineinherited |
Definition at line 213 of file mesh_base.h.
References libMesh::MeshBase::_preparation.
Referenced by libMesh::DistributedMesh::DistributedMesh(), and libMesh::ReplicatedMesh::ReplicatedMesh().
|
inherited |
Prepare a newly created (or read) mesh for use.
This involves several steps: 1.) renumbering (if enabled) 2.) removing any orphaned nodes 3.) updating parallel id counts 4.) finding neighbor links 5.) caching summarized element data 6.) finding interior parent links 7.) clearing any old point locator 8.) calling reinit() on ghosting functors 9.) repartitioning (if enabled) 10.) removing any remote elements (if enabled) 11.) regenerating summarized boundary id sets
For backwards compatibility, prepare_for_use() performs all those steps, regardless of the official preparation() state of the mesh. In codes which have maintained a valid preparation() state via methods such as unset_has_synched_id_counts(), calling complete_preparation() will result in a fully-prepared mesh at less cost.
The argument to skip renumbering is now deprecated - to prevent a mesh from being renumbered, set allow_renumbering(false). The argument to skip finding neighbors is also deprecated. To prevent find_neighbors, set allow_find_neighbors(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).
Definition at line 824 of file mesh_base.C.
References libMesh::MeshBase::allow_find_neighbors(), libMesh::MeshBase::allow_renumbering(), and libMesh::MeshBase::prepare_for_use().
Referenced by LinearElasticityWithContact::add_contact_edge_elements(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_extrusion(), DisjointNeighborTest::build_four_disjoint_elems(), libMesh::InfElemBuilder::build_inf_elem(), DisjointNeighborTest::build_split_mesh_with_interface(), DisjointNeighborTest::build_two_disjoint_elems(), VolumeTest::buildC0Polyhedron(), libMesh::MeshRefinement::coarsen_elements(), create_submesh(), libMesh::MeshTools::Modification::flatten(), main(), libMesh::MeshTools::Subdivision::prepare_subdivision_mesh(), libMesh::GMVIO::read(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::SimplexRefiner::refine_elements(), libMesh::MeshRefinement::refine_elements(), libMesh::C0Polyhedron::retriangulate(), libMesh::MeshTools::Generation::surface_octahedron(), libMesh::BoundaryInfo::sync(), MeshSpatialDimensionTest::test1D(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), MeshSpatialDimensionTest::test2D(), AllTriTest::test_helper_c0polyhedron(), XdrIOTest< elem_type >::test_read_gold(), ExodusTest< elem_type >::test_read_gold(), ExodusTest< elem_type >::test_write(), XdrIOTest< elem_type >::test_write(), MeshInputTest::testAbaqusRead(), AllTriTest::testAllTriC0PolygonOctagon(), SystemsTest::testBlockRestrictedVarNDofs(), BoundaryInfoTest::testBoundaryIDs(), BoundaryInfoTest::testBoundaryOnChildrenBoundaryIDs(), BoundaryInfoTest::testBoundaryOnChildrenBoundarySides(), BoundaryInfoTest::testBoundaryOnChildrenElementsRefineCoarsen(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), ConstraintOperatorTest::testCoreform(), MeshDeletionsTest::testDeleteElem(), DisjointNeighborTest::testDisjointNeighborConflictError(), SystemsTest::testDofCouplingWithVarGroups(), MeshInputTest::testDynaFileMappings(), MeshInputTest::testDynaNoSplines(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), ConnectedComponentsTest::testEdge(), MeshTriangulationTest::testEdge3Mesh(), MeshTriangulationTest::testEdgesMesh(), MeshInputTest::testExodusFileMappings(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), BoundaryInfoTest::testInternalBoundary(), MeshInputTest::testLowOrderEdgeBlocks(), MeshInputTest::testNemesisReadImpl(), NodalNeighborsTest::testOrientation(), PeriodicBCTest::testPeriodicBC(), MeshTriangulationTest::testPoly2TriBad1DMultiBoundary(), MeshTriangulationTest::testPoly2TriBad2DMultiBoundary(), MeshTriangulationTest::testPoly2TriBadEdges(), EquationSystemsTest::testPostInitAddElem(), SystemsTest::testProjectMatrix3D(), InfFERadialTest::testRefinement(), EquationSystemsTest::testReinitWithNodeElem(), SystemsTest::testSetSystemParameterOverEquationSystem(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), DisjointNeighborTest::testStitchCrossMesh(), MeshInputTest::testTetgenIO(), MeshTetTest::testTetsToTets(), MeshTetTest::testTrisToTetsError(), MeshInputTest::testVTKPreserveElemIds(), MeshInputTest::testVTKPreserveSubdomainIds(), tetrahedralize_domain(), libMesh::TriangleInterface::triangulate(), libMesh::NetGenMeshInterface::triangulate(), libMesh::Poly2TriTriangulator::triangulate(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::MeshRefinement::uniformly_refine(), and libMesh::MeshTetInterface::volume_to_surface_mesh().
|
inherited |
Definition at line 843 of file mesh_base.C.
References libMesh::MeshBase::allow_renumbering(), and libMesh::MeshBase::prepare_for_use().
|
inherited |
Definition at line 860 of file mesh_base.C.
References libMesh::MeshBase::_allow_remote_element_removal, libMesh::MeshBase::_preparation, libMesh::MeshBase::_skip_find_neighbors, libMesh::MeshBase::clear_point_locator(), libMesh::MeshBase::clear_stored_ranges(), libMesh::MeshBase::complete_preparation(), libMesh::MeshBase::Preparation::has_neighbor_ptrs, and libMesh::MeshBase::Preparation::has_removed_remote_elements.
Referenced by all_first_order(), copy_nodes_and_elements(), libMesh::MeshBase::prepare_for_use(), read(), and stitching_helper().
|
inherited |
Prints (from processor 0) all mesh constraint rows.
If print_nonlocal is true, then each constraint is printed once for each processor that knows about it, which may be useful for DistributedMesh debugging.
Definition at line 2743 of file mesh_base.C.
References libMesh::ParallelObject::comm(), libMesh::MeshBase::get_local_constraints(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::processor_id(), TIMPI::Communicator::receive(), and TIMPI::Communicator::send().
|
inherited |
Prints relevant information about the mesh.
Take note of the docstring for get_info() for more information pretaining to the verbosity and global parameters.
Definition at line 1748 of file mesh_base.C.
References libMesh::MeshBase::get_info().
Referenced by assemble_and_solve(), libMesh::InfElemBuilder::build_inf_elem(), main(), libMesh::operator<<(), and setup().
|
inlineinherited |
Definition at line 114 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, and TIMPI::Communicator::rank().
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::MeshFunction::check_found_elem(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::ExodusII_IO_Helper::close(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::compute_communication_map_parameters(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_node_communication_maps(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::ExodusII_IO_Helper::create(), libMesh::DistributedMesh::delete_elem(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMapBase::end_dof(), libMesh::DofMapBase::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), find_neighbors(), libMesh::DofMapBase::first_dof(), libMesh::DofMapBase::first_old_dof(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::Nemesis_IO_Helper::get_cmap_params(), libMesh::Nemesis_IO_Helper::get_eb_info_global(), libMesh::Nemesis_IO_Helper::get_elem_cmap(), libMesh::Nemesis_IO_Helper::get_elem_map(), libMesh::MeshBase::get_info(), libMesh::DofMap::get_info(), libMesh::Nemesis_IO_Helper::get_init_global(), libMesh::Nemesis_IO_Helper::get_init_info(), libMesh::RBEIMEvaluation::get_interior_basis_functions_as_vecs(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::DofMap::get_local_constraints(), libMesh::MeshBase::get_local_constraints(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SparsityPattern::Build::handle_vi_vj(), libMesh::LaplaceMeshSmoother::init(), libMesh::SystemSubsetBySubdomain::init(), HeatSystem::init_data(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_element_variables(), libMesh::ExodusII_IO_Helper::initialize_global_variables(), libMesh::ExodusII_IO_Helper::initialize_nodal_variables(), libMesh::DistributedMesh::insert_elem(), libMesh::DofMap::is_evaluable(), libMesh::SparsityPattern::Build::join(), libMesh::TransientRBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEvaluation::legacy_write_offline_data_to_files(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DofMap::local_variable_indices(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::MeshBase::n_active_local_elem(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::MeshTools::n_connected_components(), libMesh::MeshBase::n_constraint_rows(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::DofMapBase::n_local_dofs(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_local_nodes(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::DistributedMesh::own_node(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Nemesis_IO_Helper::put_cmap_params(), libMesh::Nemesis_IO_Helper::put_elem_cmap(), libMesh::Nemesis_IO_Helper::put_elem_map(), libMesh::Nemesis_IO_Helper::put_loadbal_param(), libMesh::Nemesis_IO_Helper::put_node_cmap(), libMesh::Nemesis_IO_Helper::put_node_map(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::ExodusII_IO_Helper::read_global_values(), libMesh::ExodusII_IO::read_header(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::DynaIO::read_mesh(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::System::read_parallel_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::System::read_serialized_data(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::StaticCondensationDofMap::reinit(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::RBEIMEvaluation::side_gather_bfs(), MeshFunctionTest::test_bad_gradient_var_with_out_of_mesh_value(), MeshFunctionTest::test_bad_hessian_var_with_out_of_mesh_value(), ExodusTest< elem_type >::test_read_gold(), ExodusTest< elem_type >::test_write(), MeshInputTest::testAbaqusRead(), MeshInputTest::testBadGmsh(), BoundaryInfoTest::testBoundaryIDs(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testDynaFileMappings(), MeshInputTest::testDynaNoSplines(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusFileMappings(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshInputTest::testGmshBCIDOverlap(), MeshInputTest::testGoodGmsh(), MeshInputTest::testGoodSTL(), MeshInputTest::testGoodSTLBinary(), BoundaryInfoTest::testInternalBoundary(), MeshInputTest::testLowOrderEdgeBlocks(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), WriteVecAndScalar::testSolution(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshSmootherTest::testVariationalSmoother(), libMesh::MeshTools::total_weight(), libMesh::NetGenMeshInterface::triangulate(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::DTKAdapter::update_variable_values(), libMesh::MeshTools::volume(), libMesh::STLIO::write(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::CheckpointIO::write(), libMesh::EquationSystems::write(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_data(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_element_values_element_major(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elemset_data(), libMesh::ExodusII_IO_Helper::write_elemsets(), libMesh::ExodusII_IO::write_global_data(), libMesh::ExodusII_IO_Helper::write_global_values(), libMesh::System::write_header(), libMesh::ExodusII_IO::write_information_records(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::UCDIO::write_nodal_data(), libMesh::VTKIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_common(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::ExodusII_IO_Helper::write_nodeset_data(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), write_output_solvedata(), libMesh::System::write_parallel_data(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::System::write_serialized_data(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), libMesh::ExodusII_IO_Helper::write_sideset_data(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::ExodusII_IO::write_timestep(), libMesh::ExodusII_IO_Helper::write_timestep(), and libMesh::ExodusII_IO::write_timestep_discontinuous().
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by MeshBaseTest::BrokenNeighborMesh(), libMesh::Nemesis_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_equal_connectivity(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), main(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshBase::nodes_and_elements_equal(), libMesh::BoundaryInfo::operator==(), libMesh::MeshTools::Modification::permute_elements(), libMesh::VTKIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_serialized_bcs_helper(), ParsedFEMFunctionTest::setUp(), DofMapTest::testArrayDofIndicesWithType(), BoundaryInfoTest::testBoundaryIDs(), VolumeTest::testC0PolygonMethods(), VolumeTest::testC0PolyhedronMethods(), MeshDeletionsTest::testDeleteElem(), VolumeTest::testEdge3Volume(), ExtraIntegersTest::testExtraIntegersExodusReading(), MeshBaseTest::testMeshBaseVerifyHasCachedElemData(), EquationSystemsTest::testRefineThenReinitPreserveFlags(), EquationSystemsTest::testSelectivePRefine(), BoundaryInfoTest::testSelectiveRenumber(), BoundaryInfoTest::testShellFaceConstraints(), DisjointNeighborTest::testTempJump(), and MeshInputTest::testTetgenIO().
|
pure virtualinherited |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtualinherited |
nullptr if no such node exists in this processor's mesh data structure. Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::BoundaryInfo::add_node(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), create_submesh(), libMesh::MeshTools::Modification::distort(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_equal_points(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::MeshBase::locally_equals(), main(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::MeshBase::nodes_and_elements_equal(), libMesh::BoundaryInfo::operator==(), libMesh::VTKIO::read(), libMesh::AbaqusIO::read_nodes(), libMesh::CheckpointIO::read_nodes(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodesets(), MeshSmootherTest::testVariationalSmoother(), and libMesh::Poly2TriTriangulator::triangulate_current_points().
|
pure virtualinherited |
nullptr if no such node exists in this processor's mesh data structure. Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
overridevirtual |
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.
Definition at line 1362 of file unstructured_mesh.C.
References libMesh::MeshBase::allow_detect_interior_parents(), libMesh::MeshBase::allow_find_neighbors(), libMesh::MeshBase::allow_renumbering(), libMesh::Utility::ends_with(), libMesh::Quality::name(), libMesh::MeshBase::prepare_for_use(), and libMesh::NameBasedIO::read().
Referenced by ExtraIntegersTest::checkpoint_helper(), main(), ExtraIntegersTest::test_helper(), MeshStitchTest::testNodeElemStitch(), SlitMeshRefinedSystemTest::testRestart(), and WriteElemsetData::testWriteImpl().
|
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.
Definition at line 1806 of file mesh_base.C.
References libMesh::MeshBase::_n_parts, libMesh::ParallelObject::comm(), and TIMPI::Communicator::max().
Referenced by libMesh::MeshBase::partition(), and libMesh::CheckpointIO::read().
|
virtualinherited |
Redistribute elements between processors.
This gets called automatically by the Partitioner, and merely notifies any GhostingFunctors of redistribution in the case of a ReplicatedMesh or serialized DistributedMesh
Reimplemented in libMesh::DistributedMesh.
Definition at line 1161 of file mesh_base.C.
References libMesh::as_range(), libMesh::MeshBase::ghosting_functors_begin(), and libMesh::MeshBase::ghosting_functors_end().
Referenced by libMesh::Partitioner::partition(), libMesh::DistributedMesh::redistribute(), and libMesh::Partitioner::single_partition().
|
inherited |
Loops over ghosting functors and calls mesh_reinit()
Definition at line 1018 of file mesh_base.C.
References libMesh::MeshBase::_ghosting_functors, libMesh::MeshBase::_preparation, libMesh::MeshBase::Preparation::has_reinit_ghosting_functors, and libMesh::libmesh_assert().
Referenced by libMesh::MeshBase::complete_preparation().
|
inherited |
Definition at line 2266 of file mesh_base.C.
References libMesh::MeshBase::_disjoint_neighbor_boundary_pairs.
Referenced by stitching_helper().
|
inherited |
Removes a functor which was previously added to the set of ghosting functors.
Definition at line 1093 of file mesh_base.C.
References libMesh::MeshBase::_ghosting_functors, libMesh::MeshBase::_shared_functors, and libMesh::libmesh_assert().
Referenced by libMesh::DofMap::clear(), libMesh::DofMap::remove_algebraic_ghosting_functor(), libMesh::DofMap::remove_coupling_functor(), EquationSystemsTest::testDisableDefaultGhosting(), and libMesh::DofMap::~DofMap().
|
inherited |
Removes any orphaned nodes, nodes not connected to any elements.
Typically done automatically in a preparation step
Definition at line 801 of file mesh_base.C.
References libMesh::MeshBase::_preparation, libMesh::MeshBase::delete_node(), and libMesh::MeshBase::Preparation::has_removed_orphaned_nodes.
Referenced by libMesh::MeshBase::complete_preparation().
|
pure virtualinherited |
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.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::SimplexRefiner::refine_via_edges(), and MeshInputTest::testVTKPreserveElemIds().
|
pure virtualinherited |
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.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::SimplexRefiner::refine_via_edges().
|
pure virtualinherited |
After partitioning a mesh it is useful to renumber the nodes and elements so that they lie in contiguous blocks on the processors.
This method does just that.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshBase::complete_preparation(), contract(), and write_output().
|
pure virtualinherited |
Reserves space for a known number of elements.
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. Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), copy_nodes_and_elements(), libMesh::ExodusII_IO::read(), libMesh::XdrIO::read_header(), and libMesh::GmshIO::read_mesh().
|
pure virtualinherited |
Reserves space for a known number of nodes.
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. Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by all_complete_order_range(), all_second_order_range(), libMesh::MeshTools::Generation::build_extrusion(), copy_nodes_and_elements(), libMesh::ExodusII_IO::read(), libMesh::XdrIO::read_header(), and libMesh::GmshIO::read_mesh().
|
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.
Definition at line 1866 of file mesh_base.C.
References libMesh::MeshBase::_count_lower_dim_elems_in_point_locator.
|
inlineinherited |
Set the default master space to physical space mapping basis functions to be used on newly added elements.
Definition at line 958 of file mesh_base.h.
References libMesh::MeshBase::_default_mapping_data.
Referenced by libMesh::MeshTools::Modification::all_rbb(), libMesh::ExodusII_IO::read(), and libMesh::DynaIO::read_mesh().
|
inlineinherited |
Set the default master space to physical space mapping basis functions to be used on newly added elements.
Definition at line 940 of file mesh_base.h.
References libMesh::MeshBase::_default_mapping_type.
Referenced by libMesh::MeshTools::Modification::all_rbb(), libMesh::ExodusII_IO::read(), and libMesh::DynaIO::read_mesh().
|
inlinevirtualinherited |
Asserts that not all elements and nodes of the mesh necessarily exist on the current processor.
Only valid to call on classes which can be created in a distributed form.
Reimplemented in libMesh::DistributedMesh.
Definition at line 362 of file mesh_base.h.
Referenced by libMesh::CheckpointIO::read().
|
inherited |
Most of the time you should not need to call this, as the element dimensions will be set automatically by a call to cache_elem_data(), therefore only call this if you know what you're doing.
In some specialized situations, for example when adding a single Elem on all procs, it can be faster to skip calling cache_elem_data() and simply specify the element dimensions manually, which is why this setter exists.
Definition at line 439 of file mesh_base.C.
References libMesh::MeshBase::_elem_dims, and libMesh::MeshBase::cache_elem_data().
|
inlineinherited |
Sets the interior mesh.
For advanced use only.
Definition at line 2018 of file mesh_base.h.
References libMesh::MeshBase::_interior_mesh.
Referenced by libMesh::BoundaryInfo::add_elements(), and copy_nodes_and_elements().
|
inlineinherited |
Tells this we have done some operation where we should no longer consider ourself prepared.
This is a very coarse setting; it is generally more efficient to mark finer-grained settings instead.
This method name is now deprecated, in part to match the less awkward unset_has_ names of the more fine-grained methods, in part as a way to prompt older user codes to use the more fine-grained methods where they can, to speed up the complete_preparation() calls afterward.
Definition at line 228 of file mesh_base.h.
References libMesh::MeshBase::_preparation.
|
inlineinherited |
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 413 of file mesh_base.h.
References libMesh::MeshBase::_elem_dims.
Referenced by libMesh::MeshTools::Generation::build_delaunay_square(), DisjointNeighborTest::build_four_disjoint_elems(), DisjointNeighborTest::build_split_mesh_with_interface(), libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::AbaqusIO::read(), libMesh::GMVIO::read(), libMesh::STLIO::read(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::VTKIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::CheckpointIO::read_header(), libMesh::UCDIO::read_implementation(), libMesh::GmshIO::read_mesh(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), InfFERadialTest::testRefinement(), libMesh::TriangleInterface::triangulate(), and libMesh::Poly2TriTriangulator::triangulate().
|
inlineprotectedinherited |
Definition at line 2131 of file mesh_base.h.
References libMesh::MeshBase::_n_parts.
Referenced by libMesh::Partitioner::partition(), libMesh::Partitioner::repartition(), and libMesh::BoundaryInfo::sync().
|
pure virtualinherited |
Sets the next available unique id to be used.
On a ReplicatedMesh, or when adding unpartitioned objects to a DistributedMesh, this must be kept in sync on all processors.
On a DistributedMesh, other unique_id values (larger than this one) may be chosen next, to allow unique_id assignment without communication.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by copy_nodes_and_elements(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read_serialized_nodes(), and libMesh::ExodusII_IO_Helper::set_dof_object_unique_id().
|
inherited |
Set value used by PointLocatorBase::close_to_point_tol().
Defaults to 0.0. If nonzero, calls close_to_point_tol() whenever a new PointLocator is built for use by this Mesh. Since the Mesh controls the creation and destruction of the PointLocator, if there are any parameters we need to customize on it, the Mesh will need to know about them.
Definition at line 2300 of file mesh_base.C.
References libMesh::MeshBase::_point_locator, and libMesh::MeshBase::_point_locator_close_to_point_tol.
|
inherited |
Sets the "spatial dimension" of the Mesh.
See the documentation for Mesh::spatial_dimension() for more information.
Definition at line 613 of file mesh_base.C.
References libMesh::MeshBase::_spatial_dimension.
Referenced by libMesh::MeshTools::Modification::rotate(), MeshSpatialDimensionTest::test2D(), and InfFERadialTest::testRefinement().
|
inlineinherited |
Definition at line 1894 of file mesh_base.h.
References libMesh::MeshBase::_block_id_to_name.
Referenced by libMesh::DistributedMesh::DistributedMesh(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::CheckpointIO::read_subdomain_names(), and libMesh::ReplicatedMesh::ReplicatedMesh().
|
protectedinherited |
Size extra-integer arrays of all elements in the mesh.
Definition at line 2321 of file mesh_base.C.
References libMesh::MeshBase::_elem_integer_names, libMesh::MeshBase::element_stored_range(), and libMesh::Threads::parallel_for().
Referenced by libMesh::MeshBase::add_elem_data(), libMesh::MeshBase::add_elem_datum(), libMesh::MeshBase::add_elem_integer(), and libMesh::MeshBase::add_elem_integers().
|
protectedinherited |
Size extra-integer arrays of all nodes in the mesh.
Definition at line 2336 of file mesh_base.C.
References libMesh::MeshBase::_node_integer_default_values, and libMesh::MeshBase::_node_integer_names.
Referenced by libMesh::MeshBase::add_node_data(), libMesh::MeshBase::add_node_datum(), libMesh::MeshBase::add_node_integer(), and libMesh::MeshBase::add_node_integers().
|
inlineinherited |
If true is passed in then the elements on this mesh will no longer be (re)partitioned, and the nodes on this mesh will only be repartitioned if they are found "orphaned" via coarsening or other removal of the last element responsible for their node/element processor id consistency.
It is also possible, for backwards-compatibility purposes, to skip noncritical partitioning by resetting the partitioner() pointer for this mesh.
Definition at line 1401 of file mesh_base.h.
References libMesh::MeshBase::_skip_noncritical_partitioning.
Referenced by libMesh::MeshTools::correct_node_proc_ids(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), and MeshInputTest::testCopyNodalSolutionImpl().
|
inlineinherited |
Definition at line 1404 of file mesh_base.h.
References libMesh::MeshBase::_partitioner, libMesh::MeshBase::_skip_all_partitioning, and libMesh::MeshBase::_skip_noncritical_partitioning.
Referenced by libMesh::MeshBase::partition().
|
inlineinherited |
If true is passed in then nothing on this mesh will be (re)partitioned.
Definition at line 1419 of file mesh_base.h.
References libMesh::MeshBase::_skip_all_partitioning.
Referenced by libMesh::DistributedMesh::DistributedMesh(), libMesh::CheckpointIO::read(), libMesh::ReplicatedMesh::ReplicatedMesh(), and CheckpointIOTest::testSplitter().
|
inlineinherited |
Definition at line 1421 of file mesh_base.h.
References libMesh::MeshBase::_skip_all_partitioning.
Referenced by libMesh::MeshBase::complete_preparation(), copy_nodes_and_elements(), libMesh::DistributedMesh::DistributedMesh(), and libMesh::ReplicatedMesh::ReplicatedMesh().
|
inherited |
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 mesh preparation based on the dimensions of the various elements present in the Mesh, but is never automatically decreased.
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() or complete_preparation(). 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.
Definition at line 606 of file mesh_base.C.
References libMesh::MeshBase::_spatial_dimension.
Referenced by libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::EquationSystems::build_variable_names(), libMesh::MeshBase::get_info(), libMesh::ExodusII_IO_Helper::initialize(), MeshSpatialDimensionTest::test1D(), and MeshSpatialDimensionTest::test2D().
| std::size_t libMesh::UnstructuredMesh::stitch_meshes | ( | const MeshBase & | other_mesh, |
| boundary_id_type | this_mesh_boundary, | ||
| boundary_id_type | other_mesh_boundary, | ||
| Real | tol = TOLERANCE, |
||
| bool | clear_stitched_boundary_ids = false, |
||
| bool | verbose = true, |
||
| bool | use_binary_search = true, |
||
| bool | enforce_all_nodes_match_on_boundaries = false, |
||
| bool | merge_boundary_nodes_all_or_nothing = false, |
||
| bool | remap_subdomain_ids = false, |
||
| bool | prepare_after_stitching = true |
||
| ) |
Stitch other_mesh to this mesh so that this mesh is the union of the two meshes.
this_mesh_boundary and other_mesh_boundary are used to specify a dim-1 dimensional surface on which we seek to merge any "overlapping" nodes, where we use the parameter tol as a relative tolerance (relative to the smallest edge length on the surfaces being stitched) to determine whether or not nodes are overlapping. If clear_stitched_boundary_ids==true, this function clears boundary_info IDs in this mesh associated this_mesh_boundary and other_mesh_boundary. If use_binary_search is true, we use an optimized "sort then binary search" algorithm for finding matching nodes. Otherwise we use a N^2 algorithm (which can be more reliable at dealing with slightly misaligned meshes). If enforce_all_nodes_match_on_boundaries is true, we throw an error if the number of nodes on the specified boundaries don't match the number of nodes that were merged. This is a helpful error check in some cases. If this is true, it overrides the value of merge_boundary_nodes_all_or_nothing. If skip_find_neighbors is true, a faster stitching method is used, where the lists of neighbors for each elements are copied as well and patched, without calling the time-consuming find_neighbors() function. This option is now hard-coded to true. If merge_boundary_nodes_all_or_nothing is true, instead of throwing an error like enforce_all_nodes_match_on_boundaries, the meshes are combined anyway but coincident nodes are not merged into single nodes. This is useful in cases where you are not sure if the boundaries are fully conforming beforehand and you want to handle the non-conforming cases differently.
Note that the element IDs for elements in the stitched mesh corresponding to "this" mesh will be unchanged. The IDs for elements corresponding to other_mesh will be incremented by this->max_elem_id().
There is no simple a priori relationship between node IDs in "this" mesh and other_mesh and node IDs in the stitched mesh because the number of nodes (and hence the node IDs) in the stitched mesh depend on how many nodes are stitched.
If remap_subdomain_ids is true then we assume that some subdomain ids might have been autogenerated, so we remap them as necessary, treating subdomain names as the important thing for consistency; if we have missing names and cannot infer a consistent resolution to an id conflict then we exit with an error. If remap_subdomain_ids is false then we revert to the older libMesh behavior: leave all subdomain ids alone and woe unto you if you weren't keeping track of them.
If prepare_after_stitching is true then we prepare the newly stitched mesh for use immediately after stitching. If the mesh does not need to be completely prepared for use yet (e.g. because it will undergo further stitching etc. before repartitioning for load balancing is desired), this can be set to false to potentially improve performance.
merge_boundary_nodes_all_or_nothing was active and relevant. Definition at line 1869 of file unstructured_mesh.C.
References stitching_helper().
Referenced by DisjointNeighborTest::testDisjointNeighborConflictError(), MeshStitchTest::testNodeElemStitch(), and DisjointNeighborTest::testStitchCrossMesh().
| std::size_t libMesh::UnstructuredMesh::stitch_surfaces | ( | boundary_id_type | boundary_id_1, |
| boundary_id_type | boundary_id_2, | ||
| Real | tol = TOLERANCE, |
||
| bool | clear_stitched_boundary_ids = false, |
||
| bool | verbose = true, |
||
| bool | use_binary_search = true, |
||
| bool | enforce_all_nodes_match_on_boundaries = false, |
||
| bool | merge_boundary_nodes_all_or_nothing = false, |
||
| bool | prepare_after_stitching = true |
||
| ) |
Similar to stitch_meshes, except that we stitch two adjacent surfaces within this mesh.
Definition at line 1898 of file unstructured_mesh.C.
References stitching_helper().
|
private |
Helper function for stitch_meshes and stitch_surfaces that does the mesh stitching.
Definition at line 1925 of file unstructured_mesh.C.
References libMesh::MeshBase::add_disjoint_neighbor_boundary_pairs(), libMesh::BoundaryInfo::add_edge(), libMesh::MeshBase::add_elemset_code(), libMesh::BoundaryInfo::add_node(), libMesh::BoundaryInfo::add_shellface(), libMesh::BoundaryInfo::add_side(), libMesh::MeshBase::allow_find_neighbors(), libMesh::MeshBase::allow_remote_element_removal(), b, libMesh::Utility::binary_find(), libMesh::PeriodicBoundaries::boundary(), libMesh::BoundaryInfo::boundary_ids(), libMesh::BoundaryInfo::build_edge_list(), libMesh::BoundaryInfo::build_node_list(), libMesh::BoundaryInfo::build_shellface_list(), libMesh::BoundaryInfo::build_side_list(), libMesh::BoundaryInfo::clear_stitched_boundary_side_ids(), copy_nodes_and_elements(), libMesh::MeshBase::delete_node(), libMesh::Elem::dim(), libMesh::BoundaryInfo::edge_boundary_ids(), libMesh::MeshBase::elem_ptr(), find_neighbors(), libMesh::BoundaryInfo::get_boundary_ids(), libMesh::MeshBase::get_boundary_info(), libMesh::MeshBase::get_disjoint_neighbor_boundary_pairs(), libMesh::BoundaryInfo::get_edgeset_name_map(), libMesh::MeshBase::get_elemset_codes(), libMesh::MeshBase::get_elemsets(), libMesh::BoundaryInfo::get_nodeset_name_map(), libMesh::BoundaryInfo::get_sideset_name(), libMesh::BoundaryInfo::get_sideset_name_map(), libMesh::MeshBase::get_subdomain_name_map(), libMesh::BoundaryInfo::has_boundary_id(), libMesh::if(), libMesh::BoundaryInfo::invalid_id, libMesh::invalid_uint, libMesh::MeshBase::is_prepared(), libMesh::Elem::level(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::Elem::local_node(), libMesh::Elem::low_order_key(), libMesh::make_range(), libMesh::MeshBase::max_elem_id(), libMesh::MeshBase::max_node_id(), mesh, libMesh::Elem::neighbor_ptr(), libMesh::Elem::node_ptr(), libMesh::MeshBase::node_ptr(), libMesh::MeshBase::node_ref(), libMesh::NODEELEM, libMesh::TensorTools::norm(), libMesh::out, libMesh::MeshBase::parallel_max_unique_id(), libMesh::MeshBase::point(), libMesh::MeshBase::prepare_for_use(), libMesh::Real, libMesh::MeshBase::remove_disjoint_boundary_pair(), libMesh::BoundaryInfo::set_edgeset_name_map(), libMesh::Elem::set_neighbor(), libMesh::Elem::set_node(), libMesh::BoundaryInfo::set_nodeset_name_map(), libMesh::BoundaryInfo::set_sideset_name_map(), side_id, libMesh::Elem::side_index_range(), libMesh::Elem::side_ptr(), libMesh::Elem::subactive(), libMesh::MeshBase::subdomain_name(), and libMesh::TOLERANCE.
Referenced by stitch_meshes(), and stitch_surfaces().
|
inherited |
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. Definition at line 1826 of file mesh_base.C.
References libMesh::MeshBase::_point_locator, libMesh::MeshBase::_point_locator_close_to_point_tol, libMesh::PointLocatorBase::build(), libMesh::Threads::in_threads, libMesh::libmesh_assert(), libMesh::NANOFLANN, and libMesh::TREE_ELEMENTS.
Referenced by WriteElemsetData::checkElemsetCodes(), libMesh::DofMap::create_dof_constraints(), find_neighbors(), libMesh::MeshFunction::init(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::OverlapCoupling::mesh_reinit(), libMesh::DefaultCoupling::mesh_reinit(), libMesh::PointNeighborCoupling::mesh_reinit(), MeshPerElemTest< elem_type >::meshes_equal_enough(), MeshFunctionTest::test_bad_gradient_var_with_out_of_mesh_value(), MeshFunctionTest::test_bad_hessian_var_with_out_of_mesh_value(), libMesh::MeshRefinement::test_level_one(), PointLocatorTest::testLocator(), MeshInputTest::testMasterCenters(), PointLocatorTest::testPlanar(), SystemsTest::testProjectCube(), SystemsTest::testProjectLine(), and SystemsTest::testProjectSquare().
|
protectedpure virtualinherited |
Shim to allow operator == (&) to behave like a virtual function without having to be one.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshBase::locally_equals().
|
inherited |
Constructs a list of all subdomain identifiers in the local mesh if global == false, and in the global mesh if global == true (default).
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.
Unpartitioned elements are included in the set in the case that global == true. If global == false, the unpartitioned elements are not included because unpartitioned elements do not have a sense of locality.
Definition at line 1119 of file mesh_base.C.
References libMesh::MeshBase::active_local_element_stored_range(), libMesh::ParallelObject::comm(), libMesh::Threads::parallel_reduce(), and TIMPI::Communicator::set_union().
Referenced by libMesh::MeshBase::copy_constraint_rows(), libMesh::ReplicatedMesh::get_disconnected_subdomains(), libMesh::MeshBase::n_local_subdomains(), libMesh::MeshBase::n_subdomains(), libMesh::TecplotIO::TecplotIO(), MeshSubdomainIDTest::testMultiple(), and MeshSubdomainIDTest::testUnpartitioned().
|
inherited |
Definition at line 1880 of file mesh_base.C.
References libMesh::MeshBase::_block_id_to_name.
Referenced by libMesh::AbaqusIO::assign_subdomain_ids(), DMlibMeshSetSystem_libMesh(), libMesh::UNVIO::groups_in(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::GmshIO::read_mesh(), stitching_helper(), MeshStitchTest::testAmbiguousRemappingStitch(), MeshInputTest::testGmshBCIDOverlap(), MeshStitchTest::testRemappingStitch(), libMesh::TecplotIO::write_binary(), and libMesh::ExodusII_IO_Helper::write_elements().
|
inherited |
Definition at line 1885 of file mesh_base.C.
References libMesh::MeshBase::_block_id_to_name.
|
inlineinherited |
Definition at line 435 of file mesh_base.h.
References libMesh::MeshBase::_supported_nodal_order.
Referenced by libMesh::MeshBase::get_info().
|
inherited |
libMesh often expects all processors to know about names of all subdomain ids, but distributed mesh generators may only know about part of a mesh when creating names.
This method can synchronize the subdomain id to name map across processors, assuming no conflicts exist.
Definition at line 2040 of file mesh_base.C.
References libMesh::MeshBase::_block_id_to_name, libMesh::ParallelObject::comm(), and TIMPI::Communicator::set_union().
|
inlineinherited |
Tells this we have done some operation which may have invalidated our cached boundary id sets.
User code which removes elements, or which adds or removes boundary entries, should call this method.
Definition at line 340 of file mesh_base.h.
References libMesh::MeshBase::_preparation, and libMesh::MeshBase::Preparation::has_boundary_id_sets.
Referenced by MeshBaseTest::testMeshBaseVerifyRemovalPreparation().
|
inlineinherited |
Tells this we have done some operation (e.g.
adding elements with a new dimension or subdomain value) which may invalidate cached summaries of element data.
User code which adds new elements to this mesh must call this function.
Definition at line 281 of file mesh_base.h.
References libMesh::MeshBase::_preparation, and libMesh::MeshBase::Preparation::has_cached_elem_data.
Referenced by libMesh::MeshTools::Modification::change_subdomain_id(), and MeshBaseTest::testMeshBaseVerifyHasCachedElemData().
|
inlineinherited |
Tells this we have done some operation (e.g.
refining elements with interior parents) which requires interior parent pointers to be found later.
Most user code will not need to call this method; any user code that manipulates interior parents or their boundary elements may be an exception.
Definition at line 293 of file mesh_base.h.
References libMesh::MeshBase::_preparation, and libMesh::MeshBase::Preparation::has_interior_parent_ptrs.
|
inlineinherited |
Tells this we have done some operation (e.g.
adding elements without setting their neighbor pointers, or adding disjoint neighbor boundary pairs) which requires neighbor pointers to be determined later.
User code which adds new elements to this mesh must call this function or manually set neighbor pointer from and to those elements.
Definition at line 270 of file mesh_base.h.
References libMesh::MeshBase::_preparation, and libMesh::MeshBase::Preparation::has_neighbor_ptrs.
Referenced by MeshBaseTest::testMeshBaseVerifyHasNeighborPtrs().
|
inlineinherited |
Tells this we have done some operation (e.g.
adding or removing elements) which may require a reinit() of custom ghosting functors.
User code which adds or removes elements should call this method. User code which moves nodes ... should probably call this method, in case ghosting functors depending on position exist?
Definition at line 330 of file mesh_base.h.
References libMesh::MeshBase::_preparation, and libMesh::MeshBase::Preparation::has_reinit_ghosting_functors.
|
inlineinherited |
Tells this we have done some operation (e.g.
coarsening) which may have left orphaned nodes in need of removal.
Most user code should probably never need to use this; we can set it in MeshRefinement. User code which deletes elements without carefully deleting orphaned nodes should call this manually.
Definition at line 318 of file mesh_base.h.
References libMesh::MeshBase::_preparation, and libMesh::MeshBase::Preparation::has_removed_orphaned_nodes.
Referenced by MeshBaseTest::testMeshBaseVerifyRemovalPreparation().
|
inlineinherited |
Tells this we have done some operation (e.g.
repartitioning) which may have left elements as ghosted which on a distributed mesh should be remote.
User code should probably never need to use this; we can set it in Partitioner. Any user code which manually repartitions elements on distributed meshes may need to call this manually, in addition to manually communicating elements with newly-created ghosting requirements.
Definition at line 307 of file mesh_base.h.
References libMesh::MeshBase::_preparation, and libMesh::MeshBase::Preparation::has_removed_remote_elements.
|
inlineinherited |
Tells this we have done some operation (e.g.
adding objects to a distributed mesh on one processor only) which can lose synchronization of id counts.
User code which does distributed additions of nodes or elements must call either this method or update_parallel_id_counts().
Definition at line 257 of file mesh_base.h.
References libMesh::MeshBase::_preparation, and libMesh::MeshBase::Preparation::has_synched_id_counts.
|
inlineinherited |
Tells this we have done some operation creating unpartitioned elements.
User code which adds elements to this mesh must either partition them too or call this method.
Definition at line 246 of file mesh_base.h.
References libMesh::MeshBase::_preparation, and libMesh::MeshBase::Preparation::is_partitioned.
Referenced by MeshBaseTest::testMeshBaseVerifyRemovalPreparation().
|
inherited |
Tells this we have done some operation where we should no longer consider ourself prepared.
This is a very coarse setting; it is generally more efficient to mark finer-grained settings instead.
Definition at line 1063 of file mesh_base.C.
References libMesh::MeshBase::_preparation, libMesh::MeshBase::clear_point_locator(), and libMesh::MeshBase::clear_stored_ranges().
Referenced by copy_nodes_and_elements(), and MeshTetTest::testTrisToTets().
|
pure virtualinherited |
Updates parallel caches so that methods like n_elem() accurately reflect changes on other processors.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshRefinement::_coarsen_elements(), libMesh::MeshRefinement::_refine_elements(), and libMesh::MeshBase::complete_preparation().
|
virtualinherited |
Recalculate any cached data (or invalidate any caches that are computed on the fly) after elements and nodes have been repartitioned.
Reimplemented in libMesh::DistributedMesh.
Definition at line 1173 of file mesh_base.C.
References libMesh::MeshBase::_const_active_local_element_stored_range.
Referenced by libMesh::Partitioner::partition(), libMesh::MeshBase::partition(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), and libMesh::DistributedMesh::update_post_partitioning().
|
overridevirtual |
Write the file specified by name.
Attempts to figure out the proper method by the file extension.
Implements libMesh::MeshBase.
Definition at line 1401 of file unstructured_mesh.C.
References libMesh::Quality::name(), and libMesh::NameBasedIO::write().
Referenced by main().
| void libMesh::UnstructuredMesh::write | ( | const std::string & | name, |
| const std::vector< Number > & | values, | ||
| const std::vector< std::string > & | variable_names | ||
| ) | const |
Write to the file specified by name.
Attempts to figure out the proper method by the file extension. Also writes data.
Definition at line 1410 of file unstructured_mesh.C.
References libMesh::Quality::name(), and libMesh::NameBasedIO::write_nodal_data().
|
protectedinherited |
Definition at line 2326 of file mesh_base.h.
Referenced by libMesh::MeshBase::add_elemset_code(), libMesh::MeshBase::change_elemset_id(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::n_elemsets(), and libMesh::MeshBase::operator=().
|
protectedinherited |
The Exodus reader (and potentially other readers in the future?) now supports setting Node and Elem unique_ids based on values from within the Exodus file itself, rather than generating them automatically in LibMesh.
In this case, the unique_ids will not necessarily be unique across the set of all DofObjects, although they should still be unique within the individual sets of Elems and Nodes. The reader can therefore set this Mesh flag (which defaults to false) to indicate we should be less strict when checking the "uniqueness" of unique_ids.
Definition at line 2268 of file mesh_base.h.
Referenced by libMesh::MeshBase::allow_node_and_elem_unique_id_overlap(), libMesh::MeshBase::locally_equals(), and libMesh::MeshBase::operator=().
|
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 2255 of file mesh_base.h.
Referenced by libMesh::MeshBase::allow_remote_element_removal(), libMesh::MeshBase::complete_preparation(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::prepare_for_use().
|
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 2275 of file mesh_base.h.
Referenced by libMesh::MeshBase::get_id_by_name(), libMesh::MeshBase::get_subdomain_name_map(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), libMesh::MeshBase::set_subdomain_name_map(), libMesh::MeshBase::subdomain_name(), and libMesh::MeshBase::sync_subdomain_name_map().
|
protectedinherited |
Definition at line 120 of file parallel_object.h.
Referenced by libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::StaticCondensation::close(), libMesh::ParallelObject::comm(), libMesh::CondensedEigenSystem::initialize_condensed_matrices(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::operator=(), libMesh::ParallelObject::processor_id(), libMesh::BoundaryInfo::regenerate_id_sets(), libMesh::StaticCondensationDofMap::reinit(), and libMesh::BoundaryInfo::synchronize_global_id_set().
|
mutableprotectedinherited |
A cached ConstElemRange for threaded calculation on all local elements of this mesh.
This will not actually be built unless needed. Further, since we want our elem_stored_range() method to be const (yet do the dynamic allocating) this needs to be mutable.
Definition at line 2183 of file mesh_base.h.
Referenced by libMesh::MeshBase::active_local_element_stored_range(), libMesh::MeshBase::clear_stored_ranges(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::update_post_partitioning().
|
protectedinherited |
Definition at line 2409 of file mesh_base.h.
Referenced by libMesh::MeshBase::clear(), libMesh::MeshBase::copy_constraint_rows(), libMesh::ReplicatedMesh::delete_node(), libMesh::DistributedMesh::delete_node(), libMesh::MeshBase::get_constraint_rows(), libMesh::MeshBase::get_local_constraints(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::n_constraint_rows(), libMesh::MeshBase::post_dofobject_moves(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
|
protectedinherited |
Do we count lower dimensional elements in point locator refinement? This is relevant in tree-based point locators, for example.
Definition at line 2198 of file mesh_base.h.
Referenced by libMesh::MeshBase::get_count_lower_dim_elems_in_point_locator(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::set_count_lower_dim_elems_in_point_locator().
|
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 2382 of file mesh_base.h.
Referenced by libMesh::MeshBase::default_ghosting(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::MeshBase(), and libMesh::MeshBase::post_dofobject_moves().
|
protectedinherited |
The default mapping data (unused with Lagrange, used for nodal weight lookup index with rational bases) to assign to newly added elements.
Definition at line 2157 of file mesh_base.h.
Referenced by libMesh::MeshBase::default_mapping_data(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::set_default_mapping_data().
|
protectedinherited |
The default mapping type (typically Lagrange) between master and physical space to assign to newly added elements.
Definition at line 2150 of file mesh_base.h.
Referenced by libMesh::MeshBase::default_mapping_type(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::set_default_mapping_type().
|
protectedinherited |
The disjoint neighbor boundary id pairs.
Definition at line 2086 of file mesh_base.h.
Referenced by libMesh::MeshBase::add_disjoint_neighbor_boundary_pairs(), libMesh::MeshBase::get_disjoint_neighbor_boundary_pairs(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::MeshBase(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::remove_disjoint_boundary_pair().
|
protectedinherited |
We cache the (default) order of the geometric elements present in the mesh.
E.g. if we have a mesh with TRI3 and TRI6 elements, this structure will contain FIRST and SECOND.
Definition at line 2289 of file mesh_base.h.
Referenced by libMesh::MeshBase::cache_elem_data(), libMesh::MeshBase::clear(), libMesh::MeshBase::copy_cached_data(), libMesh::MeshBase::copy_constraint_rows(), libMesh::MeshBase::elem_default_orders(), libMesh::MeshBase::get_info(), libMesh::MeshBase::locally_equals(), and libMesh::MeshBase::operator=().
|
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 2282 of file mesh_base.h.
Referenced by libMesh::MeshBase::cache_elem_data(), libMesh::MeshBase::clear(), libMesh::MeshBase::copy_cached_data(), libMesh::MeshBase::copy_constraint_rows(), libMesh::MeshBase::elem_dimensions(), libMesh::MeshBase::get_info(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::mesh_dimension(), libMesh::MeshBase::MeshBase(), libMesh::MeshBase::operator=(), libMesh::MeshBase::set_elem_dimensions(), and libMesh::MeshBase::set_mesh_dimension().
|
protectedinherited |
The array of default initialization values for integer data associated with each element in the mesh.
Definition at line 2344 of file mesh_base.h.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::MeshBase::add_elem_integer(), libMesh::MeshBase::add_elem_integers(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::merge_extra_integer_names(), and libMesh::MeshBase::operator=().
|
protectedinherited |
The array of names for integer data associated with each element in the mesh.
Definition at line 2338 of file mesh_base.h.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::MeshBase::add_elem_data(), libMesh::MeshBase::add_elem_datum(), libMesh::MeshBase::add_elem_integer(), libMesh::MeshBase::add_elem_integers(), copy_nodes_and_elements(), libMesh::MeshBase::get_elem_integer_index(), libMesh::MeshBase::get_elem_integer_name(), libMesh::MeshBase::has_elem_integer(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::merge_extra_integer_names(), libMesh::MeshBase::n_elem_integers(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::size_elem_extra_integers().
|
mutableprotectedinherited |
A cached ElemRange for threaded mutation of all semilocal elements of this mesh.
This will not actually be built unless needed. Further, since we want our elem_stored_range() method to be const (yet do the dynamic allocating) this needs to be mutable.
Definition at line 2172 of file mesh_base.h.
Referenced by libMesh::MeshBase::clear_stored_ranges(), libMesh::MeshBase::element_stored_range(), and libMesh::MeshBase::operator=().
|
protectedinherited |
Map from "element set code" to list of set ids to which that element belongs (and vice-versa).
Remarks: 1.) The elemset code is a dof_id_type because (if used) it is stored as an extra_integer (named "elemset_code") on all elements, and extra_integers are of type dof_id_type. Elements which do not belong to any set should be assigned an elemset code of DofObject::invalid_id. 2.) Element sets can be thought of as a generalization of the concept of a subdomain. Subdomains have the following restrictions: a.) A given element can only belong to a single subdomain b.) When using Exodus file input/output, subdomains are (unfortunately) tied to the concept of exodus element blocks, which consist of a single geometric element type, somewhat limiting their generality. 3.) The user is responsible for filling in the values of this map in a consistent manner, unless the elemsets are read in from an Exodus file, in which case the elemset codes will be set up automatically. The codes can basically be chosen arbitrarily, with the one requirement that elements which belong to no sets should have a set code of DofObject::invalid_id. 4.) We also keep a list of all the elemset ids which have been added in order to support O(1) performance behavior in n_elemsets() calls.
Definition at line 2324 of file mesh_base.h.
Referenced by libMesh::MeshBase::add_elemset_code(), libMesh::MeshBase::change_elemset_code(), libMesh::MeshBase::change_elemset_id(), libMesh::MeshBase::clear(), libMesh::MeshBase::get_elemset_codes(), libMesh::MeshBase::get_elemsets(), libMesh::MeshBase::get_info(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::MeshBase(), and libMesh::MeshBase::operator=().
|
protectedinherited |
Definition at line 2325 of file mesh_base.h.
Referenced by libMesh::MeshBase::add_elemset_code(), libMesh::MeshBase::change_elemset_code(), libMesh::MeshBase::change_elemset_id(), libMesh::MeshBase::clear(), libMesh::MeshBase::get_elemset_code(), libMesh::MeshBase::MeshBase(), and libMesh::MeshBase::operator=().
|
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 2391 of file mesh_base.h.
Referenced by libMesh::MeshBase::add_ghosting_functor(), libMesh::MeshBase::ghosting_functors_begin(), libMesh::MeshBase::ghosting_functors_end(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::MeshBase(), libMesh::MeshBase::post_dofobject_moves(), libMesh::MeshBase::reinit_ghosting_functors(), and libMesh::MeshBase::remove_ghosting_functor().
|
protectedinherited |
Defaulting to this, a pointer to the mesh used to generate boundary elements on this.
Definition at line 2219 of file mesh_base.h.
Referenced by copy_nodes_and_elements(), libMesh::MeshBase::interior_mesh(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::set_interior_mesh().
|
protectedinherited |
We cache the subdomain ids of the elements present in the mesh.
Definition at line 2300 of file mesh_base.h.
Referenced by libMesh::MeshBase::cache_elem_data(), libMesh::MeshBase::copy_cached_data(), libMesh::MeshBase::copy_constraint_rows(), libMesh::MeshBase::get_mesh_subdomains(), libMesh::MeshBase::locally_equals(), and libMesh::MeshBase::operator=().
|
protectedinherited |
The number of partitions the mesh has.
This is set by the partitioners, and may not be changed directly by the user.
Definition at line 2144 of file mesh_base.h.
Referenced by libMesh::MeshBase::clear(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::n_partitions(), libMesh::MeshBase::operator=(), libMesh::MeshBase::recalculate_n_partitions(), and libMesh::MeshBase::set_n_partitions().
|
protectedinherited |
The next available unique id for assigning ids to DOF objects.
Definition at line 2212 of file mesh_base.h.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::ReplicatedMesh::add_point(), libMesh::DistributedMesh::DistributedMesh(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::MeshBase::next_unique_id(), libMesh::MeshBase::operator=(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::ReplicatedMesh::ReplicatedMesh(), libMesh::ReplicatedMesh::set_next_unique_id(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::ReplicatedMesh::subclass_locally_equals(), libMesh::ReplicatedMesh::update_parallel_id_counts(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protectedinherited |
The array of default initialization values for integer data associated with each node in the mesh.
Definition at line 2356 of file mesh_base.h.
Referenced by libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::MeshBase::add_node_integer(), libMesh::MeshBase::add_node_integers(), libMesh::ReplicatedMesh::add_point(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::merge_extra_integer_names(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::size_node_extra_integers().
|
protectedinherited |
The array of names for integer data associated with each node in the mesh.
Definition at line 2350 of file mesh_base.h.
Referenced by libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::MeshBase::add_node_data(), libMesh::MeshBase::add_node_datum(), libMesh::MeshBase::add_node_integer(), libMesh::MeshBase::add_node_integers(), libMesh::ReplicatedMesh::add_point(), copy_nodes_and_elements(), create_submesh(), libMesh::MeshBase::get_node_integer_index(), libMesh::MeshBase::get_node_integer_name(), libMesh::MeshBase::has_node_integer(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::merge_extra_integer_names(), libMesh::MeshBase::n_node_integers(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::size_node_extra_integers().
|
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 2206 of file mesh_base.h.
Referenced by libMesh::DistributedMesh::DistributedMesh(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::MeshBase(), libMesh::MeshBase::partitioner(), libMesh::MeshBase::post_dofobject_moves(), libMesh::ReplicatedMesh::ReplicatedMesh(), and libMesh::MeshBase::skip_noncritical_partitioning().
|
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 2192 of file mesh_base.h.
Referenced by libMesh::MeshBase::clear_point_locator(), libMesh::MeshBase::operator=(), libMesh::MeshBase::set_point_locator_close_to_point_tol(), and libMesh::MeshBase::sub_point_locator().
|
protectedinherited |
If nonzero, we will call PointLocatorBase::set_close_to_point_tol() on any PointLocators that we create.
Definition at line 2415 of file mesh_base.h.
Referenced by libMesh::MeshBase::get_point_locator_close_to_point_tol(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), libMesh::MeshBase::set_point_locator_close_to_point_tol(), and libMesh::MeshBase::sub_point_locator().
|
protectedinherited |
Flags indicating in what ways this mesh has been prepared.
Definition at line 2162 of file mesh_base.h.
Referenced by libMesh::MeshBase::cache_elem_data(), libMesh::MeshBase::clear(), libMesh::MeshBase::complete_preparation(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::MeshBase::delete_remote_elements(), libMesh::MeshBase::detect_interior_parents(), libMesh::DistributedMesh::DistributedMesh(), find_neighbors(), libMesh::MeshBase::is_prepared(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), libMesh::MeshBase::partition(), libMesh::MeshBase::preparation(), libMesh::MeshBase::prepare_for_use(), libMesh::MeshBase::reinit_ghosting_functors(), libMesh::MeshBase::remove_orphaned_nodes(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::ReplicatedMesh::ReplicatedMesh(), libMesh::MeshBase::set_isnt_prepared(), libMesh::BoundaryInfo::synchronize_global_id_set(), libMesh::MeshBase::unset_has_boundary_id_sets(), libMesh::MeshBase::unset_has_cached_elem_data(), libMesh::MeshBase::unset_has_interior_parent_ptrs(), libMesh::MeshBase::unset_has_neighbor_ptrs(), libMesh::MeshBase::unset_has_reinit_ghosting_functors(), libMesh::MeshBase::unset_has_removed_orphaned_nodes(), libMesh::MeshBase::unset_has_removed_remote_elements(), libMesh::MeshBase::unset_has_synched_id_counts(), libMesh::MeshBase::unset_is_partitioned(), libMesh::MeshBase::unset_is_prepared(), libMesh::ReplicatedMesh::update_parallel_id_counts(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protectedinherited |
Hang on to references to any GhostingFunctor objects we were passed in shared_ptr form.
Definition at line 2397 of file mesh_base.h.
Referenced by libMesh::MeshBase::add_ghosting_functor(), libMesh::MeshBase::post_dofobject_moves(), and libMesh::MeshBase::remove_ghosting_functor().
|
protectedinherited |
If this is true then no partitioning should be done.
Definition at line 2230 of file mesh_base.h.
Referenced by libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), libMesh::MeshBase::skip_noncritical_partitioning(), and libMesh::MeshBase::skip_partitioning().
|
protectedinherited |
If this is true then we will skip detect_interior_parents in prepare_for_use.
Definition at line 2247 of file mesh_base.h.
Referenced by libMesh::MeshBase::allow_detect_interior_parents(), libMesh::MeshBase::complete_preparation(), libMesh::MeshBase::locally_equals(), and libMesh::MeshBase::operator=().
|
protectedinherited |
If this is true then we will skip find_neighbors in prepare_for_use.
Definition at line 2242 of file mesh_base.h.
Referenced by libMesh::MeshBase::allow_find_neighbors(), libMesh::MeshBase::complete_preparation(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::prepare_for_use().
|
protectedinherited |
If this is true then no partitioning should be done with the possible exception of orphaned nodes.
Definition at line 2225 of file mesh_base.h.
Referenced by libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::skip_noncritical_partitioning().
|
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 2237 of file mesh_base.h.
Referenced by libMesh::MeshBase::allow_renumbering(), libMesh::MeshBase::complete_preparation(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
|
protectedinherited |
The "spatial dimension" of the Mesh.
See the documentation for Mesh::spatial_dimension() for more information.
Definition at line 2332 of file mesh_base.h.
Referenced by libMesh::MeshBase::cache_elem_data(), libMesh::MeshBase::copy_cached_data(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), libMesh::MeshBase::set_spatial_dimension(), and libMesh::MeshBase::spatial_dimension().
|
protectedinherited |
We cache the maximum nodal order supported by all the mesh's elements (the minimum supported_nodal_order() of any element)
Definition at line 2295 of file mesh_base.h.
Referenced by libMesh::MeshBase::cache_elem_data(), libMesh::MeshBase::clear(), libMesh::MeshBase::copy_cached_data(), libMesh::MeshBase::copy_constraint_rows(), libMesh::MeshBase::locally_equals(), libMesh::MeshBase::operator=(), and libMesh::MeshBase::supported_nodal_order().
|
protectedinherited |
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 is now officially deprecated and will be removed in future libMesh versions. Use the get_boundary_info() accessor instead.
Definition at line 2098 of file mesh_base.h.
Referenced by libMesh::MeshBase::clear(), libMesh::MeshBase::get_boundary_info(), libMesh::MeshBase::locally_equals(), and libMesh::MeshBase::operator=().
Definition at line 1816 of file mesh_base.h.
Definition at line 1816 of file mesh_base.h.
1.8.14