Used by the Mesh to keep track of boundary nodes and elements. More...
#include <boundary_info.h>
Public Member Functions | |
BoundaryInfo & | operator= (const BoundaryInfo &other_boundary_info) |
~BoundaryInfo () | |
void | clear () |
void | regenerate_id_sets () |
void | sync (UnstructuredMesh &boundary_mesh) |
void | sync (const std::set< boundary_id_type > &requested_boundary_ids, UnstructuredMesh &boundary_mesh) |
void | sync (const std::set< boundary_id_type > &requested_boundary_ids, UnstructuredMesh &boundary_mesh, const std::set< subdomain_id_type > &subdomains_relative_to) |
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) |
void | add_elements (const std::set< boundary_id_type > &requested_boundary_ids, UnstructuredMesh &boundary_mesh) |
void | add_elements (const std::set< boundary_id_type > &requested_boundary_ids, UnstructuredMesh &boundary_mesh, const std::set< subdomain_id_type > &subdomains_relative_to) |
void | add_node (const Node *node, const boundary_id_type id) |
void | add_node (const dof_id_type node, const boundary_id_type id) |
void | add_node (const Node *node, const std::vector< boundary_id_type > &ids) |
void | clear_boundary_node_ids () |
void | add_edge (const dof_id_type elem, const unsigned short int edge, const boundary_id_type id) |
void | add_edge (const Elem *elem, const unsigned short int edge, const boundary_id_type id) |
void | add_edge (const Elem *elem, const unsigned short int edge, const std::vector< boundary_id_type > &ids) |
void | add_shellface (const dof_id_type elem, const unsigned short int shellface, const boundary_id_type id) |
void | add_shellface (const Elem *elem, const unsigned short int shellface, const boundary_id_type id) |
void | add_shellface (const Elem *elem, const unsigned short int shellface, const std::vector< boundary_id_type > &ids) |
void | add_side (const dof_id_type elem, const unsigned short int side, const boundary_id_type id) |
void | add_side (const Elem *elem, const unsigned short int side, const boundary_id_type id) |
void | add_side (const Elem *elem, const unsigned short int side, const std::vector< boundary_id_type > &ids) |
void | remove (const Node *node) |
void | remove (const Elem *elem) |
void | remove_edge (const Elem *elem, const unsigned short int edge) |
void | remove_edge (const Elem *elem, const unsigned short int edge, const boundary_id_type id) |
void | remove_shellface (const Elem *elem, const unsigned short int shellface) |
void | remove_shellface (const Elem *elem, const unsigned short int shellface, const boundary_id_type id) |
void | remove_side (const Elem *elem, const unsigned short int side) |
void | remove_side (const Elem *elem, const unsigned short int side, const boundary_id_type id) |
void | remove_id (boundary_id_type id) |
std::size_t | n_boundary_ids () const |
bool | has_boundary_id (const Node *const node, const boundary_id_type id) const |
std::vector< boundary_id_type > | boundary_ids (const Node *node) const |
void | boundary_ids (const Node *node, std::vector< boundary_id_type > &vec_to_fill) const |
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 |
std::vector< boundary_id_type > | 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 |
std::vector< boundary_id_type > | raw_edge_boundary_ids (const Elem *const elem, const unsigned short int edge) 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 |
boundary_id_type | boundary_id (const Elem *const elem, const unsigned short int side) const |
unsigned int | n_boundary_ids (const Elem *const elem, const unsigned short int side) const |
std::vector< boundary_id_type > | 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 |
std::vector< boundary_id_type > | raw_boundary_ids (const Elem *const elem, const unsigned short int side) 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 |
void | build_node_boundary_ids (std::vector< boundary_id_type > &b_ids) const |
void | build_side_boundary_ids (std::vector< boundary_id_type > &b_ids) const |
void | build_shellface_boundary_ids (std::vector< boundary_id_type > &b_ids) const |
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 |
std::vector< std::tuple< dof_id_type, boundary_id_type > > | build_node_list () const |
void | build_node_list_from_side_list () |
void | build_side_list_from_node_list () |
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 |
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > | build_side_list () 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 |
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > | build_active_side_list () const |
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 |
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > | build_edge_list () const |
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 |
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > | build_shellface_list () const |
const std::set< boundary_id_type > & | get_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=libMesh::out) const |
void | print_summary (std::ostream &out=libMesh::out) const |
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) |
boundary_id_type | get_id_by_name (const std::string &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 |
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 |
Protected Member Functions | |
BoundaryInfo (MeshBase &m) | |
Protected Attributes | |
const Parallel::Communicator & | _communicator |
Private Member Functions | |
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) |
Private Attributes | |
MeshBase & | _mesh |
std::multimap< const Node *, boundary_id_type > | _boundary_node_id |
std::multimap< const Elem *, std::pair< unsigned short int, boundary_id_type > > | _boundary_edge_id |
std::multimap< const Elem *, std::pair< unsigned short int, boundary_id_type > > | _boundary_shellface_id |
std::multimap< const Elem *, std::pair< unsigned short int, boundary_id_type > > | _boundary_side_id |
std::set< boundary_id_type > | _boundary_ids |
std::set< boundary_id_type > | _side_boundary_ids |
std::set< boundary_id_type > | _edge_boundary_ids |
std::set< boundary_id_type > | _node_boundary_ids |
std::set< boundary_id_type > | _shellface_boundary_ids |
std::map< boundary_id_type, std::string > | _ss_id_to_name |
std::map< boundary_id_type, std::string > | _ns_id_to_name |
Friends | |
class | MeshBase |
Used by the Mesh to keep track of boundary nodes and elements.
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.
|
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 49 of file boundary_info.C.
libMesh::BoundaryInfo::~BoundaryInfo | ( | ) |
|
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 2412 of file boundary_info.C.
References _boundary_side_id, _mesh, libMesh::as_range(), libMesh::Elem::build_side_ptr(), libMesh::ParallelObject::comm(), libMesh::MeshBase::elements_begin(), libMesh::MeshBase::elements_end(), libMesh::DofObject::id(), invalid_id, libMesh::DofObject::invalid_processor_id, libMesh::Elem::invalid_subdomain_id, libMesh::ParallelObject::n_processors(), libMesh::Elem::neighbor_ptr(), libMesh::MeshBase::pid_elements_begin(), libMesh::MeshBase::pid_elements_end(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), libMesh::Parallel::Communicator::set_union(), side, 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 670 of file boundary_info.C.
References _mesh, and libMesh::MeshBase::elem_ptr().
Referenced by libMesh::MeshTools::Modification::change_boundary_id(), copy_boundary_ids(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::ReplicatedMesh::stitching_helper(), and libMesh::Parallel::Packing< T >::unpack().
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 679 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _edge_boundary_ids, libMesh::as_range(), invalid_id, and libMesh::Elem::level().
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 706 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _edge_boundary_ids, libMesh::as_range(), invalid_id, and libMesh::Elem::level().
void libMesh::BoundaryInfo::add_elements | ( | const std::set< boundary_id_type > & | requested_boundary_ids, |
UnstructuredMesh & | boundary_mesh | ||
) |
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 333 of file boundary_info.C.
References libMesh::Elem::invalid_subdomain_id.
Referenced by 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 | ||
) |
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 347 of file boundary_info.C.
References _boundary_side_id, _find_id_maps(), _mesh, libMesh::MeshBase::add_elem(), libMesh::as_range(), libMesh::Elem::build_side_ptr(), libMesh::MeshBase::elem_ptr(), libMesh::MeshBase::element_ptr_range(), libMesh::DofObject::id(), libMesh::Elem::INACTIVE, invalid_id, libMesh::Elem::invalid_subdomain_id, libMesh::Elem::is_node_on_side(), libMesh::MeshBase::is_serial(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_ids(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), 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::Elem::set_interior_parent(), libMesh::Elem::set_neighbor(), libMesh::Elem::set_parent(), side, 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 599 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_extrusion(), build_node_list_from_side_list(), libMesh::MeshTools::Modification::change_boundary_id(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::GmshIO::read_mesh(), libMesh::CheckpointIO::read_nodesets(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::ReplicatedMesh::stitching_helper(), sync(), and libMesh::Parallel::Packing< T >::unpack().
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 584 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 619 of file boundary_info.C.
References _boundary_ids, _boundary_node_id, _node_boundary_ids, libMesh::as_range(), and invalid_id.
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 757 of file boundary_info.C.
References _mesh, and libMesh::MeshBase::elem_ptr().
Referenced by libMesh::MeshTools::Modification::change_boundary_id(), copy_boundary_ids(), libMesh::ExodusII_IO::read(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::ReplicatedMesh::stitching_helper(), and libMesh::Parallel::Packing< T >::unpack().
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 766 of file boundary_info.C.
References _boundary_ids, _boundary_shellface_id, _shellface_boundary_ids, libMesh::as_range(), invalid_id, and libMesh::Elem::level().
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 796 of file boundary_info.C.
References _boundary_ids, _boundary_shellface_id, _shellface_boundary_ids, libMesh::as_range(), invalid_id, and libMesh::Elem::level().
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 849 of file boundary_info.C.
References _mesh, libMesh::MeshBase::elem_ptr(), and side.
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(), build_side_list_from_node_list(), libMesh::MeshTools::Modification::change_boundary_id(), copy_boundary_ids(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::flatten(), libMesh::UNVIO::groups_in(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::CheckpointIO::read_bcs(), libMesh::GmshIO::read_mesh(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::ReplicatedMesh::stitching_helper(), and libMesh::Parallel::Packing< T >::unpack().
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 858 of file boundary_info.C.
References _boundary_ids, _boundary_side_id, _side_boundary_ids, libMesh::as_range(), invalid_id, libMesh::Elem::level(), and side.
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 885 of file boundary_info.C.
References _boundary_ids, _boundary_side_id, _side_boundary_ids, libMesh::as_range(), invalid_id, libMesh::Elem::level(), and side.
boundary_id_type libMesh::BoundaryInfo::boundary_id | ( | const Elem *const | elem, |
const unsigned short int | side | ||
) | const |
side
side of element elem
, or invalid_id
if the side
does not have an associated boundary id.Definition at line 1164 of file boundary_info.C.
References boundary_ids(), invalid_id, and side.
std::vector< boundary_id_type > libMesh::BoundaryInfo::boundary_ids | ( | const Node * | node | ) | const |
Node
node
.Definition at line 948 of file boundary_info.C.
Referenced by libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), boundary_id(), boundary_ids(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_extrusion(), build_node_list_from_side_list(), libMesh::MeshTools::Modification::change_boundary_id(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::flatten(), has_boundary_id(), n_boundary_ids(), libMesh::BoundaryProjectSolution::operator()(), libMesh::Parallel::Packing< T >::pack(), libMesh::FEMContext::side_boundary_ids(), libMesh::ReplicatedMesh::stitching_helper(), sync(), libMesh::XdrIO::write_serialized_bcs_helper(), and libMesh::XdrIO::write_serialized_nodesets().
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
.
This is the non-deprecated version of the function.
Definition at line 960 of file boundary_info.C.
References _boundary_node_id, and libMesh::as_range().
std::vector< boundary_id_type > libMesh::BoundaryInfo::boundary_ids | ( | const Elem *const | elem, |
const unsigned short int | side | ||
) | const |
side
side of element elem
.Definition at line 1196 of file boundary_info.C.
References boundary_ids(), and side.
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
.This is the non-deprecated version of the function.
Definition at line 1209 of file boundary_info.C.
References _boundary_side_id, libMesh::as_range(), libMesh::Elem::is_child_on_side(), libMesh::Elem::level(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::parent(), side, 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 2058 of file boundary_info.C.
References build_active_side_list().
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > 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 2089 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 2122 of file boundary_info.C.
References build_edge_list().
Referenced by libMesh::MeshTools::Modification::change_boundary_id(), and libMesh::ReplicatedMesh::stitching_helper().
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > 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 2153 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 1605 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 1735 of file boundary_info.C.
References build_node_list().
Referenced by libMesh::MeshTools::Modification::change_boundary_id(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::ReplicatedMesh::stitching_helper(), libMesh::CheckpointIO::write(), and libMesh::ExodusII_IO_Helper::write_nodesets().
std::vector< std::tuple< dof_id_type, boundary_id_type > > libMesh::BoundaryInfo::build_node_list | ( | ) | const |
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.
Definition at line 1762 of file boundary_info.C.
References _boundary_node_id.
Referenced by build_node_list().
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 1779 of file boundary_info.C.
References _boundary_side_id, _mesh, add_node(), libMesh::Parallel::any_source, boundary_ids(), libMesh::ParallelObject::comm(), libMesh::Parallel::Communicator::get_unique_tag(), libMesh::MeshBase::is_serial(), libMesh::ParallelObject::n_processors(), libMesh::MeshBase::node_ptr(), libMesh::MeshBase::node_ptr_range(), libMesh::ParallelObject::processor_id(), libMesh::Parallel::Communicator::receive(), libMesh::Parallel::Communicator::send(), side, and libMesh::Parallel::wait().
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 1633 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 2170 of file boundary_info.C.
References build_shellface_list().
Referenced by libMesh::MeshTools::Modification::change_boundary_id(), libMesh::ReplicatedMesh::stitching_helper(), and libMesh::ExodusII_IO_Helper::write_sidesets().
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > 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 2201 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 1619 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 2007 of file boundary_info.C.
References build_side_list().
Referenced by libMesh::MeshTools::Modification::change_boundary_id(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::ReplicatedMesh::stitching_helper(), libMesh::FroIO::write(), libMesh::CheckpointIO::write(), libMesh::GmshIO::write_mesh(), and libMesh::ExodusII_IO_Helper::write_sidesets().
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > libMesh::BoundaryInfo::build_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 2038 of file boundary_info.C.
References _boundary_side_id.
Referenced by build_side_list().
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 1959 of file boundary_info.C.
References _boundary_node_id, _mesh, libMesh::MeshBase::active_element_ptr_range(), add_side(), libMesh::as_range(), nodeset_name(), libMesh::out, side, 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 107 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _boundary_node_id, _boundary_shellface_id, _boundary_side_id, _edge_boundary_ids, _node_boundary_ids, _shellface_boundary_ids, and _side_boundary_ids.
Referenced by operator=(), and ~BoundaryInfo().
void libMesh::BoundaryInfo::clear_boundary_node_ids | ( | ) |
Clears all the boundary information from all of the nodes in the mesh
Definition at line 665 of file boundary_info.C.
References _boundary_node_id.
|
inlineinherited |
Parallel::Communicator
object used by this mesh. Definition at line 89 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(), _find_id_maps(), libMesh::SlepcEigenSolver< T >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< T >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_mult_add(), libMesh::EquationSystems::_read_impl(), libMesh::MeshRefinement::_refine_elements(), libMesh::MeshRefinement::_smooth_flags(), libMesh::PetscDMWrapper::add_dofs_helper(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::ImplicitSystem::add_matrix(), libMesh::System::add_vector(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::FEMSystem::assemble_qoi(), libMesh::MeshCommunication::assign_global_indices(), libMesh::DofMap::attach_matrix(), 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_dims(), libMesh::System::calculate_norm(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::PetscDMWrapper::check_section_n_dofs(), 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::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::create_bounding_box(), libMesh::MeshTools::create_nodal_bounding_box(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::MeshTools::create_subdomain_bounding_box(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), DMVariableBounds_libMesh(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::EpetraVector< T >::EpetraVector(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::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_nelem_target(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::DofMap::get_info(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::LocationMap< T >::init(), libMesh::TimeSolver::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::EigenSystem::init_data(), libMesh::EigenSystem::init_matrices(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_postcheck(), libMesh::libmesh_petsc_snes_residual(), libMesh::libmesh_petsc_snes_residual_helper(), libMesh::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::limit_overrefined_boundary(), libMesh::MeshRefinement::limit_underrefined_boundary(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshRefinement::make_flags_parallel_consistent(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_new_nodes_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::FEMSystem::mesh_position_set(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), n_boundary_conds(), n_edge_conds(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::MeshTools::n_levels(), n_nodeset_conds(), libMesh::MeshTools::n_p_levels(), n_shellface_conds(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_n_elem(), libMesh::DistributedMesh::parallel_n_nodes(), libMesh::SparsityPattern::Build::parallel_sync(), libMesh::MeshTools::paranoid_n_levels(), libMesh::petsc_auto_fieldsplit(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::MeshBase::prepare_for_use(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::System::read_legacy_data(), 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::MeshBase::recalculate_n_partitions(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::CheckpointIO::select_split_config(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::split_mesh(), libMesh::MeshBase::subdomain_ids(), sync(), libMesh::MeshRefinement::test_level_one(), libMesh::MeshRefinement::test_unflagged(), libMesh::MeshTools::total_weight(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), 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().
void libMesh::BoundaryInfo::copy_boundary_ids | ( | const BoundaryInfo & | old_boundary_info, |
const Elem *const | old_elem, | ||
const Elem *const | new_elem | ||
) |
Definition at line 1291 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(), and libMesh::UnstructuredMesh::all_second_order().
std::vector< boundary_id_type > libMesh::BoundaryInfo::edge_boundary_ids | ( | const Elem *const | elem, |
const unsigned short int | edge | ||
) | const |
edge
edge of element elem
.Definition at line 981 of file boundary_info.C.
Referenced by libMesh::MeshTools::Modification::change_boundary_id(), n_edge_boundary_ids(), libMesh::BoundaryProjectSolution::operator()(), libMesh::Parallel::Packing< T >::pack(), libMesh::ReplicatedMesh::stitching_helper(), and libMesh::XdrIO::write_serialized_bcs_helper().
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
.This is the non-deprecated version of the function.
Definition at line 994 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::Elem::neighbor_ptr(), libMesh::Elem::parent(), side, libMesh::Elem::side_index_range(), libMesh::Elem::top_parent(), and libMesh::Elem::which_child_am_i().
|
inline |
DistributedMesh-compatible code may need a set_union or other manipulations to work with sets of boundary ids which include ids on remote parts of the mesh.
Definition at line 781 of file boundary_info.h.
References _boundary_ids.
Referenced by libMesh::DofMap::check_dirichlet_bcid_consistency(), and libMesh::FroIO::write().
|
inline |
Definition at line 797 of file boundary_info.h.
References _edge_boundary_ids.
boundary_id_type libMesh::BoundaryInfo::get_id_by_name | ( | const std::string & | name | ) | const |
invalid_id
otherwise. Definition at line 2393 of file boundary_info.C.
References _ns_id_to_name, _ss_id_to_name, invalid_id, and libMesh::Quality::name().
|
inline |
Definition at line 813 of file boundary_info.h.
References _node_boundary_ids.
Referenced by libMesh::Nemesis_IO_Helper::compute_num_global_nodesets().
const std::string & libMesh::BoundaryInfo::get_nodeset_name | ( | boundary_id_type | id | ) | const |
Definition at line 2377 of file boundary_info.C.
References _ns_id_to_name.
Referenced by libMesh::ExodusII_IO_Helper::write_nodesets().
|
inline |
Definition at line 868 of file boundary_info.h.
References _ns_id_to_name.
Referenced by libMesh::CheckpointIO::write_bc_names(), and libMesh::XdrIO::write_serialized_bc_names().
|
inline |
Definition at line 806 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 282 of file boundary_info.C.
References libMesh::MeshBase::active_element_ptr_range(), libMesh::Elem::build_side_ptr(), libMesh::Elem::interior_parent(), libMesh::Real, side, and libMesh::Elem::side_index_range().
|
inline |
Definition at line 788 of file boundary_info.h.
References _side_boundary_ids.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), and libMesh::Nemesis_IO_Helper::compute_num_global_sidesets().
const std::string & libMesh::BoundaryInfo::get_sideset_name | ( | boundary_id_type | id | ) | const |
Definition at line 2360 of file boundary_info.C.
References _ss_id_to_name.
Referenced by libMesh::ExodusII_IO_Helper::write_sidesets().
|
inline |
Definition at line 860 of file boundary_info.h.
References _ss_id_to_name.
Referenced by libMesh::CheckpointIO::write_bc_names(), and libMesh::XdrIO::write_serialized_bc_names().
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 935 of file boundary_info.C.
References _boundary_node_id, and libMesh::as_range().
Referenced by libMesh::FEMContext::has_side_boundary_id().
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 1184 of file boundary_info.C.
References boundary_ids(), and side.
std::size_t libMesh::BoundaryInfo::n_boundary_conds | ( | ) | const |
This will be the correct global count even on a distributed mesh.
Definition at line 1646 of file boundary_info.C.
References _boundary_side_id, _mesh, libMesh::ParallelObject::comm(), libMesh::MeshBase::is_serial(), libMesh::ParallelObject::processor_id(), and libMesh::Parallel::Communicator::sum().
Referenced by libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Modification::flatten(), libMesh::AbaqusIO::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::write(), and libMesh::GmshIO::write_mesh().
|
inline |
Definition at line 354 of file boundary_info.h.
References _boundary_ids.
Referenced by libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::Parallel::Packing< T >::packable_size(), and libMesh::FroIO::write().
unsigned int libMesh::BoundaryInfo::n_boundary_ids | ( | const Node * | node | ) | const |
Node
node
. Definition at line 972 of file boundary_info.C.
References _boundary_node_id.
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 1246 of file boundary_info.C.
References boundary_ids(), and side.
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 1051 of file boundary_info.C.
References edge_boundary_ids().
Referenced by libMesh::Parallel::Packing< T >::packable_size().
std::size_t libMesh::BoundaryInfo::n_edge_conds | ( | ) | const |
This will be the correct global count even on a distributed mesh.
Definition at line 1667 of file boundary_info.C.
References _boundary_edge_id, _mesh, libMesh::ParallelObject::comm(), libMesh::MeshBase::is_serial(), libMesh::ParallelObject::processor_id(), and libMesh::Parallel::Communicator::sum().
Referenced by libMesh::Nemesis_IO::prepare_to_write_nodal_data(), libMesh::Nemesis_IO::write(), libMesh::ExodusII_IO::write(), libMesh::XdrIO::write(), and libMesh::ExodusII_IO::write_nodal_data_common().
std::size_t libMesh::BoundaryInfo::n_nodeset_conds | ( | ) | const |
This will be the correct global count even on a distributed mesh.
Definition at line 1711 of file boundary_info.C.
References _boundary_node_id, _mesh, libMesh::ParallelObject::comm(), libMesh::MeshBase::is_serial(), libMesh::ParallelObject::processor_id(), and libMesh::Parallel::Communicator::sum().
Referenced by libMesh::XdrIO::write().
|
inlineinherited |
Definition at line 95 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, and libMesh::Parallel::Communicator::size().
Referenced by _find_id_maps(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::add_node(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::FEMSystem::assembly(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::EnsightIO::EnsightIO(), libMesh::MeshBase::get_info(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::DofMap::local_variable_indices(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshBase::n_active_elem_on_proc(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::MeshBase::partition(), libMesh::PetscLinearSolver< T >::PetscLinearSolver(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), 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::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), 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_shellface_boundary_ids | ( | const Elem *const | elem, |
const unsigned short int | shellface | ||
) | const |
elem
.Definition at line 1130 of file boundary_info.C.
References shellface_boundary_ids().
Referenced by libMesh::Parallel::Packing< T >::packable_size().
std::size_t libMesh::BoundaryInfo::n_shellface_conds | ( | ) | const |
This will be the correct global count even on a distributed mesh.
Definition at line 1689 of file boundary_info.C.
References _boundary_shellface_id, _mesh, libMesh::ParallelObject::comm(), libMesh::MeshBase::is_serial(), libMesh::ParallelObject::processor_id(), and libMesh::Parallel::Communicator::sum().
Referenced by libMesh::XdrIO::write().
std::string & libMesh::BoundaryInfo::nodeset_name | ( | boundary_id_type | id | ) |
Definition at line 2388 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(), and libMesh::ExodusII_IO::read().
BoundaryInfo & libMesh::BoundaryInfo::operator= | ( | const BoundaryInfo & | other_boundary_info | ) |
Actual copying operation.
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 55 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _boundary_node_id, _boundary_shellface_id, _boundary_side_id, _edge_boundary_ids, _mesh, _node_boundary_ids, _shellface_boundary_ids, _side_boundary_ids, clear(), libMesh::MeshBase::elem_ptr(), and libMesh::MeshBase::node_ptr().
void libMesh::BoundaryInfo::print_info | ( | std::ostream & | out = libMesh::out | ) | const |
Prints the boundary information data structure.
Definition at line 2217 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 = libMesh::out | ) | const |
Prints a summary of the boundary information.
Definition at line 2280 of file boundary_info.C.
References _boundary_edge_id, _boundary_node_id, _boundary_shellface_id, and _boundary_side_id.
|
inlineinherited |
Definition at line 101 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, and libMesh::Parallel::Communicator::rank().
Referenced by _find_id_maps(), libMesh::EquationSystems::_read_impl(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), add_elements(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::FEMSystem::assembly(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::InfElemBuilder::build_inf_elem(), build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::ExodusII_IO_Helper::close(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::compute_communication_map_parameters(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::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::MeshTools::correct_node_proc_ids(), libMesh::ExodusII_IO_Helper::create(), libMesh::DistributedMesh::delete_elem(), libMesh::DistributedMesh::delete_node(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMap::end_dof(), libMesh::DofMap::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::MeshFunction::find_element(), libMesh::MeshFunction::find_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMap::first_dof(), libMesh::DofMap::first_old_dof(), libMesh::Nemesis_IO_Helper::get_cmap_params(), libMesh::Nemesis_IO_Helper::get_eb_info_global(), libMesh::Nemesis_IO_Helper::get_elem_cmap(), libMesh::Nemesis_IO_Helper::get_elem_map(), libMesh::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::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SparsityPattern::Build::handle_vi_vj(), libMesh::SystemSubsetBySubdomain::init(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_element_variables(), libMesh::ExodusII_IO_Helper::initialize_global_variables(), libMesh::ExodusII_IO_Helper::initialize_nodal_variables(), libMesh::DistributedMesh::insert_elem(), libMesh::DofMap::is_evaluable(), libMesh::SparsityPattern::Build::join(), libMesh::DofMap::last_dof(), libMesh::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(), libMesh::MeshRefinement::make_coarsening_compatible(), 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::SparsityPattern::Build::operator()(), libMesh::DistributedMesh::own_node(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::Nemesis_IO_Helper::put_cmap_params(), libMesh::Nemesis_IO_Helper::put_elem_cmap(), libMesh::Nemesis_IO_Helper::put_elem_map(), libMesh::Nemesis_IO_Helper::put_loadbal_param(), libMesh::Nemesis_IO_Helper::put_node_cmap(), libMesh::Nemesis_IO_Helper::put_node_map(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::ExodusII_IO_Helper::read_global_values(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::System::read_legacy_data(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::System::read_serialized_data(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::CheckpointIO::select_split_config(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::MeshTools::total_weight(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::Parallel::Packing< T >::unpack(), libMesh::DistributedMesh::update_parallel_id_counts(), 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_elements(), libMesh::ExodusII_IO::write_global_data(), libMesh::ExodusII_IO_Helper::write_global_values(), libMesh::System::write_header(), libMesh::ExodusII_IO::write_information_records(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::UCDIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::System::write_parallel_data(), 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::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().
std::vector< boundary_id_type > libMesh::BoundaryInfo::raw_boundary_ids | ( | const Elem *const | elem, |
const unsigned short int | side | ||
) | 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 1257 of file boundary_info.C.
References side.
Referenced by copy_boundary_ids().
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.
This is the non-deprecated version of the function.
Definition at line 1270 of file boundary_info.C.
References _boundary_side_id, libMesh::as_range(), libMesh::Elem::parent(), and side.
std::vector< boundary_id_type > libMesh::BoundaryInfo::raw_edge_boundary_ids | ( | const Elem *const | elem, |
const unsigned short int | edge | ||
) | 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 1062 of file boundary_info.C.
Referenced by copy_boundary_ids().
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.
This is the non-deprecated version of the function.
Definition at line 1075 of file boundary_info.C.
References _boundary_edge_id, libMesh::as_range(), and libMesh::Elem::parent().
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 1140 of file boundary_info.C.
References _boundary_shellface_id, libMesh::as_range(), 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 122 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _boundary_node_id, _boundary_shellface_id, _boundary_side_id, _edge_boundary_ids, _node_boundary_ids, _shellface_boundary_ids, and _side_boundary_ids.
Referenced by libMesh::UnstructuredMesh::all_first_order(), libMesh::TetGenMeshInterface::delete_2D_hull_elements(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::TetGenMeshInterface::pointset_convexhull(), and libMesh::ReplicatedMesh::stitching_helper().
void libMesh::BoundaryInfo::remove | ( | const Node * | node | ) |
Removes the boundary conditions associated with node node
, if any exist.
Definition at line 1321 of file boundary_info.C.
References _boundary_node_id.
Referenced by libMesh::MeshRefinement::_coarsen_elements(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Modification::change_boundary_id(), libMesh::ReplicatedMesh::delete_elem(), libMesh::DistributedMesh::delete_elem(), libMesh::ReplicatedMesh::delete_node(), libMesh::DistributedMesh::delete_node(), 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 1331 of file boundary_info.C.
References _boundary_edge_id, _boundary_shellface_id, and _boundary_side_id.
void libMesh::BoundaryInfo::remove_edge | ( | const Elem * | elem, |
const unsigned short int | edge | ||
) |
Removes all boundary conditions associated with edge edge
of element elem
, if any exist.
Definition at line 1343 of file boundary_info.C.
References _boundary_edge_id, and libMesh::Elem::level().
Referenced by libMesh::MeshTools::Modification::change_boundary_id().
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 1370 of file boundary_info.C.
References _boundary_edge_id, and libMesh::Elem::level().
void libMesh::BoundaryInfo::remove_id | ( | boundary_id_type | id | ) |
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.
Definition at line 1511 of file boundary_info.C.
References _boundary_edge_id, _boundary_ids, _boundary_node_id, _boundary_shellface_id, _boundary_side_id, _edge_boundary_ids, _node_boundary_ids, _ns_id_to_name, _shellface_boundary_ids, _side_boundary_ids, and _ss_id_to_name.
Referenced by libMesh::MeshTools::Modification::change_boundary_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 1397 of file boundary_info.C.
References _boundary_shellface_id, and libMesh::Elem::level().
Referenced by libMesh::MeshTools::Modification::change_boundary_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 1427 of file boundary_info.C.
References _boundary_shellface_id, and libMesh::Elem::level().
void libMesh::BoundaryInfo::remove_side | ( | const Elem * | elem, |
const unsigned short int | side | ||
) |
Removes all boundary conditions associated with side side
of element elem
, if any exist.
Definition at line 1460 of file boundary_info.C.
References _boundary_side_id, libMesh::Elem::level(), and side.
Referenced by libMesh::MeshTools::Modification::change_boundary_id(), and libMesh::ReplicatedMesh::stitching_helper().
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 1487 of file boundary_info.C.
References _boundary_side_id, and side.
|
inline |
Definition at line 866 of file boundary_info.h.
References _ns_id_to_name.
Referenced by libMesh::CheckpointIO::read_bc_names(), libMesh::CheckpointIO::read_header(), and libMesh::XdrIO::read_serialized_bc_names().
|
inline |
Definition at line 858 of file boundary_info.h.
References _ss_id_to_name.
Referenced by libMesh::CheckpointIO::read_bc_names(), libMesh::CheckpointIO::read_header(), and libMesh::XdrIO::read_serialized_bc_names().
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 1096 of file boundary_info.C.
References _boundary_shellface_id, libMesh::as_range(), libMesh::Elem::level(), and libMesh::Elem::parent().
Referenced by libMesh::MeshTools::Modification::change_boundary_id(), n_shellface_boundary_ids(), libMesh::Parallel::Packing< T >::pack(), 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 1558 of file boundary_info.C.
References _boundary_side_id, libMesh::as_range(), libMesh::invalid_uint, libMesh::Elem::is_child_on_side(), libMesh::Elem::level(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::parent(), side, libMesh::Elem::top_parent(), and libMesh::Elem::which_child_am_i().
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints().
std::string & libMesh::BoundaryInfo::sideset_name | ( | boundary_id_type | id | ) |
Definition at line 2372 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::ExodusII_IO::read(), and libMesh::GmshIO::read_mesh().
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 163 of file boundary_info.C.
References _boundary_ids, _mesh, libMesh::ParallelObject::comm(), invalid_id, libMesh::MeshBase::is_serial(), and libMesh::Parallel::Communicator::set_union().
Referenced by 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 176 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 190 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::element_ptr_range(), libMesh::MeshBase::get_boundary_info(), libMesh::DofObject::id(), libMesh::MeshBase::is_serial(), libMesh::MeshBase::n_partitions(), libMesh::MeshBase::node_ptr(), libMesh::MeshBase::node_ptr_range(), libMesh::MeshBase::partitioner(), libMesh::MeshBase::prepare_for_use(), libMesh::MeshBase::set_n_partitions(), and libMesh::Partitioner::set_node_processor_ids().
|
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 910 of file boundary_info.h.
Referenced by add_edge(), build_edge_list(), clear(), edge_boundary_ids(), n_edge_conds(), operator=(), print_info(), print_summary(), raw_edge_boundary_ids(), regenerate_id_sets(), remove(), remove_edge(), and remove_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.
Definition at line 935 of file boundary_info.h.
Referenced by add_edge(), add_node(), add_shellface(), add_side(), clear(), get_boundary_ids(), n_boundary_ids(), operator=(), regenerate_id_sets(), remove_id(), and sync().
|
private |
Data structure that maps nodes in the mesh to boundary ids.
Definition at line 902 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(), has_boundary_id(), n_boundary_ids(), n_nodeset_conds(), operator=(), print_info(), print_summary(), regenerate_id_sets(), remove(), and remove_id().
|
private |
Data structure that maps faces of shell elements to boundary ids. This is only relevant for shell elements.
Definition at line 918 of file boundary_info.h.
Referenced by add_shellface(), build_shellface_boundary_ids(), build_shellface_list(), clear(), n_shellface_conds(), operator=(), print_info(), print_summary(), raw_shellface_boundary_ids(), regenerate_id_sets(), remove(), remove_id(), remove_shellface(), and shellface_boundary_ids().
|
private |
Data structure that maps sides of elements to boundary ids.
Definition at line 926 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(), n_boundary_conds(), operator=(), print_info(), print_summary(), raw_boundary_ids(), regenerate_id_sets(), remove(), remove_id(), remove_side(), and side_with_boundary_id().
|
protectedinherited |
Definition at line 107 of file parallel_object.h.
Referenced by libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::ParallelObject::comm(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::operator=(), and libMesh::ParallelObject::processor_id().
|
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
. Definition at line 953 of file boundary_info.h.
Referenced by add_edge(), clear(), get_edge_boundary_ids(), operator=(), regenerate_id_sets(), and remove_id().
|
private |
The Mesh this boundary info pertains to.
Definition at line 895 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(), n_boundary_conds(), n_edge_conds(), n_nodeset_conds(), n_shellface_conds(), operator=(), 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
. Definition at line 962 of file boundary_info.h.
Referenced by add_node(), clear(), get_node_boundary_ids(), operator=(), regenerate_id_sets(), and remove_id().
|
private |
This structure maintains the mapping of named node sets for file formats that support named blocks. Currently this is only implemented for ExodusII
Definition at line 986 of file boundary_info.h.
Referenced by get_id_by_name(), get_nodeset_name(), get_nodeset_name_map(), nodeset_name(), remove_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
. Definition at line 972 of file boundary_info.h.
Referenced by add_shellface(), clear(), get_shellface_boundary_ids(), operator=(), regenerate_id_sets(), and remove_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
. Definition at line 944 of file boundary_info.h.
Referenced by add_side(), clear(), get_side_boundary_ids(), operator=(), regenerate_id_sets(), and remove_id().
|
private |
This structure maintains the mapping of named side sets for file formats that support named blocks. Currently this is only implemented for ExodusII
Definition at line 979 of file boundary_info.h.
Referenced by get_id_by_name(), get_sideset_name(), get_sideset_name_map(), remove_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 875 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(), boundary_id(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Modification::flatten(), get_id_by_name(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::ReplicatedMesh::stitching_helper(), sync(), libMesh::XdrIO::write_serialized_bcs_helper(), and libMesh::XdrIO::write_serialized_nodesets().