|
libMesh
|
The BoundaryInfo class contains information relevant to boundary conditions including storing faces, edges, and nodes on the boundary, along with ids that can be used to identify the type of boundary each entity is part of.
More...
#include <boundary_info.h>
Public Types | |
| enum | NodeBCTupleSortBy { NodeBCTupleSortBy::NODE_ID, NodeBCTupleSortBy::BOUNDARY_ID, NodeBCTupleSortBy::UNSORTED } |
| enum | BCTupleSortBy { BCTupleSortBy::ELEM_ID, BCTupleSortBy::SIDE_ID, BCTupleSortBy::BOUNDARY_ID, BCTupleSortBy::UNSORTED } |
| typedef std::tuple< dof_id_type, boundary_id_type > | NodeBCTuple |
| Create a list of (node_id, boundary_id) tuples for all relevant nodes. More... | |
| typedef std::tuple< dof_id_type, unsigned short int, boundary_id_type > | BCTuple |
| Create a list of (element_id, side_id, boundary_id) tuples for relevant sides. More... | |
Public Member Functions | |
| BoundaryInfo & | operator= (const BoundaryInfo &other_boundary_info) |
| Copy assignment operator. More... | |
| bool | operator== (const BoundaryInfo &other_boundary_info) const |
| This tests for data equality via element ids. More... | |
| bool | operator!= (const BoundaryInfo &other_boundary_info) const |
| ~BoundaryInfo () | |
| Destructor. More... | |
| void | clear () |
| Clears the underlying data structures and restores the object to a pristine state with no data stored. More... | |
| void | regenerate_id_sets () |
| Clears and regenerates the cached sets of ids. More... | |
| void | synchronize_global_id_set () |
| Synchronizes the boundary_ids set on each processor to determine global_boundary_ids. More... | |
| void | sync (UnstructuredMesh &boundary_mesh) |
Generates boundary_mesh data structures corresponding to the mesh data structures. More... | |
| void | sync (const std::set< boundary_id_type > &requested_boundary_ids, UnstructuredMesh &boundary_mesh) |
Generates boundary_mesh data structures corresponding to the mesh data structures. More... | |
| void | sync (const std::set< boundary_id_type > &requested_boundary_ids, UnstructuredMesh &boundary_mesh, const std::set< subdomain_id_type > &subdomains_relative_to) |
| Like the other sync() implementations, but specifically intended for building "boundary" meshes from internal sidesets. More... | |
| void | get_side_and_node_maps (UnstructuredMesh &boundary_mesh, std::map< dof_id_type, dof_id_type > &node_id_map, std::map< dof_id_type, unsigned char > &side_id_map, Real tolerance=1.e-6) |
Suppose we have used sync to create boundary_mesh. More... | |
| void | add_elements (const std::set< boundary_id_type > &requested_boundary_ids, UnstructuredMesh &boundary_mesh, bool store_parent_side_ids=false) |
Generates elements along the boundary of our _mesh, which use pre-existing nodes on the boundary_mesh, and which have interior_parent values properly defined. More... | |
| void | add_elements (const std::set< boundary_id_type > &requested_boundary_ids, UnstructuredMesh &boundary_mesh, const std::set< subdomain_id_type > &subdomains_relative_to, bool store_parent_side_ids=false) |
| Same as the add_elements() function above, but takes a set of subdomains for which the sides must be relative to. More... | |
| void | add_node (const Node *node, const boundary_id_type id) |
Add Node node with boundary id id to the boundary information data structures. More... | |
| void | add_node (const dof_id_type node, const boundary_id_type id) |
Add node number node with boundary id id to the boundary information data structures. More... | |
| void | add_node (const Node *node, const std::vector< boundary_id_type > &ids) |
Add Node node with boundary ids ids to the boundary information data structure. More... | |
| void | clear_boundary_node_ids () |
| Clears all the boundary information from all of the nodes in the mesh. More... | |
| void | add_edge (const dof_id_type elem, const unsigned short int edge, const boundary_id_type id) |
Add edge edge of element number elem with boundary id id to the boundary information data structure. More... | |
| void | add_edge (const Elem *elem, const unsigned short int edge, const boundary_id_type id) |
Add edge edge of element elem with boundary id id to the boundary information data structure. More... | |
| void | add_edge (const Elem *elem, const unsigned short int edge, const std::vector< boundary_id_type > &ids) |
Add edge edge of element elem with boundary ids ids to the boundary information data structure. More... | |
| void | add_shellface (const dof_id_type elem, const unsigned short int shellface, const boundary_id_type id) |
Add shell face shellface of element number elem with boundary id id to the boundary information data structure. More... | |
| void | add_shellface (const Elem *elem, const unsigned short int shellface, const boundary_id_type id) |
Add shell face shellface of element elem with boundary id id to the boundary information data structure. More... | |
| void | add_shellface (const Elem *elem, const unsigned short int shellface, const std::vector< boundary_id_type > &ids) |
Add shell face shellface of element elem with boundary ids ids to the boundary information data structure. More... | |
| void | add_side (const dof_id_type elem, const unsigned short int side, const boundary_id_type id) |
Add side side of element number elem with boundary id id to the boundary information data structure. More... | |
| void | add_side (const Elem *elem, const unsigned short int side, const boundary_id_type id) |
Add side side of element elem with boundary id id to the boundary information data structure. More... | |
| void | add_side (const Elem *elem, const unsigned short int side, const std::vector< boundary_id_type > &ids) |
Add side side of element elem with boundary ids ids to the boundary information data structure. More... | |
| void | remove (const Node *node) |
Removes the boundary conditions associated with node node, if any exist. More... | |
| void | remove (const Elem *elem) |
Removes the boundary conditions associated with element elem, if any exist. More... | |
| void | remove_node (const Node *node, const boundary_id_type id) |
Removes boundary id id from node node, if it exists. More... | |
| void | remove_edge (const Elem *elem, const unsigned short int edge) |
Removes all boundary conditions associated with edge edge of element elem, if any exist. More... | |
| void | remove_edge (const Elem *elem, const unsigned short int edge, const boundary_id_type id) |
Removes the boundary id id from edge edge of element elem, if it exists. More... | |
| void | remove_shellface (const Elem *elem, const unsigned short int shellface) |
Removes all boundary conditions associated with shell face shellface of element elem, if any exist. More... | |
| void | remove_shellface (const Elem *elem, const unsigned short int shellface, const boundary_id_type id) |
Removes all boundary conditions associated with shell face shellface of element elem, if any exist. More... | |
| void | remove_side (const Elem *elem, const unsigned short int side) |
Removes all boundary conditions associated with side side of element elem, if any exist. More... | |
| void | remove_side (const Elem *elem, const unsigned short int side, const boundary_id_type id) |
Removes the boundary id id from side side of element elem, if it exists. More... | |
| void | clear_stitched_boundary_side_ids (boundary_id_type sideset_id, boundary_id_type other_sideset_id, bool clear_nodeset_data=false) |
| Clear sideset information along a stitched mesh interface. More... | |
| void | remove_id (boundary_id_type id, bool global=false) |
Removes all entities (nodes, sides, edges, shellfaces) with boundary id id from their respective containers and erases any record of id's existence from the BoundaryInfo object. More... | |
| void | remove_side_id (boundary_id_type id, bool global=false) |
Removes all sides with boundary id id from the BoundaryInfo object, removes it from the set of side boundary ids, and removes it from the set of boundary ids if no other boundary type uses it. More... | |
| void | remove_edge_id (boundary_id_type id, bool global=false) |
Removes all edges with boundary id id from the BoundaryInfo object, removes it from the set of edge boundary ids, and removes it from the set of boundary ids if no other boundary type uses it. More... | |
| void | remove_shellface_id (boundary_id_type id, bool global=false) |
Removes all shellfaces with boundary id id from the BoundaryInfo object, removes it from the set of shellface boundary ids, and removes it from the set of boundary ids if no other boundary type uses it. More... | |
| void | remove_node_id (boundary_id_type id, bool global=false) |
Removes all nodes with boundary id id from the BoundaryInfo object, removes it from the set of node boundary ids, and removes it from the set of boundary ids if no other boundary type uses it. More... | |
| void | renumber_id (boundary_id_type old_id, boundary_id_type new_id) |
Changes all entities (nodes, sides, edges, shellfaces) with boundary id old_id to instead be labeled by boundary id new_id. More... | |
| void | renumber_side_id (boundary_id_type old_id, boundary_id_type new_id) |
Changes all sides with boundary id old_id to instead be labeled by boundary id new_id. More... | |
| void | renumber_edge_id (boundary_id_type old_id, boundary_id_type new_id) |
Changes all edges with boundary id old_id to instead be labeled by boundary id new_id. More... | |
| void | renumber_shellface_id (boundary_id_type old_id, boundary_id_type new_id) |
Changes all shellfaces with boundary id old_id to instead be labeled by boundary id new_id. More... | |
| void | renumber_node_id (boundary_id_type old_id, boundary_id_type new_id) |
Changes all nodes with boundary id old_id to instead be labeled by boundary id new_id. More... | |
| std::size_t | n_boundary_ids () const |
| bool | has_boundary_id (const Node *const node, const boundary_id_type id) const |
| void | boundary_ids (const Node *node, std::vector< boundary_id_type > &vec_to_fill) const |
Fills a user-provided std::vector with the boundary ids associated with Node node. More... | |
| unsigned int | n_boundary_ids (const Node *node) const |
| unsigned int | n_edge_boundary_ids (const Elem *const elem, const unsigned short int edge) const |
| void | edge_boundary_ids (const Elem *const elem, const unsigned short int edge, std::vector< boundary_id_type > &vec_to_fill) const |
| void | raw_edge_boundary_ids (const Elem *const elem, const unsigned short int edge, std::vector< boundary_id_type > &vec_to_fill) const |
| unsigned int | n_shellface_boundary_ids (const Elem *const elem, const unsigned short int shellface) const |
| void | shellface_boundary_ids (const Elem *const elem, const unsigned short int shellface, std::vector< boundary_id_type > &vec_to_fill) const |
| void | raw_shellface_boundary_ids (const Elem *const elem, const unsigned short int shellface, std::vector< boundary_id_type > &vec_to_fill) const |
| bool | has_boundary_id (const Elem *const elem, const unsigned short int side, const boundary_id_type id) const |
| unsigned int | n_boundary_ids (const Elem *const elem, const unsigned short int side) const |
| unsigned int | n_raw_boundary_ids (const Elem *const elem, const unsigned short int side) const |
| void | side_boundary_ids (const Elem *const elem, std::vector< std::vector< boundary_id_type >> &vec_to_fill) const |
| void | boundary_ids (const Elem *const elem, const unsigned short int side, std::vector< boundary_id_type > &vec_to_fill) const |
| void | raw_boundary_ids (const Elem *const elem, const unsigned short int side, std::vector< boundary_id_type > &vec_to_fill) const |
| void | copy_boundary_ids (const BoundaryInfo &old_boundary_info, const Elem *const old_elem, const Elem *const new_elem) |
| unsigned int | side_with_boundary_id (const Elem *const elem, const boundary_id_type boundary_id) const |
| std::vector< unsigned int > | sides_with_boundary_id (const Elem *const elem, const boundary_id_type boundary_id) const |
| void | build_node_boundary_ids (std::vector< boundary_id_type > &b_ids) const |
| Builds the list of unique node boundary ids. More... | |
| void | build_side_boundary_ids (std::vector< boundary_id_type > &b_ids) const |
| Builds the list of unique side boundary ids. More... | |
| void | build_shellface_boundary_ids (std::vector< boundary_id_type > &b_ids) const |
| Builds the list of unique shellface boundary ids. More... | |
| void | transfer_boundary_ids_from_children (const Elem *const parent) |
| Update parent's boundary id list so that this information is consistent with its children. More... | |
| std::size_t | n_boundary_conds () const |
| std::size_t | n_edge_conds () const |
| std::size_t | n_shellface_conds () const |
| std::size_t | n_nodeset_conds () const |
| std::vector< NodeBCTuple > | build_node_list (NodeBCTupleSortBy sort_by=NodeBCTupleSortBy::NODE_ID) const |
| void | build_node_list_from_side_list (const std::set< boundary_id_type > &sideset_list={}) |
| Adds nodes with boundary ids based on the side's boundary ids they are connected to. More... | |
| void | build_side_list_from_node_list (const std::set< boundary_id_type > &nodeset_list={}) |
| Adds sides to a sideset if every node on that side are in the same sideset. More... | |
| std::vector< BCTuple > | build_side_list (BCTupleSortBy sort_by=BCTupleSortBy::ELEM_ID) const |
| std::vector< BCTuple > | build_active_side_list () const |
| Create a list of (element_id, side_id, boundary_id) tuples for all relevant active sides. More... | |
| std::vector< BCTuple > | build_edge_list () const |
| Create a list of (element_id, edge_id, boundary_id) tuples for all relevant edges. More... | |
| std::vector< BCTuple > | build_shellface_list () const |
| Create a list of (element_id, shellface_id, boundary_id) tuples for all relevant shellfaces. More... | |
| void | parallel_sync_side_ids () |
| Synchronize the boundary element side and node across processors. More... | |
| void | parallel_sync_node_ids () |
| const std::set< boundary_id_type > & | get_boundary_ids () const |
| const std::set< boundary_id_type > & | get_global_boundary_ids () const |
| const std::set< boundary_id_type > & | get_side_boundary_ids () const |
| const std::set< boundary_id_type > & | get_edge_boundary_ids () const |
| const std::set< boundary_id_type > & | get_shellface_boundary_ids () const |
| const std::set< boundary_id_type > & | get_node_boundary_ids () const |
| void | print_info (std::ostream &out_stream=libMesh::out) const |
| Prints the boundary information data structure. More... | |
| void | print_summary (std::ostream &out_stream=libMesh::out) const |
| Prints a summary of the boundary information. More... | |
| const std::string & | get_sideset_name (boundary_id_type id) const |
| std::string & | sideset_name (boundary_id_type id) |
| const std::string & | get_nodeset_name (boundary_id_type id) const |
| std::string & | nodeset_name (boundary_id_type id) |
| const std::string & | get_edgeset_name (boundary_id_type id) const |
| std::string & | edgeset_name (boundary_id_type id) |
| boundary_id_type | get_id_by_name (std::string_view name) const |
| std::map< boundary_id_type, std::string > & | set_sideset_name_map () |
| const std::map< boundary_id_type, std::string > & | get_sideset_name_map () const |
| std::map< boundary_id_type, std::string > & | set_nodeset_name_map () |
| const std::map< boundary_id_type, std::string > & | get_nodeset_name_map () const |
| std::map< boundary_id_type, std::string > & | set_edgeset_name_map () |
| const std::map< boundary_id_type, std::string > & | get_edgeset_name_map () const |
| const std::multimap< const Node *, boundary_id_type > & | get_nodeset_map () const |
| const std::multimap< const Elem *, std::pair< unsigned short int, boundary_id_type > > & | get_edgeset_map () const |
| const std::multimap< const Elem *, std::pair< unsigned short int, boundary_id_type > > & | get_sideset_map () const |
| bool | is_children_on_boundary_side () const |
| void | allow_children_on_boundary_side (const bool children_on_boundary) |
| Whether or not to allow directly setting boundary sides on child elements. More... | |
| const Parallel::Communicator & | comm () const |
| processor_id_type | n_processors () const |
| processor_id_type | processor_id () const |
Static Public Attributes | |
| static const boundary_id_type | invalid_id = -123 |
| Number used for internal use. More... | |
Protected Member Functions | |
| BoundaryInfo (MeshBase &m) | |
| Constructor. More... | |
| void | set_mesh (MeshBase &m) |
Protected Attributes | |
| const Parallel::Communicator & | _communicator |
Private Member Functions | |
| void | libmesh_assert_valid_multimaps () const |
| Helper method for ensuring that our multimaps don't contain entries with duplicate keys and values. More... | |
| void | _find_id_maps (const std::set< boundary_id_type > &requested_boundary_ids, dof_id_type first_free_node_id, std::map< dof_id_type, dof_id_type > *node_id_map, dof_id_type first_free_elem_id, std::map< std::pair< dof_id_type, unsigned char >, dof_id_type > *side_id_map, const std::set< subdomain_id_type > &subdomains_relative_to) |
| Helper method for finding consistent maps of interior to boundary dof_object ids. More... | |
Private Attributes | |
| MeshBase * | _mesh |
| A pointer to the Mesh this boundary info pertains to. More... | |
| std::multimap< const Node *, boundary_id_type > | _boundary_node_id |
| Data structure that maps nodes in the mesh to boundary ids. More... | |
| std::multimap< const Elem *, std::pair< unsigned short int, boundary_id_type > > | _boundary_edge_id |
| Data structure that maps edges of elements to boundary ids. More... | |
| std::multimap< const Elem *, std::pair< unsigned short int, boundary_id_type > > | _boundary_shellface_id |
| Data structure that maps faces of shell elements to boundary ids. More... | |
| std::multimap< const Elem *, std::pair< unsigned short int, boundary_id_type > > | _boundary_side_id |
| Data structure that maps sides of elements to boundary ids. More... | |
| bool | _children_on_boundary |
| std::set< boundary_id_type > | _boundary_ids |
| A collection of user-specified boundary ids for sides, edges, nodes, and shell faces. More... | |
| std::set< boundary_id_type > | _global_boundary_ids |
| A collection of user-specified boundary ids for sides, edges, nodes, and shell faces. More... | |
| std::set< boundary_id_type > | _side_boundary_ids |
| Set of user-specified boundary IDs for sides only. More... | |
| std::set< boundary_id_type > | _edge_boundary_ids |
| Set of user-specified boundary IDs for edges only. More... | |
| std::set< boundary_id_type > | _node_boundary_ids |
| Set of user-specified boundary IDs for nodes only. More... | |
| std::set< boundary_id_type > | _shellface_boundary_ids |
| Set of user-specified boundary IDs for shellfaces only. More... | |
| std::map< boundary_id_type, std::string > | _ss_id_to_name |
| This structure maintains the mapping of named side sets for file formats (Exodus, Gmsh) that support this. More... | |
| std::map< boundary_id_type, std::string > | _ns_id_to_name |
| This structure maintains the mapping of named node sets for file formats (Exodus, Gmsh) that support this. More... | |
| std::map< boundary_id_type, std::string > | _es_id_to_name |
| This structure maintains the mapping of named edge sets for file formats (Exodus, Gmsh) that support this. More... | |
Friends | |
| class | MeshBase |
The BoundaryInfo class contains information relevant to boundary conditions including storing faces, edges, and nodes on the boundary, along with ids that can be used to identify the type of boundary each entity is part of.
It can also build a mesh that just includes boundary elements/faces.
Definition at line 57 of file boundary_info.h.
| typedef std::tuple<dof_id_type, unsigned short int, boundary_id_type> libMesh::BoundaryInfo::BCTuple |
Create a list of (element_id, side_id, boundary_id) tuples for relevant sides.
On a ReplicatedMesh this will include all sides; on a DistributedMesh only sides of semilocal elements will be included.
The returned vector is sorted by element id by default, but this can be changed by passing SIDE_ID, BOUNDARY_ID, or UNSORTED to this function. Note: choosing UNSORTED is not recommended since the resulting list will potentially be in different orders on different processors when running in parallel.
Definition at line 749 of file boundary_info.h.
| typedef std::tuple<dof_id_type, boundary_id_type> libMesh::BoundaryInfo::NodeBCTuple |
Create a list of (node_id, boundary_id) tuples for all relevant nodes.
On a ReplicatedMesh this will include all nodes; on a DistributedMesh only semilocal nodes will be included. Note: we could use std::pairs for this, but for consistency with the other build_XYZ_list functions, we're using tuples.
The "sort_by" parameter controls how the resulting list of tuples is sorted. It is possible (but not recommended) to choose UNSORTED, since in that case the resulting vectors will potentially be in different orders on different procs.
Definition at line 715 of file boundary_info.h.
|
strong |
| Enumerator | |
|---|---|
| ELEM_ID | |
| SIDE_ID | |
| BOUNDARY_ID | |
| UNSORTED | |
Definition at line 750 of file boundary_info.h.
|
strong |
| Enumerator | |
|---|---|
| NODE_ID | |
| BOUNDARY_ID | |
| UNSORTED | |
Definition at line 716 of file boundary_info.h.
|
protected |
Constructor.
Takes a reference to the mesh. The BoundaryInfo class is only used internally by the Mesh class. A user should never instantiate this class. Therefore the constructor is protected.
Definition at line 103 of file boundary_info.C.
|
default |
Destructor.
Not much to do.
|
private |
Helper method for finding consistent maps of interior to boundary dof_object ids.
Either node_id_map or side_id_map can be nullptr, in which case it will not be filled.
Definition at line 3306 of file boundary_info.C.
References _mesh, boundary_ids(), libMesh::ParallelObject::comm(), libMesh::DofObject::id(), invalid_id, libMesh::DofObject::invalid_processor_id, libMesh::Elem::invalid_subdomain_id, libMesh::Elem::level(), libMesh::libmesh_assert(), libMesh::make_range(), TIMPI::Communicator::max(), libMesh::MeshTools::n_levels(), libMesh::ParallelObject::n_processors(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::node_index_range(), libMesh::Elem::node_ref(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), TIMPI::Communicator::set_union(), libMesh::Elem::side_index_range(), and libMesh::Elem::subdomain_id().
Referenced by add_elements(), and sync().
| void libMesh::BoundaryInfo::add_edge | ( | const dof_id_type | elem, |
| const unsigned short int | edge, | ||
| const boundary_id_type | id | ||
| ) |
Add edge edge of element number elem with boundary id id to the boundary information data structure.
Edge-based boundary IDs should only be used in 3D.
Definition at line 1025 of file boundary_info.C.
References _mesh, and libMesh::MeshBase::elem_ptr().
Referenced by copy_boundary_ids(), main(), libMesh::ExodusII_IO_Helper::read_edge_blocks(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::UnstructuredMesh::stitching_helper(), libMesh::Elem::swap2boundaryedges(), SystemsTest::testBoundaryProjectCube(), BoundaryInfoTest::testEdgeBoundaryConditions(), BoundaryInfoTest::testSelectiveRenumber(), and WriteEdgesetData::testWriteImpl().
| void libMesh::BoundaryInfo::add_edge | ( | const Elem * | elem, |
| const unsigned short int | edge, | ||
| const boundary_id_type | id | ||
| ) |
Add edge edge of element elem with boundary id id to the boundary information data structure.
Edge-based boundary IDs should only be used in 3D.
Definition at line 1034 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _edge_boundary_ids, libMesh::as_range(), invalid_id, libMesh::Elem::level(), libMesh::libmesh_assert(), and libMesh::Elem::n_edges().
| void libMesh::BoundaryInfo::add_edge | ( | const Elem * | elem, |
| const unsigned short int | edge, | ||
| const std::vector< boundary_id_type > & | ids | ||
| ) |
Add edge edge of element elem with boundary ids ids to the boundary information data structure.
Edge-based boundary IDs should only be used in 3D.
Definition at line 1064 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _edge_boundary_ids, libMesh::as_range(), invalid_id, libMesh::Elem::level(), libMesh::libmesh_assert(), and libMesh::Elem::n_edges().
| void libMesh::BoundaryInfo::add_elements | ( | const std::set< boundary_id_type > & | requested_boundary_ids, |
| UnstructuredMesh & | boundary_mesh, | ||
| bool | store_parent_side_ids = false |
||
| ) |
Generates elements along the boundary of our _mesh, which use pre-existing nodes on the boundary_mesh, and which have interior_parent values properly defined.
The boundary_mesh may be the same as the interior mesh; this generates a mesh with elements of mixed dimension.
Only boundary elements with the specified ids are created.
Definition at line 655 of file boundary_info.C.
References libMesh::Elem::invalid_subdomain_id.
Referenced by main(), and sync().
| void libMesh::BoundaryInfo::add_elements | ( | const std::set< boundary_id_type > & | requested_boundary_ids, |
| UnstructuredMesh & | boundary_mesh, | ||
| const std::set< subdomain_id_type > & | subdomains_relative_to, | ||
| bool | store_parent_side_ids = false |
||
| ) |
Same as the add_elements() function above, but takes a set of subdomains for which the sides must be relative to.
This is necessary to avoid double-adding sides of internal sidesets to the BoundaryMesh.
Definition at line 671 of file boundary_info.C.
References _find_id_maps(), _mesh, libMesh::Elem::add_child(), libMesh::MeshBase::add_elem(), libMesh::MeshBase::add_elem_integer(), boundary_ids(), libMesh::Elem::build_side_ptr(), libMesh::Elem::child_ptr(), libMesh::MeshBase::elem_ptr(), libMesh::Elem::has_children(), libMesh::DofObject::id(), libMesh::MeshBase::interior_mesh(), invalid_id, libMesh::Elem::invalid_subdomain_id, libMesh::invalid_uint, libMesh::Elem::is_child_on_side(), libMesh::Elem::is_node_on_side(), libMesh::MeshBase::is_replicated(), libMesh::MeshBase::is_serial(), libMesh::libmesh_assert(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_ids(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::make_range(), libMesh::MeshBase::max_elem_id(), libMesh::Elem::n_children(), n_nodes, libMesh::Elem::n_nodes(), libMesh::Elem::n_sides(), libMesh::Elem::n_vertices(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::node_ptr(), libMesh::Elem::p_refinement_flag(), libMesh::MeshBase::parallel_max_unique_id(), libMesh::Elem::parent(), libMesh::Elem::point(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), libMesh::Elem::raw_child_ptr(), libMesh::Elem::refinement_flag(), libMesh::remote_elem, libMesh::DofObject::set_extra_integer(), libMesh::MeshBase::set_interior_mesh(), libMesh::Elem::set_interior_parent(), libMesh::Elem::set_neighbor(), libMesh::Elem::set_p_refinement_flag(), libMesh::Elem::set_parent(), libMesh::Elem::set_refinement_flag(), and libMesh::Elem::side_index_range().
| void libMesh::BoundaryInfo::add_node | ( | const Node * | node, |
| const boundary_id_type | id | ||
| ) |
Add Node node with boundary id id to the boundary information data structures.
Definition at line 954 of file boundary_info.C.
References _boundary_ids, _boundary_node_id, _node_boundary_ids, libMesh::as_range(), and invalid_id.
Referenced by libMesh::MeshTools::Subdivision::add_boundary_ghosts(), add_node(), libMesh::AbaqusIO::assign_boundary_node_ids(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_extrusion(), build_node_list_from_side_list(), main(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::GmshIO::read_mesh(), libMesh::CheckpointIO::read_nodesets(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::UnstructuredMesh::stitching_helper(), sync(), and SystemsTest::testBoundaryProjectCube().
| void libMesh::BoundaryInfo::add_node | ( | const dof_id_type | node, |
| const boundary_id_type | id | ||
| ) |
Add node number node with boundary id id to the boundary information data structures.
Definition at line 937 of file boundary_info.C.
References _mesh, add_node(), and libMesh::MeshBase::query_node_ptr().
| void libMesh::BoundaryInfo::add_node | ( | const Node * | node, |
| const std::vector< boundary_id_type > & | ids | ||
| ) |
Add Node node with boundary ids ids to the boundary information data structure.
Definition at line 974 of file boundary_info.C.
References _boundary_ids, _boundary_node_id, _node_boundary_ids, libMesh::as_range(), invalid_id, and libMesh::libmesh_assert().
| void libMesh::BoundaryInfo::add_shellface | ( | const dof_id_type | elem, |
| const unsigned short int | shellface, | ||
| const boundary_id_type | id | ||
| ) |
Add shell face shellface of element number elem with boundary id id to the boundary information data structure.
This is only relevant for shell elements.
Definition at line 1118 of file boundary_info.C.
References _mesh, and libMesh::MeshBase::elem_ptr().
Referenced by copy_boundary_ids(), libMesh::ExodusII_IO::read(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::UnstructuredMesh::stitching_helper(), and BoundaryInfoTest::testShellFaceConstraints().
| void libMesh::BoundaryInfo::add_shellface | ( | const Elem * | elem, |
| const unsigned short int | shellface, | ||
| const boundary_id_type | id | ||
| ) |
Add shell face shellface of element elem with boundary id id to the boundary information data structure.
This is only relevant for shell elements.
Definition at line 1127 of file boundary_info.C.
References _boundary_ids, _boundary_shellface_id, _shellface_boundary_ids, libMesh::as_range(), invalid_id, libMesh::Elem::level(), and libMesh::libmesh_assert().
| void libMesh::BoundaryInfo::add_shellface | ( | const Elem * | elem, |
| const unsigned short int | shellface, | ||
| const std::vector< boundary_id_type > & | ids | ||
| ) |
Add shell face shellface of element elem with boundary ids ids to the boundary information data structure.
This is only relevant for shell elements.
Definition at line 1157 of file boundary_info.C.
References _boundary_ids, _boundary_shellface_id, _shellface_boundary_ids, libMesh::as_range(), invalid_id, libMesh::Elem::level(), and libMesh::libmesh_assert().
| void libMesh::BoundaryInfo::add_side | ( | const dof_id_type | elem, |
| const unsigned short int | side, | ||
| const boundary_id_type | id | ||
| ) |
Add side side of element number elem with boundary id id to the boundary information data structure.
Definition at line 1210 of file boundary_info.C.
References _mesh, and libMesh::MeshBase::elem_ptr().
Referenced by libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), libMesh::AbaqusIO::assign_sideset_ids(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), DisjointNeighborTest::build_four_disjoint_elems(), BoundaryMesh0DTest::build_mesh(), BoundaryMeshTest::build_mesh(), build_side_list_from_node_list(), DisjointNeighborTest::build_split_mesh_with_interface(), DisjointNeighborTest::build_two_disjoint_elems(), copy_boundary_ids(), libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::flatten(), libMesh::UNVIO::groups_in(), libMesh::Poly2TriTriangulator::insert_refinement_points(), main(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::CheckpointIO::read_bcs(), libMesh::GmshIO::read_mesh(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::UnstructuredMesh::stitching_helper(), libMesh::Elem::swap2boundarysides(), AllTriTest::test_helper_c0polyhedron(), AllTriTest::testAllTriC0PolygonOctagon(), BoundaryInfoTest::testBoundaryIDs(), BoundaryInfoTest::testBoundaryOnChildrenBoundaryIDs(), BoundaryInfoTest::testBoundaryOnChildrenBoundarySides(), BoundaryInfoTest::testBoundaryOnChildrenElementsRefineCoarsen(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), DisjointNeighborTest::testDisjointNeighborConflictError(), BoundaryInfoTest::testInternalBoundary(), PeriodicBCTest::testPeriodicBC(), DisjointNeighborTest::testStitchCrossMesh(), transfer_boundary_ids_from_children(), libMesh::NetGenMeshInterface::triangulate(), and libMesh::Poly2TriTriangulator::triangulate_current_points().
| void libMesh::BoundaryInfo::add_side | ( | const Elem * | elem, |
| const unsigned short int | side, | ||
| const boundary_id_type | id | ||
| ) |
Add side side of element elem with boundary id id to the boundary information data structure.
Definition at line 1219 of file boundary_info.C.
References _boundary_ids, _boundary_side_id, _children_on_boundary, _side_boundary_ids, libMesh::as_range(), boundary_ids(), invalid_id, libMesh::Elem::level(), libMesh::libmesh_assert(), and libMesh::Elem::n_sides().
| void libMesh::BoundaryInfo::add_side | ( | const Elem * | elem, |
| const unsigned short int | side, | ||
| const std::vector< boundary_id_type > & | ids | ||
| ) |
Add side side of element elem with boundary ids ids to the boundary information data structure.
Definition at line 1265 of file boundary_info.C.
References _boundary_ids, _boundary_side_id, _children_on_boundary, _side_boundary_ids, libMesh::as_range(), boundary_ids(), invalid_id, libMesh::Elem::level(), libMesh::libmesh_assert(), and libMesh::Elem::n_sides().
|
inline |
Whether or not to allow directly setting boundary sides on child elements.
Definition at line 941 of file boundary_info.h.
References _children_on_boundary.
Referenced by BoundaryInfoTest::testBoundaryOnChildrenBoundaryIDs(), and BoundaryInfoTest::testBoundaryOnChildrenErrors().
| void libMesh::BoundaryInfo::boundary_ids | ( | const Node * | node, |
| std::vector< boundary_id_type > & | vec_to_fill | ||
| ) | const |
Fills a user-provided std::vector with the boundary ids associated with Node node.
Definition at line 1348 of file boundary_info.C.
References _boundary_node_id, and libMesh::as_range().
Referenced by _find_id_maps(), add_elements(), add_side(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), assemble_elasticity(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyA2::boundary_assembly(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_extrusion(), build_node_list_from_side_list(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::flatten(), has_boundary_id(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::Poly2TriTriangulator::is_refine_boundary_allowed(), main(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), n_boundary_ids(), libMesh::VariationalSmootherConstraint::nodes_share_boundary_id(), libMesh::GhostPointNeighbors::operator()(), libMesh::BoundaryProjectSolution::operator()(), operator==(), libMesh::SimplexRefiner::refine_via_edges(), remove_side(), libMesh::FEMContext::side_boundary_ids(), libMesh::UnstructuredMesh::stitching_helper(), libMesh::Elem::swap2boundarysides(), sync(), ElemTest< elem_type >::test_flip(), ElemTest< elem_type >::test_orient(), ElemTest< elem_type >::test_orient_elements(), BoundaryInfoTest::testBoundaryIDs(), BoundaryInfoTest::testBoundaryOnChildrenBoundaryIDs(), SystemsTest::testBoundaryProjectCube(), MeshInputTest::testExodusIGASidesets(), libMesh::XdrIO::write_serialized_bcs_helper(), and libMesh::XdrIO::write_serialized_nodesets().
| void libMesh::BoundaryInfo::boundary_ids | ( | const Elem *const | elem, |
| const unsigned short int | side, | ||
| std::vector< boundary_id_type > & | vec_to_fill | ||
| ) | const |
side side of element elem. Definition at line 1637 of file boundary_info.C.
References _boundary_side_id, _children_on_boundary, libMesh::as_range(), libMesh::Elem::is_child_on_side(), libMesh::Elem::level(), libMesh::libmesh_assert(), libMesh::Elem::n_sides(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::parent(), libMesh::Elem::top_parent(), and libMesh::Elem::which_child_am_i().
| std::vector< BoundaryInfo::BCTuple > libMesh::BoundaryInfo::build_active_side_list | ( | ) | const |
Create a list of (element_id, side_id, boundary_id) tuples for all relevant active sides.
On a ReplicatedMesh this will include all sides; on a DistributedMesh only sides of semilocal elements will be included.
Definition at line 3026 of file boundary_info.C.
References _boundary_side_id.
| std::vector< BoundaryInfo::BCTuple > libMesh::BoundaryInfo::build_edge_list | ( | ) | const |
Create a list of (element_id, edge_id, boundary_id) tuples for all relevant edges.
On a ReplicatedMesh this will include all edges; on a DistributedMesh only edges of semilocal elements will be included.
Definition at line 3059 of file boundary_info.C.
References _boundary_edge_id.
Referenced by libMesh::UnstructuredMesh::stitching_helper(), MeshInputTest::testLowOrderEdgeBlocks(), WriteEdgesetData::testWriteImpl(), and libMesh::ExodusII_IO_Helper::write_elements().
| void libMesh::BoundaryInfo::build_node_boundary_ids | ( | std::vector< boundary_id_type > & | b_ids | ) | const |
Builds the list of unique node boundary ids.
On a ReplicatedMesh this will be all ids; on a DistributedMesh only ids on semilocal nodes will be included.
Definition at line 2502 of file boundary_info.C.
References _boundary_node_id.
Referenced by libMesh::ExodusII_IO_Helper::initialize(), and libMesh::ExodusII_IO_Helper::write_nodesets().
| std::vector< BoundaryInfo::NodeBCTuple > libMesh::BoundaryInfo::build_node_list | ( | NodeBCTupleSortBy | sort_by = NodeBCTupleSortBy::NODE_ID | ) | const |
Definition at line 2683 of file boundary_info.C.
References _boundary_node_id, BOUNDARY_ID, and NODE_ID.
Referenced by libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::UnstructuredMesh::stitching_helper(), BoundaryInfoTest::testBuildNodeListFromSideList(), WriteNodesetData::testWriteImpl(), libMesh::CheckpointIO::write(), and libMesh::ExodusII_IO_Helper::write_nodesets().
| void libMesh::BoundaryInfo::build_node_list_from_side_list | ( | const std::set< boundary_id_type > & | sideset_list = {} | ) |
Adds nodes with boundary ids based on the side's boundary ids they are connected to.
| sideset_list | sidesets to build nodesets from. If empty (default), builds from all existing sidesets |
Definition at line 2705 of file boundary_info.C.
References _boundary_side_id, _mesh, libMesh::Elem::active_family_tree_by_side(), add_node(), boundary_ids(), libMesh::ParallelObject::comm(), libMesh::index_range(), libMesh::MeshBase::is_serial(), libMesh::Elem::node_id(), libMesh::Elem::node_index_range(), libMesh::Elem::node_ptr(), libMesh::MeshBase::node_ptr(), libMesh::ParallelObject::processor_id(), and libMesh::DofObject::processor_id().
Referenced by BoundaryInfoTest::testBuildNodeListFromSideList(), and WriteNodesetData::testWriteImpl().
| void libMesh::BoundaryInfo::build_shellface_boundary_ids | ( | std::vector< boundary_id_type > & | b_ids | ) | const |
Builds the list of unique shellface boundary ids.
On a ReplicatedMesh this will be all ids; on a DistributedMesh only ids on shellfaces of semilocal elements will be included.
Definition at line 2530 of file boundary_info.C.
References _boundary_shellface_id.
Referenced by libMesh::ExodusII_IO_Helper::initialize(), and libMesh::ExodusII_IO_Helper::write_sidesets().
| std::vector< BoundaryInfo::BCTuple > libMesh::BoundaryInfo::build_shellface_list | ( | ) | const |
Create a list of (element_id, shellface_id, boundary_id) tuples for all relevant shellfaces.
On a ReplicatedMesh this will include all shellfaces; on a DistributedMesh only shellfaces of semilocal elements will be included.
Definition at line 3076 of file boundary_info.C.
References _boundary_shellface_id.
Referenced by libMesh::UnstructuredMesh::stitching_helper(), and libMesh::ExodusII_IO_Helper::write_sidesets().
| void libMesh::BoundaryInfo::build_side_boundary_ids | ( | std::vector< boundary_id_type > & | b_ids | ) | const |
Builds the list of unique side boundary ids.
On a ReplicatedMesh this will be all ids; on a DistributedMesh only ids on sides of semilocal elements will be included.
Definition at line 2516 of file boundary_info.C.
References _boundary_side_id.
Referenced by libMesh::ExodusII_IO_Helper::initialize(), and libMesh::ExodusII_IO_Helper::write_sidesets().
| std::vector< BoundaryInfo::BCTuple > libMesh::BoundaryInfo::build_side_list | ( | BCTupleSortBy | sort_by = BCTupleSortBy::ELEM_ID | ) | const |
Definition at line 2997 of file boundary_info.C.
References _boundary_side_id, BOUNDARY_ID, ELEM_ID, and SIDE_ID.
Referenced by libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::UnstructuredMesh::stitching_helper(), BoundaryInfoTest::testBuildSideListFromNodeList(), BoundaryInfoTest::testMesh(), MeshTriangulationTest::testPoly2TriHolesInteriorRefinedBase(), BoundaryInfoTest::testRenumber(), WriteEdgesetData::testWriteImpl(), WriteSidesetData::testWriteImpl(), libMesh::FroIO::write(), libMesh::CheckpointIO::write(), libMesh::GmshIO::write_mesh(), and libMesh::ExodusII_IO_Helper::write_sidesets().
| void libMesh::BoundaryInfo::build_side_list_from_node_list | ( | const std::set< boundary_id_type > & | nodeset_list = {} | ) |
Adds sides to a sideset if every node on that side are in the same sideset.
| nodeset_list | nodesets to build sidesets from. If empty (default), builds from all existing sidesets |
Definition at line 2946 of file boundary_info.C.
References _boundary_node_id, _mesh, add_side(), libMesh::as_range(), libMesh::Elem::n_nodes(), libMesh::Elem::node_ref_range(), nodeset_name(), libMesh::out, and sideset_name().
Referenced by libMesh::AbaqusIO::read(), and BoundaryInfoTest::testBuildSideListFromNodeList().
| void libMesh::BoundaryInfo::clear | ( | ) |
Clears the underlying data structures and restores the object to a pristine state with no data stored.
Definition at line 345 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _boundary_node_id, _boundary_shellface_id, _boundary_side_id, _edge_boundary_ids, _es_id_to_name, _node_boundary_ids, _ns_id_to_name, _shellface_boundary_ids, _side_boundary_ids, and _ss_id_to_name.
Referenced by operator=(), and libMesh::Poly2TriTriangulator::triangulate_current_points().
| void libMesh::BoundaryInfo::clear_boundary_node_ids | ( | ) |
Clears all the boundary information from all of the nodes in the mesh.
Definition at line 1020 of file boundary_info.C.
References _boundary_node_id.
| void libMesh::BoundaryInfo::clear_stitched_boundary_side_ids | ( | boundary_id_type | sideset_id, |
| boundary_id_type | other_sideset_id, | ||
| bool | clear_nodeset_data = false |
||
| ) |
Clear sideset information along a stitched mesh interface.
| sideset_id | A sideset on one side of the stitched mesh interface |
| other_sideset_id | The sideset on the other side of the stitched mesh interface |
| clear_nodeset_data | Whether to clear boundary information for the nodes along the stitched mesh interface |
Definition at line 3483 of file boundary_info.C.
References _boundary_side_id, invalid_id, libmesh_assert_valid_multimaps(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::node_ptr(), libMesh::Elem::nodes_on_side(), regenerate_id_sets(), remove_node(), and libMesh::Elem::which_neighbor_am_i().
Referenced by libMesh::UnstructuredMesh::stitching_helper().
|
inlineinherited |
Parallel::Communicator object used by this mesh. Definition at line 97 of file parallel_object.h.
References libMesh::ParallelObject::_communicator.
Referenced by libMesh::__libmesh_petsc_diff_solver_jacobian(), libMesh::__libmesh_petsc_diff_solver_monitor(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::__libmesh_tao_equality_constraints(), libMesh::__libmesh_tao_equality_constraints_jacobian(), libMesh::__libmesh_tao_gradient(), libMesh::__libmesh_tao_hessian(), libMesh::__libmesh_tao_inequality_constraints(), libMesh::__libmesh_tao_inequality_constraints_jacobian(), libMesh::__libmesh_tao_objective(), libMesh::MeshRefinement::_coarsen_elements(), libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::Partitioner::_find_global_index_by_pid_map(), _find_id_maps(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult_add(), libMesh::MeshRefinement::_refine_elements(), libMesh::MeshRefinement::_smooth_flags(), libMesh::DofMap::add_constraints_to_send_list(), add_cube_convex_hull_to_mesh(), libMesh::PetscDMWrapper::add_dofs_helper(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::TransientRBConstruction::add_IC_to_RB_space(), libMesh::RBEIMEvaluation::add_interpolation_data(), libMesh::CondensedEigenSystem::add_matrices(), libMesh::EigenSystem::add_matrices(), libMesh::System::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::DofMap::add_variable(), libMesh::DofMap::add_variables(), libMesh::System::add_vector(), libMesh::MeshTools::Modification::all_tri(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::TransientRBConstruction::allocate_data_structures(), libMesh::RBConstruction::allocate_data_structures(), libMesh::TransientRBConstruction::assemble_affine_expansion(), libMesh::AdvectionSystem::assemble_claw_rhs(), libMesh::FEMSystem::assemble_qoi(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::MeshCommunication::assign_global_indices(), libMesh::Partitioner::assign_partitioning(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_section(), libMesh::PetscDMWrapper::build_sf(), libMesh::MeshBase::cache_elem_data(), libMesh::System::calculate_norm(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::MeshTetInterface::check_hull_integrity(), libMesh::MeshBase::complete_preparation(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::DofMap::computed_sparsity_already(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::ContinuationSystem::ContinuationSystem(), libMesh::MeshBase::copy_constraint_rows(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::CondensedEigenSystem::copy_super_to_sub(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::create_bounding_box(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::create_nodal_bounding_box(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::MeshTools::create_subdomain_bounding_box(), libMesh::PetscMatrix< T >::create_submatrix_nosort(), create_wrapped_function(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::RBEIMEvaluation::distribute_bfs(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), DMVariableBounds_libMesh(), libMesh::DTKSolutionTransfer::DTKSolutionTransfer(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::EpetraVector< T >::EpetraVector(), AssembleOptimization::equality_constraints(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::SmoothnessEstimator::estimate_smoothness(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::DofMap::gather_constraints(), libMesh::MeshfreeInterpolation::gather_remote_data(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::RBEIMEvaluation::get_eim_basis_function_node_value(), libMesh::RBEIMEvaluation::get_eim_basis_function_side_value(), libMesh::RBEIMEvaluation::get_eim_basis_function_value(), libMesh::System::get_info(), libMesh::MeshBase::get_info(), libMesh::DofMap::get_info(), libMesh::RBEIMEvaluation::get_interior_basis_functions_as_vecs(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::RBEIMConstruction::get_max_abs_value(), libMesh::RBEIMConstruction::get_node_max_abs_value(), libMesh::RBEIMEvaluation::get_parametrized_function_node_value(), libMesh::RBEIMEvaluation::get_parametrized_function_side_value(), libMesh::RBEIMEvaluation::get_parametrized_function_value(), libMesh::RBEIMConstruction::get_random_point(), libMesh::MeshTetInterface::improve_hull_integrity(), AssembleOptimization::inequality_constraints(), AssembleOptimization::inequality_constraints_jacobian(), libMesh::LocationMap< T >::init(), libMesh::TimeSolver::init(), libMesh::StaticCondensation::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::AdvectionSystem::init_data(), libMesh::ClawSystem::init_data(), libMesh::PetscDMWrapper::init_petscdm(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBEIMConstruction::inner_product(), integrate_function(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_equal_connectivity(), libMesh::MeshTools::libmesh_assert_equal_points(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::libmesh_petsc_linesearch_shellfunc(), libMesh::libmesh_petsc_preconditioner_apply(), libMesh::libmesh_petsc_recalculate_monitor(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_interface(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_postcheck(), libMesh::libmesh_petsc_snes_precheck(), libMesh::libmesh_petsc_snes_residual(), libMesh::libmesh_petsc_snes_residual_helper(), libMesh::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::limit_overrefined_boundary(), libMesh::MeshRefinement::limit_underrefined_boundary(), libMesh::LinearImplicitSystem::LinearImplicitSystem(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshRefinement::make_flags_parallel_consistent(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_new_nodes_parallel_consistent(), libMesh::MeshCommunication::make_node_bcids_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::TransientRBConstruction::mass_matrix_scaled_matvec(), libMesh::FEMSystem::mesh_position_set(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), LinearElasticityWithContact::move_mesh(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), n_boundary_conds(), libMesh::MeshTools::n_connected_components(), libMesh::DofMap::n_constrained_dofs(), libMesh::MeshBase::n_constraint_rows(), libMesh::DofMap::n_dofs(), libMesh::DofMap::n_dofs_per_processor(), n_edge_conds(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::MeshTools::n_levels(), MixedOrderTest::n_neighbor_links(), n_nodeset_conds(), libMesh::SparsityPattern::Build::n_nonzeros(), libMesh::MeshTools::n_p_levels(), n_shellface_conds(), libMesh::RBEIMEvaluation::node_distribute_bfs(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::RBEIMConstruction::node_inner_product(), libMesh::PetscVector< libMesh::Number >::operator=(), libMesh::MeshBase::operator==(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_n_elem(), libMesh::DistributedMesh::parallel_n_nodes(), libMesh::SparsityPattern::Build::parallel_sync(), parallel_sync_node_ids(), parallel_sync_side_ids(), libMesh::MeshTools::paranoid_n_levels(), libMesh::Partitioner::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::petsc_auto_fieldsplit(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Partitioner::processor_pairs_to_interface_nodes(), libMesh::InterMeshProjection::project_system_vectors(), FEMParameters::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO::read_header(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::RBEIMEvaluation::read_in_interior_basis_functions(), libMesh::RBEIMEvaluation::read_in_node_basis_functions(), libMesh::RBEIMEvaluation::read_in_side_basis_functions(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), MeshFunctionTest::read_variable_info_from_output_data(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::StaticCondensationDofMap::reinit(), remove_edge_id(), remove_node_id(), remove_shellface_id(), remove_side_id(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), LinearElasticityWithContact::residual_and_jacobian(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), scale_mesh_and_plot(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::send_and_insert_dof_values(), libMesh::TransientRBConstruction::set_error_temporal_data(), libMesh::Partitioner::set_interface_node_processor_ids_BFS(), libMesh::Partitioner::set_interface_node_processor_ids_linear(), libMesh::Partitioner::set_interface_node_processor_ids_petscpartitioner(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::RBEIMEvaluation::side_distribute_bfs(), libMesh::RBEIMEvaluation::side_gather_bfs(), libMesh::RBEIMConstruction::side_inner_product(), libMesh::Partitioner::single_partition(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::VariationalMeshSmoother::smooth(), libMesh::ClawSystem::solve_conservation_law(), libMesh::split_mesh(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::MeshBase::subdomain_ids(), sync(), libMesh::MeshBase::sync_subdomain_name_map(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), MeshFunctionTest::test_bad_gradient_var_with_out_of_mesh_value(), MeshFunctionTest::test_bad_hessian_var_with_out_of_mesh_value(), libMesh::MeshRefinement::test_level_one(), MeshfunctionDFEM::test_mesh_function_dfem(), MeshfunctionDFEM::test_mesh_function_dfem_grad(), MeshFunctionTest::test_p_level(), libMesh::MeshRefinement::test_unflagged(), DofMapTest::testBadElemFECombo(), SystemsTest::testBlockRestrictedVarNDofs(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), VolumeTest::testC0PolygonMethods(), VolumeTest::testC0PolyhedronMethods(), ConstraintOperatorTest::testCoreform(), ConnectedComponentsTest::testEdge(), MeshInputTest::testExodusIGASidesets(), MeshTriangulationTest::testFoundCenters(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), PointLocatorTest::testPlanar(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testProjectCubeWithMeshFunction(), BoundaryInfoTest::testRenumber(), BoundaryInfoTest::testSelectiveRenumber(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), MeshTriangulationTest::testTriangulatorRoundHole(), MeshSmootherTest::testVariationalSmoother(), libMesh::MeshTools::total_weight(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::MeshfreeSolutionTransfer::transfer(), libMesh::Poly2TriTriangulator::triangulate(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::RBConstruction::truth_assembly(), libMesh::MeshRefinement::uniformly_coarsen(), update_current_local_solution(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::TransientRBConstruction::update_RB_system_matrices(), libMesh::RBConstruction::update_RB_system_matrices(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::MeshTools::volume(), libMesh::STLIO::write(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::VTKIO::write_nodal_data(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), libMesh::RBEvaluation::write_out_vectors(), libMesh::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::RBDataSerialization::RBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::TransientRBEvaluationSerialization::write_to_file(), libMesh::RBDataSerialization::RBEIMEvaluationSerialization::write_to_file(), and libMesh::RBDataSerialization::RBSCMEvaluationSerialization::write_to_file().
| void libMesh::BoundaryInfo::copy_boundary_ids | ( | const BoundaryInfo & | old_boundary_info, |
| const Elem *const | old_elem, | ||
| const Elem *const | new_elem | ||
| ) |
Definition at line 1756 of file boundary_info.C.
References add_edge(), add_shellface(), add_side(), libMesh::Elem::edge_index_range(), libMesh::Elem::n_edges(), libMesh::Elem::n_sides(), raw_boundary_ids(), raw_edge_boundary_ids(), raw_shellface_boundary_ids(), and libMesh::Elem::side_index_range().
Referenced by libMesh::UnstructuredMesh::all_first_order().
| void libMesh::BoundaryInfo::edge_boundary_ids | ( | const Elem *const | elem, |
| const unsigned short int | edge, | ||
| std::vector< boundary_id_type > & | vec_to_fill | ||
| ) | const |
edge edge of element elem.Definition at line 1368 of file boundary_info.C.
References _boundary_edge_id, libMesh::as_range(), libMesh::Elem::is_child_on_edge(), libMesh::Elem::is_edge_on_side(), libMesh::Elem::level(), libMesh::libmesh_assert(), libMesh::Elem::n_edges(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::parent(), libMesh::Elem::side_index_range(), libMesh::Elem::top_parent(), and libMesh::Elem::which_child_am_i().
Referenced by n_edge_boundary_ids(), libMesh::BoundaryProjectSolution::operator()(), operator==(), libMesh::UnstructuredMesh::stitching_helper(), libMesh::Elem::swap2boundaryedges(), and libMesh::XdrIO::write_serialized_bcs_helper().
| std::string & libMesh::BoundaryInfo::edgeset_name | ( | boundary_id_type | id | ) |
Definition at line 3277 of file boundary_info.C.
References _es_id_to_name.
Referenced by libMesh::ExodusII_IO_Helper::read_edge_blocks(), BoundaryInfoTest::testSelectiveRenumber(), and WriteEdgesetData::testWriteImpl().
|
inline |
Code that wishes to access boundary ids on all parts of the mesh, including non-local parts, should call get_global_boundary_ids
Definition at line 794 of file boundary_info.h.
References _boundary_ids.
Referenced by libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::UnstructuredMesh::stitching_helper(), MeshInputTest::testExodusIGASidesets(), BoundaryInfoTest::testMesh(), BoundaryInfoTest::testRenumber(), BoundaryInfoTest::testSelectiveRenumber(), and libMesh::FroIO::write().
|
inline |
Definition at line 816 of file boundary_info.h.
References _edge_boundary_ids.
Referenced by libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::MeshBase::get_info(), libMesh::ExodusII_IO_Helper::initialize(), BoundaryInfoTest::testSelectiveRenumber(), and WriteEdgesetData::testWriteImpl().
|
inline |
Definition at line 923 of file boundary_info.h.
References _boundary_edge_id.
| const std::string & libMesh::BoundaryInfo::get_edgeset_name | ( | boundary_id_type | id | ) | const |
Definition at line 3266 of file boundary_info.C.
References _es_id_to_name.
Referenced by libMesh::ExodusII_IO_Helper::write_elements().
|
inline |
Definition at line 905 of file boundary_info.h.
References _es_id_to_name.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshBase::get_info(), and libMesh::UnstructuredMesh::stitching_helper().
| const std::set< boundary_id_type > & libMesh::BoundaryInfo::get_global_boundary_ids | ( | ) | const |
Definition at line 3572 of file boundary_info.C.
References _global_boundary_ids, _mesh, libMesh::MeshBase::is_prepared(), and libMesh::libmesh_assert().
Referenced by MeshStitchTest::renameAndShift().
| boundary_id_type libMesh::BoundaryInfo::get_id_by_name | ( | std::string_view | name | ) | const |
invalid_id otherwise. Definition at line 3282 of file boundary_info.C.
References _es_id_to_name, _ns_id_to_name, _ss_id_to_name, invalid_id, and libMesh::Quality::name().
|
inline |
Definition at line 832 of file boundary_info.h.
References _node_boundary_ids.
Referenced by libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::MeshBase::get_info(), MeshStitchTest::testBoundaryInfo(), and BoundaryInfoTest::testSelectiveRenumber().
|
inline |
Definition at line 917 of file boundary_info.h.
References _boundary_node_id.
| const std::string & libMesh::BoundaryInfo::get_nodeset_name | ( | boundary_id_type | id | ) | const |
Definition at line 3251 of file boundary_info.C.
References _ns_id_to_name.
Referenced by libMesh::ExodusII_IO_Helper::write_nodesets().
|
inline |
Definition at line 897 of file boundary_info.h.
References _ns_id_to_name.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshBase::get_info(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::UnstructuredMesh::stitching_helper(), MeshStitchTest::testBoundaryInfo(), and libMesh::ExodusII_IO_Helper::write_nodesets().
|
inline |
Definition at line 825 of file boundary_info.h.
References _shellface_boundary_ids.
| void libMesh::BoundaryInfo::get_side_and_node_maps | ( | UnstructuredMesh & | boundary_mesh, |
| std::map< dof_id_type, dof_id_type > & | node_id_map, | ||
| std::map< dof_id_type, unsigned char > & | side_id_map, | ||
| Real | tolerance = 1.e-6 |
||
| ) |
Suppose we have used sync to create boundary_mesh.
Then each element in boundary_mesh will have interior_parent defined. This method gets extra data for us:
node_id_map stores a map from the node ids on the interior mesh to the corresponding node ids of boundary_mesh.side_id_map stores a map from the element ids of the boundary mesh to the side index of the interior_parent that the boundary element corresponds to. tolerance is used to identify when we have matching elements. Definition at line 603 of file boundary_info.C.
References libMesh::Elem::interior_parent(), libMesh::Elem::node_id(), libMesh::TensorTools::norm(), libMesh::Real, libMesh::Elem::side_index_range(), and libMesh::Elem::vertex_average().
|
inline |
Definition at line 807 of file boundary_info.h.
References _side_boundary_ids.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::MeshBase::get_info(), MeshStitchTest::testBoundaryInfo(), and BoundaryInfoTest::testSelectiveRenumber().
|
inline |
Definition at line 929 of file boundary_info.h.
References _boundary_side_id.
| const std::string & libMesh::BoundaryInfo::get_sideset_name | ( | boundary_id_type | id | ) | const |
Definition at line 3235 of file boundary_info.C.
References _ss_id_to_name.
Referenced by libMesh::UnstructuredMesh::stitching_helper(), and libMesh::ExodusII_IO_Helper::write_sidesets().
|
inline |
Definition at line 889 of file boundary_info.h.
References _ss_id_to_name.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshBase::get_info(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::UnstructuredMesh::stitching_helper(), MeshStitchTest::testBoundaryInfo(), MeshInputTest::testGmshBCIDOverlap(), and libMesh::ExodusII_IO_Helper::write_sidesets().
| bool libMesh::BoundaryInfo::has_boundary_id | ( | const Node *const | node, |
| const boundary_id_type | id | ||
| ) | const |
true if node is associated with boundary id. Definition at line 1336 of file boundary_info.C.
References _boundary_node_id, and libMesh::as_range().
Referenced by LinearElasticity::assemble(), assemble_elasticity(), assemble_poisson(), AssemblyF0::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyF2::boundary_assembly(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::FEMContext::has_side_boundary_id(), LinearElasticityWithContact::initialize_contact_load_paths(), main(), AugmentSparsityOnInterface::mesh_reinit(), operator==(), SolidSystem::side_time_derivative(), libMesh::UnstructuredMesh::stitching_helper(), AllTriTest::test_helper_c0polyhedron(), MeshTetTest::testBcids(), BoundaryInfoTest::testBoundaryOnChildrenElementsRefineCoarsen(), SystemsTest::testBoundaryProjectCube(), BoundaryInfoTest::testBuildNodeListFromSideList(), BoundaryInfoTest::testBuildSideListFromNodeList(), and BoundaryInfoTest::testEdgeBoundaryConditions().
| bool libMesh::BoundaryInfo::has_boundary_id | ( | const Elem *const | elem, |
| const unsigned short int | side, | ||
| const boundary_id_type | id | ||
| ) | const |
true if side side of Elem elem is associated with id. Definition at line 1530 of file boundary_info.C.
References boundary_ids().
|
inline |
Definition at line 935 of file boundary_info.h.
References _children_on_boundary.
Referenced by libMesh::MeshRefinement::_coarsen_elements(), libMesh::PetscDiffSolver::solve(), and BoundaryInfoTest::testBoundaryOnChildrenElementsRefineCoarsen().
|
private |
Helper method for ensuring that our multimaps don't contain entries with duplicate keys and values.
Probably should have picked a different data structure there, and also not given users an accessor with raw access to it...
Definition at line 3579 of file boundary_info.C.
References _boundary_edge_id, _boundary_node_id, _boundary_shellface_id, _boundary_side_id, and libMesh::libmesh_assert().
Referenced by clear_stitched_boundary_side_ids(), renumber_edge_id(), renumber_id(), renumber_node_id(), renumber_shellface_id(), and renumber_side_id().
| std::size_t libMesh::BoundaryInfo::n_boundary_conds | ( | ) | const |
This will be the correct global count even on a distributed mesh.
Definition at line 2594 of file boundary_info.C.
References _boundary_side_id, _mesh, libMesh::ParallelObject::comm(), libMesh::MeshBase::is_serial(), libMesh::ParallelObject::processor_id(), and TIMPI::Communicator::sum().
Referenced by libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Modification::flatten(), libMesh::AbaqusIO::read(), libMesh::Nemesis_IO::read(), AllTriTest::test_helper_2D(), AllTriTest::test_helper_3D(), AllTriTest::test_helper_c0polyhedron(), AllTriTest::testAllTriC0Polygon(), AllTriTest::testAllTriC0PolygonOctagon(), libMesh::XdrIO::write(), and libMesh::GmshIO::write_mesh().
|
inline |
Definition at line 475 of file boundary_info.h.
References _boundary_ids.
Referenced by libMesh::MeshTools::Subdivision::all_subdivision(), MeshTetTest::testBcids(), BoundaryInfoTest::testBuildSideListFromNodeList(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testLowOrderEdgeBlocks(), BoundaryInfoTest::testMesh(), BoundaryInfoTest::testRenumber(), BoundaryInfoTest::testSelectiveRenumber(), and libMesh::FroIO::write().
Node node. Definition at line 1360 of file boundary_info.C.
References _boundary_node_id, and distance().
| unsigned int libMesh::BoundaryInfo::n_boundary_ids | ( | const Elem *const | elem, |
| const unsigned short int | side | ||
| ) | const |
side side of element elem. Definition at line 1713 of file boundary_info.C.
References boundary_ids().
| unsigned int libMesh::BoundaryInfo::n_edge_boundary_ids | ( | const Elem *const | elem, |
| const unsigned short int | edge | ||
| ) | const |
edge edge of element elem.Definition at line 1428 of file boundary_info.C.
References edge_boundary_ids().
| std::size_t libMesh::BoundaryInfo::n_edge_conds | ( | ) | const |
This will be the correct global count even on a distributed mesh.
Definition at line 2615 of file boundary_info.C.
References _boundary_edge_id, _mesh, libMesh::ParallelObject::comm(), libMesh::MeshBase::is_serial(), libMesh::ParallelObject::processor_id(), and TIMPI::Communicator::sum().
Referenced by libMesh::ExodusII_IO_Helper::initialize(), libMesh::Nemesis_IO::prepare_to_write_nodal_data(), BoundaryInfoTest::testEdgeBoundaryConditions(), WriteEdgesetData::testWriteImpl(), libMesh::Nemesis_IO::write(), libMesh::XdrIO::write(), and libMesh::ExodusII_IO::write().
| std::size_t libMesh::BoundaryInfo::n_nodeset_conds | ( | ) | const |
This will be the correct global count even on a distributed mesh.
Definition at line 2659 of file boundary_info.C.
References _boundary_node_id, _mesh, libMesh::ParallelObject::comm(), libMesh::MeshBase::is_serial(), libMesh::ParallelObject::processor_id(), and TIMPI::Communicator::sum().
Referenced by libMesh::XdrIO::write().
|
inlineinherited |
Definition at line 103 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, libMesh::libmesh_assert(), and TIMPI::Communicator::size().
Referenced by libMesh::Partitioner::_find_global_index_by_pid_map(), _find_id_maps(), libMesh::DofMap::add_constraints_to_send_list(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::System::add_vector(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::Partitioner::build_graph(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::EnsightIO::EnsightIO(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::MeshBase::get_info(), libMesh::StaticCondensation::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_petscdm(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), libMesh::NumericVector< Number >::is_effectively_ghosted(), libMesh::NumericVector< Number >::is_effectively_serial(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::DofMap::local_variable_indices(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshBase::n_active_elem_on_proc(), libMesh::DofMap::n_dofs_per_processor(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::Partitioner::partition(), libMesh::MeshBase::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::DofMap::prepare_send_list(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_header(), libMesh::CheckpointIO::read_nodes(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vector(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::Partitioner::repartition(), OverlappingFunctorTest::run_partitioner_test(), libMesh::DofMap::scatter_constraints(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), WriteVecAndScalar::setupTests(), libMesh::RBEIMEvaluation::side_gather_bfs(), DistributedMeshTest::testRemoteElemError(), CheckpointIOTest::testSplitter(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::VTKIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::System::write_parallel_data(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().
| unsigned int libMesh::BoundaryInfo::n_raw_boundary_ids | ( | const Elem *const | elem, |
| const unsigned short int | side | ||
| ) | const |
side side of element elem. Definition at line 1722 of file boundary_info.C.
References raw_boundary_ids().
| unsigned int libMesh::BoundaryInfo::n_shellface_boundary_ids | ( | const Elem *const | elem, |
| const unsigned short int | shellface | ||
| ) | const |
elem.Definition at line 1496 of file boundary_info.C.
References shellface_boundary_ids().
| std::size_t libMesh::BoundaryInfo::n_shellface_conds | ( | ) | const |
This will be the correct global count even on a distributed mesh.
Definition at line 2637 of file boundary_info.C.
References _boundary_shellface_id, _mesh, libMesh::ParallelObject::comm(), libMesh::MeshBase::is_serial(), libMesh::ParallelObject::processor_id(), and TIMPI::Communicator::sum().
Referenced by BoundaryInfoTest::testShellFaceConstraints(), and libMesh::XdrIO::write().
| std::string & libMesh::BoundaryInfo::nodeset_name | ( | boundary_id_type | id | ) |
Definition at line 3261 of file boundary_info.C.
References _ns_id_to_name.
Referenced by libMesh::AbaqusIO::assign_boundary_node_ids(), libMesh::MeshTools::Generation::build_cube(), build_side_list_from_node_list(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::GmshIO::read_mesh(), MeshStitchTest::renameAndShift(), BoundaryInfoTest::testNameCopying(), BoundaryInfoTest::testSelectiveRenumber(), and WriteNodesetData::testWriteImpl().
|
inline |
Definition at line 88 of file boundary_info.h.
| BoundaryInfo & libMesh::BoundaryInfo::operator= | ( | const BoundaryInfo & | other_boundary_info | ) |
Copy assignment operator.
this will still reference the same MeshBase it was constructed with. Boundary data copied from other_boundary_info will refer to objects in this mesh which have the same DofObject::id() as the corresponding objects in the other mesh. We're going to attempt to pull new pointers out of the mesh assigned to this boundary info.
This will only work if the mesh assigned to this BoundaryInfo is the same mesh object as other_boundary_info or was constructed in exactly the same way (or constructed as a copy, or a refined copy without renumbering, etc.).
Definition at line 110 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _boundary_node_id, _boundary_shellface_id, _boundary_side_id, _children_on_boundary, _edge_boundary_ids, _es_id_to_name, _global_boundary_ids, _mesh, _node_boundary_ids, _ns_id_to_name, _shellface_boundary_ids, _side_boundary_ids, _ss_id_to_name, clear(), libMesh::MeshBase::elem_ptr(), and libMesh::MeshBase::node_ptr().
| bool libMesh::BoundaryInfo::operator== | ( | const BoundaryInfo & | other_boundary_info | ) | const |
This tests for data equality via element ids.
Definition at line 158 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _boundary_node_id, _boundary_shellface_id, _boundary_side_id, _children_on_boundary, _edge_boundary_ids, _es_id_to_name, _global_boundary_ids, _mesh, _node_boundary_ids, _ns_id_to_name, _shellface_boundary_ids, _side_boundary_ids, _ss_id_to_name, boundary_ids(), edge_boundary_ids(), has_boundary_id(), libMesh::DofObject::id(), libMesh::index_range(), libMesh::MeshBase::query_elem_ptr(), libMesh::MeshBase::query_node_ptr(), and shellface_boundary_ids().
| void libMesh::BoundaryInfo::parallel_sync_node_ids | ( | ) |
Definition at line 2889 of file boundary_info.C.
References _boundary_node_id, _mesh, libMesh::as_range(), libMesh::ParallelObject::comm(), libMesh::index_range(), libMesh::MeshBase::node_ptr(), and libMesh::ParallelObject::processor_id().
| void libMesh::BoundaryInfo::parallel_sync_side_ids | ( | ) |
Synchronize the boundary element side and node across processors.
This function is needed when boundary info is changed by adding or removing sides on the fly. Note: if the side of a ghost element is changed, then you would need to do do parallel push (see e.g., timpi/parallel_sync.h) and then sync.
Definition at line 2833 of file boundary_info.C.
References _boundary_side_id, _mesh, libMesh::as_range(), libMesh::ParallelObject::comm(), libMesh::MeshBase::elem_ptr(), libMesh::index_range(), libMesh::ParallelObject::processor_id(), and side_id.
| void libMesh::BoundaryInfo::print_info | ( | std::ostream & | out_stream = libMesh::out | ) | const |
Prints the boundary information data structure.
Definition at line 3092 of file boundary_info.C.
References _boundary_edge_id, _boundary_node_id, _boundary_shellface_id, and _boundary_side_id.
| void libMesh::BoundaryInfo::print_summary | ( | std::ostream & | out_stream = libMesh::out | ) | const |
Prints a summary of the boundary information.
Definition at line 3155 of file boundary_info.C.
References _boundary_edge_id, _boundary_node_id, _boundary_shellface_id, and _boundary_side_id.
Referenced by main().
|
inlineinherited |
Definition at line 114 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, and TIMPI::Communicator::rank().
Referenced by _find_id_maps(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), add_elements(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::Partitioner::assign_partitioning(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::MeshFunction::check_found_elem(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::clear_elems(), libMesh::ExodusII_IO_Helper::close(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::compute_communication_map_parameters(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::Nemesis_IO_Helper::compute_node_communication_maps(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::ExodusII_IO_Helper::create(), libMesh::DistributedMesh::delete_elem(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMapBase::end_dof(), libMesh::DofMapBase::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMapBase::first_dof(), libMesh::DofMapBase::first_old_dof(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::Nemesis_IO_Helper::get_cmap_params(), libMesh::Nemesis_IO_Helper::get_eb_info_global(), libMesh::Nemesis_IO_Helper::get_elem_cmap(), libMesh::Nemesis_IO_Helper::get_elem_map(), libMesh::MeshBase::get_info(), libMesh::DofMap::get_info(), libMesh::Nemesis_IO_Helper::get_init_global(), libMesh::Nemesis_IO_Helper::get_init_info(), libMesh::RBEIMEvaluation::get_interior_basis_functions_as_vecs(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::DofMap::get_local_constraints(), libMesh::MeshBase::get_local_constraints(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SparsityPattern::Build::handle_vi_vj(), libMesh::LaplaceMeshSmoother::init(), libMesh::SystemSubsetBySubdomain::init(), HeatSystem::init_data(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_element_variables(), libMesh::ExodusII_IO_Helper::initialize_global_variables(), libMesh::ExodusII_IO_Helper::initialize_nodal_variables(), libMesh::DistributedMesh::insert_elem(), libMesh::DofMap::is_evaluable(), libMesh::SparsityPattern::Build::join(), libMesh::TransientRBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEvaluation::legacy_write_offline_data_to_files(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DofMap::local_variable_indices(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::MeshBase::n_active_local_elem(), n_boundary_conds(), libMesh::MeshTools::n_connected_components(), libMesh::MeshBase::n_constraint_rows(), n_edge_conds(), libMesh::DofMapBase::n_local_dofs(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_local_nodes(), n_nodeset_conds(), n_shellface_conds(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::DistributedMesh::own_node(), parallel_sync_node_ids(), parallel_sync_side_ids(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::MeshBase::print_constraint_rows(), libMesh::DofMap::print_dof_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Nemesis_IO_Helper::put_cmap_params(), libMesh::Nemesis_IO_Helper::put_elem_cmap(), libMesh::Nemesis_IO_Helper::put_elem_map(), libMesh::Nemesis_IO_Helper::put_loadbal_param(), libMesh::Nemesis_IO_Helper::put_node_cmap(), libMesh::Nemesis_IO_Helper::put_node_map(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read(), libMesh::EquationSystems::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::ExodusII_IO_Helper::read_global_values(), libMesh::ExodusII_IO::read_header(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::DynaIO::read_mesh(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::System::read_parallel_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::System::read_serialized_data(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::StaticCondensationDofMap::reinit(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::DofMap::scatter_constraints(), libMesh::CheckpointIO::select_split_config(), libMesh::DistributedMesh::set_next_unique_id(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::RBEIMEvaluation::side_gather_bfs(), MeshFunctionTest::test_bad_gradient_var_with_out_of_mesh_value(), MeshFunctionTest::test_bad_hessian_var_with_out_of_mesh_value(), ExodusTest< elem_type >::test_read_gold(), ExodusTest< elem_type >::test_write(), MeshInputTest::testAbaqusRead(), MeshInputTest::testBadGmsh(), BoundaryInfoTest::testBoundaryIDs(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testDynaFileMappings(), MeshInputTest::testDynaNoSplines(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusFileMappings(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshInputTest::testGmshBCIDOverlap(), MeshInputTest::testGoodGmsh(), MeshInputTest::testGoodSTL(), MeshInputTest::testGoodSTLBinary(), BoundaryInfoTest::testInternalBoundary(), MeshInputTest::testLowOrderEdgeBlocks(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), WriteVecAndScalar::testSolution(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshSmootherTest::testVariationalSmoother(), libMesh::MeshTools::total_weight(), libMesh::NetGenMeshInterface::triangulate(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::DTKAdapter::update_variable_values(), libMesh::MeshTools::volume(), libMesh::STLIO::write(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::CheckpointIO::write(), libMesh::EquationSystems::write(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_data(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_element_values_element_major(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elemset_data(), libMesh::ExodusII_IO_Helper::write_elemsets(), libMesh::ExodusII_IO::write_global_data(), libMesh::ExodusII_IO_Helper::write_global_values(), libMesh::System::write_header(), libMesh::ExodusII_IO::write_information_records(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::UCDIO::write_nodal_data(), libMesh::VTKIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_common(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::ExodusII_IO_Helper::write_nodeset_data(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), write_output_solvedata(), libMesh::System::write_parallel_data(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::System::write_serialized_data(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), libMesh::ExodusII_IO_Helper::write_sideset_data(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::ExodusII_IO::write_timestep(), libMesh::ExodusII_IO_Helper::write_timestep(), and libMesh::ExodusII_IO::write_timestep_discontinuous().
| void libMesh::BoundaryInfo::raw_boundary_ids | ( | const Elem *const | elem, |
| const unsigned short int | side, | ||
| std::vector< boundary_id_type > & | vec_to_fill | ||
| ) | const |
side side of element elem.These ids are "raw" because they exclude ids which are implicit, such as a child's inheritance of its ancestors' boundary id.
Definition at line 1732 of file boundary_info.C.
References _boundary_side_id, _children_on_boundary, libMesh::as_range(), libMesh::libmesh_assert(), libMesh::Elem::n_sides(), and libMesh::Elem::parent().
Referenced by copy_boundary_ids(), n_raw_boundary_ids(), and remove_side().
| void libMesh::BoundaryInfo::raw_edge_boundary_ids | ( | const Elem *const | elem, |
| const unsigned short int | edge, | ||
| std::vector< boundary_id_type > & | vec_to_fill | ||
| ) | const |
edge edge of element elem.These ids are "raw" because they exclude ids which are implicit, such as a child's inheritance of its ancestors' boundary id.
Definition at line 1438 of file boundary_info.C.
References _boundary_edge_id, libMesh::as_range(), libMesh::libmesh_assert(), libMesh::Elem::n_edges(), and libMesh::Elem::parent().
Referenced by copy_boundary_ids().
| void libMesh::BoundaryInfo::raw_shellface_boundary_ids | ( | const Elem *const | elem, |
| const unsigned short int | shellface, | ||
| std::vector< boundary_id_type > & | vec_to_fill | ||
| ) | const |
elem.These ids are "raw" because they exclude ids which are implicit, such as a child's inheritance of its ancestors' boundary id.
Definition at line 1506 of file boundary_info.C.
References _boundary_shellface_id, libMesh::as_range(), libMesh::libmesh_assert(), and libMesh::Elem::parent().
Referenced by copy_boundary_ids().
| void libMesh::BoundaryInfo::regenerate_id_sets | ( | ) |
Clears and regenerates the cached sets of ids.
This is in general necessary after use of remove_*() functions, which remove individual id associations (an O(1) process) without checking to see whether that is the last association with the id (an O(N) process).
Definition at line 363 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _boundary_node_id, _boundary_shellface_id, _boundary_side_id, libMesh::ParallelObject::_communicator, _edge_boundary_ids, _es_id_to_name, _mesh, _node_boundary_ids, _ns_id_to_name, _shellface_boundary_ids, _side_boundary_ids, _ss_id_to_name, libMesh::MeshBase::is_serial(), libMesh::libmesh_assert(), TIMPI::Communicator::set_union(), and synchronize_global_id_set().
Referenced by libMesh::UnstructuredMesh::all_first_order(), clear_stitched_boundary_side_ids(), libMesh::MeshBase::complete_preparation(), libMesh::MeshTetInterface::delete_2D_hull_elements(), libMesh::DistributedMesh::delete_remote_elements(), main(), and libMesh::TetGenMeshInterface::pointset_convexhull().
| void libMesh::BoundaryInfo::remove | ( | const Node * | node | ) |
Removes the boundary conditions associated with node node, if any exist.
Definition at line 1786 of file boundary_info.C.
References _boundary_node_id, and libMesh::libmesh_assert().
Referenced by libMesh::MeshRefinement::_coarsen_elements(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_cube(), libMesh::ReplicatedMesh::delete_elem(), libMesh::DistributedMesh::delete_elem(), libMesh::ReplicatedMesh::delete_node(), libMesh::DistributedMesh::delete_node(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
| void libMesh::BoundaryInfo::remove | ( | const Elem * | elem | ) |
Removes the boundary conditions associated with element elem, if any exist.
Definition at line 1809 of file boundary_info.C.
References _boundary_edge_id, _boundary_shellface_id, _boundary_side_id, and libMesh::libmesh_assert().
Removes all boundary conditions associated with edge edge of element elem, if any exist.
Definition at line 1821 of file boundary_info.C.
References _boundary_edge_id, libMesh::Elem::level(), libMesh::libmesh_assert(), and libMesh::Elem::n_edges().
Referenced by renumber_edge_id(), renumber_id(), and libMesh::Elem::swap2boundaryedges().
| void libMesh::BoundaryInfo::remove_edge | ( | const Elem * | elem, |
| const unsigned short int | edge, | ||
| const boundary_id_type | id | ||
| ) |
Removes the boundary id id from edge edge of element elem, if it exists.
Definition at line 1840 of file boundary_info.C.
References _boundary_edge_id, libMesh::Elem::level(), libMesh::libmesh_assert(), and libMesh::Elem::n_edges().
| void libMesh::BoundaryInfo::remove_edge_id | ( | boundary_id_type | id, |
| bool | global = false |
||
| ) |
Removes all edges with boundary id id from the BoundaryInfo object, removes it from the set of edge boundary ids, and removes it from the set of boundary ids if no other boundary type uses it.
Set the global parameter to true if this is being called for all processes in the object's communicator, in which case we will remove the id from the global boundary ID container
Definition at line 1990 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _edge_boundary_ids, _es_id_to_name, _global_boundary_ids, _node_boundary_ids, _shellface_boundary_ids, _side_boundary_ids, libMesh::ParallelObject::comm(), and TIMPI::Communicator::max().
Referenced by remove_id().
| void libMesh::BoundaryInfo::remove_id | ( | boundary_id_type | id, |
| bool | global = false |
||
| ) |
Removes all entities (nodes, sides, edges, shellfaces) with boundary id id from their respective containers and erases any record of id's existence from the BoundaryInfo object.
That is, after calling remove_id(), id will no longer be in the sets returned by get_boundary_ids(), get_side_boundary_ids(), etc., and will not be in the bc_id_list vector returned by build_side_list(), etc.
Set the global parameter to true if this is being called for all processes in the object's communicator, in which case we will remove the id from the global boundary ID container
Definition at line 1948 of file boundary_info.C.
References _global_boundary_ids, remove_edge_id(), remove_node_id(), remove_shellface_id(), and remove_side_id().
Referenced by BoundaryInfoTest::testMesh(), and BoundaryInfoTest::testRenumber().
| void libMesh::BoundaryInfo::remove_node | ( | const Node * | node, |
| const boundary_id_type | id | ||
| ) |
Removes boundary id id from node node, if it exists.
Definition at line 1796 of file boundary_info.C.
References _boundary_node_id, and libMesh::libmesh_assert().
Referenced by clear_stitched_boundary_side_ids(), renumber_id(), and renumber_node_id().
| void libMesh::BoundaryInfo::remove_node_id | ( | boundary_id_type | id, |
| bool | global = false |
||
| ) |
Removes all nodes with boundary id id from the BoundaryInfo object, removes it from the set of node boundary ids, and removes it from the set of boundary ids if no other boundary type uses it.
Set the global parameter to true if this is being called for all processes in the object's communicator, in which case we will remove the id from the global boundary ID container
Definition at line 2043 of file boundary_info.C.
References _boundary_ids, _boundary_node_id, _edge_boundary_ids, _global_boundary_ids, _node_boundary_ids, _ns_id_to_name, _shellface_boundary_ids, _side_boundary_ids, libMesh::ParallelObject::comm(), and TIMPI::Communicator::max().
Referenced by remove_id(), and BoundaryInfoTest::testBuildNodeListFromSideList().
| void libMesh::BoundaryInfo::remove_shellface | ( | const Elem * | elem, |
| const unsigned short int | shellface | ||
| ) |
Removes all boundary conditions associated with shell face shellface of element elem, if any exist.
Definition at line 1859 of file boundary_info.C.
References _boundary_shellface_id, libMesh::Elem::level(), and libMesh::libmesh_assert().
Referenced by renumber_id(), and renumber_shellface_id().
| void libMesh::BoundaryInfo::remove_shellface | ( | const Elem * | elem, |
| const unsigned short int | shellface, | ||
| const boundary_id_type | id | ||
| ) |
Removes all boundary conditions associated with shell face shellface of element elem, if any exist.
Definition at line 1878 of file boundary_info.C.
References _boundary_shellface_id, libMesh::Elem::level(), and libMesh::libmesh_assert().
| void libMesh::BoundaryInfo::remove_shellface_id | ( | boundary_id_type | id, |
| bool | global = false |
||
| ) |
Removes all shellfaces with boundary id id from the BoundaryInfo object, removes it from the set of shellface boundary ids, and removes it from the set of boundary ids if no other boundary type uses it.
Set the global parameter to true if this is being called for all processes in the object's communicator, in which case we will remove the id from the global boundary ID container
Definition at line 2017 of file boundary_info.C.
References _boundary_ids, _boundary_shellface_id, _edge_boundary_ids, _global_boundary_ids, _node_boundary_ids, _shellface_boundary_ids, _side_boundary_ids, libMesh::ParallelObject::comm(), and TIMPI::Communicator::max().
Referenced by remove_id().
Removes all boundary conditions associated with side side of element elem, if any exist.
Definition at line 1896 of file boundary_info.C.
References _boundary_side_id, libMesh::libmesh_assert(), and libMesh::Elem::n_sides().
Referenced by main(), renumber_id(), renumber_side_id(), libMesh::Elem::swap2boundarysides(), BoundaryInfoTest::testBoundaryOnChildrenElementsRefineCoarsen(), and BoundaryInfoTest::testBoundaryOnChildrenErrors().
| void libMesh::BoundaryInfo::remove_side | ( | const Elem * | elem, |
| const unsigned short int | side, | ||
| const boundary_id_type | id | ||
| ) |
Removes the boundary id id from side side of element elem, if it exists.
Definition at line 1912 of file boundary_info.C.
References _boundary_side_id, boundary_ids(), libMesh::Elem::level(), libMesh::libmesh_assert(), libMesh::Elem::n_sides(), and raw_boundary_ids().
| void libMesh::BoundaryInfo::remove_side_id | ( | boundary_id_type | id, |
| bool | global = false |
||
| ) |
Removes all sides with boundary id id from the BoundaryInfo object, removes it from the set of side boundary ids, and removes it from the set of boundary ids if no other boundary type uses it.
Set the global parameter to true if this is being called for all processes in the object's communicator, in which case we will remove the id from the global boundary ID container
Definition at line 1963 of file boundary_info.C.
References _boundary_ids, _boundary_side_id, _edge_boundary_ids, _global_boundary_ids, _node_boundary_ids, _shellface_boundary_ids, _side_boundary_ids, _ss_id_to_name, libMesh::ParallelObject::comm(), and TIMPI::Communicator::max().
Referenced by remove_id(), and BoundaryInfoTest::testBuildSideListFromNodeList().
| void libMesh::BoundaryInfo::renumber_edge_id | ( | boundary_id_type | old_id, |
| boundary_id_type | new_id | ||
| ) |
Changes all edges with boundary id old_id to instead be labeled by boundary id new_id.
Definition at line 2197 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _edge_boundary_ids, _es_id_to_name, _node_boundary_ids, _shellface_boundary_ids, _side_boundary_ids, libmesh_assert_valid_multimaps(), and remove_edge().
Referenced by BoundaryInfoTest::testSelectiveRenumber().
| void libMesh::BoundaryInfo::renumber_id | ( | boundary_id_type | old_id, |
| boundary_id_type | new_id | ||
| ) |
Changes all entities (nodes, sides, edges, shellfaces) with boundary id old_id to instead be labeled by boundary id new_id.
Definition at line 2070 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _boundary_node_id, _boundary_shellface_id, _boundary_side_id, _edge_boundary_ids, _es_id_to_name, _node_boundary_ids, _ns_id_to_name, _shellface_boundary_ids, _side_boundary_ids, _ss_id_to_name, libmesh_assert_valid_multimaps(), remove_edge(), remove_node(), remove_shellface(), and remove_side().
Referenced by libMesh::MeshTools::Modification::change_boundary_id(), and BoundaryInfoTest::testRenumber().
| void libMesh::BoundaryInfo::renumber_node_id | ( | boundary_id_type | old_id, |
| boundary_id_type | new_id | ||
| ) |
Changes all nodes with boundary id old_id to instead be labeled by boundary id new_id.
Definition at line 2273 of file boundary_info.C.
References _boundary_ids, _boundary_node_id, _edge_boundary_ids, _node_boundary_ids, _ns_id_to_name, _shellface_boundary_ids, _side_boundary_ids, libmesh_assert_valid_multimaps(), and remove_node().
Referenced by BoundaryInfoTest::testSelectiveRenumber().
| void libMesh::BoundaryInfo::renumber_shellface_id | ( | boundary_id_type | old_id, |
| boundary_id_type | new_id | ||
| ) |
Changes all shellfaces with boundary id old_id to instead be labeled by boundary id new_id.
Definition at line 2236 of file boundary_info.C.
References _boundary_ids, _boundary_shellface_id, _edge_boundary_ids, _node_boundary_ids, _shellface_boundary_ids, _side_boundary_ids, libmesh_assert_valid_multimaps(), and remove_shellface().
| void libMesh::BoundaryInfo::renumber_side_id | ( | boundary_id_type | old_id, |
| boundary_id_type | new_id | ||
| ) |
Changes all sides with boundary id old_id to instead be labeled by boundary id new_id.
Definition at line 2158 of file boundary_info.C.
References _boundary_ids, _boundary_side_id, _edge_boundary_ids, _node_boundary_ids, _shellface_boundary_ids, _side_boundary_ids, _ss_id_to_name, libmesh_assert_valid_multimaps(), and remove_side().
Referenced by BoundaryInfoTest::testSelectiveRenumber().
|
inline |
Definition at line 903 of file boundary_info.h.
References _es_id_to_name.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), and libMesh::UnstructuredMesh::stitching_helper().
|
inlineprotected |
Definition at line 70 of file boundary_info.h.
References _mesh.
|
inline |
Definition at line 895 of file boundary_info.h.
References _ns_id_to_name.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), libMesh::CheckpointIO::read_header(), and libMesh::UnstructuredMesh::stitching_helper().
|
inline |
Definition at line 887 of file boundary_info.h.
References _ss_id_to_name.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), libMesh::CheckpointIO::read_header(), and libMesh::UnstructuredMesh::stitching_helper().
| void libMesh::BoundaryInfo::shellface_boundary_ids | ( | const Elem *const | elem, |
| const unsigned short int | shellface, | ||
| std::vector< boundary_id_type > & | vec_to_fill | ||
| ) | const |
elem.Definition at line 1462 of file boundary_info.C.
References _boundary_shellface_id, libMesh::as_range(), libMesh::Elem::level(), libMesh::libmesh_assert(), and libMesh::Elem::parent().
Referenced by assemble_shell(), n_shellface_boundary_ids(), operator==(), and libMesh::XdrIO::write_serialized_bcs_helper().
| void libMesh::BoundaryInfo::side_boundary_ids | ( | const Elem *const | elem, |
| std::vector< std::vector< boundary_id_type >> & | vec_to_fill | ||
| ) | const |
elem. Indexed by sides. Definition at line 1540 of file boundary_info.C.
References _boundary_side_id, _children_on_boundary, libMesh::as_range(), libMesh::invalid_uint, libMesh::Elem::is_child_on_side(), libMesh::Elem::level(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::Elem::n_sides(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::parent(), libMesh::Elem::top_parent(), and libMesh::Elem::which_child_am_i().
Referenced by BoundaryInfoTest::testBoundaryIDs(), and BoundaryInfoTest::testBoundaryOnChildrenBoundaryIDs().
| unsigned int libMesh::BoundaryInfo::side_with_boundary_id | ( | const Elem *const | elem, |
| const boundary_id_type | boundary_id | ||
| ) | const |
elem whose associated boundary id is boundary_id if such a side exists, and invalid_uint otherwise.elem have the same id, only the lowest numbered such side is returned. Definition at line 2312 of file boundary_info.C.
References _boundary_side_id, _children_on_boundary, libMesh::as_range(), libMesh::invalid_uint, libMesh::Elem::is_child_on_side(), libMesh::Elem::level(), libMesh::make_range(), libMesh::Elem::n_sides(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::parent(), libMesh::Elem::top_parent(), and libMesh::Elem::which_child_am_i().
Referenced by assemble_temperature_jump(), BoundaryInfoTest::testBoundaryOnChildrenBoundarySides(), and BoundaryInfoTest::testInternalBoundary().
| std::vector< unsigned int > libMesh::BoundaryInfo::sides_with_boundary_id | ( | const Elem *const | elem, |
| const boundary_id_type | boundary_id | ||
| ) | const |
elem whose associated boundary id is boundary_id Definition at line 2409 of file boundary_info.C.
References _boundary_side_id, _children_on_boundary, libMesh::as_range(), libMesh::Elem::is_child_on_side(), libMesh::Elem::level(), libMesh::make_range(), libMesh::Elem::n_sides(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::parent(), libMesh::Elem::top_parent(), and libMesh::Elem::which_child_am_i().
Referenced by BoundaryInfoTest::testBoundaryOnChildrenBoundarySides().
| std::string & libMesh::BoundaryInfo::sideset_name | ( | boundary_id_type | id | ) |
Definition at line 3246 of file boundary_info.C.
References _ss_id_to_name.
Referenced by libMesh::AbaqusIO::assign_sideset_ids(), libMesh::MeshTools::Generation::build_cube(), DisjointNeighborTest::build_four_disjoint_elems(), build_side_list_from_node_list(), DisjointNeighborTest::build_split_mesh_with_interface(), DisjointNeighborTest::build_two_disjoint_elems(), libMesh::UNVIO::groups_in(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::GmshIO::read_mesh(), MeshStitchTest::renameAndShift(), DisjointNeighborTest::testDisjointNeighborConflictError(), MeshInputTest::testGmshBCIDOverlap(), BoundaryInfoTest::testNameCopying(), BoundaryInfoTest::testRenumber(), BoundaryInfoTest::testSelectiveRenumber(), DisjointNeighborTest::testStitchCrossMesh(), and WriteSidesetData::testWriteImpl().
| void libMesh::BoundaryInfo::sync | ( | UnstructuredMesh & | boundary_mesh | ) |
Generates boundary_mesh data structures corresponding to the mesh data structures.
Allows the boundary_mesh to be used like any other mesh, except with interior_parent() values defined for algorithms which couple boundary and interior mesh information. Any pre-existing boundary_mesh data is cleared.
Definition at line 444 of file boundary_info.C.
References _boundary_ids, _mesh, libMesh::ParallelObject::comm(), invalid_id, libMesh::MeshBase::is_serial(), and TIMPI::Communicator::set_union().
Referenced by main(), and sync().
| void libMesh::BoundaryInfo::sync | ( | const std::set< boundary_id_type > & | requested_boundary_ids, |
| UnstructuredMesh & | boundary_mesh | ||
| ) |
Generates boundary_mesh data structures corresponding to the mesh data structures.
Allows the boundary_mesh to be used like any other mesh, except with interior_parent() values defined for algorithms which couple boundary and interior mesh information. Any pre-existing boundary_mesh data is cleared. Only boundary elements with the specified ids are extracted. Boundary IDs for the nodes on requested_boundary_ids will also be copied over to boundary_mesh. We do not currently copy edge boundary IDs over to boundary_mesh.
Definition at line 457 of file boundary_info.C.
References libMesh::Elem::invalid_subdomain_id, and sync().
| void libMesh::BoundaryInfo::sync | ( | const std::set< boundary_id_type > & | requested_boundary_ids, |
| UnstructuredMesh & | boundary_mesh, | ||
| const std::set< subdomain_id_type > & | subdomains_relative_to | ||
| ) |
Like the other sync() implementations, but specifically intended for building "boundary" meshes from internal sidesets.
In the case of an internal sideset, each side may belong to 2 higher-dimensional parent elements, and typically we do not want to add the same side to the boundary mesh twice. The std::set<subdomain_id_type> passed into this function specifies which subdomain the sides in question should relative to, so that they are only added once.
Deleting 0 elements seems weird, but it's better encapsulating than exposing a set_is_serial(false) capability that might be easily misused.
If the boundary_mesh is still serial, that means we can't parallelize it, so to make sure we can construct it in full on every processor we'll serialize the interior mesh.
We'll use a temporary MeshSerializer here, but as soon as we unserialize we'll be turning a bunch of interior_parent() links into dangling pointers, and it won't be easy to tell which. So we'll keep around a distributed copy for that case, and query it to fix up interior_parent() links as necessary.
We'll also need to make sure to unserialize the mesh before we prepare the boundary mesh for use, or the prepare_for_use() call on a refined boundary mesh will happily notice that it can find and restore some refined elements' interior_parent pointers, not knowing that those interior parents are about to go remote.
Re-create the boundary mesh.
Definition at line 471 of file boundary_info.C.
References _find_id_maps(), _mesh, add_elements(), add_node(), libMesh::MeshBase::add_point(), boundary_ids(), libMesh::MeshBase::clear(), libMesh::MeshBase::clone(), libMesh::MeshBase::delete_remote_elements(), libMesh::MeshBase::get_boundary_info(), libMesh::DofObject::id(), libMesh::MeshBase::is_serial(), libMesh::libmesh_assert(), libMesh::MeshBase::n_partitions(), libMesh::MeshBase::node_ptr(), libMesh::MeshBase::partitioner(), libMesh::MeshBase::prepare_for_use(), libMesh::remote_elem, libMesh::MeshBase::set_n_partitions(), and libMesh::Partitioner::set_node_processor_ids().
| void libMesh::BoundaryInfo::synchronize_global_id_set | ( | ) |
Synchronizes the boundary_ids set on each processor to determine global_boundary_ids.
This may be necessary after use of renumber_*() functions, which perform only local operations, if get_global_boundary_ids() is to be used without a full regenerate_id_sets() call first.
Definition at line 431 of file boundary_info.C.
References _boundary_ids, libMesh::ParallelObject::_communicator, _global_boundary_ids, _mesh, libMesh::MeshBase::_preparation, libMesh::MeshBase::Preparation::has_boundary_id_sets, libMesh::MeshBase::is_serial(), libMesh::libmesh_assert(), and TIMPI::Communicator::set_union().
Referenced by regenerate_id_sets(), and BoundaryInfoTest::testSelectiveRenumber().
| void libMesh::BoundaryInfo::transfer_boundary_ids_from_children | ( | const Elem *const | parent | ) |
Update parent's boundary id list so that this information is consistent with its children.
This is useful when _children_on_boundary = true, and is used when the element is about to get coarsened i.e., in MeshRefinement::_coarsen_elements()
Specifically, when we coarsen an element whose children have different boundary ids. In such scenarios, the parent will inherit the children's boundaries if at least 50% them own a boundary while sharing the side of the parent.
Definition at line 2545 of file boundary_info.C.
References _boundary_side_id, _children_on_boundary, libMesh::Elem::active(), add_side(), libMesh::as_range(), libMesh::Elem::child_ptr(), libMesh::Elem::COARSEN_INACTIVE, libMesh::Elem::dim(), libMesh::Elem::is_child_on_side(), libMesh::make_range(), libMesh::Elem::n_children(), libMesh::Elem::n_sides(), libMesh::Utility::pow(), and libMesh::Elem::refinement_flag().
Referenced by libMesh::MeshRefinement::_coarsen_elements().
|
friend |
Definition at line 60 of file boundary_info.h.
|
private |
Data structure that maps edges of elements to boundary ids.
This is only relevant in 3D.
Definition at line 984 of file boundary_info.h.
Referenced by add_edge(), build_edge_list(), clear(), edge_boundary_ids(), get_edgeset_map(), libmesh_assert_valid_multimaps(), n_edge_conds(), operator=(), operator==(), print_info(), print_summary(), raw_edge_boundary_ids(), regenerate_id_sets(), remove(), remove_edge(), remove_edge_id(), renumber_edge_id(), and renumber_id().
|
private |
A collection of user-specified boundary ids for sides, edges, nodes, and shell faces.
See _side_boundary_ids, _edge_boundary_ids, _node_boundary_ids, and _shellface_boundary_ids for sets containing IDs for only sides, edges, nodes, and shell faces, respectively.
This only contains information related to this process's local and ghosted elements
Definition at line 1018 of file boundary_info.h.
Referenced by add_edge(), add_node(), add_shellface(), add_side(), clear(), get_boundary_ids(), n_boundary_ids(), operator=(), operator==(), regenerate_id_sets(), remove_edge_id(), remove_node_id(), remove_shellface_id(), remove_side_id(), renumber_edge_id(), renumber_id(), renumber_node_id(), renumber_shellface_id(), renumber_side_id(), sync(), and synchronize_global_id_set().
|
private |
Data structure that maps nodes in the mesh to boundary ids.
Definition at line 976 of file boundary_info.h.
Referenced by add_node(), boundary_ids(), build_node_boundary_ids(), build_node_list(), build_side_list_from_node_list(), clear(), clear_boundary_node_ids(), get_nodeset_map(), has_boundary_id(), libmesh_assert_valid_multimaps(), n_boundary_ids(), n_nodeset_conds(), operator=(), operator==(), parallel_sync_node_ids(), print_info(), print_summary(), regenerate_id_sets(), remove(), remove_node(), remove_node_id(), renumber_id(), and renumber_node_id().
|
private |
Data structure that maps faces of shell elements to boundary ids.
This is only relevant for shell elements.
Definition at line 992 of file boundary_info.h.
Referenced by add_shellface(), build_shellface_boundary_ids(), build_shellface_list(), clear(), libmesh_assert_valid_multimaps(), n_shellface_conds(), operator=(), operator==(), print_info(), print_summary(), raw_shellface_boundary_ids(), regenerate_id_sets(), remove(), remove_shellface(), remove_shellface_id(), renumber_id(), renumber_shellface_id(), and shellface_boundary_ids().
|
private |
Data structure that maps sides of elements to boundary ids.
Definition at line 1000 of file boundary_info.h.
Referenced by add_side(), boundary_ids(), build_active_side_list(), build_node_list_from_side_list(), build_side_boundary_ids(), build_side_list(), clear(), clear_stitched_boundary_side_ids(), get_sideset_map(), libmesh_assert_valid_multimaps(), n_boundary_conds(), operator=(), operator==(), parallel_sync_side_ids(), print_info(), print_summary(), raw_boundary_ids(), regenerate_id_sets(), remove(), remove_side(), remove_side_id(), renumber_id(), renumber_side_id(), side_boundary_ids(), side_with_boundary_id(), sides_with_boundary_id(), and transfer_boundary_ids_from_children().
|
private |
Definition at line 1007 of file boundary_info.h.
Referenced by add_side(), allow_children_on_boundary_side(), boundary_ids(), is_children_on_boundary_side(), operator=(), operator==(), raw_boundary_ids(), side_boundary_ids(), side_with_boundary_id(), sides_with_boundary_id(), and transfer_boundary_ids_from_children().
|
protectedinherited |
Definition at line 120 of file parallel_object.h.
Referenced by libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::StaticCondensation::close(), libMesh::ParallelObject::comm(), libMesh::CondensedEigenSystem::initialize_condensed_matrices(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::operator=(), libMesh::ParallelObject::processor_id(), regenerate_id_sets(), libMesh::StaticCondensationDofMap::reinit(), and synchronize_global_id_set().
|
private |
Set of user-specified boundary IDs for edges only.
This is only relevant in 3D.
_boundary_ids is the union of this set, _side_boundary_ids, _node_boundary_ids, and _shellface_boundary_ids.This only contains information related to this process's local and ghosted elements
Definition at line 1052 of file boundary_info.h.
Referenced by add_edge(), clear(), get_edge_boundary_ids(), operator=(), operator==(), regenerate_id_sets(), remove_edge_id(), remove_node_id(), remove_shellface_id(), remove_side_id(), renumber_edge_id(), renumber_id(), renumber_node_id(), renumber_shellface_id(), and renumber_side_id().
|
private |
This structure maintains the mapping of named edge sets for file formats (Exodus, Gmsh) that support this.
This data is global in nature, meaning it should be an aggregate of information across processors
Definition at line 1102 of file boundary_info.h.
Referenced by clear(), edgeset_name(), get_edgeset_name(), get_edgeset_name_map(), get_id_by_name(), operator=(), operator==(), regenerate_id_sets(), remove_edge_id(), renumber_edge_id(), renumber_id(), and set_edgeset_name_map().
|
private |
A collection of user-specified boundary ids for sides, edges, nodes, and shell faces.
See _side_boundary_ids, _edge_boundary_ids, _node_boundary_ids, and _shellface_boundary_ids for sets containing IDs for only sides, edges, nodes, and shell faces, respectively.
Unlike _boundary_ids, this member should contain boundary ids from across all processors after the mesh is prepared
Definition at line 1030 of file boundary_info.h.
Referenced by get_global_boundary_ids(), operator=(), operator==(), remove_edge_id(), remove_id(), remove_node_id(), remove_shellface_id(), remove_side_id(), and synchronize_global_id_set().
|
private |
A pointer to the Mesh this boundary info pertains to.
Definition at line 969 of file boundary_info.h.
Referenced by _find_id_maps(), add_edge(), add_elements(), add_node(), add_shellface(), add_side(), build_node_list_from_side_list(), build_side_list_from_node_list(), get_global_boundary_ids(), n_boundary_conds(), n_edge_conds(), n_nodeset_conds(), n_shellface_conds(), operator=(), operator==(), parallel_sync_node_ids(), parallel_sync_side_ids(), regenerate_id_sets(), set_mesh(), sync(), and synchronize_global_id_set().
|
private |
Set of user-specified boundary IDs for nodes only.
_boundary_ids is the union of this set, _edge_boundary_ids, _side_boundary_ids, and _shellface_boundary_ids.This only contains information related to this process's local and ghosted elements
Definition at line 1063 of file boundary_info.h.
Referenced by add_node(), clear(), get_node_boundary_ids(), operator=(), operator==(), regenerate_id_sets(), remove_edge_id(), remove_node_id(), remove_shellface_id(), remove_side_id(), renumber_edge_id(), renumber_id(), renumber_node_id(), renumber_shellface_id(), and renumber_side_id().
|
private |
This structure maintains the mapping of named node sets for file formats (Exodus, Gmsh) that support this.
This data is global in nature, meaning it should be an aggregate of information across processors
Definition at line 1093 of file boundary_info.h.
Referenced by clear(), get_id_by_name(), get_nodeset_name(), get_nodeset_name_map(), nodeset_name(), operator=(), operator==(), regenerate_id_sets(), remove_node_id(), renumber_id(), renumber_node_id(), and set_nodeset_name_map().
|
private |
Set of user-specified boundary IDs for shellfaces only.
This is only relevant for shell elements.
_boundary_ids is the union of this set, _side_boundary_ids, _edge_boundary_ids, and _node_boundary_ids.This only contains information related to this process's local and ghosted elements
Definition at line 1075 of file boundary_info.h.
Referenced by add_shellface(), clear(), get_shellface_boundary_ids(), operator=(), operator==(), regenerate_id_sets(), remove_edge_id(), remove_node_id(), remove_shellface_id(), remove_side_id(), renumber_edge_id(), renumber_id(), renumber_node_id(), renumber_shellface_id(), and renumber_side_id().
|
private |
Set of user-specified boundary IDs for sides only.
_boundary_ids is the union of this set, _edge_boundary_ids, _node_boundary_ids, and _shellface_boundary_ids.This only contains information related to this process's local and ghosted elements
Definition at line 1041 of file boundary_info.h.
Referenced by add_side(), clear(), get_side_boundary_ids(), operator=(), operator==(), regenerate_id_sets(), remove_edge_id(), remove_node_id(), remove_shellface_id(), remove_side_id(), renumber_edge_id(), renumber_id(), renumber_node_id(), renumber_shellface_id(), and renumber_side_id().
|
private |
This structure maintains the mapping of named side sets for file formats (Exodus, Gmsh) that support this.
This data is global in nature, meaning it should be an aggregate of information across processors
Definition at line 1084 of file boundary_info.h.
Referenced by clear(), get_id_by_name(), get_sideset_name(), get_sideset_name_map(), operator=(), operator==(), regenerate_id_sets(), remove_side_id(), renumber_id(), renumber_side_id(), set_sideset_name_map(), and sideset_name().
|
static |
Number used for internal use.
This is the return value if a boundary condition is not specified.
Definition at line 912 of file boundary_info.h.
Referenced by _find_id_maps(), add_edge(), add_elements(), add_node(), add_shellface(), add_side(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_cube(), clear_stitched_boundary_side_ids(), libMesh::MeshTools::Modification::flatten(), get_id_by_name(), libMesh::HDGProblem::init(), libMesh::RBEIMConstruction::initialize_qp_data(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), main(), libMesh::UnstructuredMesh::stitching_helper(), sync(), libMesh::XdrIO::write_serialized_bcs_helper(), and libMesh::XdrIO::write_serialized_nodesets().
1.8.14