deal.II version GIT relicensing-6917-gb466a1809f 2026-10-16 06:30: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
cell_data_transfer.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) 2019 - 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_cell_data_transfer_h
14#define dealii_cell_data_transfer_h
15
16#include <deal.II/base/config.h>
17
19
20#include <deal.II/grid/tria.h>
21
23
24#include <algorithm>
25#include <functional>
26#include <set>
27
28
30
103template <int dim, int spacedim = dim, typename VectorType = Vector<double>>
105{
106private:
110 using value_type = typename VectorType::value_type;
111
112public:
126 const std::function<std::vector<value_type>(
127 const typename Triangulation<dim, spacedim>::cell_iterator &parent,
128 const value_type parent_value)> refinement_strategy =
129 &AdaptationStrategies::Refinement::preserve<dim, spacedim, value_type>,
130 const std::function<value_type(
131 const typename Triangulation<dim, spacedim>::cell_iterator &parent,
132 const std::vector<value_type> &children_values)> coarsening_strategy =
134 check_equality<dim, spacedim, value_type>);
135
143 void
145
153 void
154 unpack(const VectorType &in, VectorType &out);
155
156private:
163
168 const std::function<std::vector<value_type>(
169 const typename Triangulation<dim, spacedim>::cell_iterator &parent,
170 const value_type parent_value)>
172
177 const std::function<value_type(
178 const typename Triangulation<dim, spacedim>::cell_iterator &parent,
179 const std::vector<value_type> &children_indices)>
181
186 std::map<const typename Triangulation<dim, spacedim>::cell_iterator,
187 const unsigned int>
189
194 std::map<const typename Triangulation<dim, spacedim>::cell_iterator,
195 const unsigned int>
197
203 std::map<const typename Triangulation<dim, spacedim>::cell_iterator,
204 const std::set<unsigned int>>
206
214 unsigned int n_active_cells_pre;
215};
216
217
219
220#endif /* dealii_cell_data_transfer_h */
CellDataTransfer(const Triangulation< dim, spacedim > &triangulation, const std::function< std::vector< value_type >(const typename Triangulation< dim, spacedim >::cell_iterator &parent, const value_type parent_value)> refinement_strategy=&AdaptationStrategies::Refinement::preserve< dim, spacedim, value_type >, const std::function< value_type(const typename Triangulation< dim, spacedim >::cell_iterator &parent, const std::vector< value_type > &children_values)> coarsening_strategy=&AdaptationStrategies::Coarsening::check_equality< dim, spacedim, value_type >)
void prepare_for_coarsening_and_refinement()
typename VectorType::value_type value_type
void unpack(const VectorType &in, VectorType &out)
std::map< const typename Triangulation< dim, spacedim >::cell_iterator, const unsigned int > refined_cells_active_index
const std::function< std::vector< value_type >(const typename Triangulation< dim, spacedim >::cell_iterator &parent, const value_type parent_value)> refinement_strategy
std::map< const typename Triangulation< dim, spacedim >::cell_iterator, const std::set< unsigned int > > coarsened_cells_active_index
ObserverPointer< const Triangulation< dim, spacedim >, CellDataTransfer< dim, spacedim, VectorType > > triangulation
const std::function< value_type(const typename Triangulation< dim, spacedim >::cell_iterator &parent, const std::vector< value_type > &children_indices)> coarsening_strategy
unsigned int n_active_cells_pre
std::map< const typename Triangulation< dim, spacedim >::cell_iterator, const unsigned int > persisting_cells_active_index
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39