Reference documentation for deal.II version 9.6.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\}}\)
Loading...
Searching...
No Matches
fully_distributed_tria.h
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2019 - 2023 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
15#ifndef dealii_fully_distributed_tria_h
16#define dealii_fully_distributed_tria_h
17
18
19#include <deal.II/base/config.h>
20
22
25
26#include <vector>
27
29
30// Forward declarations
31#ifndef DOXYGEN
32// forward declaration of the data type for periodic face pairs
33namespace GridTools
34{
35 template <typename CellIterator>
36 struct PeriodicFacePair;
37}
38#endif
39
40namespace parallel
41{
45 namespace fullydistributed
46 {
108 template <int dim, int spacedim = dim>
109 DEAL_II_CXX20_REQUIRES((concepts::is_valid_dim_spacedim<dim, spacedim>))
111 : public parallel::DistributedTriangulationBase<dim, spacedim>
112 {
113 public:
115 typename ::Triangulation<dim, spacedim>::cell_iterator;
116
118 typename ::Triangulation<dim, spacedim>::active_cell_iterator;
119
127
131 virtual ~Triangulation() = default;
132
149 void
152 &construction_data) override;
153
160 virtual void
162 const std::vector<::CellData<dim>> &cells,
163 const SubCellData &subcelldata) override;
164
175 void
177 const ::Triangulation<dim, spacedim> &other_tria) override;
178
196 void
198 const std::function<void(::Triangulation<dim, spacedim> &,
199 const unsigned int)> &partitioner,
201
206 void
210
215 void
216 repartition();
217
224 virtual void
226
233 virtual bool
235
239 virtual std::size_t
240 memory_consumption() const override;
241
242 virtual bool
244
252 virtual void
253 save(const std::string &filename) const override;
254
265 virtual void
266 load(const std::string &filename) override;
267
274 virtual void
275 load(const std::string &filename, const bool autopartition) override;
276
277 private:
278 virtual unsigned int
280 const types::coarse_cell_id coarse_cell_id) const override;
281
284 const unsigned int coarse_cell_index) const override;
285
297 void
299
300 virtual void
301 update_number_cache() override;
302
307
311 std::function<void(::Triangulation<dim, spacedim> &,
312 const unsigned int)>
314
320
324 std::vector<std::pair<types::coarse_cell_id, unsigned int>>
326
331 std::vector<types::coarse_cell_id>
333
339
344 bool
346 };
347
348 } // namespace fullydistributed
349} // namespace parallel
350
351
353
354#endif
Definition point.h:111
std::vector< Point< spacedim > > vertices
Definition tria.h:4467
DistributedTriangulationBase(const 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:672
typename ::Triangulation< dim, spacedim >::cell_iterator cell_iterator
TriangulationDescription::Settings settings
Triangulation(const MPI_Comm mpi_communicator)
std::vector< types::coarse_cell_id > coarse_cell_index_to_coarse_cell_id_vector
virtual types::coarse_cell_id coarse_cell_index_to_coarse_cell_id(const unsigned int coarse_cell_index) const override
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
typename ::Triangulation< dim, spacedim >::active_cell_iterator active_cell_iterator
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_DEPRECATED
Definition config.h:205
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:501
#define DEAL_II_CXX20_REQUIRES(condition)
Definition config.h:175
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:502
global_cell_index coarse_cell_id
Definition types.h:130