Reference documentation for deal.II version 8.4.2
tria_base.h
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2008 - 2016 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE at
12 // the top level of the deal.II distribution.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef dealii__distributed__tria_base_h
17 #define dealii__distributed__tria_base_h
18 
19 
20 #include <deal.II/base/config.h>
21 #include <deal.II/base/subscriptor.h>
22 #include <deal.II/base/smartpointer.h>
23 #include <deal.II/base/template_constraints.h>
24 #include <deal.II/base/mpi.h>
25 #include <deal.II/grid/tria.h>
26 
27 #include <deal.II/base/std_cxx1x/function.h>
28 #include <deal.II/base/std_cxx1x/tuple.h>
29 
30 #include <set>
31 #include <vector>
32 #include <list>
33 #include <utility>
34 
35 
36 DEAL_II_NAMESPACE_OPEN
37 
38 template <int, int> class Triangulation;
39 
40 
41 namespace parallel
42 {
48  template <int dim, int spacedim = dim>
49  class Triangulation : public ::Triangulation<dim,spacedim>
50  {
51  public:
52 
57  const typename ::Triangulation<dim,spacedim>::MeshSmoothing smooth_grid = (::Triangulation<dim,spacedim>::none),
58  const bool check_for_distorted_cells = false);
59 
63  virtual ~Triangulation ();
64 
68  virtual MPI_Comm get_communicator () const;
69 
73  virtual void copy_triangulation (const ::Triangulation<dim, spacedim> &old_tria);
74 
81  const std::vector<unsigned int> &
83 
84 
103  unsigned int n_locally_owned_active_cells () const;
104 
111 
115  virtual std::size_t memory_consumption () const;
116 
117 
125  virtual unsigned int n_global_levels () const;
126 
134 
143  const std::set<unsigned int> &ghost_owners () const;
144 
154  const std::set<unsigned int> &level_ghost_owners () const;
155 
156  protected:
163 
169 
174 
179  struct NumberCache
180  {
185  std::vector<unsigned int> n_locally_owned_active_cells;
196  unsigned int n_global_levels;
201  std::set<unsigned int> ghost_owners;
206  std::set<unsigned int> level_ghost_owners;
207 
208  NumberCache();
209  };
210 
211  NumberCache number_cache;
212 
216  virtual void update_number_cache ();
217 
218 
219  };
220 
221 } // namespace parallel
222 
223 DEAL_II_NAMESPACE_CLOSE
224 
225 #endif
types::global_dof_index n_global_active_cells
Definition: tria_base.h:190
const std::set< unsigned int > & ghost_owners() const
Definition: tria_base.cc:227
const std::vector< unsigned int > & n_locally_owned_active_cells_per_processor() const
Definition: tria_base.cc:128
types::subdomain_id my_subdomain
Definition: tria_base.h:168
std::set< unsigned int > ghost_owners
Definition: tria_base.h:201
virtual void copy_triangulation(const ::Triangulation< dim, spacedim > &old_tria)
Definition: tria_base.cc:60
const std::set< unsigned int > & level_ghost_owners() const
Definition: tria_base.cc:235
virtual ~Triangulation()
Definition: tria_base.cc:90
std::vector< unsigned int > n_locally_owned_active_cells
Definition: tria_base.h:185
const bool check_for_distorted_cells
Definition: tria.h:3320
unsigned int global_dof_index
Definition: types.h:88
virtual void update_number_cache()
Definition: tria_base.cc:143
virtual MPI_Comm get_communicator() const
Definition: tria_base.cc:135
virtual types::global_dof_index n_global_active_cells() const
Definition: tria_base.cc:121
virtual std::size_t memory_consumption() const
Definition: tria_base.cc:76
unsigned int subdomain_id
Definition: types.h:42
virtual unsigned int n_global_levels() const
Definition: tria_base.cc:114
unsigned int n_locally_owned_active_cells() const
Definition: tria_base.cc:107
MeshSmoothing smooth_grid
Definition: tria.h:3053
Triangulation(MPI_Comm mpi_communicator, const typename ::Triangulation< dim, spacedim >::MeshSmoothing smooth_grid=(::Triangulation< dim, spacedim >::none), const bool check_for_distorted_cells=false)
Definition: tria_base.cc:41
types::subdomain_id locally_owned_subdomain() const
Definition: tria_base.cc:218
std::set< unsigned int > level_ghost_owners
Definition: tria_base.h:206
types::subdomain_id n_subdomains
Definition: tria_base.h:173