20 #ifndef LIBMESH_BOUNDARY_INFO_H 21 #define LIBMESH_BOUNDARY_INFO_H 43 class UnstructuredMesh;
120 void sync (
const std::set<boundary_id_type> & requested_boundary_ids,
133 void sync (
const std::set<boundary_id_type> & requested_boundary_ids,
135 const std::set<subdomain_id_type> & subdomains_relative_to);
149 std::map<dof_id_type, dof_id_type> & node_id_map,
150 std::map<dof_id_type, unsigned char> & side_id_map,
151 Real tolerance=1.e-6);
163 void add_elements (
const std::set<boundary_id_type> & requested_boundary_ids,
172 void add_elements(
const std::set<boundary_id_type> & requested_boundary_ids,
174 const std::set<subdomain_id_type> & subdomains_relative_to);
195 const std::vector<boundary_id_type> & ids);
208 const unsigned short int edge,
217 const unsigned short int edge,
226 const unsigned short int edge,
227 const std::vector<boundary_id_type> & ids);
235 const unsigned short int shellface,
244 const unsigned short int shellface,
253 const unsigned short int shellface,
254 const std::vector<boundary_id_type> & ids);
261 const unsigned short int side,
269 const unsigned short int side,
277 const unsigned short int side,
278 const std::vector<boundary_id_type> & ids);
284 void remove (
const Node * node);
290 void remove (
const Elem * elem);
297 const unsigned short int edge);
304 const unsigned short int edge,
312 const unsigned short int shellface);
319 const unsigned short int shellface,
327 const unsigned short int side);
334 const unsigned short int side,
368 #ifdef LIBMESH_ENABLE_DEPRECATED 379 std::vector<boundary_id_type> & vec_to_fill)
const;
393 const unsigned short int edge)
const;
404 #ifdef LIBMESH_ENABLE_DEPRECATED 406 const unsigned short int edge)
const;
418 const unsigned short int edge,
419 std::vector<boundary_id_type> & vec_to_fill)
const;
433 #ifdef LIBMESH_ENABLE_DEPRECATED 435 const unsigned short int edge)
const;
450 const unsigned short int edge,
451 std::vector<boundary_id_type> & vec_to_fill)
const;
460 const unsigned short int shellface)
const;
469 const unsigned short int shellface,
470 std::vector<boundary_id_type> & vec_to_fill)
const;
482 const unsigned short int shellface,
483 std::vector<boundary_id_type> & vec_to_fill)
const;
490 const unsigned short int side,
506 #ifdef LIBMESH_ENABLE_DEPRECATED 508 const unsigned short int side)
const;
516 const unsigned short int side)
const;
525 #ifdef LIBMESH_ENABLE_DEPRECATED 527 const unsigned short int side)
const;
537 const unsigned short int side,
538 std::vector<boundary_id_type> & vec_to_fill)
const;
550 #ifdef LIBMESH_ENABLE_DEPRECATED 552 const unsigned short int side)
const;
565 const unsigned short int side,
566 std::vector<boundary_id_type> & vec_to_fill)
const;
574 const Elem *
const old_elem,
575 const Elem *
const new_elem);
650 #ifdef LIBMESH_ENABLE_DEPRECATED 652 std::vector<boundary_id_type> & bc_id_list)
const;
662 std::vector<std::tuple<dof_id_type, boundary_id_type>>
687 #ifdef LIBMESH_ENABLE_DEPRECATED 689 std::vector<unsigned short int> & side_list,
690 std::vector<boundary_id_type> & bc_id_list)
const;
698 std::vector<std::tuple<dof_id_type, unsigned short int, boundary_id_type>>
711 #ifdef LIBMESH_ENABLE_DEPRECATED 713 std::vector<unsigned short int> & side_list,
714 std::vector<boundary_id_type> & bc_id_list)
const;
722 std::vector<std::tuple<dof_id_type, unsigned short int, boundary_id_type>>
735 #ifdef LIBMESH_ENABLE_DEPRECATED 737 std::vector<unsigned short int> & edge_list,
738 std::vector<boundary_id_type> & bc_id_list)
const;
746 std::vector<std::tuple<dof_id_type, unsigned short int, boundary_id_type>>
759 #ifdef LIBMESH_ENABLE_DEPRECATED 761 std::vector<unsigned short int> & shellface_list,
762 std::vector<boundary_id_type> & bc_id_list)
const;
770 std::vector<std::tuple<dof_id_type, unsigned short int, boundary_id_type>>
885 void _find_id_maps (
const std::set<boundary_id_type> & requested_boundary_ids,
887 std::map<dof_id_type, dof_id_type> * node_id_map,
889 std::map<std::pair<dof_id_type, unsigned char>,
dof_id_type> * side_id_map,
890 const std::set<subdomain_id_type> & subdomains_relative_to);
901 std::multimap<
const Node *,
908 std::multimap<
const Elem *,
909 std::pair<unsigned short int, boundary_id_type>>
916 std::multimap<
const Elem *,
917 std::pair<unsigned short int, boundary_id_type>>
924 std::multimap<
const Elem *,
925 std::pair<unsigned short int, boundary_id_type>>
991 #endif // LIBMESH_BOUNDARY_INFO_H std::string name(const ElemQuality q)
void add_elements(const std::set< boundary_id_type > &requested_boundary_ids, UnstructuredMesh &boundary_mesh)
std::size_t n_boundary_conds() const
std::map< boundary_id_type, std::string > _ns_id_to_name
std::set< boundary_id_type > _node_boundary_ids
const std::set< boundary_id_type > & get_side_boundary_ids() const
void remove_edge(const Elem *elem, const unsigned short int edge)
A geometric point in (x,y,z) space associated with a DOF.
std::string & nodeset_name(boundary_id_type id)
bool has_boundary_id(const Node *const node, const boundary_id_type id) const
std::set< boundary_id_type > _edge_boundary_ids
void sync(UnstructuredMesh &boundary_mesh)
void build_node_list_from_side_list()
std::size_t n_edge_conds() const
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > build_edge_list() const
void remove_id(boundary_id_type id)
BoundaryInfo(MeshBase &m)
void remove_shellface(const Elem *elem, const unsigned short int shellface)
std::size_t n_shellface_conds() const
unsigned int n_shellface_boundary_ids(const Elem *const elem, const unsigned short int shellface) const
std::set< boundary_id_type > _boundary_ids
const std::map< boundary_id_type, std::string > & get_sideset_name_map() const
unsigned int side_with_boundary_id(const Elem *const elem, const boundary_id_type boundary_id) const
The base class for all geometric element types.
void print_info(std::ostream &out=libMesh::out) const
std::set< boundary_id_type > _side_boundary_ids
void build_side_boundary_ids(std::vector< boundary_id_type > &b_ids) const
void shellface_boundary_ids(const Elem *const elem, const unsigned short int shellface, 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
std::multimap< const Elem *, std::pair< unsigned short int, boundary_id_type > > _boundary_side_id
std::size_t n_boundary_ids() const
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > build_active_side_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_node_boundary_ids() const
std::map< boundary_id_type, std::string > _ss_id_to_name
std::vector< boundary_id_type > boundary_ids(const Node *node) const
void clear_boundary_node_ids()
boundary_id_type get_id_by_name(const std::string &name) const
std::map< boundary_id_type, std::string > & set_sideset_name_map()
void add_node(const Node *node, const boundary_id_type id)
const std::map< boundary_id_type, std::string > & get_nodeset_name_map() const
static const boundary_id_type invalid_id
std::multimap< const Node *, boundary_id_type > _boundary_node_id
Base class for Replicated and Distributed meshes.
void build_side_list_from_node_list()
void raw_shellface_boundary_ids(const Elem *const elem, const unsigned short int shellface, std::vector< boundary_id_type > &vec_to_fill) const
Used by the Mesh to keep track of boundary nodes and elements.
boundary_id_type boundary_id(const Elem *const elem, const unsigned short int side) const
An object whose state is distributed along a set of processors.
void regenerate_id_sets()
const std::string & get_nodeset_name(boundary_id_type id) const
std::string & sideset_name(boundary_id_type id)
BoundaryInfo & operator=(const BoundaryInfo &other_boundary_info)
const std::set< boundary_id_type > & get_boundary_ids() const
std::vector< boundary_id_type > raw_boundary_ids(const Elem *const elem, const unsigned short int side) const
void build_node_boundary_ids(std::vector< boundary_id_type > &b_ids) const
void print_summary(std::ostream &out=libMesh::out) const
void remove_side(const Elem *elem, const unsigned short int side)
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > build_side_list() const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
unsigned int n_edge_boundary_ids(const Elem *const elem, const unsigned short int edge) const
void copy_boundary_ids(const BoundaryInfo &old_boundary_info, const Elem *const old_elem, const Elem *const new_elem)
std::map< boundary_id_type, std::string > & set_nodeset_name_map()
const std::set< boundary_id_type > & get_edge_boundary_ids() const
void add_side(const dof_id_type elem, const unsigned short int side, const boundary_id_type id)
const std::string & get_sideset_name(boundary_id_type id) const
void add_shellface(const dof_id_type elem, const unsigned short int shellface, const boundary_id_type id)
std::vector< std::tuple< dof_id_type, boundary_id_type > > build_node_list() const
std::size_t n_nodeset_conds() const
const std::set< boundary_id_type > & get_shellface_boundary_ids() const
std::set< boundary_id_type > _shellface_boundary_ids
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)
std::multimap< const Elem *, std::pair< unsigned short int, boundary_id_type > > _boundary_shellface_id
OStreamProxy out(std::cout)
void build_shellface_boundary_ids(std::vector< boundary_id_type > &b_ids) const
std::multimap< const Elem *, std::pair< unsigned short int, boundary_id_type > > _boundary_edge_id
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_edge(const dof_id_type elem, const unsigned short int edge, const boundary_id_type id)
std::vector< boundary_id_type > edge_boundary_ids(const Elem *const elem, const unsigned short int edge) const