|
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 |
| As above, but the library creates and fills in a vector of (node-id, bc-id) pairs and returns it to the user, taking advantage of guaranteed RVO. More... | |
| typedef std::tuple< dof_id_type, unsigned short int, boundary_id_type > | BCTuple |
| As above, but the library creates and fills in a vector of (elem-id, side-id, bc-id) triplets and returns it to the user, taking advantage of guaranteed RVO. 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 |
| void | build_node_list (std::vector< dof_id_type > &node_id_list, std::vector< boundary_id_type > &bc_id_list) const |
| Creates a list of nodes and ids for those nodes. More... | |
| 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... | |
| void | build_side_list (std::vector< dof_id_type > &element_id_list, std::vector< unsigned short int > &side_list, std::vector< boundary_id_type > &bc_id_list) const |
| Creates a list of element numbers, sides, and ids for those sides. More... | |
| std::vector< BCTuple > | build_side_list (BCTupleSortBy sort_by=BCTupleSortBy::ELEM_ID) const |
| void | build_active_side_list (std::vector< dof_id_type > &element_id_list, std::vector< unsigned short int > &side_list, std::vector< boundary_id_type > &bc_id_list) const |
| Creates a list of active element numbers, sides, and ids for those sides. More... | |
| std::vector< BCTuple > | build_active_side_list () const |
| As above, but the library creates and fills in a vector of (elem-id, side-id, bc-id) triplets and returns it to the user, taking advantage of guaranteed RVO. More... | |
| void | build_edge_list (std::vector< dof_id_type > &element_id_list, std::vector< unsigned short int > &edge_list, std::vector< boundary_id_type > &bc_id_list) const |
| Creates a list of element numbers, edges, and boundary ids for those edges. More... | |
| std::vector< BCTuple > | build_edge_list () const |
| As above, but the library creates and fills in a vector of (elem-id, side-id, bc-id) triplets and returns it to the user, taking advantage of guaranteed RVO. More... | |
| void | build_shellface_list (std::vector< dof_id_type > &element_id_list, std::vector< unsigned short int > &shellface_list, std::vector< boundary_id_type > &bc_id_list) const |
| Creates a list of element numbers, shellfaces, and boundary ids for those shellfaces. More... | |
| std::vector< BCTuple > | build_shellface_list () const |
| As above, but the library creates and fills in a vector of (elem-id, side-id, bc-id) triplets and returns it to the user, taking advantage of guaranteed RVO. 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 |
As above, but the library creates and fills in a vector of (elem-id, side-id, bc-id) triplets and returns it to the user, taking advantage of guaranteed RVO.
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 778 of file boundary_info.h.
| typedef std::tuple<dof_id_type, boundary_id_type> libMesh::BoundaryInfo::NodeBCTuple |
As above, but the library creates and fills in a vector of (node-id, bc-id) pairs and returns it to the user, taking advantage of guaranteed RVO.
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 729 of file boundary_info.h.
|
strong |
| Enumerator | |
|---|---|
| ELEM_ID | |
| SIDE_ID | |
| BOUNDARY_ID | |
| UNSORTED | |
Definition at line 779 of file boundary_info.h.
|
strong |
| Enumerator | |
|---|---|
| NODE_ID | |
| BOUNDARY_ID | |
| UNSORTED | |
Definition at line 730 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 3441 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::libmesh_assert(), 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 1022 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 1031 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 1061 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 652 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 668 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 951 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 934 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 971 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 1115 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 1124 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 1154 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 1207 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(), BoundaryMesh0DTest::build_mesh(), BoundaryMeshTest::build_mesh(), build_side_list_from_node_list(), 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(), BoundaryInfoTest::testBoundaryIDs(), BoundaryInfoTest::testBoundaryOnChildrenBoundaryIDs(), BoundaryInfoTest::testBoundaryOnChildrenBoundarySides(), BoundaryInfoTest::testBoundaryOnChildrenElementsRefineCoarsen(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), PeriodicBCTest::testPeriodicBC(), 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 1216 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 1262 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 1015 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 1345 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 1626 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().
| void libMesh::BoundaryInfo::build_active_side_list | ( | std::vector< dof_id_type > & | element_id_list, |
| std::vector< unsigned short int > & | side_list, | ||
| std::vector< boundary_id_type > & | bc_id_list | ||
| ) | const |
Creates a list of active element numbers, sides, and ids for those sides.
On a ReplicatedMesh this will include all sides; on a DistributedMesh only sides of semilocal elements will be included.
Definition at line 3068 of file boundary_info.C.
References build_active_side_list().
| std::vector< BoundaryInfo::BCTuple > libMesh::BoundaryInfo::build_active_side_list | ( | ) | const |
As above, but the library creates and fills in a vector of (elem-id, side-id, bc-id) triplets and returns it to the user, taking advantage of guaranteed RVO.
Definition at line 3099 of file boundary_info.C.
References _boundary_side_id.
Referenced by build_active_side_list().
| void libMesh::BoundaryInfo::build_edge_list | ( | std::vector< dof_id_type > & | element_id_list, |
| std::vector< unsigned short int > & | edge_list, | ||
| std::vector< boundary_id_type > & | bc_id_list | ||
| ) | const |
Creates a list of element numbers, edges, and boundary ids for those edges.
On a ReplicatedMesh this will include all edges; on a DistributedMesh only edges of semilocal elements will be included.
Definition at line 3132 of file boundary_info.C.
References build_edge_list().
Referenced by libMesh::UnstructuredMesh::stitching_helper(), MeshInputTest::testLowOrderEdgeBlocks(), WriteEdgesetData::testWriteImpl(), and libMesh::ExodusII_IO_Helper::write_elements().
| std::vector< BoundaryInfo::BCTuple > libMesh::BoundaryInfo::build_edge_list | ( | ) | const |
As above, but the library creates and fills in a vector of (elem-id, side-id, bc-id) triplets and returns it to the user, taking advantage of guaranteed RVO.
Definition at line 3163 of file boundary_info.C.
References _boundary_edge_id.
Referenced by build_edge_list().
| 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 2486 of file boundary_info.C.
References _boundary_node_id.
Referenced by libMesh::ExodusII_IO_Helper::initialize(), and libMesh::ExodusII_IO_Helper::write_nodesets().
| void libMesh::BoundaryInfo::build_node_list | ( | std::vector< dof_id_type > & | node_id_list, |
| std::vector< boundary_id_type > & | bc_id_list | ||
| ) | const |
Creates a list of nodes and ids for those nodes.
On a ReplicatedMesh this will include all nodes; on a DistributedMesh only semilocal nodes will be included.
Definition at line 2667 of file boundary_info.C.
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().
| std::vector< BoundaryInfo::NodeBCTuple > libMesh::BoundaryInfo::build_node_list | ( | NodeBCTupleSortBy | sort_by = NodeBCTupleSortBy::NODE_ID | ) | const |
Definition at line 2694 of file boundary_info.C.
References _boundary_node_id, BOUNDARY_ID, and NODE_ID.
| 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 2716 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 2514 of file boundary_info.C.
References _boundary_shellface_id.
Referenced by libMesh::ExodusII_IO_Helper::initialize(), and libMesh::ExodusII_IO_Helper::write_sidesets().
| void libMesh::BoundaryInfo::build_shellface_list | ( | std::vector< dof_id_type > & | element_id_list, |
| std::vector< unsigned short int > & | shellface_list, | ||
| std::vector< boundary_id_type > & | bc_id_list | ||
| ) | const |
Creates a list of element numbers, shellfaces, and boundary ids for those shellfaces.
On a ReplicatedMesh this will include all shellfaces; on a DistributedMesh only shellfaces of semilocal elements will be included.
Definition at line 3180 of file boundary_info.C.
References build_shellface_list().
Referenced by libMesh::UnstructuredMesh::stitching_helper(), and libMesh::ExodusII_IO_Helper::write_sidesets().
| std::vector< BoundaryInfo::BCTuple > libMesh::BoundaryInfo::build_shellface_list | ( | ) | const |
As above, but the library creates and fills in a vector of (elem-id, side-id, bc-id) triplets and returns it to the user, taking advantage of guaranteed RVO.
Definition at line 3211 of file boundary_info.C.
References _boundary_shellface_id.
Referenced by build_shellface_list().
| 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 2500 of file boundary_info.C.
References _boundary_side_id.
Referenced by libMesh::ExodusII_IO_Helper::initialize(), and libMesh::ExodusII_IO_Helper::write_sidesets().
| void libMesh::BoundaryInfo::build_side_list | ( | std::vector< dof_id_type > & | element_id_list, |
| std::vector< unsigned short int > & | side_list, | ||
| std::vector< boundary_id_type > & | bc_id_list | ||
| ) | const |
Creates a list of element numbers, sides, and ids for those sides.
On a ReplicatedMesh this will include all sides; on a DistributedMesh only sides of semilocal elements will be included.
Definition at line 3008 of file boundary_info.C.
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().
| std::vector< BoundaryInfo::BCTuple > libMesh::BoundaryInfo::build_side_list | ( | BCTupleSortBy | sort_by = BCTupleSortBy::ELEM_ID | ) | const |
Definition at line 3039 of file boundary_info.C.
References _boundary_side_id, BOUNDARY_ID, ELEM_ID, and SIDE_ID.
| 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 2957 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 343 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 1017 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 3580 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(), 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::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::MeshBase::get_info(), libMesh::System::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(), 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::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::prepare_for_use(), 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::System::read_legacy_data(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::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(), ConstraintOperatorTest::test1DCoarseningNewNodes(), ConstraintOperatorTest::test1DCoarseningOperator(), 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 1745 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 1365 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 3412 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 868 of file boundary_info.h.
References _boundary_ids.
Referenced by libMesh::DofMap::check_dirichlet_bcid_consistency(), MeshInputTest::testExodusIGASidesets(), BoundaryInfoTest::testMesh(), BoundaryInfoTest::testRenumber(), BoundaryInfoTest::testSelectiveRenumber(), and libMesh::FroIO::write().
|
inline |
Definition at line 890 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 997 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 3401 of file boundary_info.C.
References _es_id_to_name.
Referenced by libMesh::ExodusII_IO_Helper::write_elements().
|
inline |
Definition at line 979 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 3669 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 3417 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 906 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 991 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 3386 of file boundary_info.C.
References _ns_id_to_name.
Referenced by libMesh::ExodusII_IO_Helper::write_nodesets().
|
inline |
Definition at line 971 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 899 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 600 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 881 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 1003 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 3370 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 963 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 1333 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::FEMContext::has_side_boundary_id(), LinearElasticityWithContact::initialize_contact_load_paths(), main(), AugmentSparsityOnInterface::mesh_reinit(), operator==(), SolidSystem::side_time_derivative(), 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 1527 of file boundary_info.C.
References boundary_ids().
|
inline |
Definition at line 1009 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 3676 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 2578 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(), 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 1357 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 1702 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 1425 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 2599 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 2643 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::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_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::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 1711 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 1493 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 2621 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 3396 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, _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 156 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 2900 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 2844 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 3227 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 3290 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::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_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::System::read_legacy_data(), 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(), 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(), MeshInputTest::testLowOrderEdgeBlocks(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), WriteVecAndScalar::testSolution(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), 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 1721 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 1435 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 1503 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 361 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::MeshTetInterface::delete_2D_hull_elements(), libMesh::DistributedMesh::delete_remote_elements(), main(), libMesh::TetGenMeshInterface::pointset_convexhull(), and libMesh::MeshBase::prepare_for_use().
| void libMesh::BoundaryInfo::remove | ( | const Node * | node | ) |
Removes the boundary conditions associated with node node, if any exist.
Definition at line 1775 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 1798 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 1810 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 1829 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 1979 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 1937 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 1785 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 2032 of file boundary_info.C.
References _boundary_ids, _boundary_node_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(), 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 1848 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 1867 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 2006 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 1885 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 1901 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 1952 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 2185 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 2058 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 2261 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 2224 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 2146 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 977 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 969 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 961 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 1459 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 1537 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 2300 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 BoundaryInfoTest::testBoundaryOnChildrenBoundarySides().
| 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 2393 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 3381 of file boundary_info.C.
References _ss_id_to_name.
Referenced by libMesh::AbaqusIO::assign_sideset_ids(), libMesh::MeshTools::Generation::build_cube(), build_side_list_from_node_list(), libMesh::UNVIO::groups_in(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::GmshIO::read_mesh(), MeshStitchTest::renameAndShift(), MeshInputTest::testGmshBCIDOverlap(), BoundaryInfoTest::testNameCopying(), BoundaryInfoTest::testRenumber(), BoundaryInfoTest::testSelectiveRenumber(), 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 440 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 453 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 467 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 429 of file boundary_info.C.
References _boundary_ids, libMesh::ParallelObject::_communicator, _global_boundary_ids, _mesh, 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 2529 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 1058 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 1092 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 1050 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 1066 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 1074 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 1081 of file boundary_info.h.
Referenced by add_side(), allow_children_on_boundary_side(), boundary_ids(), is_children_on_boundary_side(), 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 1126 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 1176 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 1104 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 1043 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 1137 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 1167 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(), 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 1149 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 1115 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 1158 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 986 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