deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
\(\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
repartitioning_policy_tools.h
Go to the documentation of this file.
1// -----------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception OR LGPL-2.1-or-later
4// Copyright (C) 2021 - 2024 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Detailed license information governing the source code and contributions
9// can be found in LICENSE.md and CONTRIBUTING.md at the top level directory.
10//
11// -----------------------------------------------------------------------------
12
13#ifndef dealii_distributed_repartitioning_policy_tools_h
14#define dealii_distributed_repartitioning_policy_tools_h
15
17#include <deal.II/grid/tria.h>
18
20
22
38{
46 template <int dim, int spacedim = dim>
48 {
49 public:
55 partition(const Triangulation<dim, spacedim> &tria_coarse_in) const = 0;
56
60 virtual ~Base() = default;
61 };
62
68 template <int dim, int spacedim = dim>
69 class DefaultPolicy : public Base<dim, spacedim>
70 {
71 public:
78 DefaultPolicy(const bool tighten = false);
79
82 const Triangulation<dim, spacedim> &tria_coarse_in) const override;
83
84 private:
85 const bool tighten;
86 };
87
93 template <int dim, int spacedim = dim>
94 class FirstChildPolicy : public Base<dim, spacedim>
95 {
96 public:
101
103 partition(
104 const Triangulation<dim, spacedim> &tria_coarse_in) const override;
105
106 private:
108
115 };
116
123 template <int dim, int spacedim = dim>
124 class MinimalGranularityPolicy : public Base<dim, spacedim>
125 {
126 public:
130 MinimalGranularityPolicy(const unsigned int n_min_cells);
131
133 partition(const Triangulation<dim, spacedim> &tria_in) const override;
134
135 private:
139 const unsigned int n_min_cells;
140 };
141
146 template <int dim, int spacedim = dim>
147 class CellWeightPolicy : public Base<dim, spacedim>
148 {
149 public:
154 const std::function<unsigned int(
157
159 partition(const Triangulation<dim, spacedim> &tria_in) const override;
160
161 private:
165 const std::function<
166 unsigned int(const typename Triangulation<dim, spacedim>::cell_iterator &,
167 const CellStatus)>
169 };
170
171} // namespace RepartitioningPolicyTools
172
174
175#endif
CellStatus
Definition cell_status.h:29
virtual LinearAlgebra::distributed::Vector< double > partition(const Triangulation< dim, spacedim > &tria_coarse_in) const =0
virtual LinearAlgebra::distributed::Vector< double > partition(const Triangulation< dim, spacedim > &tria_in) const override
const std::function< unsigned int(const typename Triangulation< dim, spacedim >::cell_iterator &, const CellStatus)> weighting_function
virtual LinearAlgebra::distributed::Vector< double > partition(const Triangulation< dim, spacedim > &tria_coarse_in) const override
virtual LinearAlgebra::distributed::Vector< double > partition(const Triangulation< dim, spacedim > &tria_coarse_in) const override
virtual LinearAlgebra::distributed::Vector< double > partition(const Triangulation< dim, spacedim > &tria_in) const override
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39