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
persistent_tria.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) 1999 - 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_persistent_tria_h
14#define dealii_persistent_tria_h
15
16
17#include <deal.II/base/config.h>
18
20
21#include <deal.II/grid/tria.h>
22
23#include <vector>
24
26
104template <int dim, int spacedim = dim>
105class PersistentTriangulation : public Triangulation<dim, spacedim>
106{
107public:
111 static constexpr unsigned int dimension = dim;
112 static const unsigned int spacedimension = spacedim;
113
124
132
136 virtual ~PersistentTriangulation() override = default;
137
144 virtual void
146
159 void
160 restore();
161
170 void
171 restore(const unsigned int step_no);
172
177 unsigned int
178 n_refinement_steps() const;
179
189 virtual void
191
196 virtual void
198 const std::vector<CellData<dim>> &cells,
199 const SubCellData &subcelldata) override;
200
206 virtual void
209 &construction_data) override;
210
214 virtual void
215 write_flags(std::ostream &out) const;
216
222 virtual void
223 read_flags(std::istream &in);
224
228 virtual void
229 clear_flags();
230
235 virtual std::size_t
236 memory_consumption() const override;
237
246
247private:
254
260 std::vector<std::vector<bool>> refine_flags;
261
265 std::vector<std::vector<bool>> coarsen_flags;
266};
267
268
270
271#endif
ObserverPointer< const Triangulation< dim, spacedim >, PersistentTriangulation< dim, spacedim > > coarse_grid
virtual void read_flags(std::istream &in)
virtual ~PersistentTriangulation() override=default
static constexpr unsigned int dimension
virtual void write_flags(std::ostream &out) const
virtual std::size_t memory_consumption() const override
static const unsigned int spacedimension
virtual void create_triangulation(const std::vector< Point< spacedim > > &vertices, const std::vector< CellData< dim > > &cells, const SubCellData &subcelldata) override
std::vector< std::vector< bool > > coarsen_flags
virtual void copy_triangulation(const Triangulation< dim, spacedim > &tria) override
unsigned int n_refinement_steps() const
virtual void execute_coarsening_and_refinement() override
std::vector< std::vector< bool > > refine_flags
Definition point.h:111
std::vector< Point< spacedim > > vertices
Definition tria.h:4609
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
#define DeclException0(Exception0)
static ::ExceptionBase & ExcFlagsNotCleared()
static ::ExceptionBase & ExcTriaNotEmpty()