libMesh
boundary_info.h
Go to the documentation of this file.
1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2019 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License, or (at your option) any later version.
8 
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
13 
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 
18 
19 
20 #ifndef LIBMESH_BOUNDARY_INFO_H
21 #define LIBMESH_BOUNDARY_INFO_H
22 
23 // Local includes
24 #include "libmesh/libmesh_common.h"
25 #include "libmesh/id_types.h"
26 #include "libmesh/parallel_object.h"
27 
28 // C++ includes
29 #include <cstddef>
30 #include <map>
31 #include <set>
32 #include <vector>
33 #include <tuple>
34 
35 namespace libMesh
36 {
37 
38 
39 // Forward declarations
40 class Elem;
41 class Node;
42 class MeshBase;
43 class UnstructuredMesh;
44 
45 
58 {
59 protected:
60  friend class MeshBase;
61 
68  BoundaryInfo (MeshBase & m);
69 
70 public:
76  BoundaryInfo & operator=(const BoundaryInfo & other_boundary_info);
77 
78 
82  ~BoundaryInfo ();
83 
88  void clear ();
89 
97  void regenerate_id_sets ();
98 
99 
107  void sync (UnstructuredMesh & boundary_mesh);
108 
120  void sync (const std::set<boundary_id_type> & requested_boundary_ids,
121  UnstructuredMesh & boundary_mesh);
122 
133  void sync (const std::set<boundary_id_type> & requested_boundary_ids,
134  UnstructuredMesh & boundary_mesh,
135  const std::set<subdomain_id_type> & subdomains_relative_to);
136 
148  void get_side_and_node_maps (UnstructuredMesh & boundary_mesh,
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);
152 
163  void add_elements (const std::set<boundary_id_type> & requested_boundary_ids,
164  UnstructuredMesh & boundary_mesh);
165 
172  void add_elements(const std::set<boundary_id_type> & requested_boundary_ids,
173  UnstructuredMesh & boundary_mesh,
174  const std::set<subdomain_id_type> & subdomains_relative_to);
175 
180  void add_node (const Node * node,
181  const boundary_id_type id);
182 
187  void add_node (const dof_id_type node,
188  const boundary_id_type id);
189 
194  void add_node (const Node * node,
195  const std::vector<boundary_id_type> & ids);
196 
201 
207  void add_edge (const dof_id_type elem,
208  const unsigned short int edge,
209  const boundary_id_type id);
210 
216  void add_edge (const Elem * elem,
217  const unsigned short int edge,
218  const boundary_id_type id);
219 
225  void add_edge (const Elem * elem,
226  const unsigned short int edge,
227  const std::vector<boundary_id_type> & ids);
228 
234  void add_shellface (const dof_id_type elem,
235  const unsigned short int shellface,
236  const boundary_id_type id);
237 
243  void add_shellface (const Elem * elem,
244  const unsigned short int shellface,
245  const boundary_id_type id);
246 
252  void add_shellface (const Elem * elem,
253  const unsigned short int shellface,
254  const std::vector<boundary_id_type> & ids);
255 
260  void add_side (const dof_id_type elem,
261  const unsigned short int side,
262  const boundary_id_type id);
263 
268  void add_side (const Elem * elem,
269  const unsigned short int side,
270  const boundary_id_type id);
271 
276  void add_side (const Elem * elem,
277  const unsigned short int side,
278  const std::vector<boundary_id_type> & ids);
279 
284  void remove (const Node * node);
285 
290  void remove (const Elem * elem);
291 
295  void remove_node (const Node * node,
296  const boundary_id_type id);
297 
302  void remove_edge (const Elem * elem,
303  const unsigned short int edge);
304 
309  void remove_edge (const Elem * elem,
310  const unsigned short int edge,
311  const boundary_id_type id);
312 
317  void remove_shellface (const Elem * elem,
318  const unsigned short int shellface);
319 
324  void remove_shellface (const Elem * elem,
325  const unsigned short int shellface,
326  const boundary_id_type id);
327 
332  void remove_side (const Elem * elem,
333  const unsigned short int side);
334 
339  void remove_side (const Elem * elem,
340  const unsigned short int side,
341  const boundary_id_type id);
342 
351  void remove_id (boundary_id_type id);
352 
360  std::size_t n_boundary_ids () const { return _boundary_ids.size(); }
361 
365  bool has_boundary_id (const Node * const node,
366  const boundary_id_type id) const;
367 
374 #ifdef LIBMESH_ENABLE_DEPRECATED
375  std::vector<boundary_id_type> boundary_ids (const Node * node) const;
376 #endif
377 
384  void boundary_ids (const Node * node,
385  std::vector<boundary_id_type> & vec_to_fill) const;
386 
390  unsigned int n_boundary_ids (const Node * node) const;
391 
398  unsigned int n_edge_boundary_ids (const Elem * const elem,
399  const unsigned short int edge) const;
400 
410 #ifdef LIBMESH_ENABLE_DEPRECATED
411  std::vector<boundary_id_type> edge_boundary_ids (const Elem * const elem,
412  const unsigned short int edge) const;
413 #endif
414 
423  void edge_boundary_ids (const Elem * const elem,
424  const unsigned short int edge,
425  std::vector<boundary_id_type> & vec_to_fill) const;
426 
439 #ifdef LIBMESH_ENABLE_DEPRECATED
440  std::vector<boundary_id_type> raw_edge_boundary_ids (const Elem * const elem,
441  const unsigned short int edge) const;
442 #endif
443 
455  void raw_edge_boundary_ids (const Elem * const elem,
456  const unsigned short int edge,
457  std::vector<boundary_id_type> & vec_to_fill) const;
458 
465  unsigned int n_shellface_boundary_ids (const Elem * const elem,
466  const unsigned short int shellface) const;
467 
474  void shellface_boundary_ids (const Elem * const elem,
475  const unsigned short int shellface,
476  std::vector<boundary_id_type> & vec_to_fill) const;
477 
487  void raw_shellface_boundary_ids (const Elem * const elem,
488  const unsigned short int shellface,
489  std::vector<boundary_id_type> & vec_to_fill) const;
490 
495  bool has_boundary_id (const Elem * const elem,
496  const unsigned short int side,
497  const boundary_id_type id) const;
498 
512 #ifdef LIBMESH_ENABLE_DEPRECATED
513  boundary_id_type boundary_id (const Elem * const elem,
514  const unsigned short int side) const;
515 #endif
516 
521  unsigned int n_boundary_ids (const Elem * const elem,
522  const unsigned short int side) const;
523 
531 #ifdef LIBMESH_ENABLE_DEPRECATED
532  std::vector<boundary_id_type> boundary_ids (const Elem * const elem,
533  const unsigned short int side) const;
534 #endif
535 
542  void boundary_ids (const Elem * const elem,
543  const unsigned short int side,
544  std::vector<boundary_id_type> & vec_to_fill) const;
545 
556 #ifdef LIBMESH_ENABLE_DEPRECATED
557  std::vector<boundary_id_type> raw_boundary_ids (const Elem * const elem,
558  const unsigned short int side) const;
559 #endif
560 
570  void raw_boundary_ids (const Elem * const elem,
571  const unsigned short int side,
572  std::vector<boundary_id_type> & vec_to_fill) const;
573 
574  /*
575  * Copy boundary ids associated with old_elem (but not its nodes)
576  * from old_boundary_info (which may be this) into this boundary
577  * info, associating them with new_elem.
578  */
579  void copy_boundary_ids (const BoundaryInfo & old_boundary_info,
580  const Elem * const old_elem,
581  const Elem * const new_elem);
582 
590  unsigned int side_with_boundary_id(const Elem * const elem,
591  const boundary_id_type boundary_id) const;
592 
599  void build_node_boundary_ids(std::vector<boundary_id_type> & b_ids) const;
600 
607  void build_side_boundary_ids(std::vector<boundary_id_type> & b_ids) const;
608 
615  void build_shellface_boundary_ids(std::vector<boundary_id_type> & b_ids) const;
616 
622  std::size_t n_boundary_conds () const;
623 
630  std::size_t n_edge_conds () const;
631 
638  std::size_t n_shellface_conds () const;
639 
645  std::size_t n_nodeset_conds () const;
646 
656 #ifdef LIBMESH_ENABLE_DEPRECATED
657  void build_node_list (std::vector<dof_id_type> & node_id_list,
658  std::vector<boundary_id_type> & bc_id_list) const;
659 #endif
660 
668  std::vector<std::tuple<dof_id_type, boundary_id_type>>
669  build_node_list() const;
670 
676 
682 
693 #ifdef LIBMESH_ENABLE_DEPRECATED
694  void build_side_list (std::vector<dof_id_type> & element_id_list,
695  std::vector<unsigned short int> & side_list,
696  std::vector<boundary_id_type> & bc_id_list) const;
697 #endif
698 
704  typedef std::tuple<dof_id_type, unsigned short int, boundary_id_type> BCTuple;
705  std::vector<BCTuple> build_side_list() const;
706 
717 #ifdef LIBMESH_ENABLE_DEPRECATED
718  void build_active_side_list (std::vector<dof_id_type> & element_id_list,
719  std::vector<unsigned short int> & side_list,
720  std::vector<boundary_id_type> & bc_id_list) const;
721 #endif
722 
728  std::vector<std::tuple<dof_id_type, unsigned short int, boundary_id_type>>
729  build_active_side_list () const;
730 
741 #ifdef LIBMESH_ENABLE_DEPRECATED
742  void build_edge_list (std::vector<dof_id_type> & element_id_list,
743  std::vector<unsigned short int> & edge_list,
744  std::vector<boundary_id_type> & bc_id_list) const;
745 #endif
746 
752  std::vector<std::tuple<dof_id_type, unsigned short int, boundary_id_type>>
753  build_edge_list() const;
754 
765 #ifdef LIBMESH_ENABLE_DEPRECATED
766  void build_shellface_list (std::vector<dof_id_type> & element_id_list,
767  std::vector<unsigned short int> & shellface_list,
768  std::vector<boundary_id_type> & bc_id_list) const;
769 #endif
770 
776  std::vector<std::tuple<dof_id_type, unsigned short int, boundary_id_type>>
777  build_shellface_list() const;
778 
787  const std::set<boundary_id_type> & get_boundary_ids () const
788  { return _boundary_ids; }
789 
794  const std::set<boundary_id_type> & get_side_boundary_ids () const
795  { return _side_boundary_ids; }
796 
803  const std::set<boundary_id_type> & get_edge_boundary_ids () const
804  { return _edge_boundary_ids; }
805 
812  const std::set<boundary_id_type> & get_shellface_boundary_ids () const
813  { return _shellface_boundary_ids; }
814 
819  const std::set<boundary_id_type> & get_node_boundary_ids () const
820  { return _node_boundary_ids; }
821 
822 
826  void print_info (std::ostream & out=libMesh::out) const;
827 
831  void print_summary (std::ostream & out=libMesh::out) const;
832 
836  const std::string & get_sideset_name(boundary_id_type id) const;
837 
842  std::string & sideset_name(boundary_id_type id);
843 
847  const std::string & get_nodeset_name(boundary_id_type id) const;
848 
853  std::string & nodeset_name(boundary_id_type id);
854 
858  const std::string & get_edgeset_name(boundary_id_type id) const;
859 
863  std::string & edgeset_name(boundary_id_type id);
864 
869  boundary_id_type get_id_by_name(const std::string & name) const;
870 
874  std::map<boundary_id_type, std::string> & set_sideset_name_map ()
875  { return _ss_id_to_name; }
876  const std::map<boundary_id_type, std::string> & get_sideset_name_map () const
877  { return _ss_id_to_name; }
878 
882  std::map<boundary_id_type, std::string> & set_nodeset_name_map ()
883  { return _ns_id_to_name; }
884  const std::map<boundary_id_type, std::string> & get_nodeset_name_map () const
885  { return _ns_id_to_name; }
886 
890  std::map<boundary_id_type, std::string> & set_edgeset_name_map ()
891  { return _es_id_to_name; }
892  const std::map<boundary_id_type, std::string> & get_edgeset_name_map () const
893  { return _es_id_to_name; }
894 
900 
901 
902 private:
903 
909  void _find_id_maps (const std::set<boundary_id_type> & requested_boundary_ids,
910  dof_id_type first_free_node_id,
911  std::map<dof_id_type, dof_id_type> * node_id_map,
912  dof_id_type first_free_elem_id,
913  std::map<std::pair<dof_id_type, unsigned char>, dof_id_type> * side_id_map,
914  const std::set<subdomain_id_type> & subdomains_relative_to);
915 
920 
925  std::multimap<const Node *,
927 
932  std::multimap<const Elem *,
933  std::pair<unsigned short int, boundary_id_type>>
935 
940  std::multimap<const Elem *,
941  std::pair<unsigned short int, boundary_id_type>>
943 
948  std::multimap<const Elem *,
949  std::pair<unsigned short int, boundary_id_type>>
951 
959  std::set<boundary_id_type> _boundary_ids;
960 
968  std::set<boundary_id_type> _side_boundary_ids;
969 
977  std::set<boundary_id_type> _edge_boundary_ids;
978 
986  std::set<boundary_id_type> _node_boundary_ids;
987 
996  std::set<boundary_id_type> _shellface_boundary_ids;
997 
1003  std::map<boundary_id_type, std::string> _ss_id_to_name;
1004 
1010  std::map<boundary_id_type, std::string> _ns_id_to_name;
1011 
1017  std::map<boundary_id_type, std::string> _es_id_to_name;
1018 };
1019 
1020 } // namespace libMesh
1021 
1022 #endif // LIBMESH_BOUNDARY_INFO_H
libMesh::BoundaryInfo::_mesh
MeshBase & _mesh
The Mesh this boundary info pertains to.
Definition: boundary_info.h:919
libMesh::dof_id_type
uint8_t dof_id_type
Definition: id_types.h:67
libMesh::BoundaryInfo::boundary_ids
std::vector< boundary_id_type > boundary_ids(const Node *node) const
Definition: boundary_info.C:985
libMesh::BoundaryInfo::_node_boundary_ids
std::set< boundary_id_type > _node_boundary_ids
Set of user-specified boundary IDs for nodes only.
Definition: boundary_info.h:986
libMesh::BoundaryInfo::remove_id
void remove_id(boundary_id_type id)
Removes all entities (nodes, sides, edges, shellfaces) with boundary id id from their respective cont...
Definition: boundary_info.C:1492
libMesh::BoundaryInfo
The BoundaryInfo class contains information relevant to boundary conditions including storing faces,...
Definition: boundary_info.h:57
libMesh::BoundaryInfo::operator=
BoundaryInfo & operator=(const BoundaryInfo &other_boundary_info)
Actual copying operation.
Definition: boundary_info.C:92
libMesh::BoundaryInfo::add_node
void add_node(const Node *node, const boundary_id_type id)
Add Node node with boundary id id to the boundary information data structures.
Definition: boundary_info.C:636
libMesh::BoundaryInfo::get_edgeset_name
const std::string & get_edgeset_name(boundary_id_type id) const
Definition: boundary_info.C:2362
libMesh::BoundaryInfo::get_id_by_name
boundary_id_type get_id_by_name(const std::string &name) const
Definition: boundary_info.C:2379
libMesh::BoundaryInfo::n_boundary_conds
std::size_t n_boundary_conds() const
Definition: boundary_info.C:1615
libMesh::BoundaryInfo::shellface_boundary_ids
void shellface_boundary_ids(const Elem *const elem, const unsigned short int shellface, std::vector< boundary_id_type > &vec_to_fill) const
Definition: boundary_info.C:1133
libMesh::BoundaryInfo::build_active_side_list
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > 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 ret...
Definition: boundary_info.C:2058
libMesh::BoundaryInfo::edge_boundary_ids
std::vector< boundary_id_type > edge_boundary_ids(const Elem *const elem, const unsigned short int edge) const
Definition: boundary_info.C:1018
libMesh
The libMesh namespace provides an interface to certain functionality in the library.
Definition: factoryfunction.C:55
libMesh::BoundaryInfo::sideset_name
std::string & sideset_name(boundary_id_type id)
Definition: boundary_info.C:2341
libMesh::BoundaryInfo::_boundary_ids
std::set< boundary_id_type > _boundary_ids
A collection of user-specified boundary ids for sides, edges, nodes, and shell faces.
Definition: boundary_info.h:959
libMesh::BoundaryInfo::get_sideset_name_map
const std::map< boundary_id_type, std::string > & get_sideset_name_map() const
Definition: boundary_info.h:876
libMesh::BoundaryInfo::get_side_boundary_ids
const std::set< boundary_id_type > & get_side_boundary_ids() const
Definition: boundary_info.h:794
libMesh::BoundaryInfo::n_shellface_conds
std::size_t n_shellface_conds() const
Definition: boundary_info.C:1658
libMesh::BoundaryInfo::get_shellface_boundary_ids
const std::set< boundary_id_type > & get_shellface_boundary_ids() const
Definition: boundary_info.h:812
libMesh::BoundaryInfo::build_side_list
std::vector< BCTuple > build_side_list() const
Definition: boundary_info.C:2007
libMesh::BoundaryInfo::n_edge_conds
std::size_t n_edge_conds() const
Definition: boundary_info.C:1636
libMesh::BoundaryInfo::remove_edge
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.
Definition: boundary_info.C:1393
libMesh::boundary_id_type
int8_t boundary_id_type
Definition: id_types.h:51
libMesh::BoundaryInfo::edgeset_name
std::string & edgeset_name(boundary_id_type id)
Definition: boundary_info.C:2374
libMesh::BoundaryInfo::remove
void remove(const Node *node)
Removes the boundary conditions associated with node node, if any exist.
Definition: boundary_info.C:1358
libMesh::BoundaryInfo::_side_boundary_ids
std::set< boundary_id_type > _side_boundary_ids
Set of user-specified boundary IDs for sides only.
Definition: boundary_info.h:968
libMesh::BoundaryInfo::BoundaryInfo
BoundaryInfo(MeshBase &m)
Constructor.
Definition: boundary_info.C:86
libMesh::BoundaryInfo::copy_boundary_ids
void copy_boundary_ids(const BoundaryInfo &old_boundary_info, const Elem *const old_elem, const Elem *const new_elem)
Definition: boundary_info.C:1328
libMesh::BoundaryInfo::build_node_boundary_ids
void build_node_boundary_ids(std::vector< boundary_id_type > &b_ids) const
Builds the list of unique node boundary ids.
Definition: boundary_info.C:1574
libMesh::BoundaryInfo::_ss_id_to_name
std::map< boundary_id_type, std::string > _ss_id_to_name
This structure maintains the mapping of named side sets for file formats that support named blocks.
Definition: boundary_info.h:1003
libMesh::BoundaryInfo::get_boundary_ids
const std::set< boundary_id_type > & get_boundary_ids() const
Definition: boundary_info.h:787
libMesh::BoundaryInfo::nodeset_name
std::string & nodeset_name(boundary_id_type id)
Definition: boundary_info.C:2357
libMesh::BoundaryInfo::_shellface_boundary_ids
std::set< boundary_id_type > _shellface_boundary_ids
Set of user-specified boundary IDs for shellfaces only.
Definition: boundary_info.h:996
libMesh::BoundaryInfo::set_edgeset_name_map
std::map< boundary_id_type, std::string > & set_edgeset_name_map()
Definition: boundary_info.h:890
libMesh::BoundaryInfo::print_summary
void print_summary(std::ostream &out=libMesh::out) const
Prints a summary of the boundary information.
Definition: boundary_info.C:2249
libMesh::BoundaryInfo::build_shellface_list
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > build_shellface_list() const
As above, but the library creates and fills in a vector of (elem-id, side-id, bc-id) triplets and ret...
Definition: boundary_info.C:2170
libMesh::BoundaryInfo::clear_boundary_node_ids
void clear_boundary_node_ids()
Clears all the boundary information from all of the nodes in the mesh.
Definition: boundary_info.C:702
libMesh::MeshBase
This is the MeshBase class.
Definition: mesh_base.h:78
libMesh::BoundaryInfo::print_info
void print_info(std::ostream &out=libMesh::out) const
Prints the boundary information data structure.
Definition: boundary_info.C:2186
libMesh::BoundaryInfo::raw_edge_boundary_ids
std::vector< boundary_id_type > raw_edge_boundary_ids(const Elem *const elem, const unsigned short int edge) const
Definition: boundary_info.C:1099
libMesh::BoundaryInfo::remove_node
void remove_node(const Node *node, const boundary_id_type id)
Removes boundary id id from node node, if it exists.
Definition: boundary_info.C:1368
libMesh::BoundaryInfo::build_side_list_from_node_list
void build_side_list_from_node_list()
Adds sides to a sideset if every node on that side are in the same sideset.
Definition: boundary_info.C:1928
libMesh::BoundaryInfo::_edge_boundary_ids
std::set< boundary_id_type > _edge_boundary_ids
Set of user-specified boundary IDs for edges only.
Definition: boundary_info.h:977
libMesh::BoundaryInfo::get_nodeset_name
const std::string & get_nodeset_name(boundary_id_type id) const
Definition: boundary_info.C:2346
libMesh::BoundaryInfo::side_with_boundary_id
unsigned int side_with_boundary_id(const Elem *const elem, const boundary_id_type boundary_id) const
Definition: boundary_info.C:1527
libMesh::BoundaryInfo::n_nodeset_conds
std::size_t n_nodeset_conds() const
Definition: boundary_info.C:1680
libMesh::BoundaryInfo::raw_shellface_boundary_ids
void raw_shellface_boundary_ids(const Elem *const elem, const unsigned short int shellface, std::vector< boundary_id_type > &vec_to_fill) const
Definition: boundary_info.C:1177
libMesh::BoundaryInfo::build_shellface_boundary_ids
void build_shellface_boundary_ids(std::vector< boundary_id_type > &b_ids) const
Builds the list of unique shellface boundary ids.
Definition: boundary_info.C:1602
libMesh::BoundaryInfo::get_node_boundary_ids
const std::set< boundary_id_type > & get_node_boundary_ids() const
Definition: boundary_info.h:819
libMesh::BoundaryInfo::clear
void clear()
Clears the underlying data structures and restores the object to a pristine state with no data stored...
Definition: boundary_info.C:144
libMesh::Node
A Node is like a Point, but with more information.
Definition: node.h:52
libMesh::BoundaryInfo::n_boundary_ids
std::size_t n_boundary_ids() const
Definition: boundary_info.h:360
libMesh::BoundaryInfo::remove_side
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.
Definition: boundary_info.C:1462
libMesh::BoundaryInfo::get_side_and_node_maps
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.
Definition: boundary_info.C:319
libMesh::BoundaryInfo::regenerate_id_sets
void regenerate_id_sets()
Clears and regenerates the cached sets of ids.
Definition: boundary_info.C:159
libMesh::BoundaryInfo::_find_id_maps
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.
Definition: boundary_info.C:2403
libMesh::BoundaryInfo::add_elements
void 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...
Definition: boundary_info.C:370
libMesh::BoundaryInfo::_ns_id_to_name
std::map< boundary_id_type, std::string > _ns_id_to_name
This structure maintains the mapping of named node sets for file formats that support named blocks.
Definition: boundary_info.h:1010
libMesh::UnstructuredMesh
The UnstructuredMesh class is derived from the MeshBase class.
Definition: unstructured_mesh.h:48
libMesh::BoundaryInfo::raw_boundary_ids
std::vector< boundary_id_type > raw_boundary_ids(const Elem *const elem, const unsigned short int side) const
Definition: boundary_info.C:1294
libMesh::BoundaryInfo::set_nodeset_name_map
std::map< boundary_id_type, std::string > & set_nodeset_name_map()
Definition: boundary_info.h:882
libMesh::BoundaryInfo::~BoundaryInfo
~BoundaryInfo()
Destructor.
Definition: boundary_info.C:137
libMesh::BoundaryInfo::get_sideset_name
const std::string & get_sideset_name(boundary_id_type id) const
Definition: boundary_info.C:2329
libMesh::BoundaryInfo::_boundary_edge_id
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.
Definition: boundary_info.h:934
libMesh::BoundaryInfo::add_edge
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.
Definition: boundary_info.C:707
libMesh::BoundaryInfo::build_side_boundary_ids
void build_side_boundary_ids(std::vector< boundary_id_type > &b_ids) const
Builds the list of unique side boundary ids.
Definition: boundary_info.C:1588
libMesh::BoundaryInfo::build_node_list
std::vector< std::tuple< dof_id_type, boundary_id_type > > 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 t...
Definition: boundary_info.C:1731
libMesh::BoundaryInfo::build_node_list_from_side_list
void build_node_list_from_side_list()
Adds nodes with boundary ids based on the side's boundary ids they are connected to.
Definition: boundary_info.C:1748
libMesh::BoundaryInfo::_boundary_side_id
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.
Definition: boundary_info.h:950
libMesh::BoundaryInfo::get_edge_boundary_ids
const std::set< boundary_id_type > & get_edge_boundary_ids() const
Definition: boundary_info.h:803
libMesh::BoundaryInfo::get_edgeset_name_map
const std::map< boundary_id_type, std::string > & get_edgeset_name_map() const
Definition: boundary_info.h:892
libMesh::Elem
This is the base class from which all geometric element types are derived.
Definition: elem.h:100
libMesh::BoundaryInfo::n_shellface_boundary_ids
unsigned int n_shellface_boundary_ids(const Elem *const elem, const unsigned short int shellface) const
Definition: boundary_info.C:1167
libMesh::BoundaryInfo::_es_id_to_name
std::map< boundary_id_type, std::string > _es_id_to_name
This structure maintains the mapping of named edge sets for file formats that support named blocks.
Definition: boundary_info.h:1017
libMesh::BoundaryInfo::n_edge_boundary_ids
unsigned int n_edge_boundary_ids(const Elem *const elem, const unsigned short int edge) const
Definition: boundary_info.C:1088
libMesh::BoundaryInfo::add_shellface
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 ...
Definition: boundary_info.C:794
libMesh::Real
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Definition: libmesh_common.h:121
libMesh::ParallelObject
An object whose state is distributed along a set of processors.
Definition: parallel_object.h:55
libMesh::BoundaryInfo::has_boundary_id
bool has_boundary_id(const Node *const node, const boundary_id_type id) const
Definition: boundary_info.C:972
libMesh::BoundaryInfo::invalid_id
static const boundary_id_type invalid_id
Number used for internal use.
Definition: boundary_info.h:899
libMesh::out
OStreamProxy out
libMesh::BoundaryInfo::add_side
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.
Definition: boundary_info.C:886
libMesh::BoundaryInfo::build_edge_list
std::vector< std::tuple< dof_id_type, unsigned short int, boundary_id_type > > build_edge_list() const
As above, but the library creates and fills in a vector of (elem-id, side-id, bc-id) triplets and ret...
Definition: boundary_info.C:2122
libMesh::BoundaryInfo::get_nodeset_name_map
const std::map< boundary_id_type, std::string > & get_nodeset_name_map() const
Definition: boundary_info.h:884
libMesh::BoundaryInfo::set_sideset_name_map
std::map< boundary_id_type, std::string > & set_sideset_name_map()
Definition: boundary_info.h:874
libMesh::BoundaryInfo::_boundary_node_id
std::multimap< const Node *, boundary_id_type > _boundary_node_id
Data structure that maps nodes in the mesh to boundary ids.
Definition: boundary_info.h:926
libMesh::Quality::name
std::string name(const ElemQuality q)
This function returns a string containing some name for q.
Definition: elem_quality.C:42
libMesh::BoundaryInfo::_boundary_shellface_id
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.
Definition: boundary_info.h:942
libMesh::BoundaryInfo::remove_shellface
void remove_shellface(const Elem *elem, const unsigned short int shellface)
Removes all boundary conditions associated with shell face shellface of element elem,...
Definition: boundary_info.C:1425
libMesh::BoundaryInfo::BCTuple
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 ret...
Definition: boundary_info.h:704
libMesh::BoundaryInfo::sync
void sync(UnstructuredMesh &boundary_mesh)
Generates boundary_mesh data structures corresponding to the mesh data structures.
Definition: boundary_info.C:200
libMesh::BoundaryInfo::boundary_id
boundary_id_type boundary_id(const Elem *const elem, const unsigned short int side) const
Definition: boundary_info.C:1201