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 | 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 | 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... | |
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 | 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 () |
Adds nodes with boundary ids based on the side's boundary ids they are connected to. More... | |
void | build_side_list_from_node_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 686 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 643 of file boundary_info.h.
|
strong |
Enumerator | |
---|---|
ELEM_ID | |
SIDE_ID | |
BOUNDARY_ID | |
UNSORTED |
Definition at line 687 of file boundary_info.h.
|
strong |
Enumerator | |
---|---|
NODE_ID | |
BOUNDARY_ID | |
UNSORTED |
Definition at line 644 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 102 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 3046 of file boundary_info.C.
References _boundary_side_id, _mesh, libMesh::as_range(), 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(), libMesh::Elem::subdomain_id(), and libMesh::Elem::top_parent().
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 955 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(), 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 964 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 994 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 604 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 620 of file boundary_info.C.
References _boundary_side_id, _find_id_maps(), _mesh, libMesh::MeshBase::add_elem(), libMesh::MeshBase::add_elem_integer(), libMesh::as_range(), libMesh::Elem::build_side_ptr(), libMesh::MeshBase::elem_ptr(), libMesh::DofObject::id(), libMesh::Elem::INACTIVE, invalid_id, libMesh::Elem::invalid_subdomain_id, libMesh::invalid_uint, libMesh::Elem::is_node_on_side(), 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(), n_nodes, libMesh::Elem::n_nodes(), libMesh::Elem::n_sides(), libMesh::Elem::n_vertices(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::node_ptr(), libMesh::MeshBase::parallel_max_unique_id(), libMesh::Elem::parent(), libMesh::Elem::point(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), libMesh::remote_elem, libMesh::DofObject::set_extra_integer(), libMesh::Elem::set_interior_parent(), libMesh::Elem::set_neighbor(), libMesh::Elem::set_parent(), libMesh::Elem::side_index_range(), and libMesh::Elem::top_parent().
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 884 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 867 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 904 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 1048 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 1057 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 1087 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 1140 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(), 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::UnstructuredMesh::stitching_helper(), libMesh::Elem::swap2boundarysides(), BoundaryInfoTest::testBoundaryOnChildrenBoundaryIDs(), BoundaryInfoTest::testBoundaryOnChildrenBoundarySides(), BoundaryInfoTest::testBoundaryOnChildrenElementsRefineCoarsen(), BoundaryInfoTest::testBoundaryOnChildrenErrors(), PeriodicBCTest::testPeriodicBC(), transfer_boundary_ids_from_children(), 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 1149 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 1195 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 923 of file boundary_info.h.
References _children_on_boundary.
Referenced by 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 1278 of file boundary_info.C.
References _boundary_node_id, and libMesh::as_range().
Referenced by 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::GhostPointNeighbors::operator()(), libMesh::BoundaryProjectSolution::operator()(), operator==(), 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::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 1471 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 2670 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 2701 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 2734 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 2765 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 2093 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 2274 of file boundary_info.C.
Referenced by libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::UnstructuredMesh::stitching_helper(), 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 2301 of file boundary_info.C.
References _boundary_node_id, BOUNDARY_ID, and NODE_ID.
void libMesh::BoundaryInfo::build_node_list_from_side_list | ( | ) |
Adds nodes with boundary ids based on the side's boundary ids they are connected to.
Definition at line 2323 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 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 2121 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 2782 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 2813 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 2107 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 2610 of file boundary_info.C.
Referenced by libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::UnstructuredMesh::stitching_helper(), 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 2641 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 | ( | ) |
Adds sides to a sideset if every node on that side are in the same sideset.
Definition at line 2560 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().
void libMesh::BoundaryInfo::clear | ( | ) |
Clears the underlying data structures and restores the object to a pristine state with no data stored.
Definition at line 342 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 950 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 3194 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::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< 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::EigenSystem::add_matrices(), libMesh::System::add_matrix(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::System::add_variable(), libMesh::System::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::FEMSystem::assemble_qoi(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::MeshCommunication::assign_global_indices(), libMesh::Partitioner::assign_partitioning(), libMesh::MeshTools::Generation::build_extrusion(), 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::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< libMesh::Number >::create_submatrix_nosort(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::RBEIMEvaluation::distribute_bfs(), libMesh::DofMap::distribute_dofs(), 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::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::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::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_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_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::DofMap::n_constrained_dofs(), 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::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(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshRefinement::refine_and_coarsen_elements(), 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::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(), ConstraintOperatorTest::testCoreform(), MeshInputTest::testExodusIGASidesets(), MeshTriangulationTest::testFoundCenters(), PointLocatorTest::testLocator(), BoundaryInfoTest::testMesh(), PointLocatorTest::testPlanar(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testProjectCubeWithMeshFunction(), BoundaryInfoTest::testRenumber(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), MeshTriangulationTest::testTriangulatorRoundHole(), 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(), 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::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 1590 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 1298 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 3017 of file boundary_info.C.
References _es_id_to_name.
Referenced by libMesh::ExodusII_IO_Helper::read_edge_blocks(), 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 776 of file boundary_info.h.
References _boundary_ids.
Referenced by libMesh::DofMap::check_dirichlet_bcid_consistency(), MeshInputTest::testExodusIGASidesets(), BoundaryInfoTest::testMesh(), BoundaryInfoTest::testRenumber(), and libMesh::FroIO::write().
|
inline |
Definition at line 798 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(), and WriteEdgesetData::testWriteImpl().
|
inline |
Definition at line 905 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 3005 of file boundary_info.C.
References _es_id_to_name.
Referenced by libMesh::ExodusII_IO_Helper::write_elements().
|
inline |
Definition at line 887 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 3283 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 3022 of file boundary_info.C.
References _es_id_to_name, _ns_id_to_name, _ss_id_to_name, invalid_id, and libMesh::Quality::name().
Referenced by HDGProblem::init().
|
inline |
Definition at line 814 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(), and MeshStitchTest::testBoundaryInfo().
|
inline |
Definition at line 899 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 2989 of file boundary_info.C.
References _ns_id_to_name.
Referenced by libMesh::ExodusII_IO_Helper::write_nodesets().
|
inline |
Definition at line 879 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 807 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 552 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 789 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(), and MeshStitchTest::testBoundaryInfo().
|
inline |
Definition at line 911 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 2972 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 871 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(), 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 1266 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(), BoundaryInfoTest::testBoundaryOnChildrenElementsRefineCoarsen(), SystemsTest::testBoundaryProjectCube(), 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 1460 of file boundary_info.C.
References boundary_ids().
|
inline |
Definition at line 917 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 3290 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(), and renumber_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 2185 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 396 of file boundary_info.h.
References _boundary_ids.
Referenced by libMesh::MeshTools::Subdivision::all_subdivision(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testLowOrderEdgeBlocks(), BoundaryInfoTest::testMesh(), BoundaryInfoTest::testRenumber(), and libMesh::FroIO::write().
Node
node
. Definition at line 1290 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 1547 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 1358 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 2206 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 2250 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::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::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::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_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::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::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 1556 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 1426 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 2228 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 3000 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(), 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 109 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 155 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 2503 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 2447 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 2829 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 2892 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::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_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofMap::distribute_scalar_dofs(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMap::end_dof(), libMesh::DofMap::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::MeshFunction::find_element(), libMesh::MeshFunction::find_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMap::first_dof(), libMesh::DofMap::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::Nemesis_IO_Helper::get_loadbal_param(), libMesh::DofMap::get_local_constraints(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SparsityPattern::Build::handle_vi_vj(), libMesh::LaplaceMeshSmoother::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), HeatSystem::init_data(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_element_variables(), libMesh::ExodusII_IO_Helper::initialize_global_variables(), libMesh::ExodusII_IO_Helper::initialize_nodal_variables(), libMesh::DistributedMesh::insert_elem(), libMesh::DofMap::is_evaluable(), libMesh::SparsityPattern::Build::join(), libMesh::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(), n_edge_conds(), libMesh::DofMap::n_local_dofs(), libMesh::System::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::SparsityPattern::Build::operator()(), 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::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::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::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testDynaFileMappings(), MeshInputTest::testDynaNoSplines(), MeshInputTest::testDynaReadElem(), MeshInputTest::testDynaReadPatch(), MeshInputTest::testExodusFileMappings(), MeshInputTest::testExodusIGASidesets(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshInputTest::testLowOrderEdgeBlocks(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), BoundaryInfoTest::testShellFaceConstraints(), MeshInputTest::testSingleElementImpl(), WriteVecAndScalar::testSolution(), CheckpointIOTest::testSplitter(), MeshInputTest::testTetgenIO(), libMesh::MeshTools::total_weight(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::DTKAdapter::update_variable_values(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::CheckpointIO::write(), libMesh::EquationSystems::write(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_data(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_element_values_element_major(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_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 1566 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 1368 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 1436 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 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 360 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, _global_boundary_ids, _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(), and TIMPI::Communicator::set_union().
Referenced by libMesh::UnstructuredMesh::all_first_order(), clear_stitched_boundary_side_ids(), libMesh::TetGenMeshInterface::delete_2D_hull_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 1620 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::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 1643 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 1655 of file boundary_info.C.
References _boundary_edge_id, libMesh::Elem::level(), libMesh::libmesh_assert(), and libMesh::Elem::n_edges().
Referenced by 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 1674 of file boundary_info.C.
References _boundary_edge_id, libMesh::Elem::level(), libMesh::libmesh_assert(), and libMesh::Elem::n_edges().
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 1782 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, _node_boundary_ids, _ns_id_to_name, _shellface_boundary_ids, _side_boundary_ids, and _ss_id_to_name.
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 1630 of file boundary_info.C.
References _boundary_node_id, and libMesh::libmesh_assert().
Referenced by clear_stitched_boundary_side_ids(), and renumber_id().
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 1693 of file boundary_info.C.
References _boundary_shellface_id, libMesh::Elem::level(), and libMesh::libmesh_assert().
Referenced by renumber_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 1712 of file boundary_info.C.
References _boundary_shellface_id, libMesh::Elem::level(), and libMesh::libmesh_assert().
Removes all boundary conditions associated with side side
of element elem
, if any exist.
Definition at line 1730 of file boundary_info.C.
References _boundary_side_id, libMesh::libmesh_assert(), and libMesh::Elem::n_sides().
Referenced by main(), renumber_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 1746 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::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 1819 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().
|
inline |
Definition at line 885 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 877 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 869 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 1392 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().
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 1907 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 2000 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 2984 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(), BoundaryInfoTest::testNameCopying(), BoundaryInfoTest::testRenumber(), 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 428 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 441 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. Use a temporary serializer here.
Re-create the boundary mesh.
Definition at line 455 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::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::MeshBase::set_n_partitions(), and libMesh::Partitioner::set_node_processor_ids().
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 2136 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 966 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_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 1000 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_id(), renumber_id(), and sync().
|
private |
Data structure that maps nodes in the mesh to boundary ids.
Definition at line 958 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_id(), remove_node(), and renumber_id().
|
private |
Data structure that maps faces of shell elements to boundary ids.
This is only relevant for shell elements.
Definition at line 974 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_id(), remove_shellface(), renumber_id(), and shellface_boundary_ids().
|
private |
Data structure that maps sides of elements to boundary ids.
Definition at line 982 of file boundary_info.h.
Referenced by _find_id_maps(), add_elements(), 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_id(), remove_side(), renumber_id(), side_with_boundary_id(), sides_with_boundary_id(), and transfer_boundary_ids_from_children().
|
private |
Definition at line 989 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_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::ParallelObject::comm(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::operator=(), libMesh::ParallelObject::processor_id(), and regenerate_id_sets().
|
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 1034 of file boundary_info.h.
Referenced by add_edge(), clear(), get_edge_boundary_ids(), operator=(), operator==(), regenerate_id_sets(), remove_id(), and renumber_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 1084 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_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 1012 of file boundary_info.h.
Referenced by get_global_boundary_ids(), operator=(), operator==(), regenerate_id_sets(), and remove_id().
|
private |
A pointer to the Mesh this boundary info pertains to.
Definition at line 951 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(), and sync().
|
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 1045 of file boundary_info.h.
Referenced by add_node(), clear(), get_node_boundary_ids(), operator=(), operator==(), regenerate_id_sets(), remove_id(), and renumber_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 1075 of file boundary_info.h.
Referenced by clear(), get_id_by_name(), get_nodeset_name(), get_nodeset_name_map(), nodeset_name(), operator=(), operator==(), regenerate_id_sets(), remove_id(), renumber_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 1057 of file boundary_info.h.
Referenced by add_shellface(), clear(), get_shellface_boundary_ids(), operator=(), operator==(), regenerate_id_sets(), remove_id(), and renumber_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 1023 of file boundary_info.h.
Referenced by add_side(), clear(), get_side_boundary_ids(), operator=(), operator==(), regenerate_id_sets(), remove_id(), and renumber_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 1066 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_id(), renumber_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 894 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(), 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().