deal.II version GIT relicensing-2220-ge8e5360a96 2024-12-05 09:50:00+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
data_out_rotation.h
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2000 - 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_data_out_rotation_h
16#define dealii_data_out_rotation_h
17
18
19#include <deal.II/base/config.h>
20
22
23#include <string>
24#include <vector>
25
27
28
29namespace internal
30{
31 namespace DataOutRotationImplementation
32 {
38 template <int dim, int spacedim>
41 {
42 ParallelData(const unsigned int n_datasets,
43 const unsigned int n_subdivisions,
44 const unsigned int n_patches_per_circle,
45 const std::vector<unsigned int> &n_postprocessor_outputs,
46 const Mapping<dim, spacedim> &mapping,
47 const std::vector<
48 std::shared_ptr<::hp::FECollection<dim, spacedim>>>
51
52 const unsigned int n_patches_per_circle;
53
54 std::vector<Point<spacedim>> patch_evaluation_points;
55 };
56 } // namespace DataOutRotationImplementation
57} // namespace internal
58
59
60
113template <int dim, int spacedim = dim>
115 : public DataOut_DoFData<dim, dim + 1, spacedim, spacedim + 1>
116{
117 static_assert(dim == spacedim, "Not implemented for dim != spacedim.");
118
119public:
123 static constexpr int patch_dim = dim + 1;
124 static constexpr int patch_spacedim = spacedim + 1;
125
133
151 virtual void
152 build_patches(const unsigned int n_patches_per_circle,
153 const unsigned int n_subdivisions = 0);
154
161 virtual cell_iterator
162 first_cell();
163
175 virtual cell_iterator
176 next_cell(const cell_iterator &cell);
177
182 double,
183 << "You are attempting to use this class on a triangulation "
184 "in which some vertices have a negative radial coordinate "
185 "value of "
186 << arg1
187 << ". If you rotate such a triangulation around an "
188 "axis, you will get (dim+1)-dimensional meshes "
189 "that are not likely what you hoped to see.");
190
191private:
197 void
199 const cell_iterator *cell,
201 std::vector<DataOutBase::Patch<patch_dim, patch_spacedim>> &my_patches);
202};
203
204
206
207#endif
virtual void build_patches(const unsigned int n_patches_per_circle, const unsigned int n_subdivisions=0)
static constexpr int patch_dim
void build_one_patch(const cell_iterator *cell, internal::DataOutRotationImplementation::ParallelData< dim, spacedim > &data, std::vector< DataOutBase::Patch< patch_dim, patch_spacedim > > &my_patches)
typename DataOut_DoFData< dim, patch_dim, spacedim, patch_spacedim >::cell_iterator cell_iterator
virtual cell_iterator next_cell(const cell_iterator &cell)
static constexpr int patch_spacedim
virtual cell_iterator first_cell()
Abstract base class for mapping classes.
Definition mapping.h:318
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:498
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:499
static ::ExceptionBase & ExcRadialVariableHasNegativeValues(double arg1)
#define DeclException1(Exception1, type1, outsequence)
Definition exceptions.h:511
UpdateFlags
std::vector< index_type > data
Definition mpi.cc:735
const std::vector< std::shared_ptr<::hp::FECollection< dim, spacedim > > > finite_elements
std::vector< Point< spacedim > > patch_evaluation_points