distributed_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_DISTRIBUTED_MESH_H
21 #define LIBMESH_DISTRIBUTED_MESH_H
22 
23 // Local Includes
24 #include "libmesh/mapvector.h"
26 #include "libmesh/auto_ptr.h" // libmesh_make_unique
27 
28 // C++ Includes
29 #include <cstddef>
30 #include <set>
31 
32 namespace libMesh
33 {
34 
35 // Forward declarations
36 class Elem;
37 class Node;
38 
39 
51 {
52 public:
53 
59  explicit
60  DistributedMesh (const Parallel::Communicator & comm_in,
61  unsigned char dim=1);
62 
67  DistributedMesh (const UnstructuredMesh & other_mesh);
68 
73  DistributedMesh (const DistributedMesh & other_mesh);
74 
78  DistributedMesh(DistributedMesh &&) = default;
79 
83  DistributedMesh & operator= (const DistributedMesh &) = delete;
85 
89  virtual std::unique_ptr<MeshBase> clone () const override
90  { return libmesh_make_unique<DistributedMesh>(*this); }
91 
95  virtual ~DistributedMesh();
96 
100  virtual void clear() override;
101 
107  virtual void redistribute () override;
108 
113  virtual void update_post_partitioning () override;
114 
119  virtual bool is_serial () const override
120  { return _is_serial; }
121 
126  virtual bool is_serial_on_zero () const override
127  { return _is_serial || _is_serial_on_proc_0; }
128 
133  virtual void set_distributed () override
134  { _is_serial = false;
135  _is_serial_on_proc_0 = false; }
136 
141  virtual bool is_replicated () const override
142  { return false; }
143 
149  template <typename T>
151 
157  virtual void libmesh_assert_valid_parallel_ids() const override;
158 
164 
171 
177  template <typename T>
179 
183  virtual void renumber_nodes_and_elements () override;
184 
189  virtual void allgather() override;
190 
195  virtual void gather_to_zero() override;
196 
202  virtual void delete_remote_elements() override;
203 
211  virtual void add_extra_ghost_elem(Elem * e);
212 
216  virtual void clear_extra_ghost_elems() { _extra_ghost_elems.clear(); }
217 
218  // Cached methods that can be called in serial
219  virtual dof_id_type n_nodes () const override { return _n_nodes; }
220  virtual dof_id_type max_node_id () const override { return _max_node_id; }
221  virtual void reserve_nodes (const dof_id_type) override {}
222  virtual dof_id_type n_elem () const override { return _n_elem; }
223  virtual dof_id_type n_active_elem () const override;
224  virtual dof_id_type max_elem_id () const override { return _max_elem_id; }
225  virtual void reserve_elem (const dof_id_type) override {}
226 
227  // Parallel only method to update the caches
228  virtual void update_parallel_id_counts () override;
229 
230  // And more parallel only methods to test non-cached values
231  virtual dof_id_type parallel_n_nodes () const override;
233  virtual dof_id_type parallel_n_elem () const override;
235 
236 #ifdef LIBMESH_ENABLE_UNIQUE_ID
237  virtual unique_id_type parallel_max_unique_id () const override;
238 #endif
239 
240  virtual const Point & point (const dof_id_type i) const override;
241 
242  virtual const Node * node_ptr (const dof_id_type i) const override;
243  virtual Node * node_ptr (const dof_id_type i) override;
244 
245  virtual const Node * query_node_ptr (const dof_id_type i) const override;
246  virtual Node * query_node_ptr (const dof_id_type i) override;
247 
248  virtual const Elem * elem_ptr (const dof_id_type i) const override;
249  virtual Elem * elem_ptr (const dof_id_type i) override;
250 
251  virtual const Elem * query_elem_ptr (const dof_id_type i) const override;
252  virtual Elem * query_elem_ptr (const dof_id_type i) override;
253 
257  virtual Node * add_point (const Point & p,
259  const processor_id_type proc_id = DofObject::invalid_processor_id) override;
260  virtual Node * add_node (Node * n) override;
261 
265  virtual Node * insert_node(Node * n) override;
266 
273  virtual void own_node (Node & n) override;
274 
275  virtual void delete_node (Node * n) override;
276  virtual void renumber_node (dof_id_type old_id, dof_id_type new_id) override;
277  virtual Elem * add_elem (Elem * e) override;
278  virtual Elem * insert_elem (Elem * e) override;
279  virtual void delete_elem (Elem * e) override;
280  virtual void renumber_elem (dof_id_type old_id, dof_id_type new_id) override;
281 
288  virtual void fix_broken_node_and_element_numbering () override;
289 
290 public:
294  virtual element_iterator elements_begin () override;
295  virtual element_iterator elements_end () override;
296  virtual const_element_iterator elements_begin() const override;
297  virtual const_element_iterator elements_end() const override;
300 
301  virtual element_iterator active_elements_begin () override;
302  virtual element_iterator active_elements_end () override;
303  virtual const_element_iterator active_elements_begin() const override;
304  virtual const_element_iterator active_elements_end() const override;
307 
308  virtual element_iterator ancestor_elements_begin () override;
309  virtual element_iterator ancestor_elements_end () override;
310  virtual const_element_iterator ancestor_elements_begin() const override;
311  virtual const_element_iterator ancestor_elements_end() const override;
312 
313  virtual element_iterator subactive_elements_begin () override;
314  virtual element_iterator subactive_elements_end () override;
315  virtual const_element_iterator subactive_elements_begin() const override;
316  virtual const_element_iterator subactive_elements_end() const override;
317 
318  virtual element_iterator not_active_elements_begin () override;
319  virtual element_iterator not_active_elements_end () override;
320  virtual const_element_iterator not_active_elements_begin() const override;
321  virtual const_element_iterator not_active_elements_end() const override;
322 
323  virtual element_iterator not_ancestor_elements_begin () override;
324  virtual element_iterator not_ancestor_elements_end () override;
325  virtual const_element_iterator not_ancestor_elements_begin() const override;
326  virtual const_element_iterator not_ancestor_elements_end() const override;
327 
328  virtual element_iterator not_subactive_elements_begin () override;
329  virtual element_iterator not_subactive_elements_end () override;
330  virtual const_element_iterator not_subactive_elements_begin() const override;
331  virtual const_element_iterator not_subactive_elements_end() const override;
332 
333  virtual element_iterator local_elements_begin () override;
334  virtual element_iterator local_elements_end () override;
335  virtual const_element_iterator local_elements_begin () const override;
336  virtual const_element_iterator local_elements_end () const override;
337 
338  virtual element_iterator semilocal_elements_begin () override;
339  virtual element_iterator semilocal_elements_end () override;
340  virtual const_element_iterator semilocal_elements_begin () const override;
341  virtual const_element_iterator semilocal_elements_end () const override;
342 
343  virtual element_iterator active_semilocal_elements_begin () override;
344  virtual element_iterator active_semilocal_elements_end () override;
345  virtual const_element_iterator active_semilocal_elements_begin () const override;
346  virtual const_element_iterator active_semilocal_elements_end () const override;
347 
348  virtual element_iterator facelocal_elements_begin () override;
349  virtual element_iterator facelocal_elements_end () override;
350  virtual const_element_iterator facelocal_elements_begin () const override;
351  virtual const_element_iterator facelocal_elements_end () const override;
352 
353  virtual element_iterator not_local_elements_begin () override;
354  virtual element_iterator not_local_elements_end () override;
355  virtual const_element_iterator not_local_elements_begin () const override;
356  virtual const_element_iterator not_local_elements_end () const override;
357 
358  virtual element_iterator active_local_elements_begin () override;
359  virtual element_iterator active_local_elements_end () override;
360  virtual const_element_iterator active_local_elements_begin () const override;
361  virtual const_element_iterator active_local_elements_end () const override;
364 
365  virtual element_iterator active_not_local_elements_begin () override;
366  virtual element_iterator active_not_local_elements_end () override;
367  virtual const_element_iterator active_not_local_elements_begin () const override;
368  virtual const_element_iterator active_not_local_elements_end () const override;
369 
370  virtual element_iterator level_elements_begin (unsigned int level) override;
371  virtual element_iterator level_elements_end (unsigned int level) override;
372  virtual const_element_iterator level_elements_begin (unsigned int level) const override;
373  virtual const_element_iterator level_elements_end (unsigned int level) const override;
374 
375  virtual element_iterator not_level_elements_begin (unsigned int level) override;
376  virtual element_iterator not_level_elements_end (unsigned int level) override;
377  virtual const_element_iterator not_level_elements_begin (unsigned int level) const override;
378  virtual const_element_iterator not_level_elements_end (unsigned int level) const override;
379 
380  virtual element_iterator local_level_elements_begin (unsigned int level) override;
381  virtual element_iterator local_level_elements_end (unsigned int level) override;
382  virtual const_element_iterator local_level_elements_begin (unsigned int level) const override;
383  virtual const_element_iterator local_level_elements_end (unsigned int level) const override;
384 
385  virtual element_iterator local_not_level_elements_begin (unsigned int level) override;
386  virtual element_iterator local_not_level_elements_end (unsigned int level) override;
387  virtual const_element_iterator local_not_level_elements_begin (unsigned int level) const override;
388  virtual const_element_iterator local_not_level_elements_end (unsigned int level) const override;
389 
390  virtual element_iterator pid_elements_begin (processor_id_type proc_id) override;
391  virtual element_iterator pid_elements_end (processor_id_type proc_id) override;
392  virtual const_element_iterator pid_elements_begin (processor_id_type proc_id) const override;
393  virtual const_element_iterator pid_elements_end (processor_id_type proc_id) const override;
394 
395  virtual element_iterator type_elements_begin (ElemType type) override;
396  virtual element_iterator type_elements_end (ElemType type) override;
397  virtual const_element_iterator type_elements_begin (ElemType type) const override;
398  virtual const_element_iterator type_elements_end (ElemType type) const override;
399 
400  virtual element_iterator active_type_elements_begin (ElemType type) override;
401  virtual element_iterator active_type_elements_end (ElemType type) override;
402  virtual const_element_iterator active_type_elements_begin (ElemType type) const override;
403  virtual const_element_iterator active_type_elements_end (ElemType type) const override;
404 
405  virtual element_iterator active_pid_elements_begin (processor_id_type proc_id) override;
406  virtual element_iterator active_pid_elements_end (processor_id_type proc_id) override;
407  virtual const_element_iterator active_pid_elements_begin (processor_id_type proc_id) const override;
408  virtual const_element_iterator active_pid_elements_end (processor_id_type proc_id) const override;
409 
410  virtual element_iterator unpartitioned_elements_begin () override;
411  virtual element_iterator unpartitioned_elements_end () override;
412  virtual const_element_iterator unpartitioned_elements_begin () const override;
413  virtual const_element_iterator unpartitioned_elements_end () const override;
414 
415  virtual element_iterator active_unpartitioned_elements_begin () override;
416  virtual element_iterator active_unpartitioned_elements_end () override;
417  virtual const_element_iterator active_unpartitioned_elements_begin () const override;
418  virtual const_element_iterator active_unpartitioned_elements_end () const override;
419 
420  virtual element_iterator active_local_subdomain_elements_begin (subdomain_id_type subdomain_id) override;
421  virtual element_iterator active_local_subdomain_elements_end (subdomain_id_type subdomain_id) override;
422  virtual const_element_iterator active_local_subdomain_elements_begin (subdomain_id_type subdomain_id) const override;
423  virtual const_element_iterator active_local_subdomain_elements_end (subdomain_id_type subdomain_id) const override;
424 
425  virtual element_iterator active_subdomain_elements_begin (subdomain_id_type subdomain_id) override;
426  virtual element_iterator active_subdomain_elements_end (subdomain_id_type subdomain_id) override;
427  virtual const_element_iterator active_subdomain_elements_begin (subdomain_id_type subdomain_id) const override;
428  virtual const_element_iterator active_subdomain_elements_end (subdomain_id_type subdomain_id) const override;
429 
430  virtual element_iterator active_subdomain_set_elements_begin (std::set<subdomain_id_type> ss) override;
431  virtual element_iterator active_subdomain_set_elements_end (std::set<subdomain_id_type> ss) override;
432  virtual const_element_iterator active_subdomain_set_elements_begin (std::set<subdomain_id_type> ss) const override;
433  virtual const_element_iterator active_subdomain_set_elements_end (std::set<subdomain_id_type> ss) const override;
434 
435  virtual element_iterator ghost_elements_begin () override;
436  virtual element_iterator ghost_elements_end () override;
437  virtual const_element_iterator ghost_elements_begin () const override;
438  virtual const_element_iterator ghost_elements_end () const override;
439 
440  virtual element_iterator
441  evaluable_elements_begin (const DofMap & dof_map,
442  unsigned int var_num = libMesh::invalid_uint) override;
443 
444  virtual element_iterator
445  evaluable_elements_end (const DofMap & dof_map,
446  unsigned int var_num = libMesh::invalid_uint) override;
447 
448  virtual const_element_iterator
449  evaluable_elements_begin (const DofMap & dof_map,
450  unsigned int var_num = libMesh::invalid_uint) const override;
451 
452  virtual const_element_iterator
453  evaluable_elements_end (const DofMap & dof_map,
454  unsigned int var_num = libMesh::invalid_uint) const override;
455 
456 #ifdef LIBMESH_ENABLE_AMR
457  virtual element_iterator flagged_elements_begin (unsigned char rflag) override;
458  virtual element_iterator flagged_elements_end (unsigned char rflag) override;
459  virtual const_element_iterator flagged_elements_begin (unsigned char rflag) const override;
460  virtual const_element_iterator flagged_elements_end (unsigned char rflag) const override;
461 
462  virtual element_iterator flagged_pid_elements_begin (unsigned char rflag,
463  processor_id_type pid) override;
464  virtual element_iterator flagged_pid_elements_end (unsigned char rflag,
465  processor_id_type pid) override;
466  virtual const_element_iterator flagged_pid_elements_begin (unsigned char rflag,
467  processor_id_type pid) const override;
468  virtual const_element_iterator flagged_pid_elements_end (unsigned char rflag,
469  processor_id_type pid) const override;
470 #endif // LIBMESH_ENABLE_AMR
471 
475  virtual node_iterator nodes_begin () override;
476  virtual node_iterator nodes_end () override;
477  virtual const_node_iterator nodes_begin () const override;
478  virtual const_node_iterator nodes_end () const override;
479  virtual SimpleRange<node_iterator> node_ptr_range() override { return {nodes_begin(), nodes_end()}; }
480  virtual SimpleRange<const_node_iterator> node_ptr_range() const override { return {nodes_begin(), nodes_end()}; }
481 
482  virtual node_iterator active_nodes_begin () override;
483  virtual node_iterator active_nodes_end () override;
484  virtual const_node_iterator active_nodes_begin () const override;
485  virtual const_node_iterator active_nodes_end () const override;
486 
487  virtual node_iterator local_nodes_begin () override;
488  virtual node_iterator local_nodes_end () override;
489  virtual const_node_iterator local_nodes_begin () const override;
490  virtual const_node_iterator local_nodes_end () const override;
493 
494  virtual node_iterator pid_nodes_begin (processor_id_type proc_id) override;
495  virtual node_iterator pid_nodes_end (processor_id_type proc_id) override;
496  virtual const_node_iterator pid_nodes_begin (processor_id_type proc_id) const override;
497  virtual const_node_iterator pid_nodes_end (processor_id_type proc_id) const override;
498 
499  virtual node_iterator bid_nodes_begin (boundary_id_type bndry_id) override;
500  virtual node_iterator bid_nodes_end (boundary_id_type bndry_id) override;
501  virtual const_node_iterator bid_nodes_begin (boundary_id_type bndry_id) const override;
502  virtual const_node_iterator bid_nodes_end (boundary_id_type bndry_id) const override;
503 
504  virtual node_iterator bnd_nodes_begin () override;
505  virtual node_iterator bnd_nodes_end () override;
506  virtual const_node_iterator bnd_nodes_begin () const override;
507  virtual const_node_iterator bnd_nodes_end () const override;
508 
509  virtual node_iterator
510  evaluable_nodes_begin (const DofMap & dof_map,
511  unsigned int var_num = libMesh::invalid_uint) override;
512  virtual node_iterator
513  evaluable_nodes_end (const DofMap & dof_map,
514  unsigned int var_num = libMesh::invalid_uint) override;
515  virtual const_node_iterator
516  evaluable_nodes_begin (const DofMap & dof_map,
517  unsigned int var_num = libMesh::invalid_uint) const override;
518  virtual const_node_iterator
519  evaluable_nodes_end (const DofMap & dof_map,
520  unsigned int var_num = libMesh::invalid_uint) const override;
521 
522 
523 protected:
524 
529 
534 
539 
544 
549 
558 
559 #ifdef LIBMESH_ENABLE_UNIQUE_ID
560 
564 #endif
565 
570  std::set<Elem *> _extra_ghost_elems;
571 
572 private:
573 
580 
587 };
588 
589 
590 } // namespace libMesh
591 
592 #endif // LIBMESH_DISTRIBUTED_MESH_H
virtual element_iterator subactive_elements_begin() override
virtual element_iterator active_local_elements_end() override
virtual void update_parallel_id_counts() override
virtual dof_id_type parallel_n_nodes() const override
mapvector< Elem *, dof_id_type > _elements
virtual node_iterator active_nodes_begin() override
A geometric point in (x,y,z) space associated with a DOF.
Definition: node.h:52
virtual element_iterator active_local_subdomain_elements_end(subdomain_id_type subdomain_id) override
virtual node_iterator evaluable_nodes_end(const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) override
void libmesh_assert_valid_parallel_object_ids(const mapvector< T *, dof_id_type > &) const
virtual SimpleRange< element_iterator > active_element_ptr_range() override
virtual element_iterator active_pid_elements_begin(processor_id_type proc_id) override
const unsigned int invalid_uint
Definition: libmesh.h:245
virtual void libmesh_assert_valid_parallel_ids() const override
virtual element_iterator flagged_elements_begin(unsigned char rflag) override
virtual element_iterator not_ancestor_elements_begin() override
virtual void fix_broken_node_and_element_numbering() override
virtual const Node * query_node_ptr(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 local_level_elements_end(unsigned int level) override
virtual element_iterator flagged_pid_elements_end(unsigned char rflag, processor_id_type pid) override
virtual element_iterator ancestor_elements_end() override
virtual dof_id_type max_node_id() const override
virtual element_iterator not_subactive_elements_end() override
virtual void clear() override
virtual void renumber_nodes_and_elements() override
virtual element_iterator elements_end() override
dof_id_type _next_free_local_node_id
virtual element_iterator local_level_elements_begin(unsigned int level) override
virtual void allgather() override
virtual void own_node(Node &n) override
virtual element_iterator type_elements_begin(ElemType type) override
virtual dof_id_type n_active_elem() const override
virtual element_iterator semilocal_elements_end() override
The base class for all geometric element types.
Definition: elem.h:100
virtual element_iterator active_type_elements_begin(ElemType type) override
uint8_t processor_id_type
Definition: id_types.h:99
virtual node_iterator pid_nodes_begin(processor_id_type proc_id) override
virtual element_iterator ghost_elements_begin() override
virtual node_iterator active_nodes_end() override
virtual element_iterator active_unpartitioned_elements_end() override
virtual node_iterator nodes_begin() override
void libmesh_assert_valid_parallel_flags() const
virtual element_iterator active_elements_begin() override
virtual void add_extra_ghost_elem(Elem *e)
virtual SimpleRange< const_element_iterator > active_element_ptr_range() const override
virtual element_iterator ghost_elements_end() override
virtual element_iterator pid_elements_begin(processor_id_type proc_id) override
mapvector< Node *, dof_id_type >::veclike_iterator node_iterator_imp
virtual unique_id_type parallel_max_unique_id() const override
virtual element_iterator not_subactive_elements_begin() override
virtual element_iterator not_local_elements_end() override
virtual void delete_remote_elements() override
virtual element_iterator not_active_elements_end() override
void libmesh_assert_valid_parallel_p_levels() const
virtual element_iterator facelocal_elements_end() override
virtual Elem * add_elem(Elem *e) override
virtual element_iterator level_elements_begin(unsigned int level) override
Manages the degrees of freedom (DOFs) in a simulation.
Definition: dof_map.h:176
dof_id_type renumber_dof_objects(mapvector< T *, dof_id_type > &)
virtual SimpleRange< const_node_iterator > node_ptr_range() const override
virtual SimpleRange< node_iterator > node_ptr_range() override
virtual element_iterator active_subdomain_set_elements_begin(std::set< subdomain_id_type > ss) override
virtual dof_id_type parallel_n_elem() const override
int8_t boundary_id_type
Definition: id_types.h:51
virtual element_iterator active_type_elements_end(ElemType type) override
mapvector< Node *, dof_id_type > _nodes
virtual Elem * insert_elem(Elem *e) override
static const processor_id_type invalid_processor_id
Definition: dof_object.h:358
std::set< Elem * > _extra_ghost_elems
Base class for Replicated and Distributed meshes.
virtual element_iterator subactive_elements_end() override
virtual element_iterator not_active_elements_begin() override
virtual element_iterator not_ancestor_elements_end() override
virtual Node * insert_node(Node *n) override
virtual element_iterator active_subdomain_set_elements_end(std::set< subdomain_id_type > ss) override
virtual dof_id_type n_nodes() const override
virtual SimpleRange< node_iterator > local_node_ptr_range() override
mapvector< Node *, dof_id_type >::const_veclike_iterator const_node_iterator_imp
virtual SimpleRange< const_element_iterator > active_local_element_ptr_range() const override
virtual element_iterator active_semilocal_elements_end() override
static const dof_id_type invalid_id
Definition: dof_object.h:347
virtual void renumber_node(dof_id_type old_id, dof_id_type new_id) 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 element_iterator flagged_elements_end(unsigned char rflag) override
virtual void clear_extra_ghost_elems()
virtual element_iterator active_subdomain_elements_end(subdomain_id_type subdomain_id) override
virtual element_iterator evaluable_elements_end(const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) override
dof_id_type parallel_max_node_id() const
virtual void set_distributed() override
virtual void reserve_nodes(const dof_id_type) override
virtual node_iterator bid_nodes_end(boundary_id_type bndry_id) override
Mesh data structure which is distributed across all processors.
virtual const Point & point(const dof_id_type i) const override
dof_id_type _next_free_unpartitioned_node_id
virtual const Elem * elem_ptr(const dof_id_type i) const override
virtual element_iterator active_subdomain_elements_begin(subdomain_id_type subdomain_id) override
virtual element_iterator pid_elements_end(processor_id_type proc_id) override
virtual element_iterator unpartitioned_elements_begin() override
virtual element_iterator active_pid_elements_end(processor_id_type proc_id) override
virtual element_iterator local_elements_begin() override
virtual node_iterator bid_nodes_begin(boundary_id_type bndry_id) override
virtual element_iterator unpartitioned_elements_end() override
virtual element_iterator not_level_elements_begin(unsigned int level) override
virtual node_iterator local_nodes_end() override
virtual void redistribute() override
virtual std::unique_ptr< MeshBase > clone() const override
virtual element_iterator active_local_elements_begin() override
DistributedMesh & operator=(const DistributedMesh &)=delete
virtual element_iterator type_elements_end(ElemType type) override
virtual element_iterator active_not_local_elements_end() override
dof_id_type _next_free_unpartitioned_elem_id
virtual const Node * node_ptr(const dof_id_type i) const override
DistributedMesh(const Parallel::Communicator &comm_in, unsigned char dim=1)
virtual void gather_to_zero() override
virtual element_iterator flagged_pid_elements_begin(unsigned char rflag, processor_id_type pid) override
virtual node_iterator evaluable_nodes_begin(const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) override
virtual node_iterator nodes_end() override
virtual dof_id_type n_elem() const override
virtual Node * add_node(Node *n) override
virtual node_iterator bnd_nodes_begin() override
virtual SimpleRange< element_iterator > element_ptr_range() override
virtual element_iterator semilocal_elements_begin() override
virtual element_iterator active_semilocal_elements_begin() override
virtual element_iterator local_not_level_elements_begin(unsigned int level) override
virtual element_iterator active_local_subdomain_elements_begin(subdomain_id_type subdomain_id) override
virtual element_iterator facelocal_elements_begin() override
virtual SimpleRange< const_node_iterator > local_node_ptr_range() const override
virtual element_iterator active_elements_end() override
virtual void update_post_partitioning() override
virtual element_iterator active_unpartitioned_elements_begin() override
virtual SimpleRange< element_iterator > active_local_element_ptr_range() override
virtual const Elem * query_elem_ptr(const dof_id_type i) const override
virtual element_iterator not_level_elements_end(unsigned int level) override
unique_id_type _next_unpartitioned_unique_id
virtual element_iterator evaluable_elements_begin(const DofMap &dof_map, unsigned int var_num=libMesh::invalid_uint) override
mapvector< Elem *, dof_id_type >::const_veclike_iterator const_elem_iterator_imp
virtual void delete_node(Node *n) override
virtual element_iterator local_not_level_elements_end(unsigned int level) override
mapvector< Elem *, dof_id_type >::veclike_iterator elem_iterator_imp
virtual node_iterator local_nodes_begin() override
virtual element_iterator not_local_elements_begin() override
virtual element_iterator active_not_local_elements_begin() override
dof_id_type _next_free_local_elem_id
virtual dof_id_type max_elem_id() const override
virtual void reserve_elem(const dof_id_type) override
A geometric point in (x,y,z) space.
Definition: point.h:38
uint8_t unique_id_type
Definition: id_types.h:79
virtual element_iterator elements_begin() override
virtual element_iterator local_elements_end() override
virtual bool is_serial() const override
dof_id_type parallel_max_elem_id() const
virtual void delete_elem(Elem *e) override
virtual element_iterator level_elements_end(unsigned int level) override
virtual SimpleRange< const_element_iterator > element_ptr_range() const override
uint8_t dof_id_type
Definition: id_types.h:64
virtual bool is_replicated() const override
virtual node_iterator pid_nodes_end(processor_id_type proc_id) override
virtual element_iterator ancestor_elements_begin() override
virtual bool is_serial_on_zero() const override
virtual node_iterator bnd_nodes_end() override