replicated_mesh.h
Go to the documentation of this file.
1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2018 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_REPLICATED_MESH_H
21 #define LIBMESH_REPLICATED_MESH_H
22 
23 // Local Includes
25 #include "libmesh/boundary_info.h"
26 #include "libmesh/auto_ptr.h" // libmesh_make_unique
27 
28 // C++ Includes
29 #include <cstddef>
30 
31 namespace libMesh
32 {
33 
47 {
48 public:
49 
55  explicit
56  ReplicatedMesh (const Parallel::Communicator & comm_in,
57  unsigned char dim=1);
58 
63  ReplicatedMesh (const UnstructuredMesh & other_mesh);
64 
69  ReplicatedMesh (const ReplicatedMesh & other_mesh);
70 
74  ReplicatedMesh(ReplicatedMesh &&) = default;
75 
79  ReplicatedMesh & operator= (const ReplicatedMesh &) = delete;
81 
85  virtual std::unique_ptr<MeshBase> clone () const override
86  { return libmesh_make_unique<ReplicatedMesh>(*this); }
87 
91  virtual ~ReplicatedMesh();
92 
96  virtual void clear() override;
97 
101  virtual void renumber_nodes_and_elements () override;
102 
103  virtual dof_id_type n_nodes () const override
104  { return cast_int<dof_id_type>(_nodes.size()); }
105 
106  virtual dof_id_type parallel_n_nodes () const override
107  { return cast_int<dof_id_type>(_nodes.size()); }
108 
109  virtual dof_id_type max_node_id () const override
110  { return cast_int<dof_id_type>(_nodes.size()); }
111 
112  virtual void reserve_nodes (const dof_id_type nn) override
113  { _nodes.reserve (nn); }
114 
115  virtual dof_id_type n_elem () const override
116  { return cast_int<dof_id_type>(_elements.size()); }
117 
118  virtual dof_id_type parallel_n_elem () const override
119  { return cast_int<dof_id_type>(_elements.size()); }
120 
121  virtual dof_id_type n_active_elem () const override;
122 
123  virtual dof_id_type max_elem_id () const override
124  { return cast_int<dof_id_type>(_elements.size()); }
125 
126 #ifdef LIBMESH_ENABLE_UNIQUE_ID
127  virtual unique_id_type parallel_max_unique_id () const override;
128 #endif
129 
130  virtual void reserve_elem (const dof_id_type ne) override
131  { _elements.reserve (ne); }
132 
133  virtual void update_parallel_id_counts () override;
134 
135  virtual const Point & point (const dof_id_type i) const override;
136 
137  virtual const Node * node_ptr (const dof_id_type i) const override;
138  virtual Node * node_ptr (const dof_id_type i) override;
139 
140  virtual const Node * query_node_ptr (const dof_id_type i) const override;
141  virtual Node * query_node_ptr (const dof_id_type i) override;
142 
143  virtual const Elem * elem_ptr (const dof_id_type i) const override;
144  virtual Elem * elem_ptr (const dof_id_type i) override;
145 
146  virtual const Elem * query_elem_ptr (const dof_id_type i) const override;
147  virtual Elem * query_elem_ptr (const dof_id_type i) override;
148 
152  virtual Node * add_point (const Point & p,
154  const processor_id_type proc_id = DofObject::invalid_processor_id) override;
155  virtual Node * add_node (Node * n) override;
156 
168  virtual Node * insert_node(Node * n) override;
169 
170  virtual void delete_node (Node * n) override;
171  virtual void renumber_node (dof_id_type old_id, dof_id_type new_id) override;
172  virtual Elem * add_elem (Elem * e) override;
173  virtual Elem * insert_elem (Elem * e) override;
174  virtual void delete_elem (Elem * e) override;
175  virtual void renumber_elem (dof_id_type old_id, dof_id_type new_id) override;
176 
183  virtual void fix_broken_node_and_element_numbering () override;
184 
211  void stitch_meshes (const ReplicatedMesh & other_mesh,
212  boundary_id_type this_mesh_boundary,
213  boundary_id_type other_mesh_boundary,
214  Real tol=TOLERANCE,
215  bool clear_stitched_boundary_ids=false,
216  bool verbose=true,
217  bool use_binary_search=true,
218  bool enforce_all_nodes_match_on_boundaries=false);
219 
223  void stitch_surfaces (boundary_id_type boundary_id_1,
224  boundary_id_type boundary_id_2,
225  Real tol=TOLERANCE,
226  bool clear_stitched_boundary_ids=false,
227  bool verbose=true,
228  bool use_binary_search=true,
229  bool enforce_all_nodes_match_on_boundaries=false);
230 
231 public:
235  virtual element_iterator elements_begin () override;
236  virtual element_iterator elements_end () override;
237  virtual const_element_iterator elements_begin() const override;
238  virtual const_element_iterator elements_end() const override;
241 
242  virtual element_iterator active_elements_begin () override;
243  virtual element_iterator active_elements_end () override;
244  virtual const_element_iterator active_elements_begin() const override;
245  virtual const_element_iterator active_elements_end() const override;
248 
249  virtual element_iterator ancestor_elements_begin () override;
250  virtual element_iterator ancestor_elements_end () override;
251  virtual const_element_iterator ancestor_elements_begin() const override;
252  virtual const_element_iterator ancestor_elements_end() const override;
253 
254  virtual element_iterator subactive_elements_begin () override;
255  virtual element_iterator subactive_elements_end () override;
256  virtual const_element_iterator subactive_elements_begin() const override;
257  virtual const_element_iterator subactive_elements_end() const override;
258 
259  virtual element_iterator not_active_elements_begin () override;
260  virtual element_iterator not_active_elements_end () override;
261  virtual const_element_iterator not_active_elements_begin() const override;
262  virtual const_element_iterator not_active_elements_end() const override;
263 
264  virtual element_iterator not_ancestor_elements_begin () override;
265  virtual element_iterator not_ancestor_elements_end () override;
266  virtual const_element_iterator not_ancestor_elements_begin() const override;
267  virtual const_element_iterator not_ancestor_elements_end() const override;
268 
269  virtual element_iterator not_subactive_elements_begin () override;
270  virtual element_iterator not_subactive_elements_end () override;
271  virtual const_element_iterator not_subactive_elements_begin() const override;
272  virtual const_element_iterator not_subactive_elements_end() const override;
273 
274  virtual element_iterator local_elements_begin () override;
275  virtual element_iterator local_elements_end () override;
276  virtual const_element_iterator local_elements_begin () const override;
277  virtual const_element_iterator local_elements_end () const override;
278 
279  virtual element_iterator semilocal_elements_begin () override;
280  virtual element_iterator semilocal_elements_end () override;
281  virtual const_element_iterator semilocal_elements_begin () const override;
282  virtual const_element_iterator semilocal_elements_end () const override;
283 
284  virtual element_iterator active_semilocal_elements_begin () override;
285  virtual element_iterator active_semilocal_elements_end () override;
286  virtual const_element_iterator active_semilocal_elements_begin () const override;
287  virtual const_element_iterator active_semilocal_elements_end () const override;
288 
289  virtual element_iterator facelocal_elements_begin () override;
290  virtual element_iterator facelocal_elements_end () override;
291  virtual const_element_iterator facelocal_elements_begin () const override;
292  virtual const_element_iterator facelocal_elements_end () const override;
293 
294  virtual element_iterator not_local_elements_begin () override;
295  virtual element_iterator not_local_elements_end () override;
296  virtual const_element_iterator not_local_elements_begin () const override;
297  virtual const_element_iterator not_local_elements_end () const override;
298 
299  virtual element_iterator active_local_elements_begin () override;
300  virtual element_iterator active_local_elements_end () override;
301  virtual const_element_iterator active_local_elements_begin () const override;
302  virtual const_element_iterator active_local_elements_end () const override;
305 
306  virtual element_iterator active_not_local_elements_begin () override;
307  virtual element_iterator active_not_local_elements_end () override;
308  virtual const_element_iterator active_not_local_elements_begin () const override;
309  virtual const_element_iterator active_not_local_elements_end () const override;
310 
311  virtual element_iterator level_elements_begin (unsigned int level) override;
312  virtual element_iterator level_elements_end (unsigned int level) override;
313  virtual const_element_iterator level_elements_begin (unsigned int level) const override;
314  virtual const_element_iterator level_elements_end (unsigned int level) const override;
315 
316  virtual element_iterator not_level_elements_begin (unsigned int level) override;
317  virtual element_iterator not_level_elements_end (unsigned int level) override;
318  virtual const_element_iterator not_level_elements_begin (unsigned int level) const override;
319  virtual const_element_iterator not_level_elements_end (unsigned int level) const override;
320 
321  virtual element_iterator local_level_elements_begin (unsigned int level) override;
322  virtual element_iterator local_level_elements_end (unsigned int level) override;
323  virtual const_element_iterator local_level_elements_begin (unsigned int level) const override;
324  virtual const_element_iterator local_level_elements_end (unsigned int level) const override;
325 
326  virtual element_iterator local_not_level_elements_begin (unsigned int level) override;
327  virtual element_iterator local_not_level_elements_end (unsigned int level) override;
328  virtual const_element_iterator local_not_level_elements_begin (unsigned int level) const override;
329  virtual const_element_iterator local_not_level_elements_end (unsigned int level) const override;
330 
331  virtual element_iterator pid_elements_begin (processor_id_type proc_id) override;
332  virtual element_iterator pid_elements_end (processor_id_type proc_id) override;
333  virtual const_element_iterator pid_elements_begin (processor_id_type proc_id) const override;
334  virtual const_element_iterator pid_elements_end (processor_id_type proc_id) const override;
335 
336  virtual element_iterator type_elements_begin (ElemType type) override;
337  virtual element_iterator type_elements_end (ElemType type) override;
338  virtual const_element_iterator type_elements_begin (ElemType type) const override;
339  virtual const_element_iterator type_elements_end (ElemType type) const override;
340 
341  virtual element_iterator active_type_elements_begin (ElemType type) override;
342  virtual element_iterator active_type_elements_end (ElemType type) override;
343  virtual const_element_iterator active_type_elements_begin (ElemType type) const override;
344  virtual const_element_iterator active_type_elements_end (ElemType type) const override;
345 
346  virtual element_iterator active_pid_elements_begin (processor_id_type proc_id) override;
347  virtual element_iterator active_pid_elements_end (processor_id_type proc_id) override;
348  virtual const_element_iterator active_pid_elements_begin (processor_id_type proc_id) const override;
349  virtual const_element_iterator active_pid_elements_end (processor_id_type proc_id) const override;
350 
351  virtual element_iterator unpartitioned_elements_begin () override;
352  virtual element_iterator unpartitioned_elements_end () override;
353  virtual const_element_iterator unpartitioned_elements_begin () const override;
354  virtual const_element_iterator unpartitioned_elements_end () const override;
355 
356  virtual element_iterator active_unpartitioned_elements_begin () override;
357  virtual element_iterator active_unpartitioned_elements_end () override;
358  virtual const_element_iterator active_unpartitioned_elements_begin () const override;
359  virtual const_element_iterator active_unpartitioned_elements_end () const override;
360 
361  virtual element_iterator active_local_subdomain_elements_begin (subdomain_id_type subdomain_id) override;
362  virtual element_iterator active_local_subdomain_elements_end (subdomain_id_type subdomain_id) override;
363  virtual const_element_iterator active_local_subdomain_elements_begin (subdomain_id_type subdomain_id) const override;
364  virtual const_element_iterator active_local_subdomain_elements_end (subdomain_id_type subdomain_id) const override;
365 
366  virtual element_iterator active_subdomain_elements_begin (subdomain_id_type subdomain_id) override;
367  virtual element_iterator active_subdomain_elements_end (subdomain_id_type subdomain_id) override;
368  virtual const_element_iterator active_subdomain_elements_begin (subdomain_id_type subdomain_id) const override;
369  virtual const_element_iterator active_subdomain_elements_end (subdomain_id_type subdomain_id) const override;
370 
371  virtual element_iterator active_subdomain_set_elements_begin (std::set<subdomain_id_type> ss) override;
372  virtual element_iterator active_subdomain_set_elements_end (std::set<subdomain_id_type> ss) override;
373  virtual const_element_iterator active_subdomain_set_elements_begin (std::set<subdomain_id_type> ss) const override;
374  virtual const_element_iterator active_subdomain_set_elements_end (std::set<subdomain_id_type> ss) const override;
375 
376  virtual element_iterator ghost_elements_begin () override;
377  virtual element_iterator ghost_elements_end () override;
378  virtual const_element_iterator ghost_elements_begin () const override;
379  virtual const_element_iterator ghost_elements_end () const override;
380 
381  virtual element_iterator
382  evaluable_elements_begin (const DofMap & dof_map,
383  unsigned int var_num = libMesh::invalid_uint) override;
384 
385  virtual element_iterator
386  evaluable_elements_end (const DofMap & dof_map,
387  unsigned int var_num = libMesh::invalid_uint) override;
388 
389  virtual const_element_iterator
390  evaluable_elements_begin (const DofMap & dof_map,
391  unsigned int var_num = libMesh::invalid_uint) const override;
392 
393  virtual const_element_iterator
394  evaluable_elements_end (const DofMap & dof_map,
395  unsigned int var_num = libMesh::invalid_uint) const override;
396 
397 #ifdef LIBMESH_ENABLE_AMR
398  virtual element_iterator flagged_elements_begin (unsigned char rflag) override;
399  virtual element_iterator flagged_elements_end (unsigned char rflag) override;
400  virtual const_element_iterator flagged_elements_begin (unsigned char rflag) const override;
401  virtual const_element_iterator flagged_elements_end (unsigned char rflag) const override;
402 
403  virtual element_iterator flagged_pid_elements_begin (unsigned char rflag,
404  processor_id_type pid) override;
405  virtual element_iterator flagged_pid_elements_end (unsigned char rflag,
406  processor_id_type pid) override;
407  virtual const_element_iterator flagged_pid_elements_begin (unsigned char rflag,
408  processor_id_type pid) const override;
409  virtual const_element_iterator flagged_pid_elements_end (unsigned char rflag,
410  processor_id_type pid) const override;
411 #endif // LIBMESH_ENABLE_AMR
412 
416  virtual node_iterator nodes_begin () override;
417  virtual node_iterator nodes_end () override;
418  virtual const_node_iterator nodes_begin () const override;
419  virtual const_node_iterator nodes_end () const override;
420  virtual SimpleRange<node_iterator> node_ptr_range() override { return {nodes_begin(), nodes_end()}; }
421  virtual SimpleRange<const_node_iterator> node_ptr_range() const override { return {nodes_begin(), nodes_end()}; }
422 
423  virtual node_iterator active_nodes_begin () override;
424  virtual node_iterator active_nodes_end () override;
425  virtual const_node_iterator active_nodes_begin () const override;
426  virtual const_node_iterator active_nodes_end () const override;
427 
428  virtual node_iterator local_nodes_begin () override;
429  virtual node_iterator local_nodes_end () override;
430  virtual const_node_iterator local_nodes_begin () const override;
431  virtual const_node_iterator local_nodes_end () const override;
434 
435  virtual node_iterator pid_nodes_begin (processor_id_type proc_id) override;
436  virtual node_iterator pid_nodes_end (processor_id_type proc_id) override;
437  virtual const_node_iterator pid_nodes_begin (processor_id_type proc_id) const override;
438  virtual const_node_iterator pid_nodes_end (processor_id_type proc_id) const override;
439 
440  virtual node_iterator bid_nodes_begin (boundary_id_type bndry_id) override;
441  virtual node_iterator bid_nodes_end (boundary_id_type bndry_id) override;
442  virtual const_node_iterator bid_nodes_begin (boundary_id_type bndry_id) const override;
443  virtual const_node_iterator bid_nodes_end (boundary_id_type bndry_id) const override;
444 
445  virtual node_iterator bnd_nodes_begin () override;
446  virtual node_iterator bnd_nodes_end () override;
447  virtual const_node_iterator bnd_nodes_begin () const override;
448  virtual const_node_iterator bnd_nodes_end () const override;
449 
450  virtual node_iterator
451  evaluable_nodes_begin (const DofMap & dof_map,
452  unsigned int var_num = libMesh::invalid_uint) override;
453  virtual node_iterator
454  evaluable_nodes_end (const DofMap & dof_map,
455  unsigned int var_num = libMesh::invalid_uint) override;
456  virtual const_node_iterator
457  evaluable_nodes_begin (const DofMap & dof_map,
458  unsigned int var_num = libMesh::invalid_uint) const override;
459  virtual const_node_iterator
460  evaluable_nodes_end (const DofMap & dof_map,
461  unsigned int var_num = libMesh::invalid_uint) const override;
462 
463 
464 protected:
465 
469  std::vector<Node *> _nodes;
470 
474  std::vector<Elem *> _elements;
475 
476 private:
477 
482  void stitching_helper (const ReplicatedMesh * other_mesh,
483  boundary_id_type boundary_id_1,
484  boundary_id_type boundary_id_2,
485  Real tol,
486  bool clear_stitched_boundary_ids,
487  bool verbose,
488  bool use_binary_search,
489  bool enforce_all_nodes_match_on_boundaries,
490  bool skip_find_neighbors);
491 
496  typedef std::vector<Elem *>::iterator elem_iterator_imp;
497  typedef std::vector<Elem *>::const_iterator const_elem_iterator_imp;
498 
503  typedef std::vector<Node *>::iterator node_iterator_imp;
504  typedef std::vector<Node *>::const_iterator const_node_iterator_imp;
505 };
506 
507 } // namespace libMesh
508 
509 
510 
511 #endif // LIBMESH_REPLICATED_MESH_H
virtual element_iterator ancestor_elements_begin() override
virtual node_iterator evaluable_nodes_end(const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) override
virtual Elem * add_elem(Elem *e) override
virtual element_iterator evaluable_elements_end(const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) override
virtual element_iterator active_elements_end() override
Mesh data structure replicated on all processors.
virtual node_iterator nodes_end() override
virtual element_iterator active_unpartitioned_elements_end() override
A geometric point in (x,y,z) space associated with a DOF.
Definition: node.h:52
virtual node_iterator pid_nodes_end(processor_id_type proc_id) override
const unsigned int invalid_uint
Definition: libmesh.h:245
virtual element_iterator semilocal_elements_end() override
virtual element_iterator flagged_elements_begin(unsigned char rflag) override
virtual element_iterator local_not_level_elements_begin(unsigned int level) override
std::vector< Elem * > _elements
virtual node_iterator bid_nodes_begin(boundary_id_type bndry_id) override
std::vector< Elem * >::const_iterator const_elem_iterator_imp
virtual SimpleRange< const_element_iterator > active_element_ptr_range() const override
virtual element_iterator active_local_elements_begin() override
virtual element_iterator active_semilocal_elements_end() override
void stitch_meshes(const ReplicatedMesh &other_mesh, boundary_id_type this_mesh_boundary, boundary_id_type other_mesh_boundary, Real tol=TOLERANCE, bool clear_stitched_boundary_ids=false, bool verbose=true, bool use_binary_search=true, bool enforce_all_nodes_match_on_boundaries=false)
std::vector< Node * >::iterator node_iterator_imp
virtual element_iterator not_ancestor_elements_end() override
virtual node_iterator bnd_nodes_begin() override
virtual Node * insert_node(Node *n) override
virtual element_iterator unpartitioned_elements_begin() override
virtual dof_id_type n_nodes() const override
virtual dof_id_type n_elem() const override
virtual element_iterator not_ancestor_elements_begin() override
The base class for all geometric element types.
Definition: elem.h:100
uint8_t processor_id_type
Definition: id_types.h:99
virtual dof_id_type parallel_n_nodes() const override
virtual SimpleRange< const_node_iterator > node_ptr_range() const override
virtual element_iterator pid_elements_begin(processor_id_type proc_id) override
virtual element_iterator not_subactive_elements_end() override
static const Real TOLERANCE
virtual element_iterator elements_begin() override
virtual element_iterator active_subdomain_elements_begin(subdomain_id_type subdomain_id) override
virtual dof_id_type n_active_elem() const override
virtual element_iterator active_not_local_elements_begin() override
virtual element_iterator local_level_elements_begin(unsigned int level) override
virtual dof_id_type max_elem_id() const override
virtual element_iterator active_pid_elements_end(processor_id_type proc_id) override
virtual SimpleRange< node_iterator > node_ptr_range() override
virtual element_iterator level_elements_begin(unsigned int level) override
virtual element_iterator flagged_pid_elements_begin(unsigned char rflag, processor_id_type pid) override
virtual element_iterator flagged_pid_elements_end(unsigned char rflag, processor_id_type pid) override
virtual element_iterator active_pid_elements_begin(processor_id_type proc_id) override
virtual element_iterator not_active_elements_end() override
virtual unique_id_type parallel_max_unique_id() const override
virtual element_iterator local_level_elements_end(unsigned int level) override
Manages the degrees of freedom (DOFs) in a simulation.
Definition: dof_map.h:176
virtual const Elem * query_elem_ptr(const dof_id_type i) const override
virtual element_iterator flagged_elements_end(unsigned char rflag) override
virtual Elem * insert_elem(Elem *e) override
virtual void reserve_nodes(const dof_id_type nn) override
virtual element_iterator local_not_level_elements_end(unsigned int level) override
int8_t boundary_id_type
Definition: id_types.h:51
virtual node_iterator bnd_nodes_end() override
virtual element_iterator elements_end() override
virtual const Elem * elem_ptr(const dof_id_type i) const override
virtual SimpleRange< element_iterator > active_element_ptr_range() override
virtual element_iterator semilocal_elements_begin() override
static const processor_id_type invalid_processor_id
Definition: dof_object.h:358
virtual void clear() override
Base class for Replicated and Distributed meshes.
std::vector< Node * >::const_iterator const_node_iterator_imp
virtual element_iterator not_level_elements_begin(unsigned int level) override
virtual Node * add_point(const Point &p, const dof_id_type id=DofObject::invalid_id, const processor_id_type proc_id=DofObject::invalid_processor_id) override
virtual void reserve_elem(const dof_id_type ne) override
virtual element_iterator active_type_elements_begin(ElemType type) override
virtual node_iterator pid_nodes_begin(processor_id_type proc_id) override
virtual SimpleRange< const_node_iterator > local_node_ptr_range() const override
static const dof_id_type invalid_id
Definition: dof_object.h:347
virtual element_iterator active_type_elements_end(ElemType type) override
virtual element_iterator ancestor_elements_end() override
std::vector< Node * > _nodes
virtual element_iterator local_elements_end() override
virtual element_iterator type_elements_begin(ElemType type) override
virtual element_iterator local_elements_begin() override
virtual void delete_node(Node *n) override
virtual element_iterator subactive_elements_end() override
virtual SimpleRange< const_element_iterator > active_local_element_ptr_range() const override
virtual element_iterator active_local_subdomain_elements_begin(subdomain_id_type subdomain_id) override
virtual element_iterator not_active_elements_begin() override
virtual element_iterator active_local_elements_end() override
virtual node_iterator local_nodes_begin() override
virtual void renumber_node(dof_id_type old_id, dof_id_type new_id) override
virtual void renumber_nodes_and_elements() override
virtual element_iterator not_level_elements_end(unsigned int level) override
virtual const Point & point(const dof_id_type i) const override
virtual void renumber_elem(dof_id_type old_id, dof_id_type new_id) override
virtual element_iterator not_local_elements_begin() override
virtual element_iterator evaluable_elements_begin(const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) override
virtual Node * add_node(Node *n) override
virtual element_iterator active_local_subdomain_elements_end(subdomain_id_type subdomain_id) override
virtual dof_id_type max_node_id() const override
ReplicatedMesh & operator=(const ReplicatedMesh &)=delete
virtual element_iterator type_elements_end(ElemType type) override
virtual element_iterator facelocal_elements_end() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void update_parallel_id_counts() override
virtual void fix_broken_node_and_element_numbering() override
virtual node_iterator evaluable_nodes_begin(const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) override
virtual const Node * query_node_ptr(const dof_id_type i) const override
virtual dof_id_type parallel_n_elem() const override
virtual std::unique_ptr< MeshBase > clone() const override
void stitch_surfaces(boundary_id_type boundary_id_1, boundary_id_type boundary_id_2, Real tol=TOLERANCE, bool clear_stitched_boundary_ids=false, bool verbose=true, bool use_binary_search=true, bool enforce_all_nodes_match_on_boundaries=false)
virtual node_iterator bid_nodes_end(boundary_id_type bndry_id) override
std::vector< Elem * >::iterator elem_iterator_imp
virtual node_iterator nodes_begin() override
virtual element_iterator subactive_elements_begin() override
virtual const Node * node_ptr(const dof_id_type i) const override
virtual element_iterator active_semilocal_elements_begin() override
virtual node_iterator local_nodes_end() override
virtual element_iterator not_local_elements_end() override
void stitching_helper(const ReplicatedMesh *other_mesh, boundary_id_type boundary_id_1, boundary_id_type boundary_id_2, Real tol, bool clear_stitched_boundary_ids, bool verbose, bool use_binary_search, bool enforce_all_nodes_match_on_boundaries, bool skip_find_neighbors)
virtual SimpleRange< node_iterator > local_node_ptr_range() override
virtual element_iterator unpartitioned_elements_end() override
virtual element_iterator active_subdomain_set_elements_begin(std::set< subdomain_id_type > ss) override
virtual node_iterator active_nodes_end() override
ReplicatedMesh(const Parallel::Communicator &comm_in, unsigned char dim=1)
virtual void delete_elem(Elem *e) override
virtual element_iterator active_not_local_elements_end() override
virtual element_iterator pid_elements_end(processor_id_type proc_id) override
virtual node_iterator active_nodes_begin() override
virtual element_iterator active_subdomain_set_elements_end(std::set< subdomain_id_type > ss) override
virtual element_iterator active_elements_begin() override
A geometric point in (x,y,z) space.
Definition: point.h:38
virtual element_iterator active_subdomain_elements_end(subdomain_id_type subdomain_id) override
uint8_t unique_id_type
Definition: id_types.h:79
virtual element_iterator active_unpartitioned_elements_begin() override
virtual element_iterator not_subactive_elements_begin() override
virtual element_iterator facelocal_elements_begin() override
virtual SimpleRange< const_element_iterator > element_ptr_range() const override
uint8_t dof_id_type
Definition: id_types.h:64
virtual SimpleRange< element_iterator > active_local_element_ptr_range() override
virtual element_iterator level_elements_end(unsigned int level) override
virtual element_iterator ghost_elements_begin() override
virtual element_iterator ghost_elements_end() override
virtual SimpleRange< element_iterator > element_ptr_range() override