libMesh
|
This is the MeshBase
class.
More...
#include <mesh_base.h>
Classes | |
struct | const_element_iterator |
The definition of the const_element_iterator struct. More... | |
struct | const_node_iterator |
The definition of the const_node_iterator struct. More... | |
struct | element_iterator |
The definition of the element_iterator struct. More... | |
struct | node_iterator |
The definition of the node_iterator struct. More... | |
Public Types | |
typedef Predicates::multi_predicate | Predicate |
We need an empty, generic class to act as a predicate for this and derived mesh classes. More... | |
Public Member Functions | |
MeshBase (const Parallel::Communicator &comm_in, unsigned char dim=1) | |
Constructor. More... | |
MeshBase (const MeshBase &other_mesh) | |
Copy-constructor. More... | |
MeshBase (MeshBase &&) | |
Move-constructor - this function is defaulted out-of-line (in the C file) to play nicely with our forward declarations. More... | |
MeshBase & | operator= (const MeshBase &)=delete |
Copy and move assignment are not allowed because MeshBase subclasses manually manage memory (Elems and Nodes) and therefore the default versions of these operators would leak memory. More... | |
MeshBase & | operator= (MeshBase &&)=delete |
virtual std::unique_ptr< MeshBase > | clone () const =0 |
Virtual "copy constructor". More... | |
virtual | ~MeshBase () |
Destructor. More... | |
virtual std::unique_ptr< Partitioner > & | partitioner () |
A partitioner to use at each prepare_for_use() 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... | |
bool | is_prepared () const |
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... | |
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 |
void | set_elem_dimensions (const 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_dims(), therefore only call this if you know what you're doing. 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 () |
void | set_next_unique_id (unique_id_type id) |
Sets the next 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 (const dof_id_type i) const |
virtual Node & | node (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 * | elem (const dof_id_type i) const |
virtual Elem * | elem (const dof_id_type i) |
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 const Elem * | query_elem (const dof_id_type i) const |
virtual Elem * | query_elem (const dof_id_type i) |
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 * | insert_node (Node *n)=0 |
Insert Node n into the Mesh at a location consistent with n->id(), allocating extra storage if necessary. 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 * | 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 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... | |
virtual void | find_neighbors (const bool reset_remote_elements=false, const bool reset_current_list=true)=0 |
Locate element face (edge in 2D) neighbors. 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... | |
virtual bool | contract ()=0 |
Delete subactive (i.e. More... | |
unsigned int | add_elem_integer (const std::string &name, bool allocate_data=true) |
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) |
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 (const std::string &name) const |
bool | has_elem_integer (const std::string &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) |
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) |
Register data (of type T) to be added to each element in the mesh. More... | |
unsigned int | add_node_integer (const std::string &name, bool allocate_data=true) |
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) |
Register integer data (of type dof_id_type) to be added to each node in the mesh. More... | |
unsigned int | get_node_integer_index (const std::string &name) const |
bool | has_node_integer (const std::string &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) |
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) |
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=false, const bool skip_find_neighbors=false) |
Prepare a newly ecreated (or read) mesh for use. More... | |
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 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_remote_element_removal (bool allow) |
If false is passed in then this mesh will no longer have remote elements deleted when being prepared for use; i.e. More... | |
bool | allow_remote_element_removal () const |
void | skip_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... | |
std::set< GhostingFunctor * >::const_iterator | ghosting_functors_begin () const |
Beginning of range of ghosting functors. More... | |
std::set< GhostingFunctor * >::const_iterator | ghosting_functors_end () const |
End of range of ghosting functors. More... | |
GhostingFunctor & | default_ghosting () |
Default ghosting functor. More... | |
void | subdomain_ids (std::set< subdomain_id_type > &ids) const |
Constructs a list of all subdomain identifiers in the global mesh. More... | |
subdomain_id_type | n_subdomains () const |
unsigned int | n_partitions () const |
std::string | get_info () const |
void | print_info (std::ostream &os=libMesh::out) const |
Prints relevant information about the mesh. More... | |
virtual void | read (const std::string &name, void *mesh_data=nullptr, bool skip_renumber_nodes_and_elements=false, bool skip_find_neighbors=false)=0 |
Interfaces for reading/writing a mesh to/from a file. More... | |
virtual void | write (const std::string &name)=0 |
virtual void | all_first_order ()=0 |
Converts a mesh with higher-order elements into a mesh with linear elements. More... | |
virtual void | all_second_order (const bool full_ordered=true)=0 |
Converts a (conforming, non-refined) mesh with linear elements into a mesh with second-order elements. More... | |
unsigned int | recalculate_n_partitions () |
In a few (very rare) cases, the user may have manually tagged the elements with specific processor IDs by hand, without using a partitioner. More... | |
const PointLocatorBase & | point_locator () const |
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 (const std::string &name) const |
virtual element_iterator | elements_begin ()=0 |
Iterate over all the elements in the Mesh. More... | |
virtual element_iterator | elements_end ()=0 |
virtual const_element_iterator | elements_begin () const =0 |
virtual const_element_iterator | elements_end () const =0 |
virtual SimpleRange< element_iterator > | element_ptr_range ()=0 |
virtual SimpleRange< const_element_iterator > | element_ptr_range () const =0 |
virtual element_iterator | ancestor_elements_begin ()=0 |
Iterate over elements for which elem->ancestor() is true. More... | |
virtual element_iterator | ancestor_elements_end ()=0 |
virtual const_element_iterator | ancestor_elements_begin () const =0 |
virtual const_element_iterator | ancestor_elements_end () const =0 |
virtual element_iterator | subactive_elements_begin ()=0 |
Iterate over elements for which elem->subactive() is true. More... | |
virtual element_iterator | subactive_elements_end ()=0 |
virtual const_element_iterator | subactive_elements_begin () const =0 |
virtual const_element_iterator | subactive_elements_end () const =0 |
virtual element_iterator | semilocal_elements_begin ()=0 |
Iterate over elements for which elem->is_semilocal() is true for the current processor. More... | |
virtual element_iterator | semilocal_elements_end ()=0 |
virtual const_element_iterator | semilocal_elements_begin () const =0 |
virtual const_element_iterator | semilocal_elements_end () const =0 |
virtual element_iterator | facelocal_elements_begin ()=0 |
Iterate over elements which are on or have a neighbor on the current processor. More... | |
virtual element_iterator | facelocal_elements_end ()=0 |
virtual const_element_iterator | facelocal_elements_begin () const =0 |
virtual const_element_iterator | facelocal_elements_end () const =0 |
virtual element_iterator | level_elements_begin (unsigned int level)=0 |
Iterate over elements of a given level. More... | |
virtual element_iterator | level_elements_end (unsigned int level)=0 |
virtual const_element_iterator | level_elements_begin (unsigned int level) const =0 |
virtual const_element_iterator | level_elements_end (unsigned int level) const =0 |
virtual element_iterator | pid_elements_begin (processor_id_type proc_id)=0 |
Iterate over all elements with a specified processor id. More... | |
virtual element_iterator | pid_elements_end (processor_id_type proc_id)=0 |
virtual const_element_iterator | pid_elements_begin (processor_id_type proc_id) const =0 |
virtual const_element_iterator | pid_elements_end (processor_id_type proc_id) const =0 |
virtual element_iterator | type_elements_begin (ElemType type)=0 |
Iterate over all elements with a specified geometric type. More... | |
virtual element_iterator | type_elements_end (ElemType type)=0 |
virtual const_element_iterator | type_elements_begin (ElemType type) const =0 |
virtual const_element_iterator | type_elements_end (ElemType type) const =0 |
virtual element_iterator | unpartitioned_elements_begin ()=0 |
Iterate over unpartitioned elements in the Mesh. More... | |
virtual element_iterator | unpartitioned_elements_end ()=0 |
virtual const_element_iterator | unpartitioned_elements_begin () const =0 |
virtual const_element_iterator | unpartitioned_elements_end () const =0 |
virtual element_iterator | active_unpartitioned_elements_begin ()=0 |
Iterate over active unpartitioned elements in the Mesh. More... | |
virtual element_iterator | active_unpartitioned_elements_end ()=0 |
virtual const_element_iterator | active_unpartitioned_elements_begin () const =0 |
virtual const_element_iterator | active_unpartitioned_elements_end () const =0 |
virtual element_iterator | ghost_elements_begin ()=0 |
Iterate over "ghost" elements in the Mesh. More... | |
virtual element_iterator | ghost_elements_end ()=0 |
virtual const_element_iterator | ghost_elements_begin () const =0 |
virtual const_element_iterator | ghost_elements_end () const =0 |
virtual element_iterator | evaluable_elements_begin (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint)=0 |
Iterate over elements in the Mesh where the solution (as distributed by the given DofMap) can be evaluated, for the given variable var_num, or for all variables by default. More... | |
virtual element_iterator | evaluable_elements_end (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint)=0 |
virtual const_element_iterator | evaluable_elements_begin (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) const =0 |
virtual const_element_iterator | evaluable_elements_end (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) const =0 |
virtual element_iterator | flagged_elements_begin (unsigned char rflag)=0 |
Iterate over all elements with a specified refinement flag. More... | |
virtual element_iterator | flagged_elements_end (unsigned char rflag)=0 |
virtual const_element_iterator | flagged_elements_begin (unsigned char rflag) const =0 |
virtual const_element_iterator | flagged_elements_end (unsigned char rflag) const =0 |
virtual element_iterator | flagged_pid_elements_begin (unsigned char rflag, processor_id_type pid)=0 |
Iterate over all elements with a specified refinement flag on a specified processor. More... | |
virtual element_iterator | flagged_pid_elements_end (unsigned char rflag, processor_id_type pid)=0 |
virtual const_element_iterator | flagged_pid_elements_begin (unsigned char rflag, processor_id_type pid) const =0 |
virtual const_element_iterator | flagged_pid_elements_end (unsigned char rflag, processor_id_type pid) const =0 |
virtual element_iterator | active_elements_begin ()=0 |
Active, local, and negation forms of the element iterators described above. More... | |
virtual element_iterator | active_elements_end ()=0 |
virtual const_element_iterator | active_elements_begin () const =0 |
virtual const_element_iterator | active_elements_end () const =0 |
virtual SimpleRange< element_iterator > | active_element_ptr_range ()=0 |
virtual SimpleRange< const_element_iterator > | active_element_ptr_range () const =0 |
virtual element_iterator | local_elements_begin ()=0 |
virtual element_iterator | local_elements_end ()=0 |
virtual const_element_iterator | local_elements_begin () const =0 |
virtual const_element_iterator | local_elements_end () const =0 |
virtual element_iterator | active_semilocal_elements_begin ()=0 |
virtual element_iterator | active_semilocal_elements_end ()=0 |
virtual const_element_iterator | active_semilocal_elements_begin () const =0 |
virtual const_element_iterator | active_semilocal_elements_end () const =0 |
virtual element_iterator | active_type_elements_begin (ElemType type)=0 |
virtual element_iterator | active_type_elements_end (ElemType type)=0 |
virtual const_element_iterator | active_type_elements_begin (ElemType type) const =0 |
virtual const_element_iterator | active_type_elements_end (ElemType type) const =0 |
virtual element_iterator | active_pid_elements_begin (processor_id_type proc_id)=0 |
virtual element_iterator | active_pid_elements_end (processor_id_type proc_id)=0 |
virtual const_element_iterator | active_pid_elements_begin (processor_id_type proc_id) const =0 |
virtual const_element_iterator | active_pid_elements_end (processor_id_type proc_id) const =0 |
virtual element_iterator | active_subdomain_elements_begin (subdomain_id_type subdomain_id)=0 |
virtual element_iterator | active_subdomain_elements_end (subdomain_id_type subdomain_id)=0 |
virtual const_element_iterator | active_subdomain_elements_begin (subdomain_id_type subdomain_id) const =0 |
virtual const_element_iterator | active_subdomain_elements_end (subdomain_id_type subdomain_id) const =0 |
virtual SimpleRange< element_iterator > | active_subdomain_elements_ptr_range (subdomain_id_type subdomain_id)=0 |
virtual SimpleRange< const_element_iterator > | active_subdomain_elements_ptr_range (subdomain_id_type subdomain_id) const =0 |
virtual element_iterator | active_subdomain_set_elements_begin (std::set< subdomain_id_type > ss)=0 |
virtual element_iterator | active_subdomain_set_elements_end (std::set< subdomain_id_type > ss)=0 |
virtual const_element_iterator | active_subdomain_set_elements_begin (std::set< subdomain_id_type > ss) const =0 |
virtual const_element_iterator | active_subdomain_set_elements_end (std::set< subdomain_id_type > ss) 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 |
virtual element_iterator | active_local_subdomain_elements_begin (subdomain_id_type subdomain_id)=0 |
virtual element_iterator | active_local_subdomain_elements_end (subdomain_id_type subdomain_id)=0 |
virtual const_element_iterator | active_local_subdomain_elements_begin (subdomain_id_type subdomain_id) const =0 |
virtual const_element_iterator | active_local_subdomain_elements_end (subdomain_id_type subdomain_id) const =0 |
virtual SimpleRange< element_iterator > | active_local_subdomain_elements_ptr_range (subdomain_id_type subdomain_id)=0 |
virtual SimpleRange< const_element_iterator > | active_local_subdomain_elements_ptr_range (subdomain_id_type subdomain_id) const =0 |
virtual element_iterator | local_level_elements_begin (unsigned int level)=0 |
virtual element_iterator | local_level_elements_end (unsigned int level)=0 |
virtual const_element_iterator | local_level_elements_begin (unsigned int level) const =0 |
virtual const_element_iterator | local_level_elements_end (unsigned int level) const =0 |
virtual element_iterator | local_not_level_elements_begin (unsigned int level)=0 |
virtual element_iterator | local_not_level_elements_end (unsigned int level)=0 |
virtual const_element_iterator | local_not_level_elements_begin (unsigned int level) const =0 |
virtual const_element_iterator | local_not_level_elements_end (unsigned int level) const =0 |
virtual element_iterator | not_level_elements_begin (unsigned int level)=0 |
virtual element_iterator | not_level_elements_end (unsigned int level)=0 |
virtual const_element_iterator | not_level_elements_begin (unsigned int level) const =0 |
virtual const_element_iterator | not_level_elements_end (unsigned int level) const =0 |
virtual element_iterator | active_local_elements_begin ()=0 |
virtual element_iterator | active_local_elements_end ()=0 |
virtual const_element_iterator | active_local_elements_begin () const =0 |
virtual const_element_iterator | active_local_elements_end () const =0 |
virtual SimpleRange< element_iterator > | active_local_element_ptr_range ()=0 |
virtual SimpleRange< const_element_iterator > | active_local_element_ptr_range () const =0 |
virtual element_iterator | active_not_local_elements_begin ()=0 |
virtual element_iterator | active_not_local_elements_end ()=0 |
virtual const_element_iterator | active_not_local_elements_begin () const =0 |
virtual const_element_iterator | active_not_local_elements_end () const =0 |
virtual element_iterator | not_local_elements_begin ()=0 |
virtual element_iterator | not_local_elements_end ()=0 |
virtual const_element_iterator | not_local_elements_begin () const =0 |
virtual const_element_iterator | not_local_elements_end () const =0 |
virtual element_iterator | not_subactive_elements_begin ()=0 |
virtual element_iterator | not_subactive_elements_end ()=0 |
virtual const_element_iterator | not_subactive_elements_begin () const =0 |
virtual const_element_iterator | not_subactive_elements_end () const =0 |
virtual element_iterator | not_active_elements_begin ()=0 |
virtual element_iterator | not_active_elements_end ()=0 |
virtual const_element_iterator | not_active_elements_begin () const =0 |
virtual const_element_iterator | not_active_elements_end () const =0 |
virtual element_iterator | not_ancestor_elements_begin ()=0 |
virtual element_iterator | not_ancestor_elements_end ()=0 |
virtual const_element_iterator | not_ancestor_elements_begin () const =0 |
virtual const_element_iterator | not_ancestor_elements_end () const =0 |
virtual node_iterator | nodes_begin ()=0 |
Iterate over all the nodes in the Mesh. More... | |
virtual node_iterator | nodes_end ()=0 |
virtual const_node_iterator | nodes_begin () const =0 |
virtual const_node_iterator | nodes_end () const =0 |
virtual SimpleRange< node_iterator > | node_ptr_range ()=0 |
virtual SimpleRange< const_node_iterator > | node_ptr_range () const =0 |
virtual node_iterator | active_nodes_begin ()=0 |
Iterate over only the active nodes in the Mesh. More... | |
virtual node_iterator | active_nodes_end ()=0 |
virtual const_node_iterator | active_nodes_begin () const =0 |
virtual const_node_iterator | active_nodes_end () const =0 |
virtual node_iterator | local_nodes_begin ()=0 |
Iterate over local nodes (nodes whose processor_id() matches the current processor). More... | |
virtual node_iterator | local_nodes_end ()=0 |
virtual const_node_iterator | local_nodes_begin () const =0 |
virtual const_node_iterator | local_nodes_end () const =0 |
virtual SimpleRange< node_iterator > | local_node_ptr_range ()=0 |
virtual SimpleRange< const_node_iterator > | local_node_ptr_range () const =0 |
virtual node_iterator | pid_nodes_begin (processor_id_type proc_id)=0 |
Iterate over nodes with processor_id() == proc_id. More... | |
virtual node_iterator | pid_nodes_end (processor_id_type proc_id)=0 |
virtual const_node_iterator | pid_nodes_begin (processor_id_type proc_id) const =0 |
virtual const_node_iterator | pid_nodes_end (processor_id_type proc_id) const =0 |
virtual node_iterator | bid_nodes_begin (boundary_id_type bndry_id)=0 |
Iterate over nodes for which BoundaryInfo::has_boundary_id(node, bndry_id) is true. More... | |
virtual node_iterator | bid_nodes_end (boundary_id_type bndry_id)=0 |
virtual const_node_iterator | bid_nodes_begin (boundary_id_type bndry_id) const =0 |
virtual const_node_iterator | bid_nodes_end (boundary_id_type bndry_id) const =0 |
virtual node_iterator | bnd_nodes_begin ()=0 |
Iterate over nodes for which BoundaryInfo::n_boundary_ids(node) > 0. More... | |
virtual node_iterator | bnd_nodes_end ()=0 |
virtual const_node_iterator | bnd_nodes_begin () const =0 |
virtual const_node_iterator | bnd_nodes_end () const =0 |
virtual node_iterator | evaluable_nodes_begin (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint)=0 |
Iterate over nodes in the Mesh where the solution (as distributed by the given DofMap) can be evaluated, for the given variable var_num, or for all variables by default. More... | |
virtual node_iterator | evaluable_nodes_end (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint)=0 |
virtual const_node_iterator | evaluable_nodes_begin (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) const =0 |
virtual const_node_iterator | evaluable_nodes_end (const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) const =0 |
std::map< subdomain_id_type, std::string > & | set_subdomain_name_map () |
const std::map< subdomain_id_type, std::string > & | get_subdomain_name_map () const |
void | cache_elem_dims () |
Search the mesh and cache the different dimensions of the elements present in the mesh. More... | |
void | detect_interior_parents () |
Search the mesh for elements that have a neighboring element of dim+1 and set that element as the interior parent. More... | |
const Parallel::Communicator & | comm () const |
processor_id_type | n_processors () const |
processor_id_type | processor_id () const |
Public Attributes | |
std::unique_ptr< BoundaryInfo > | boundary_info |
This class holds the boundary information. More... | |
Protected Member Functions | |
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 | |
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... | |
bool | _is_prepared |
Flag indicating if the mesh has been prepared for use. More... | |
std::unique_ptr< PointLocatorBase > | _point_locator |
A PointLocator class for this mesh. More... | |
bool | _count_lower_dim_elems_in_point_locator |
Do we count lower dimensional elements in point locator refinement? This is relevant in tree-based point locators, for example. More... | |
std::unique_ptr< Partitioner > | _partitioner |
A partitioner to use at each prepare_for_use(). More... | |
unique_id_type | _next_unique_id |
The next available unique id for assigning ids to DOF objects. More... | |
bool | _skip_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 | _allow_remote_element_removal |
If this is false then even on DistributedMesh remote elements will not be deleted during mesh preparation. More... | |
std::map< subdomain_id_type, std::string > | _block_id_to_name |
This structure maintains the mapping of named blocks for file formats that support named blocks. More... | |
std::set< unsigned char > | _elem_dims |
We cache the dimension of the elements present in the mesh. More... | |
unsigned char | _spatial_dimension |
The "spatial dimension" of the Mesh. More... | |
std::vector< std::string > | _elem_integer_names |
The array of names 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::unique_ptr< GhostingFunctor > | _default_ghosting |
The default geometric GhostingFunctor, used to implement standard libMesh element ghosting behavior. More... | |
std::set< GhostingFunctor * > | _ghosting_functors |
The list of all GhostingFunctor objects to be used when distributing a DistributedMesh. More... | |
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... | |
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 |
Friends | |
class | Partitioner |
The partitioner class is a friend so that it can set the number of partitions. More... | |
class | MeshInput< MeshBase > |
The MeshInput classes are friends so that they can set the number of partitions. More... | |
class | BoundaryInfo |
Make the BoundaryInfo class a friend so that it can create and interact with BoundaryMesh . More... | |
class | MeshCommunication |
Make the MeshCommunication class a friend so that it can directly broadcast *_integer_names. More... | |
std::ostream & | operator<< (std::ostream &os, const MeshBase &m) |
Equivalent to calling print_info() above, but now you can write: Mesh mesh; libMesh::out << mesh << std::endl;. More... | |
This is the MeshBase
class.
This class provides all the data necessary to describe a geometric entity. It allows for the description of a dim
dimensional object that lives in LIBMESH_DIM-dimensional
space.
Base class for Mesh.
Definition at line 78 of file mesh_base.h.
We need an empty, generic class to act as a predicate for this and derived mesh classes.
Definition at line 1209 of file mesh_base.h.
libMesh::MeshBase::MeshBase | ( | const Parallel::Communicator & | comm_in, |
unsigned char | dim = 1 |
||
) |
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 52 of file mesh_base.C.
References _default_ghosting, _elem_dims, _ghosting_functors, libMesh::initialized(), and libMesh::libmesh_assert().
libMesh::MeshBase::MeshBase | ( | const MeshBase & | other_mesh | ) |
Copy-constructor.
Definition at line 83 of file mesh_base.C.
References _default_ghosting, _ghosting_functors, and _partitioner.
|
default |
Move-constructor - this function is defaulted out-of-line (in the C file) to play nicely with our forward declarations.
|
virtual |
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by OverlappingTestPartitioner::_do_partition(), libMesh::MeshRefinement::_refine_elements(), libMesh::AbaqusIO::assign_sideset_ids(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_side_list_from_node_list(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::Modification::distort(), DMlibMeshSetSystem_libMesh(), libMesh::TecplotIO::elem_dimension(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::LocationMap< T >::fill(), libMesh::MeshTools::find_block_boundary_nodes(), libMesh::MeshTools::find_boundary_nodes(), 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::MeshTools::Modification::flatten(), libMesh::BoundaryInfo::get_side_and_node_maps(), libMesh::UNVIO::groups_in(), LinearElasticityWithContact::initialize_contact_load_paths(), libMesh::MeshTools::libmesh_assert_canonical_node_procids(), libMesh::MeshTools::libmesh_assert_valid_elem_ids(), libMesh::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::limit_overrefined_boundary(), libMesh::MeshRefinement::limit_underrefined_boundary(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshRefinement::make_refinement_compatible(), AugmentSparsityOnInterface::mesh_reinit(), LinearElasticityWithContact::move_mesh(), libMesh::PointLocatorTree::perform_fuzzy_linear_search(), libMesh::PointLocatorTree::perform_linear_search(), libMesh::GmshIO::read_mesh(), libMesh::VariationalMeshSmoother::readgr(), libMesh::LaplaceMeshSmoother::smooth(), MeshFunctionTest::test_p_level(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), libMesh::Tree< N >::Tree(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::MeshRefinement::uniformly_p_coarsen(), libMesh::MeshRefinement::uniformly_p_refine(), libMesh::MeshRefinement::uniformly_refine(), libMesh::FroIO::write(), libMesh::PostscriptIO::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::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_data_from_discontinuous_nodal_data(), libMesh::GmshIO::write_mesh(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::GmshIO::write_post(), and libMesh::GnuPlotIO::write_solution().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Active, local, and negation forms of the element iterators described above.
An "active" element is an element without children (i.e. has not been refined). A "local" element is one whose processor_id() matches the current processor.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by OverlappingTestPartitioner::_do_partition(), main(), and libMesh::MeshCommunication::make_elems_parallel_consistent().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by OverlappingTestPartitioner::_do_partition(), main(), and libMesh::MeshCommunication::make_elems_parallel_consistent().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshRefinement::_refine_elements(), assemble(), LinearElasticity::assemble(), assemble_1D(), AssembleOptimization::assemble_A_and_F(), assemble_biharmonic(), assemble_cd(), assemble_elasticity(), assemble_ellipticdg(), assemble_helmholtz(), assemble_laplace(), assemble_mass(), assemble_matrices(), assemble_poisson(), assemble_SchroedingerEquation(), assemble_shell(), assemble_stokes(), assemble_wave(), assembly_with_dg_fem_context(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::VTKIO::cells_to_vtk(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), compute_jacobian(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), compute_residual(), LinearElasticityWithContact::compute_stresses(), LinearElasticity::compute_stresses(), compute_stresses(), LargeDeformationElasticity::compute_stresses(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::MeshTools::find_hanging_nodes_and_parents(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::LaplaceMeshSmoother::init(), integrate_function(), LaplaceYoung::jacobian(), LargeDeformationElasticity::jacobian(), libMesh::DofMap::max_constraint_error(), libMesh::FEMSystem::mesh_position_get(), libMesh::FEMSystem::mesh_position_set(), libMesh::MeshTools::n_active_local_levels(), libMesh::PointLocatorTree::perform_fuzzy_linear_search(), libMesh::PointLocatorTree::perform_linear_search(), LaplaceYoung::residual(), LargeDeformationElasticity::residual(), LinearElasticityWithContact::residual_and_jacobian(), libMesh::MeshRefinement::test_level_one(), libMesh::MeshRefinement::test_unflagged(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), libMesh::BoundaryVolumeSolutionTransfer::transfer_boundary_volume(), libMesh::BoundaryVolumeSolutionTransfer::transfer_volume_boundary(), libMesh::Tree< N >::Tree(), libMesh::EnsightIO::write_geometry_ascii(), libMesh::EnsightIO::write_scalar_ascii(), and libMesh::EnsightIO::write_vector_ascii().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by assemble_matrix_and_rhs(), libMesh::FEMSystem::assemble_qoi(), libMesh::FEMSystem::assemble_qoi_derivative(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::FEMSystem::postprocess(), libMesh::DofMap::scatter_constraints(), and libMesh::Nemesis_IO_Helper::write_exodus_initialization_info().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by assemble_matrix_and_rhs(), libMesh::FEMSystem::assemble_qoi(), libMesh::FEMSystem::assemble_qoi_derivative(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::FEMSystem::postprocess(), libMesh::DofMap::scatter_constraints(), and libMesh::Nemesis_IO_Helper::write_exodus_initialization_info().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over only the active nodes in the Mesh.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshRefinement::_refine_elements(), libMesh::DofMap::allgather_recursive_constraints(), and libMesh::DofMap::scatter_constraints().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshRefinement::_refine_elements(), libMesh::DofMap::allgather_recursive_constraints(), and libMesh::DofMap::scatter_constraints().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::UnstructuredMesh::create_pid_mesh(), and libMesh::MeshCommunication::delete_remote_elements().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::UnstructuredMesh::create_pid_mesh(), and libMesh::MeshCommunication::delete_remote_elements().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by OverlappingTestPartitioner::_do_partition(), and libMesh::TecplotIO::write_binary().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by OverlappingTestPartitioner::_do_partition(), and libMesh::TecplotIO::write_binary().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by OverlappingTestPartitioner::assign_proc_id_subdomain().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::n_active_elem_of_type().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::n_active_elem_of_type().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over active unpartitioned elements in the Mesh.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Add elem e
to the end of the element array.
To add an element locally, set e->processor_id() before adding it. To ensure a specific element id, call e->set_id() before adding it; only do this in parallel if you are manually keeping ids consistent.
Users should call MeshBase::prepare_for_use() after elements are added to and/or deleted from the mesh.
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(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::UnstructuredMesh::create_submesh(), libMesh::TetGenIO::element_in(), libMesh::UNVIO::elements_in(), libMesh::MeshTools::Modification::flatten(), libMesh::mesh_inserter_iterator< T >::operator=(), 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::DynaIO::read_mesh(), libMesh::GmshIO::read_mesh(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), SystemsTest::testDofCouplingWithVarGroups(), EquationSystemsTest::testPostInitAddElem(), SystemsTest::testProjectMatrix3D(), EquationSystemsTest::testReinitWithNodeElem(), BoundaryInfoTest::testShellFaceConstraints(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), and libMesh::TetGenMeshInterface::triangulate_pointset().
|
inline |
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.
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 1992 of file mesh_base.h.
References _elem_integer_names, libMesh::index_range(), and size_elem_extra_integers().
|
inline |
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.
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 1973 of file mesh_base.h.
References _elem_integer_names, add_elem_integer(), and size_elem_extra_integers().
Referenced by ExtraIntegersTest::build_mesh().
unsigned int libMesh::MeshBase::add_elem_integer | ( | const std::string & | name, |
bool | allocate_data = true |
||
) |
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.
Definition at line 176 of file mesh_base.C.
References _elem_integer_names, libMesh::index_range(), libMesh::Quality::name(), and size_elem_extra_integers().
Referenced by add_elem_datum(), ExtraIntegersTest::build_mesh(), ExtraIntegersTest::checkpoint_helper(), libMesh::CheckpointIO::read_header(), and ExtraIntegersTest::test_helper().
std::vector< unsigned int > libMesh::MeshBase::add_elem_integers | ( | const std::vector< std::string > & | names, |
bool | allocate_data = true |
||
) |
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.
Definition at line 191 of file mesh_base.C.
References _elem_integer_names, libMesh::index_range(), and libMesh::Quality::name().
Referenced by MeshStitchTest::testMeshStitch().
|
inline |
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 1089 of file mesh_base.h.
References _ghosting_functors.
Referenced by libMesh::DofMap::add_algebraic_ghosting_functor(), libMesh::DofMap::add_coupling_functor(), add_ghosting_functor(), main(), and EquationSystemsTest::testDisableDefaultGhosting().
|
inline |
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 1100 of file mesh_base.h.
References _shared_functors, and add_ghosting_functor().
Add Node
n
to the end of the vertex array.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
inline |
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.
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 2030 of file mesh_base.h.
References _node_integer_names, libMesh::index_range(), and size_node_extra_integers().
|
inline |
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.
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 2011 of file mesh_base.h.
References _node_integer_names, add_node_integer(), and size_node_extra_integers().
Referenced by ExtraIntegersTest::build_mesh(), libMesh::DynaIO::read_mesh(), RationalMapTest< elem_type >::setUp(), and FETest< order, family, elem_type >::setUp().
unsigned int libMesh::MeshBase::add_node_integer | ( | const std::string & | name, |
bool | allocate_data = true |
||
) |
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.
Definition at line 247 of file mesh_base.C.
References libMesh::index_range(), and libMesh::Quality::name().
Referenced by add_node_datum(), ExtraIntegersTest::build_mesh(), ExtraIntegersTest::checkpoint_helper(), libMesh::CheckpointIO::read_header(), RationalMapTest< elem_type >::setUp(), FETest< order, family, elem_type >::setUp(), and ExtraIntegersTest::test_helper().
std::vector< unsigned int > libMesh::MeshBase::add_node_integers | ( | const std::vector< std::string > & | names, |
bool | allocate_data = true |
||
) |
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.
Definition at line 262 of file mesh_base.C.
References libMesh::index_range(), and libMesh::Quality::name().
Referenced by MeshStitchTest::testMeshStitch().
|
pure virtual |
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::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::UnstructuredMesh::create_submesh(), libMesh::TetGenIO::node_in(), libMesh::UNVIO::nodes_in(), libMesh::mesh_inserter_iterator< T >::operator=(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::VTKIO::read(), libMesh::UCDIO::read_implementation(), libMesh::DynaIO::read_mesh(), libMesh::GmshIO::read_mesh(), libMesh::AbaqusIO::read_nodes(), libMesh::CheckpointIO::read_nodes(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::BoundaryInfo::sync(), SystemsTest::testDofCouplingWithVarGroups(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), libMesh::TriangleInterface::triangulate(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), and triangulate_domain().
|
pure virtual |
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.
Implemented in libMesh::UnstructuredMesh.
Referenced by main().
|
pure virtual |
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. Implemented in libMesh::UnstructuredMesh.
Referenced by AllSecondOrderTest::allSecondOrder(), build_domain(), and main().
|
inlinevirtual |
Gathers all elements and nodes of the mesh onto every processor.
Reimplemented in libMesh::DistributedMesh.
Definition at line 188 of file mesh_base.h.
Referenced by libMesh::EquationSystems::allgather(), libMesh::MeshSerializer::MeshSerializer(), and PartitionerTest< PartitionerSubclass, MeshClass >::testPartition().
|
inline |
Definition at line 1035 of file mesh_base.h.
References _allow_remote_element_removal.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements().
|
inline |
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 1034 of file mesh_base.h.
References _allow_remote_element_removal.
Referenced by libMesh::DynaIO::add_spline_constraints(), AllSecondOrderTest::allSecondOrder(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), main(), MeshInputTest::testDynaReadElem(), and MeshInputTest::testDynaReadPatch().
|
inline |
Definition at line 1026 of file mesh_base.h.
References _skip_renumber_nodes_and_elements.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements(), and libMesh::UnstructuredMesh::read().
|
inline |
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 1025 of file mesh_base.h.
References _skip_renumber_nodes_and_elements.
Referenced by libMesh::DynaIO::add_spline_constraints(), GetBoundaryPointsTest::build_mesh(), SlitMeshTest::build_mesh(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), main(), libMesh::RBEIMEvaluation::RBEIMEvaluation(), libMesh::NameBasedIO::read(), libMesh::GMVIO::read(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), EquationSystemsTest::testRefineThenReinitPreserveFlags(), EquationSystemsTest::testRepartitionThenReinit(), WriteSidesetData::testWrite(), and WriteVecAndScalar::testWrite().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over elements for which elem->ancestor() is true.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshRefinement::make_coarsening_compatible(), and libMesh::MeshRefinement::uniformly_coarsen().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshRefinement::make_coarsening_compatible(), and libMesh::MeshRefinement::uniformly_coarsen().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over nodes for which BoundaryInfo::has_boundary_id(node, bndry_id) is true.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over nodes for which BoundaryInfo::n_boundary_ids(node) > 0.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
void libMesh::MeshBase::cache_elem_dims | ( | ) |
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 753 of file mesh_base.C.
Referenced by set_elem_dimensions().
|
virtual |
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 429 of file mesh_base.C.
Referenced by libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::ReplicatedMesh::clear(), libMesh::DistributedMesh::clear(), libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::UnstructuredMesh::create_submesh(), libMesh::AbaqusIO::read(), libMesh::ExodusII_IO::read(), libMesh::GMVIO::read(), libMesh::VTKIO::read(), libMesh::DynaIO::read_mesh(), libMesh::GmshIO::read_mesh(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::BoundaryInfo::sync(), libMesh::TriangleInterface::triangulate(), and ~MeshBase().
void libMesh::MeshBase::clear_point_locator | ( | ) |
Releases the current PointLocator
object.
Definition at line 696 of file mesh_base.C.
Referenced by libMesh::UnstructuredMesh::contract(), and libMesh::MeshCommunication::delete_remote_elements().
|
pure virtual |
Virtual "copy constructor".
Implemented in libMesh::DistributedMesh, libMesh::ReplicatedMesh, libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by LinearElasticityWithContact::get_least_and_max_gap_function(), libMesh::ErrorVector::plot_error(), and LinearElasticityWithContact::residual_and_jacobian().
|
inlineinherited |
Parallel::Communicator
object used by this mesh. Definition at line 94 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::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::EquationSystems::_read_impl(), 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::ImplicitSystem::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::DynaIO::add_spline_constraints(), libMesh::System::add_vector(), libMesh::UnstructuredMesh::all_second_order(), 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::FEMSystem::assemble_qoi(), libMesh::MeshCommunication::assign_global_indices(), libMesh::DofMap::attach_matrix(), libMesh::MeshTools::Generation::build_extrusion(), 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::System::calculate_norm(), libMesh::DofMap::check_dirichlet_bcid_consistency(), 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::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), 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::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), DMVariableBounds_libMesh(), libMesh::DTKSolutionTransfer::DTKSolutionTransfer(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::RBEIMConstruction::enrich_RB_space(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::RBConstruction::enrich_RB_space(), libMesh::EpetraVector< T >::EpetraVector(), AssembleOptimization::equality_constraints(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::RBEIMConstruction::evaluate_mesh_function(), 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::DofMap::gather_constraints(), libMesh::MeshfreeInterpolation::gather_remote_data(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::DofMap::get_info(), libMesh::ImplicitSystem::get_linear_solver(), AssembleOptimization::inequality_constraints(), AssembleOptimization::inequality_constraints_jacobian(), libMesh::LocationMap< T >::init(), libMesh::TimeSolver::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::EigenSystem::init_matrices(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::RBEIMConstruction::initialize_rb_construction(), 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_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::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_preconditioner_apply(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_postcheck(), 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(), 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_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(), LinearElasticityWithContact::move_mesh(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::DofMap::n_constrained_dofs(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::MeshTools::n_levels(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::MeshTools::n_p_levels(), libMesh::BoundaryInfo::n_shellface_conds(), 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::MeshTools::paranoid_n_levels(), libMesh::petsc_auto_fieldsplit(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::print_dof_constraints(), FEMParameters::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::System::read_legacy_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::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::DistributedMesh::renumber_dof_objects(), LinearElasticityWithContact::residual_and_jacobian(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::TransientRBConstruction::set_error_temporal_data(), libMesh::RBEIMConstruction::set_explicit_sys_subvector(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::split_mesh(), libMesh::BoundaryInfo::sync(), libMesh::MeshRefinement::test_level_one(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), libMesh::MeshRefinement::test_unflagged(), SystemsTest::testBlockRestrictedVarNDofs(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), SystemsTest::testProjectCubeWithMeshFunction(), CheckpointIOTest::testSplitter(), libMesh::MeshTools::total_weight(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::RBEIMConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::VTKIO::write_nodal_data(), 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().
|
pure virtual |
Delete subactive (i.e.
children of coarsened) elements. This removes all elements descended from currently active elements in the mesh.
Implemented in libMesh::UnstructuredMesh.
Referenced by libMesh::EquationSystems::reinit_solutions().
|
inline |
Default ghosting functor.
Definition at line 1125 of file mesh_base.h.
References _default_ghosting.
|
inline |
Returns any default data value used by the master space to physical space mapping.
Definition at line 724 of file mesh_base.h.
References _default_mapping_data.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), MeshInputTest::testDynaReadElem(), and MeshInputTest::testDynaReadPatch().
|
inline |
Returns the default master space to physical space mapping basis functions to be used on newly added elements.
Definition at line 708 of file mesh_base.h.
References _default_mapping_type.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), MeshInputTest::testDynaReadElem(), and MeshInputTest::testDynaReadPatch().
|
pure virtual |
Removes element e
from the mesh.
This method must be implemented in derived classes in such a way that it does not invalidate element iterators. Users should call MeshBase::prepare_for_use() after elements are added to and/or deleted from the mesh.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::Modification::all_tri(), libMesh::UnstructuredMesh::contract(), libMesh::TetGenMeshInterface::delete_2D_hull_elements(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::MeshTools::Modification::flatten(), libMesh::TetGenMeshInterface::pointset_convexhull(), libMesh::AbaqusIO::read(), libMesh::UNVIO::read_implementation(), and libMesh::GmshIO::read_mesh().
|
pure virtual |
Removes the Node n from the mesh.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::UnstructuredMesh::all_first_order(), and libMesh::MeshCommunication::delete_remote_elements().
|
inlinevirtual |
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 201 of file mesh_base.h.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), libMesh::UnstructuredMesh::create_submesh(), libMesh::Nemesis_IO::read(), libMesh::BoundaryInfo::sync(), and libMesh::MeshSerializer::~MeshSerializer().
void libMesh::MeshBase::detect_interior_parents | ( | ) |
Search the mesh for elements that have a neighboring element of dim+1 and set that element as the interior parent.
Definition at line 812 of file mesh_base.C.
References dim.
|
inlinevirtual |
Definition at line 569 of file mesh_base.h.
References elem_ptr().
|
inlinevirtual |
Definition at line 554 of file mesh_base.h.
References elem_ptr().
Referenced by libMesh::ReplicatedMesh::clear(), libMesh::DistributedMesh::clear(), libMesh::UnstructuredMesh::contract(), libMesh::DistributedMesh::DistributedMesh(), libMesh::ReplicatedMesh::get_boundary_points(), libMesh::ReplicatedMesh::get_disconnected_subdomains(), libMesh::DistributedMesh::renumber_nodes_and_elements(), and libMesh::ReplicatedMesh::stitching_helper().
|
inline |
Definition at line 225 of file mesh_base.h.
References _elem_dims.
Referenced by libMesh::System::calculate_norm(), and libMesh::TreeNode< N >::insert().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::Subdivision::add_boundary_ghosts(), libMesh::BoundaryInfo::add_edge(), libMesh::BoundaryInfo::add_elements(), libMesh::BoundaryInfo::add_shellface(), libMesh::BoundaryInfo::add_side(), libMesh::MeshTools::Modification::change_boundary_id(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::DTKAdapter::DTKAdapter(), elem(), elem_ref(), libMesh::DTKEvaluator::evaluate(), libMesh::UNVIO::groups_in(), libMesh::ErrorVector::is_active_elem(), LinearElasticityWithContact::move_mesh(), AugmentSparsityOnNodes::operator()(), libMesh::BoundaryInfo::operator=(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_serialized_connectivity(), EquationSystemsTest::testRefineThenReinitPreserveFlags(), InfFERadialTest::testSingleOrder(), and libMesh::Parallel::Packing< Elem * >::unpack().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
inlinevirtual |
Definition at line 530 of file mesh_base.h.
References elem_ptr().
|
inlinevirtual |
Definition at line 521 of file mesh_base.h.
References elem_ptr().
Referenced by libMesh::SyncRefinementFlags::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(), MixedDimensionNonUniformRefinement::build_mesh(), MixedDimensionNonUniformRefinementTriangle::build_mesh(), MixedDimensionNonUniformRefinement3D::build_mesh(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::SyncRefinementFlags::gather_data(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::ExodusII_IO::read(), libMesh::CheckpointIO::read_remote_elem(), SystemsTest::testDofCouplingWithVarGroups(), MeshExtruderTest::testExtruder(), MixedDimensionMeshTest::testMesh(), SlitMeshTest::testMesh(), MixedDimensionNonUniformRefinement::testMesh(), MixedDimensionNonUniformRefinementTriangle::testMesh(), MixedDimensionNonUniformRefinement3D::testMesh(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::FroIO::write(), libMesh::Nemesis_IO_Helper::write_elements(), and libMesh::GmshIO::write_mesh().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::EquationSystems::_add_system_to_nodes_and_elems(), libMesh::MeshRefinement::_coarsen_elements(), libMesh::MeshRefinement::_refine_elements(), libMesh::BoundaryInfo::add_elements(), libMesh::MeshRefinement::add_p_to_h_refinement(), libMesh::UnstructuredMesh::all_first_order(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), libMesh::EquationSystems::allgather(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshTools::build_nodes_to_elem_map(), libMesh::MeshTools::Modification::change_subdomain_id(), libMesh::TetGenMeshInterface::check_hull_integrity(), libMesh::MeshRefinement::clean_refinement_flags(), libMesh::MeshRefinement::coarsen_elements(), libMesh::UnstructuredMesh::contract(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::TetGenMeshInterface::delete_2D_hull_elements(), libMesh::MeshTools::elem_types(), libMesh::UNVIO::elements_out(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::MeshTools::Modification::flatten(), libMesh::MeshTools::get_not_subactive_node_ids(), libMesh::EquationSystems::init(), libMesh::MeshTools::libmesh_assert_connected_nodes(), libMesh::MeshTools::libmesh_assert_equal_n_systems(), libMesh::MeshTools::libmesh_assert_no_links_to_elem(), libMesh::MeshTools::libmesh_assert_old_dof_objects(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_amr_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_amr_interior_parents(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_node_pointers(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_refinement_tree(), main(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshTools::paranoid_n_levels(), libMesh::TetGenMeshInterface::pointset_convexhull(), libMesh::MeshTools::Subdivision::prepare_subdivision_mesh(), libMesh::AbaqusIO::read(), libMesh::UNVIO::read_implementation(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::MeshRefinement::refine_elements(), libMesh::EquationSystems::reinit_solutions(), libMesh::MeshRefinement::switch_h_to_p_refinement(), libMesh::BoundaryInfo::sync(), libMesh::MeshTools::Subdivision::tag_boundary_ghosts(), ExtraIntegersTest::test_and_set_initial_data(), ExtraIntegersTest::test_final_integers(), SystemsTest::testBoundaryProjectCube(), MeshInputTest::testDynaReadElem(), BoundaryInfoTest::testEdgeBoundaryConditions(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MappedSubdomainPartitionerTest::testMappedSubdomainPartitioner(), PartitionerTest< PartitionerSubclass, MeshClass >::testPartition(), SystemsTest::testProjectCube(), SystemsTest::testProjectLine(), SystemsTest::testProjectSquare(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::CheckpointIO::write(), and libMesh::UCDIO::write_interior_elems().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over all the elements in the Mesh.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::VariationalMeshSmoother::adjust_adapt_data(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::DofMap::distribute_dofs(), SolidSystem::init_data(), libMesh::MeshRefinement::make_flags_parallel_consistent(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), libMesh::Partitioner::single_partition(), SystemsTest::testBlockRestrictedVarNDofs(), libMesh::MeshTools::total_weight(), and libMesh::CheckpointIO::write().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::VariationalMeshSmoother::adjust_adapt_data(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshRefinement::make_flags_parallel_consistent(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), SystemsTest::testBlockRestrictedVarNDofs(), libMesh::MeshTools::total_weight(), and libMesh::CheckpointIO::write().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over elements in the Mesh where the solution (as distributed by the given DofMap) can be evaluated, for the given variable var_num, or for all variables by default.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by DefaultCouplingTest::testCoupling().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by DefaultCouplingTest::testCoupling().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over nodes in the Mesh where the solution (as distributed by the given DofMap) can be evaluated, for the given variable var_num, or for all variables by default.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over elements which are on or have a neighbor on the current processor.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Locate element face (edge in 2D) neighbors.
This is done with the help of a std::map
that functions like a hash table. After this routine is called all the elements with a nullptr
neighbor pointer are guaranteed to be on the boundary. Thus this routine is useful for automatically determining the boundaries of the domain. If reset_remote_elements is left to false, remote neighbor links are not reset and searched for in the local mesh. If reset_current_list is left as true, then any existing links will be reset before initiating the algorithm, while honoring the value of the reset_remote_elements flag.
Implemented in libMesh::UnstructuredMesh.
Referenced by libMesh::InfElemBuilder::build_inf_elem(), main(), and tetrahedralize_domain().
|
pure virtual |
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_impl(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), and libMesh::RBEvaluation::write_out_vectors().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over all elements with a specified refinement flag.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over all elements with a specified refinement flag on a specified processor.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
inlinevirtual |
Gathers all elements and nodes of the mesh onto processor zero.
Reimplemented in libMesh::DistributedMesh.
Definition at line 194 of file mesh_base.h.
Referenced by libMesh::MeshSerializer::MeshSerializer().
|
inline |
Writable information about boundary ids on the mesh.
Definition at line 137 of file mesh_base.h.
References boundary_info.
|
inline |
The information about boundary ids on the mesh.
Definition at line 132 of file mesh_base.h.
References boundary_info.
Referenced by libMesh::MeshRefinement::_coarsen_elements(), libMesh::MeshTools::Subdivision::add_boundary_ghosts(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), LinearElasticity::assemble(), assemble_elasticity(), assemble_poisson(), assemble_shell(), libMesh::AbaqusIO::assign_boundary_node_ids(), libMesh::AbaqusIO::assign_sideset_ids(), AssemblyA0::boundary_assembly(), AssemblyF0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyF2::boundary_assembly(), AssemblyA2::boundary_assembly(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshTools::Modification::change_boundary_id(), libMesh::DofMap::check_dirichlet_bcid_consistency(), 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(), libMesh::UnstructuredMesh::create_submesh(), libMesh::TetGenMeshInterface::delete_2D_hull_elements(), libMesh::ReplicatedMesh::delete_elem(), libMesh::DistributedMesh::delete_elem(), libMesh::ReplicatedMesh::delete_node(), libMesh::DistributedMesh::delete_node(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DistributedMesh::DistributedMesh(), libMesh::MeshTools::Modification::flatten(), libMesh::UNVIO::groups_in(), LinearElasticityWithContact::initialize_contact_load_paths(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), main(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::Parallel::Packing< const Node * >::pack(), libMesh::Parallel::Packing< const Elem * >::pack(), libMesh::Parallel::Packing< const Node * >::packable_size(), libMesh::Parallel::Packing< const Elem * >::packable_size(), 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::CheckpointIO::read_header(), libMesh::GmshIO::read_mesh(), libMesh::CheckpointIO::read_nodesets(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::ReplicatedMesh::ReplicatedMesh(), libMesh::ReplicatedMesh::stitching_helper(), libMesh::BoundaryInfo::sync(), AllTriTest::test_helper_2D(), AllTriTest::test_helper_3D(), SystemsTest::testBoundaryProjectCube(), BoundaryInfoTest::testEdgeBoundaryConditions(), BoundaryInfoTest::testMesh(), BoundaryInfoTest::testShellFaceConstraints(), WriteEdgesetData::testWrite(), WriteSidesetData::testWrite(), libMesh::Parallel::Packing< Node * >::unpack(), libMesh::Parallel::Packing< Elem * >::unpack(), libMesh::FroIO::write(), libMesh::Nemesis_IO::write(), libMesh::ExodusII_IO::write(), libMesh::XdrIO::write(), libMesh::CheckpointIO::write(), libMesh::GmshIO::write_mesh(), libMesh::XdrIO::write_serialized_bcs_helper(), and libMesh::XdrIO::write_serialized_nodesets().
bool libMesh::MeshBase::get_count_lower_dim_elems_in_point_locator | ( | ) | const |
Get the current value of _count_lower_dim_elems_in_point_locator.
Definition at line 710 of file mesh_base.C.
Referenced by libMesh::TreeNode< N >::insert().
unsigned int libMesh::MeshBase::get_elem_integer_index | ( | const std::string & | name | ) | const |
Definition at line 224 of file mesh_base.C.
References libMesh::index_range(), libMesh::invalid_uint, and libMesh::Quality::name().
|
inline |
Definition at line 818 of file mesh_base.h.
References _elem_integer_names.
Referenced by libMesh::CheckpointIO::write().
subdomain_id_type libMesh::MeshBase::get_id_by_name | ( | const std::string & | name | ) | const |
Elem::invalid_subdomain_id
otherwise. Definition at line 737 of file mesh_base.C.
References libMesh::Quality::name().
std::string libMesh::MeshBase::get_info | ( | ) | const |
Definition at line 551 of file mesh_base.C.
References libMesh::MeshTools::n_elem(), n_nodes, and libMesh::n_threads().
unsigned int libMesh::MeshBase::get_node_integer_index | ( | const std::string & | name | ) | const |
Definition at line 295 of file mesh_base.C.
References libMesh::index_range(), libMesh::invalid_uint, and libMesh::Quality::name().
|
inline |
Definition at line 915 of file mesh_base.h.
References _node_integer_names.
Referenced by libMesh::CheckpointIO::write().
Real libMesh::MeshBase::get_point_locator_close_to_point_tol | ( | ) | const |
Definition at line 919 of file mesh_base.C.
|
inline |
Definition at line 1633 of file mesh_base.h.
References _block_id_to_name.
Referenced by libMesh::DistributedMesh::DistributedMesh(), libMesh::ReplicatedMesh::ReplicatedMesh(), libMesh::XdrIO::write_serialized_subdomain_names(), and libMesh::CheckpointIO::write_subdomain_names().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over "ghost" elements in the Mesh.
A ghost element is one which is not local, but is semilocal.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
inline |
Beginning of range of ghosting functors.
Definition at line 1113 of file mesh_base.h.
References _ghosting_functors.
Referenced by libMesh::UnstructuredMesh::contract(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::query_ghosting_functors(), and EquationSystemsTest::testDisableDefaultGhosting().
|
inline |
End of range of ghosting functors.
Definition at line 1119 of file mesh_base.h.
References _ghosting_functors.
Referenced by libMesh::UnstructuredMesh::contract(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::query_ghosting_functors(), and EquationSystemsTest::testDisableDefaultGhosting().
bool libMesh::MeshBase::has_elem_integer | ( | const std::string & | name | ) | const |
bool libMesh::MeshBase::has_node_integer | ( | const std::string & | name | ) | const |
Insert elem e
to the element array, preserving its id and replacing/deleting any existing element with the same id.
Users should call MeshBase::prepare_for_use() after elements are added to and/or deleted from the mesh.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), and libMesh::MeshTools::Subdivision::all_subdivision().
Insert Node
n
into the Mesh at a location consistent with n->id(), allocating extra storage if necessary.
Will error rather than overwriting an existing Node. Primarily intended for use with the mesh_inserter_iterator, only use if you know what you are doing...
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::mesh_inserter_iterator< T >::operator=().
|
inline |
true
if the mesh has been prepared via a call to prepare_for_use
, false
otherwise. Definition at line 152 of file mesh_base.h.
References _is_prepared.
Referenced by libMesh::MeshRefinement::_refine_elements(), and libMesh::DofMap::create_dof_constraints().
|
inlinevirtual |
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 181 of file mesh_base.h.
Referenced by libMesh::MeshRefinement::_refine_elements(), libMesh::DynaIO::add_spline_constraints(), libMesh::UnstructuredMesh::all_second_order(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::CheckpointIO::read(), and libMesh::MeshRefinement::uniformly_coarsen().
|
inlinevirtual |
true
if all elements and nodes of the mesh exist on the current processor, false
otherwise Reimplemented in libMesh::DistributedMesh.
Definition at line 159 of file mesh_base.h.
Referenced by libMesh::MeshRefinement::_coarsen_elements(), libMesh::MeshRefinement::_smooth_flags(), libMesh::BoundaryInfo::add_elements(), libMesh::UnstructuredMesh::all_second_order(), 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::DofMap::create_dof_constraints(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::LocationMap< T >::init(), 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::Nemesis_IO::read(), libMesh::DofMap::scatter_constraints(), libMesh::BoundaryInfo::sync(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), WriteSidesetData::testWrite(), libMesh::MeshTools::total_weight(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::CheckpointIO::write(), and libMesh::XdrIO::write_parallel().
|
inlinevirtual |
true
if all elements and nodes of the mesh exist on the processor 0, false
otherwise Reimplemented in libMesh::DistributedMesh.
Definition at line 166 of file mesh_base.h.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over elements of a given level.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshCommunication::delete_remote_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::MeshRefinement::make_coarsening_compatible(), and libMesh::MeshTools::Modification::smooth().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
|
inlinevirtual |
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 1297 of file mesh_base.h.
Referenced by libMesh::MeshRefinement::_refine_elements(), libMesh::InfElemBuilder::build_inf_elem(), and libMesh::MeshRefinement::refine_and_coarsen_elements().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by assemble_poisson(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshCommunication::check_for_duplicate_global_indices(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::create_local_bounding_box(), libMesh::DTKAdapter::DTKAdapter(), libMesh::DTKAdapter::get_semi_local_nodes(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_remote_elems(), libMesh::MeshTools::n_local_levels(), and libMesh::MeshTools::n_p_levels().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by assemble_poisson(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshCommunication::check_for_duplicate_global_indices(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::create_local_bounding_box(), libMesh::DTKAdapter::DTKAdapter(), libMesh::DTKAdapter::get_semi_local_nodes(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_remote_elems(), libMesh::MeshTools::n_local_levels(), and libMesh::MeshTools::n_p_levels().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::XdrIO::write_serialized_bcs_helper(), and libMesh::XdrIO::write_serialized_connectivity().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::XdrIO::write_serialized_bcs_helper(), and libMesh::XdrIO::write_serialized_connectivity().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by assemble_wave(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), main(), libMesh::VTKIO::nodes_to_vtk(), libMesh::LaplaceMeshSmoother::smooth(), MeshFunctionTest::test_p_level(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), and libMesh::XdrIO::write_serialized_nodesets().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over local nodes (nodes whose processor_id() matches the current processor).
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshCommunication::assign_global_indices(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::MeshCommunication::check_for_duplicate_global_indices(), libMesh::MeshTools::create_nodal_bounding_box(), and libMesh::XdrIO::write_serialized_nodes().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshCommunication::assign_global_indices(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::MeshCommunication::check_for_duplicate_global_indices(), libMesh::MeshTools::create_nodal_bounding_box(), and libMesh::XdrIO::write_serialized_nodes().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
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(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), 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(), EquationSystemsTest::testPostInitAddElem(), BoundaryInfoTest::testShellFaceConstraints(), and libMesh::GmshIO::write_mesh().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::UnstructuredMesh::all_first_order(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::MeshTools::Modification::distort(), libMesh::MeshTools::find_boundary_nodes(), libMesh::LaplaceMeshSmoother::init(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::XdrIO::write(), libMesh::GMVIO::write_ascii_old_impl(), and libMesh::XdrIO::write_serialized_nodes().
|
protected |
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 944 of file mesh_base.C.
References _elem_integer_names, and _node_integer_names.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements(), and libMesh::UnstructuredMesh::create_submesh().
unsigned int libMesh::MeshBase::mesh_dimension | ( | ) | const |
Definition at line 135 of file mesh_base.C.
References _elem_dims.
Referenced by libMesh::HPCoarsenTest::add_projection(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), assemble(), LinearElasticity::assemble(), assemble_1D(), AssembleOptimization::assemble_A_and_F(), assemble_biharmonic(), assemble_cd(), assemble_elasticity(), assemble_ellipticdg(), assemble_helmholtz(), assemble_laplace(), assemble_mass(), assemble_matrices(), assemble_poisson(), assemble_SchroedingerEquation(), assemble_shell(), assemble_stokes(), assemble_wave(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::EquationSystems::build_variable_names(), compute_jacobian(), compute_residual(), LinearElasticityWithContact::compute_stresses(), LinearElasticity::compute_stresses(), compute_stresses(), LargeDeformationElasticity::compute_stresses(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::Modification::distort(), SolidSystem::element_time_derivative(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::ReplicatedMesh::get_boundary_points(), libMesh::LaplaceMeshSmoother::init(), libMesh::PointLocatorTree::init(), SolidSystem::init_data(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::RBEIMAssembly::initialize_fe(), integrate_function(), LaplaceYoung::jacobian(), LargeDeformationElasticity::jacobian(), main(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::GMVIO::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(), setup(), libMesh::MeshTools::Modification::smooth(), MeshSpatialDimensionTest::test1D(), MeshSpatialDimensionTest::test2D(), InfFERadialTest::testSingleOrder(), libMesh::BoundaryVolumeSolutionTransfer::transfer(), libMesh::DTKSolutionTransfer::transfer(), libMesh::DofMap::use_coupled_neighbor_dofs(), 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 |
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(), main(), libMesh::VariationalMeshSmoother::metr_data_gen(), libMesh::VariationalMeshSmoother::smooth(), 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().
dof_id_type libMesh::MeshBase::n_active_elem_on_proc | ( | const processor_id_type | proc | ) | const |
proc
. Definition at line 518 of file mesh_base.C.
References distance().
Referenced by n_active_local_elem().
|
inline |
Definition at line 420 of file mesh_base.h.
References n_active_elem_on_proc(), and libMesh::ParallelObject::processor_id().
Referenced by libMesh::VTKIO::cells_to_vtk().
dof_id_type libMesh::MeshBase::n_active_sub_elem | ( | ) | const |
Same as n_sub_elem()
, but only counts active elements.
Definition at line 539 of file mesh_base.C.
Referenced by libMesh::TecplotIO::write_ascii(), libMesh::GMVIO::write_ascii_old_impl(), and libMesh::TecplotIO::write_binary().
|
pure virtual |
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::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), 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::TetGenMeshInterface::check_hull_integrity(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::DofMap::create_dof_constraints(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::distort(), main(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::MeshTools::Modification::redistribute(), AllTriTest::test_helper_2D(), AllTriTest::test_helper_3D(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), InfFERadialTest::testSingleOrder(), CheckpointIOTest::testSplitter(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::FroIO::write(), libMesh::TetGenIO::write(), libMesh::XdrIO::write(), libMesh::UCDIO::write_implementation(), libMesh::UCDIO::write_nodal_data(), libMesh::XdrIO::write_serialized_connectivity(), and libMesh::System::write_serialized_vectors().
|
inline |
Definition at line 829 of file mesh_base.h.
References _elem_integer_names.
Referenced by libMesh::CheckpointIO::read_connectivity(), and libMesh::CheckpointIO::write().
dof_id_type libMesh::MeshBase::n_elem_on_proc | ( | const processor_id_type | proc | ) | const |
proc
. Definition at line 505 of file mesh_base.C.
References distance(), and libMesh::libmesh_assert().
Referenced by n_local_elem(), and n_unpartitioned_elem().
|
inline |
Definition at line 403 of file mesh_base.h.
References n_elem_on_proc(), and libMesh::ParallelObject::processor_id().
Referenced by libMesh::DTKAdapter::DTKAdapter(), and libMesh::DistributedMesh::parallel_n_elem().
|
inline |
Definition at line 303 of file mesh_base.h.
References n_nodes_on_proc(), and libMesh::ParallelObject::processor_id().
Referenced by libMesh::VTKIO::nodes_to_vtk(), and libMesh::DistributedMesh::parallel_n_nodes().
|
inline |
Definition at line 926 of file mesh_base.h.
References _node_integer_names.
Referenced by libMesh::CheckpointIO::read_nodes(), and libMesh::CheckpointIO::write().
|
pure virtual |
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 libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshTools::build_nodes_to_elem_map(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::distort(), fill_dirichlet_bc(), libMesh::TetGenMeshInterface::fill_pointlist(), libMesh::VTKIO::get_local_node_values(), libMesh::TreeNode< N >::insert(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), main(), libMesh::VariationalMeshSmoother::metr_data_gen(), libMesh::Nemesis_IO::read(), libMesh::UCDIO::read_implementation(), libMesh::AbaqusIO::read_nodes(), libMesh::XdrIO::read_serialized_nodes(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::MeshTools::Modification::redistribute(), libMesh::MeshTools::Modification::smooth(), libMesh::VariationalMeshSmoother::smooth(), SystemsTest::testBoundaryProjectCube(), SystemsTest::testDofCouplingWithVarGroups(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), libMesh::DirectSolutionTransfer::transfer(), libMesh::TreeNode< N >::transform_nodes_to_elements(), libMesh::TriangleInterface::triangulate(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), 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(), libMesh::UCDIO::write_soln(), and libMesh::VariationalMeshSmoother::writegr().
dof_id_type libMesh::MeshBase::n_nodes_on_proc | ( | const processor_id_type | proc | ) | const |
proc
. Definition at line 492 of file mesh_base.C.
References distance(), and libMesh::libmesh_assert().
Referenced by n_local_nodes(), and n_unpartitioned_nodes().
|
inline |
Definition at line 1153 of file mesh_base.h.
References _n_parts.
Referenced by libMesh::BoundaryInfo::sync(), libMesh::NameBasedIO::write(), libMesh::GMVIO::write_ascii_new_impl(), and libMesh::GMVIO::write_ascii_old_impl().
|
inlineinherited |
Definition at line 100 of file parallel_object.h.
References libMesh::ParallelObject::_communicator.
Referenced by 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::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::EnsightIO::EnsightIO(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), 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(), partition(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::prepare_send_list(), 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(), OverlappingFunctorTest::run_partitioner_test(), libMesh::DofMap::scatter_constraints(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), CheckpointIOTest::testSplitter(), WriteVecAndScalar::testWrite(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::VTKIO::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().
dof_id_type libMesh::MeshBase::n_sub_elem | ( | ) | const |
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 527 of file mesh_base.C.
subdomain_id_type libMesh::MeshBase::n_subdomains | ( | ) | const |
Definition at line 477 of file mesh_base.C.
Referenced by libMesh::XdrIO::write(), and libMesh::NameBasedIO::write_nodal_data().
|
inline |
Definition at line 409 of file mesh_base.h.
References libMesh::DofObject::invalid_processor_id, and n_elem_on_proc().
Referenced by libMesh::UnstructuredMesh::all_second_order(), and libMesh::DistributedMesh::parallel_n_elem().
|
inline |
Definition at line 309 of file mesh_base.h.
References libMesh::DofObject::invalid_processor_id, and n_nodes_on_proc().
Referenced by libMesh::DistributedMesh::parallel_n_nodes().
|
inline |
Definition at line 322 of file mesh_base.h.
References _next_unique_id.
|
inlinevirtual |
Definition at line 485 of file mesh_base.h.
References node_ptr().
|
inlinevirtual |
Definition at line 471 of file mesh_base.h.
References node_ptr().
Referenced by libMesh::UnstructuredMesh::all_first_order(), libMesh::ReplicatedMesh::clear(), libMesh::DistributedMesh::clear(), libMesh::ReplicatedMesh::get_boundary_points(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), libMesh::DistributedMesh::renumber_nodes_and_elements(), and libMesh::ReplicatedMesh::stitching_helper().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::GMVIO::_read_one_cell(), add_cube_convex_hull_to_mesh(), libMesh::MeshRefinement::add_node(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::AbaqusIO::assign_boundary_node_ids(), libMesh::TetGenMeshInterface::assign_nodes_to_elem(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::MeshTools::Modification::change_boundary_id(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::UnstructuredMesh::create_submesh(), libMesh::TetGenIO::element_in(), main(), node(), node_ref(), libMesh::BoundaryInfo::operator=(), 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::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::DofMap::scatter_constraints(), libMesh::BoundaryInfo::sync(), EquationSystemsTest::testPostInitAddElem(), SystemsTest::testProjectMatrix3D(), EquationSystemsTest::testReinitWithNodeElem(), BoundaryInfoTest::testShellFaceConstraints(), libMesh::Parallel::Packing< Elem * >::unpack(), and libMesh::CheckpointIO::write_nodesets().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::EquationSystems::_add_system_to_nodes_and_elems(), libMesh::UnstructuredMesh::all_first_order(), libMesh::EquationSystems::allgather(), assemble_shell(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshCommunication::delete_remote_elements(), NodalNeighborsTest::do_test(), libMesh::LocationMap< T >::fill(), libMesh::TetGenMeshInterface::fill_pointlist(), libMesh::LocationMap< T >::init(), libMesh::EquationSystems::init(), libMesh::MeshTools::libmesh_assert_connected_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_equal_n_systems(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), main(), libMesh::UNVIO::nodes_out(), DistortTest::perturb_and_check(), libMesh::MeshTools::Subdivision::prepare_subdivision_mesh(), libMesh::XdrIO::read_serialized_nodes(), libMesh::VariationalMeshSmoother::readgr(), libMesh::MeshTools::Modification::redistribute(), libMesh::EquationSystems::reinit_solutions(), libMesh::MeshTools::Modification::rotate(), libMesh::MeshTools::Modification::scale(), scale_mesh_and_plot(), libMesh::BoundaryInfo::sync(), MeshSpatialDimensionTest::test1D(), MeshSpatialDimensionTest::test2D(), ExtraIntegersTest::test_and_set_initial_data(), PartitionerTest< PartitionerSubclass, MeshClass >::testPartition(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), WriteVecAndScalar::testWrite(), transform_mesh_and_plot(), libMesh::MeshTools::Modification::translate(), libMesh::Tree< N >::Tree(), libMesh::TriangleInterface::triangulate(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::UCDIO::write_nodes(), and libMesh::VariationalMeshSmoother::writegr().
|
inlinevirtual |
Definition at line 459 of file mesh_base.h.
References node_ptr().
|
inlinevirtual |
Definition at line 451 of file mesh_base.h.
References node_ptr().
Referenced by libMesh::SyncNodalPositions::act_on_data(), LinearElasticityWithContact::add_contact_edge_elements(), libMesh::DynaIO::add_spline_constraints(), assemble_matrix_and_rhs(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::DTKAdapter::DTKAdapter(), fill_dirichlet_bc(), main(), libMesh::ReplicatedMesh::point(), libMesh::DistributedMesh::point(), libMesh::XdrIO::read_serialized_nodes(), LinearElasticityWithContact::residual_and_jacobian(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::MeshTools::Modification::smooth(), libMesh::ReplicatedMesh::stitching_helper(), libMesh::DTKAdapter::update_variable_values(), and libMesh::GmshIO::write_mesh().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over all the nodes in the Mesh.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::correct_node_proc_ids(), libMesh::DofMap::distribute_dofs(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::FEMSystem::mesh_position_set(), and libMesh::LaplaceMeshSmoother::smooth().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Copy and move assignment are not allowed because MeshBase subclasses manually manage memory (Elems and Nodes) and therefore the default versions of these operators would leak memory.
Since we don't want to maintain non-default copy and move assignment operators at this time, the safest and most self-documenting approach is to delete them.
|
inlinevirtual |
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 656 of file mesh_base.h.
Referenced by libMesh::UnstructuredMesh::all_second_order().
|
pure virtual |
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(), and libMesh::DistributedMesh::DistributedMesh().
|
pure virtual |
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 virtual |
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(), and libMesh::Nemesis_IO::read().
|
inline |
|
virtual |
Call the default partitioner (currently metis_partition()
).
Definition at line 599 of file mesh_base.C.
References libMesh::MeshTools::correct_node_proc_ids(), libMesh::ReferenceElem::get(), and libMesh::libmesh_assert().
Referenced by main(), libMesh::split_mesh(), ExtraIntegersTest::test_helper(), MappedSubdomainPartitionerTest::testMappedSubdomainPartitioner(), EquationSystemsTest::testRepartitionThenReinit(), and CheckpointIOTest::testSplitter().
|
inlinevirtual |
A partitioner to use at each prepare_for_use()
Definition at line 127 of file mesh_base.h.
References _partitioner.
Referenced by main(), libMesh::BoundaryInfo::sync(), MappedSubdomainPartitionerTest::testMappedSubdomainPartitioner(), and MeshInputTest::testMeshMoveConstructor().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over all elements with a specified processor id.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::MeshTools::create_bounding_box(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::MeshCommunication::delete_remote_elements(), PartitionerTest< PartitionerSubclass, MeshClass >::testPartition(), CheckpointIOTest::testSplitter(), and libMesh::MeshTools::weight().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::MeshTools::create_bounding_box(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::MeshCommunication::delete_remote_elements(), PartitionerTest< PartitionerSubclass, MeshClass >::testPartition(), CheckpointIOTest::testSplitter(), and libMesh::MeshTools::weight().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over nodes with processor_id() == proc_id.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::create_nodal_bounding_box().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::create_nodal_bounding_box().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::VTKIO::cells_to_vtk(), libMesh::SyncNodalPositions::gather_data(), LinearElasticityWithContact::initialize_contact_load_paths(), main(), libMesh::LaplaceMeshSmoother::smooth(), 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().
const PointLocatorBase & libMesh::MeshBase::point_locator | ( | ) | const |
PointLocatorBase
object for this mesh, constructing a master PointLocator first if necessary.Definition at line 652 of file mesh_base.C.
References libMesh::Threads::in_threads, libMesh::libmesh_assert(), and libMesh::TREE_ELEMENTS.
void libMesh::MeshBase::prepare_for_use | ( | const bool | skip_renumber_nodes_and_elements = false , |
const bool | skip_find_neighbors = false |
||
) |
Prepare a newly ecreated (or read) mesh for use.
This involves 4 steps: 1.) call find_neighbors()
2.) call partition()
3.) call renumber_nodes_and_elements()
4.) call cache_elem_dims()
The argument to skip renumbering is now deprecated - to prevent a mesh from being renumbered, set allow_renumbering(false).
If this is a distributed mesh, local copies of remote elements will be deleted here - to keep those elements replicated during preparation, set allow_remote_element_removal(false).
Definition at line 318 of file mesh_base.C.
References libMesh::libmesh_assert(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), and libMesh::MeshTools::libmesh_assert_valid_unique_ids().
Referenced by LinearElasticityWithContact::add_contact_edge_elements(), libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), GetBoundaryPointsTest::build_mesh(), MixedDimensionMeshTest::build_mesh(), MeshfunctionDFEM::build_mesh(), SlitMeshTest::build_mesh(), MixedDimensionNonUniformRefinement::build_mesh(), MixedDimensionNonUniformRefinementTriangle::build_mesh(), MixedDimensionNonUniformRefinement3D::build_mesh(), libMesh::MeshRefinement::coarsen_elements(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::flatten(), main(), libMesh::MeshTools::Subdivision::prepare_subdivision_mesh(), libMesh::GMVIO::read(), libMesh::UnstructuredMesh::read(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::MeshRefinement::refine_elements(), libMesh::ReplicatedMesh::stitching_helper(), libMesh::BoundaryInfo::sync(), MeshSpatialDimensionTest::test1D(), MeshSpatialDimensionTest::test2D(), SystemsTest::testBlockRestrictedVarNDofs(), SystemsTest::testDofCouplingWithVarGroups(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusCopyElementSolution(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), EquationSystemsTest::testPostInitAddElem(), SystemsTest::testProjectMatrix3D(), EquationSystemsTest::testReinitWithNodeElem(), BoundaryInfoTest::testShellFaceConstraints(), WriteVecAndScalar::testWrite(), tetrahedralize_domain(), libMesh::TriangleInterface::triangulate(), libMesh::MeshRefinement::uniformly_coarsen(), and libMesh::MeshRefinement::uniformly_refine().
void libMesh::MeshBase::print_info | ( | std::ostream & | os = libMesh::out | ) | const |
Prints relevant information about the mesh.
Definition at line 585 of file mesh_base.C.
Referenced by assemble_and_solve(), libMesh::InfElemBuilder::build_inf_elem(), main(), and libMesh::operator<<().
|
inlineinherited |
Definition at line 106 of file parallel_object.h.
References libMesh::ParallelObject::_communicator.
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::EquationSystems::_read_impl(), 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::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), 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_scalar_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::ExodusII_IO_Helper::create(), libMesh::DistributedMesh::delete_elem(), libMesh::DistributedMesh::delete_node(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMap::end_dof(), libMesh::DofMap::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::RBEIMConstruction::evaluate_mesh_function(), libMesh::MeshFunction::find_element(), libMesh::MeshFunction::find_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMap::first_dof(), libMesh::DofMap::first_old_dof(), 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::DofMap::get_info(), libMesh::Nemesis_IO_Helper::get_init_global(), libMesh::Nemesis_IO_Helper::get_init_info(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::DofMap::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::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), 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::DofMap::last_dof(), libMesh::TransientRBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEIMEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEIMEvaluation::legacy_write_out_interpolation_points_elem(), 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(), n_active_local_elem(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::DofMap::n_local_dofs(), libMesh::System::n_local_dofs(), n_local_elem(), n_local_nodes(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::SparsityPattern::Build::operator()(), libMesh::DistributedMesh::own_node(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::print_dof_constraints(), 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::ExodusII_IO_Helper::read_elem_num_map(), libMesh::ExodusII_IO_Helper::read_global_values(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::System::read_legacy_data(), 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::DistributedMesh::renumber_dof_objects(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::LaplaceMeshSmoother::smooth(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusCopyElementSolution(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), CheckpointIOTest::testSplitter(), WriteVecAndScalar::testWrite(), libMesh::MeshTools::total_weight(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::Parallel::Packing< Node * >::unpack(), libMesh::Parallel::Packing< Elem * >::unpack(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::DTKAdapter::update_variable_values(), 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::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::VTKIO::write_nodal_data(), libMesh::UCDIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::RBEvaluation::write_out_vectors(), 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().
|
inlinevirtual |
Definition at line 609 of file mesh_base.h.
References query_elem_ptr().
|
inlinevirtual |
Definition at line 595 of file mesh_base.h.
References query_elem_ptr().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), 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(), libMesh::MeshCommunication::make_elems_parallel_consistent(), query_elem(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_serialized_bcs_helper(), ParsedFEMFunctionTest::setUp(), EquationSystemsTest::testRefineThenReinitPreserveFlags(), BoundaryInfoTest::testShellFaceConstraints(), and libMesh::Parallel::Packing< Elem * >::unpack().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
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::DynaIO::add_spline_constraints(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::distort(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), main(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::CheckpointIO::read_nodes(), libMesh::XdrIO::read_serialized_nodesets(), and libMesh::Parallel::Packing< Node * >::unpack().
|
pure virtual |
nullptr
if no such node exists in this processor's mesh data structure. Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Interfaces for reading/writing a mesh to/from a file.
Must be implemented in derived classes.
Implemented in libMesh::UnstructuredMesh.
Referenced by build_domain(), main(), and BoundaryInfoTest::testEdgeBoundaryConditions().
unsigned int libMesh::MeshBase::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.
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 631 of file mesh_base.C.
|
inlinevirtual |
Redistribute elements between processors.
This gets called automatically by the Partitioner, and is a no-op in the case of a ReplicatedMesh or serialized DistributedMesh
Reimplemented in libMesh::DistributedMesh.
Definition at line 1000 of file mesh_base.h.
void libMesh::MeshBase::remove_ghosting_functor | ( | GhostingFunctor & | ghosting_functor | ) |
Removes a functor which was previously added to the set of ghosting functors.
Definition at line 450 of file mesh_base.C.
Referenced by libMesh::DofMap::clear(), libMesh::DofMap::remove_algebraic_ghosting_functor(), libMesh::DofMap::remove_coupling_functor(), EquationSystemsTest::testDisableDefaultGhosting(), and libMesh::DofMap::~DofMap().
|
pure virtual |
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().
|
pure virtual |
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.
|
pure virtual |
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::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::UnstructuredMesh::contract(), and write_output().
|
pure virtual |
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(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::ExodusII_IO::read(), libMesh::XdrIO::read_header(), and libMesh::GmshIO::read_mesh().
|
pure virtual |
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 libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::ExodusII_IO::read(), libMesh::XdrIO::read_header(), and libMesh::GmshIO::read_mesh().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over elements for which elem->is_semilocal() is true for the current processor.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
void libMesh::MeshBase::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.
Definition at line 703 of file mesh_base.C.
|
inline |
Set the default master space to physical space mapping basis functions to be used on newly added elements.
Definition at line 732 of file mesh_base.h.
References _default_mapping_data, and data.
Referenced by libMesh::DynaIO::read_mesh(), RationalMapTest< elem_type >::setUp(), and FETest< order, family, elem_type >::setUp().
|
inline |
Set the default master space to physical space mapping basis functions to be used on newly added elements.
Definition at line 716 of file mesh_base.h.
References _default_mapping_type.
Referenced by libMesh::DynaIO::read_mesh(), and RationalMapTest< elem_type >::setUp().
|
inlinevirtual |
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 174 of file mesh_base.h.
Referenced by libMesh::CheckpointIO::read().
void libMesh::MeshBase::set_elem_dimensions | ( | const 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_dims(), 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_dims() and simply specify the element dimensions manually, which is why this setter exists.
Definition at line 144 of file mesh_base.C.
References _elem_dims, and cache_elem_dims().
|
inline |
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 218 of file mesh_base.h.
References _elem_dims.
Referenced by libMesh::MeshTools::Generation::build_delaunay_square(), MixedDimensionMeshTest::build_mesh(), MeshfunctionDFEM::build_mesh(), SlitMeshTest::build_mesh(), MixedDimensionNonUniformRefinement::build_mesh(), MixedDimensionNonUniformRefinementTriangle::build_mesh(), MixedDimensionNonUniformRefinement3D::build_mesh(), libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::AbaqusIO::read(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::GMVIO::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(), and libMesh::TriangleInterface::triangulate().
|
inlineprotected |
Definition at line 1667 of file mesh_base.h.
References _n_parts.
Referenced by libMesh::BoundaryInfo::sync().
|
inline |
Sets the next unique id to be used.
Definition at line 327 of file mesh_base.h.
References _next_unique_id.
void libMesh::MeshBase::set_point_locator_close_to_point_tol | ( | Real | val | ) |
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 905 of file mesh_base.C.
void libMesh::MeshBase::set_spatial_dimension | ( | unsigned char | d | ) |
Sets the "spatial dimension" of the Mesh.
See the documentation for Mesh::spatial_dimension() for more information.
Definition at line 166 of file mesh_base.C.
References _spatial_dimension.
Referenced by MeshSpatialDimensionTest::test2D().
|
inline |
Definition at line 1631 of file mesh_base.h.
References _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().
|
protected |
Size extra-integer arrays of all elements in the mesh.
Definition at line 926 of file mesh_base.C.
Referenced by add_elem_data(), add_elem_datum(), and add_elem_integer().
|
protected |
Size extra-integer arrays of all nodes in the mesh.
Definition at line 935 of file mesh_base.C.
Referenced by add_node_data(), and add_node_datum().
|
inline |
Definition at line 1061 of file mesh_base.h.
References _partitioner, _skip_all_partitioning, and _skip_noncritical_partitioning.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements().
|
inline |
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 1058 of file mesh_base.h.
References _skip_noncritical_partitioning.
Referenced by libMesh::MeshTools::correct_node_proc_ids().
|
inline |
Definition at line 1078 of file mesh_base.h.
References _skip_all_partitioning.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements().
|
inline |
If true is passed in then nothing on this mesh will be (re)partitioned.
Definition at line 1076 of file mesh_base.h.
References _skip_all_partitioning.
unsigned int libMesh::MeshBase::spatial_dimension | ( | ) | const |
The spatial dimension is defined as:
1 - for an exactly x-aligned mesh of 1D elements 2 - for an exactly x-y planar mesh of 2D elements 3 - otherwise
No tolerance checks are performed to determine whether the Mesh is x-aligned or x-y planar, only strict equality with zero in the higher dimensions is checked. Also, x-z and y-z planar meshes are considered to have spatial dimension == 3.
The spatial dimension is updated during prepare_for_use() based on the dimensions of the various elements present in the Mesh, but is never automatically decreased by this function.
For example, if the user calls set_spatial_dimension(2) and then later inserts 3D elements into the mesh, Mesh::spatial_dimension() will return 3 after the next call to prepare_for_use(). On the other hand, if the user calls set_spatial_dimension(3) and then inserts only x-aligned 1D elements into the Mesh, mesh.spatial_dimension() will remain 3.
Definition at line 159 of file mesh_base.C.
References _spatial_dimension.
Referenced by MeshSpatialDimensionTest::test1D(), and MeshSpatialDimensionTest::test2D().
std::unique_ptr< PointLocatorBase > libMesh::MeshBase::sub_point_locator | ( | ) | const |
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 672 of file mesh_base.C.
References libMesh::Threads::in_threads, libMesh::libmesh_assert(), and libMesh::TREE_ELEMENTS.
Referenced by MeshfunctionDFEM::build_mesh(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshFunction::init(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::DefaultCoupling::mesh_reinit(), libMesh::PointNeighborCoupling::mesh_reinit(), libMesh::MeshRefinement::test_level_one(), PointLocatorTest::testLocator(), MixedDimensionMeshTest::testPointLocatorTree(), SystemsTest::testProjectCube(), SystemsTest::testProjectLine(), and SystemsTest::testProjectSquare().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over elements for which elem->subactive() is true.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
void libMesh::MeshBase::subdomain_ids | ( | std::set< subdomain_id_type > & | ids | ) | const |
Constructs a list of all subdomain identifiers in the global mesh.
Subdomains correspond to separate subsets of the mesh which could correspond e.g. to different materials in a solid mechanics application, or regions where different physical processes are important. The subdomain mapping is independent from the parallel decomposition.
Definition at line 461 of file mesh_base.C.
Referenced by libMesh::ReplicatedMesh::get_disconnected_subdomains(), and libMesh::TecplotIO::TecplotIO().
std::string & libMesh::MeshBase::subdomain_name | ( | subdomain_id_type | id | ) |
Definition at line 717 of file mesh_base.C.
Referenced by libMesh::AbaqusIO::assign_subdomain_ids(), DMlibMeshSetSystem_libMesh(), libMesh::UNVIO::groups_in(), libMesh::ExodusII_IO::read(), libMesh::GmshIO::read_mesh(), and libMesh::TecplotIO::write_binary().
const std::string & libMesh::MeshBase::subdomain_name | ( | subdomain_id_type | id | ) | const |
Definition at line 722 of file mesh_base.C.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over all elements with a specified geometric type.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::n_elem_of_type(), and libMesh::MeshTools::n_non_subactive_elem_of_type_at_level().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshTools::n_elem_of_type(), and libMesh::MeshTools::n_non_subactive_elem_of_type_at_level().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
Iterate over unpartitioned elements in the Mesh.
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
Referenced by libMesh::MeshRefinement::_refine_elements(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::n_active_levels(), libMesh::MeshTools::n_levels(), and libMesh::MeshTools::n_p_levels().
|
pure virtual |
Implemented in libMesh::DistributedMesh, and libMesh::ReplicatedMesh.
|
pure virtual |
|
pure virtual |
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(), and libMesh::MeshRefinement::_refine_elements().
|
inlinevirtual |
Recalculate any cached data after elements and nodes have been repartitioned.
Reimplemented in libMesh::DistributedMesh.
Definition at line 1006 of file mesh_base.h.
Referenced by libMesh::Nemesis_IO::read().
|
pure virtual |
Implemented in libMesh::UnstructuredMesh.
Referenced by ExtraIntegersTest::checkpoint_helper(), main(), BoundaryInfoTest::testEdgeBoundaryConditions(), tetrahedralize_domain(), triangulate_domain(), and write_output().
|
friend |
Make the BoundaryInfo
class a friend so that it can create and interact with BoundaryMesh
.
Definition at line 1851 of file mesh_base.h.
|
friend |
Make the MeshCommunication
class a friend so that it can directly broadcast *_integer_names.
Definition at line 1857 of file mesh_base.h.
Referenced by libMesh::UnstructuredMesh::all_second_order(), libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::delete_remote_elements(), and libMesh::DistributedMesh::gather_to_zero().
The MeshInput classes are friends so that they can set the number of partitions.
Definition at line 1845 of file mesh_base.h.
|
friend |
Equivalent to calling print_info() above, but now you can write: Mesh mesh; libMesh::out << mesh << std::endl;.
Definition at line 592 of file mesh_base.C.
|
friend |
The partitioner class is a friend so that it can set the number of partitions.
Definition at line 1839 of file mesh_base.h.
|
protected |
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 1754 of file mesh_base.h.
Referenced by allow_remote_element_removal().
|
protected |
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 1761 of file mesh_base.h.
Referenced by get_subdomain_name_map(), and set_subdomain_name_map().
|
protectedinherited |
Definition at line 112 of file parallel_object.h.
Referenced by libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::ParallelObject::comm(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::operator=(), and libMesh::ParallelObject::processor_id().
|
protected |
Do we count lower dimensional elements in point locator refinement? This is relevant in tree-based point locators, for example.
Definition at line 1713 of file mesh_base.h.
|
protected |
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 1812 of file mesh_base.h.
Referenced by default_ghosting(), and MeshBase().
|
protected |
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 1693 of file mesh_base.h.
Referenced by default_mapping_data(), and set_default_mapping_data().
|
protected |
The default mapping type (typically Lagrange) between master and physical space to assign to newly added elements.
Definition at line 1686 of file mesh_base.h.
Referenced by default_mapping_type(), and set_default_mapping_type().
|
protected |
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 1768 of file mesh_base.h.
Referenced by elem_dimensions(), mesh_dimension(), MeshBase(), set_elem_dimensions(), and set_mesh_dimension().
|
protected |
The array of names for integer data associated with each element in the mesh.
Definition at line 1780 of file mesh_base.h.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), add_elem_data(), add_elem_datum(), add_elem_integer(), add_elem_integers(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::UnstructuredMesh::create_submesh(), get_elem_integer_name(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), merge_extra_integer_names(), and n_elem_integers().
|
protected |
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 1821 of file mesh_base.h.
Referenced by add_ghosting_functor(), ghosting_functors_begin(), ghosting_functors_end(), and MeshBase().
|
protected |
Flag indicating if the mesh has been prepared for use.
Definition at line 1698 of file mesh_base.h.
Referenced by libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), and is_prepared().
|
protected |
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 1680 of file mesh_base.h.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements(), n_partitions(), and set_n_partitions().
|
protected |
The next available unique id for assigning ids to DOF objects.
Definition at line 1727 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::ReplicatedMesh::insert_node(), next_unique_id(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::ReplicatedMesh::ReplicatedMesh(), set_next_unique_id(), libMesh::ReplicatedMesh::update_parallel_id_counts(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protected |
The array of names for integer data associated with each node in the mesh.
Definition at line 1786 of file mesh_base.h.
Referenced by libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), add_node_data(), add_node_datum(), libMesh::ReplicatedMesh::add_point(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::UnstructuredMesh::create_submesh(), get_node_integer_name(), libMesh::ReplicatedMesh::insert_node(), merge_extra_integer_names(), and n_node_integers().
|
protected |
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 1721 of file mesh_base.h.
Referenced by libMesh::DistributedMesh::DistributedMesh(), MeshBase(), partitioner(), libMesh::ReplicatedMesh::ReplicatedMesh(), and skip_noncritical_partitioning().
|
mutableprotected |
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 1707 of file mesh_base.h.
|
protected |
If nonzero, we will call PointLocatorBase::set_close_to_point_tol() on any PointLocators that we create.
Definition at line 1833 of file mesh_base.h.
|
protected |
Hang on to references to any GhostingFunctor objects we were passed in shared_ptr form.
Definition at line 1827 of file mesh_base.h.
Referenced by add_ghosting_functor().
|
protected |
If this is true then no partitioning should be done.
Definition at line 1739 of file mesh_base.h.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements(), skip_noncritical_partitioning(), and skip_partitioning().
|
protected |
If this is true then no partitioning should be done with the possible exception of orphaned nodes.
Definition at line 1734 of file mesh_base.h.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements(), and skip_noncritical_partitioning().
|
protected |
If this is true then renumbering will be kept to a minimum.
This is set when prepare_for_use() is called.
Definition at line 1746 of file mesh_base.h.
Referenced by allow_renumbering(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
|
protected |
The "spatial dimension" of the Mesh.
See the documentation for Mesh::spatial_dimension() for more information.
Definition at line 1774 of file mesh_base.h.
Referenced by set_spatial_dimension(), and spatial_dimension().
std::unique_ptr<BoundaryInfo> libMesh::MeshBase::boundary_info |
This class holds the boundary information.
It can store nodes, edges, and faces with a corresponding id that facilitates setting boundary conditions.
Direct access to this class will be removed in future libMesh versions. Use the get_boundary_info()
accessor instead.
Definition at line 1659 of file mesh_base.h.
Referenced by get_boundary_info(), and MeshInputTest::testMeshMoveConstructor().