Reference documentation for deal.II version 9.5.0
\(\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\}}\)
Loading...
Searching...
No Matches
fully_distributed_tria.h
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (C) 2019 - 2023 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
23
26
27#include <vector>
28
30
31// Forward declarations
32#ifndef DOXYGEN
33// forward declaration of the data type for periodic face pairs
34namespace GridTools
35{
36 template <typename CellIterator>
37 struct PeriodicFacePair;
38}
39#endif
40
41namespace parallel
42{
48 namespace fullydistributed
49 {
111 template <int dim, int spacedim = dim>
114 : public parallel::DistributedTriangulationBase<dim, spacedim>
115 {
116 public:
118 typename ::Triangulation<dim, spacedim>::cell_iterator;
119
121 typename ::Triangulation<dim, spacedim>::active_cell_iterator;
122
124 typename ::Triangulation<dim, spacedim>::CellStatus;
125
132 explicit Triangulation(const MPI_Comm mpi_communicator);
133
137 virtual ~Triangulation() = default;
138
146 void
147 create_triangulation(
149 &construction_data) override;
150
157 virtual void
158 create_triangulation(const std::vector<Point<spacedim>> & vertices,
159 const std::vector<::CellData<dim>> &cells,
160 const SubCellData &subcelldata) override;
161
172 void
173 copy_triangulation(
174 const ::Triangulation<dim, spacedim> &other_tria) override;
175
193 void
194 set_partitioner(
195 const std::function<void(::Triangulation<dim, spacedim> &,
196 const unsigned int)> &partitioner,
198
203 void
204 set_partitioner(
207
212 void
213 repartition();
214
221 virtual void
222 execute_coarsening_and_refinement() override;
223
230 virtual bool
231 prepare_coarsening_and_refinement() override;
232
236 virtual std::size_t
237 memory_consumption() const override;
238
239 virtual bool
240 is_multilevel_hierarchy_constructed() const override;
241
249 virtual void
250 save(const std::string &filename) const override;
251
262 virtual void
263 load(const std::string &filename) override;
264
271 virtual void
272 load(const std::string &filename, const bool autopartition) override;
273
274 private:
275 virtual unsigned int
276 coarse_cell_id_to_coarse_cell_index(
277 const types::coarse_cell_id coarse_cell_id) const override;
278
281 const unsigned int coarse_cell_index) const override;
282
294 virtual void
295 update_cell_relations() override;
296
297 virtual void
298 update_number_cache() override;
299
304
308 std::function<void(::Triangulation<dim, spacedim> &,
309 const unsigned int)>
311
317
321 std::vector<std::pair<types::coarse_cell_id, unsigned int>>
323
328 std::vector<types::coarse_cell_id>
330
336
341 bool
343 };
344
345 } // namespace fullydistributed
346} // namespace parallel
347
348
350
351#endif
Definition point.h:112
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
SmartPointer< const RepartitioningPolicyTools::Base< dim, spacedim > > partitioner_distributed
std::vector< std::pair< types::coarse_cell_id, unsigned int > > coarse_cell_id_to_coarse_cell_index_vector
std::function< void(::Triangulation< dim, spacedim > &, const unsigned int)> partitioner
#define DEAL_II_DEPRECATED
Definition config.h:172
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:472
#define DEAL_II_CXX20_REQUIRES(condition)
Definition config.h:160
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:473
Point< 3 > vertices[4]
const TriangulationDescription::Settings settings
std::vector< types::coarse_cell_id > coarse_cell_index_to_coarse_cell_id