Loading [MathJax]/extensions/TeX/newcommand.js
 Reference documentation for deal.II version 9.4.1
\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}} \newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=} \newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]} \newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
fully_distributed_tria.h
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (C) 2019 - 2022 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.md at
12// the top level directory of deal.II.
13//
14// ---------------------------------------------------------------------
15
16#ifndef dealii_fully_distributed_tria_h
17#define dealii_fully_distributed_tria_h
18
19
20#include <deal.II/base/config.h>
21
24
25#include <vector>
26
27#ifdef DEAL_II_WITH_MPI
28# include <mpi.h>
29#endif
30
32
33// Forward declarations
34#ifndef DOXYGEN
35// forward declaration of the data type for periodic face pairs
36namespace GridTools
37{
38 template <typename CellIterator>
39 struct PeriodicFacePair;
40}
41#endif
42
43namespace parallel
44{
50 namespace fullydistributed
51 {
111 template <int dim, int spacedim = dim>
113 : public parallel::DistributedTriangulationBase<dim, spacedim>
114 {
115 public:
117 typename ::Triangulation<dim, spacedim>::cell_iterator;
118
120 typename ::Triangulation<dim, spacedim>::active_cell_iterator;
121
123 typename ::Triangulation<dim, spacedim>::CellStatus;
124
131 explicit Triangulation(const MPI_Comm &mpi_communicator);
132
136 virtual ~Triangulation() = default;
137
145 void
148 &construction_data) override;
149
156 virtual void
157 create_triangulation(const std::vector<Point<spacedim>> & vertices,
158 const std::vector<::CellData<dim>> &cells,
159 const SubCellData &subcelldata) override;
160
171 void
173 const ::Triangulation<dim, spacedim> &other_tria) override;
174
192 void
194 const std::function<void(::Triangulation<dim, spacedim> &,
195 const unsigned int)> &partitioner,
197
202 void
206
211 void
212 repartition();
213
220 virtual void
222
229 virtual bool
231
235 virtual std::size_t
236 memory_consumption() const override;
237
238 virtual bool
240
248 virtual void
249 save(const std::string &filename) const override;
250
261 virtual void
262 load(const std::string &filename) override;
263
269 DEAL_II_DEPRECATED_EARLY
270 virtual void
271 load(const std::string &filename, const bool autopartition) override;
272
273 private:
274 virtual unsigned int
276 const types::coarse_cell_id coarse_cell_id) const override;
277
280 const unsigned int coarse_cell_index) const override;
281
293 virtual void
294 update_cell_relations() override;
295
296 virtual void
297 update_number_cache() override;
298
303
307 std::function<void(::Triangulation<dim, spacedim> &,
308 const unsigned int)>
310
316
320 std::vector<std::pair<types::coarse_cell_id, unsigned int>>
322
327 std::vector<types::coarse_cell_id>
329
335
340 bool
342 };
343
344 } // namespace fullydistributed
345} // namespace parallel
346
347
349
350#endif
Definition: point.h:111
std::vector< Point< spacedim > > vertices
Definition: tria.h:4167
const MPI_Comm mpi_communicator
Definition: tria_base.h:302
typename ::Triangulation< dim, spacedim >::cell_iterator cell_iterator
typename ::Triangulation< dim, spacedim >::active_cell_iterator active_cell_iterator
typename ::Triangulation< dim, spacedim >::CellStatus CellStatus
TriangulationDescription::Settings settings
std::vector< types::coarse_cell_id > coarse_cell_index_to_coarse_cell_id_vector
void copy_triangulation(const ::Triangulation< dim, spacedim > &other_tria) override
void set_partitioner(const std::function< void(::Triangulation< dim, spacedim > &, const unsigned int)> &partitioner, const TriangulationDescription::Settings &settings)
SmartPointer< const RepartitioningPolicyTools::Base< dim, spacedim > > partitioner_distributed
virtual unsigned int coarse_cell_id_to_coarse_cell_index(const types::coarse_cell_id coarse_cell_id) const override
std::vector< std::pair< types::coarse_cell_id, unsigned int > > coarse_cell_id_to_coarse_cell_index_vector
virtual void save(const std::string &filename) const override
std::function< void(::Triangulation< dim, spacedim > &, const unsigned int)> partitioner
virtual bool is_multilevel_hierarchy_constructed() const override
void create_triangulation(const TriangulationDescription::Description< dim, spacedim > &construction_data) override
virtual void load(const std::string &filename) override
virtual std::size_t memory_consumption() const override
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:442
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:443
std::vector< types::coarse_cell_id > coarse_cell_index_to_coarse_cell_id