deal.II version GIT relicensing-2165-gc91f007519 2024-11-20 01:40: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.h
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 1999 - 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_h
16#define dealii_data_out_h
17
18
19
20#include <deal.II/base/config.h>
21
23
25
26#include <memory>
27
29
30namespace internal
31{
32 namespace DataOutImplementation
33 {
39 template <int dim, int spacedim>
40 struct ParallelData : public ParallelDataBase<dim, spacedim>
41 {
43 const unsigned int n_datasets,
44 const unsigned int n_subdivisions,
45 const std::vector<unsigned int> &n_postprocessor_outputs,
46 const ::hp::MappingCollection<dim, spacedim> &mapping,
47 const std::vector<
48 std::shared_ptr<::hp::FECollection<dim, spacedim>>>
51 const std::vector<std::vector<unsigned int>> &cell_to_patch_index_map);
52
53 std::vector<Point<spacedim>> patch_evaluation_points;
54
55 const std::vector<std::vector<unsigned int>> *cell_to_patch_index_map;
56 };
57 } // namespace DataOutImplementation
58} // namespace internal
59
60
61
145template <int dim, int spacedim = dim>
146class DataOut : public DataOut_DoFData<dim, dim, spacedim, spacedim>
147{
148public:
155
161 typename std::function<cell_iterator(const Triangulation<dim, spacedim> &)>;
162
168 typename std::function<cell_iterator(const Triangulation<dim, spacedim> &,
169 const cell_iterator &)>;
170
213
217 DataOut();
218
277 virtual void
278 build_patches(const unsigned int n_subdivisions = 0);
279
308 virtual void
310 const unsigned int n_subdivisions = 0,
311 const CurvedCellRegion curved_region = curved_boundary);
312
316 virtual void
318 const unsigned int n_subdivisions = 0,
319 const CurvedCellRegion curved_region = curved_boundary);
320
365 void
367 const std::function<cell_iterator(const Triangulation<dim, spacedim> &)>
368 &first_cell,
369 const std::function<cell_iterator(const Triangulation<dim, spacedim> &,
370 const cell_iterator &)> &next_cell);
371
408 void
409 set_cell_selection(const FilteredIterator<cell_iterator> &filtered_iterator);
410
415 std::pair<FirstCellFunctionType, NextCellFunctionType>
416 get_cell_selection() const;
417
418private:
424 std::function<cell_iterator(const Triangulation<dim, spacedim> &)>
426
432 std::function<cell_iterator(const Triangulation<dim, spacedim> &,
433 const cell_iterator &)>
435
445 void
447 const std::pair<cell_iterator, unsigned int> *cell_and_index,
449 const unsigned int n_subdivisions,
450 const CurvedCellRegion curved_cell_region);
451};
452
453
455
456#endif
typename Triangulation< dim, spacedim >::cell_iterator cell_iterator
DataOut()
Definition data_out.cc:67
virtual void build_patches(const unsigned int n_subdivisions=0)
Definition data_out.cc:1062
CurvedCellRegion
Definition data_out.h:185
@ curved_boundary
Definition data_out.h:203
@ no_curved_cells
Definition data_out.h:194
@ curved_inner_cells
Definition data_out.h:211
typename std::function< cell_iterator(const Triangulation< dim, spacedim > &)> FirstCellFunctionType
Definition data_out.h:161
typename std::function< cell_iterator(const Triangulation< dim, spacedim > &, const cell_iterator &)> NextCellFunctionType
Definition data_out.h:169
void build_one_patch(const std::pair< cell_iterator, unsigned int > *cell_and_index, internal::DataOutImplementation::ParallelData< dim, spacedim > &scratch_data, const unsigned int n_subdivisions, const CurvedCellRegion curved_cell_region)
Definition data_out.cc:95
typename DataOut_DoFData< dim, dim, spacedim, spacedim >::cell_iterator cell_iterator
Definition data_out.h:154
void set_cell_selection(const std::function< cell_iterator(const Triangulation< dim, spacedim > &)> &first_cell, const std::function< cell_iterator(const Triangulation< dim, spacedim > &, const cell_iterator &)> &next_cell)
Definition data_out.cc:1273
std::function< cell_iterator(const Triangulation< dim, spacedim > &)> first_cell_function
Definition data_out.h:425
std::function< cell_iterator(const Triangulation< dim, spacedim > &, const cell_iterator &)> next_cell_function
Definition data_out.h:434
std::pair< FirstCellFunctionType, NextCellFunctionType > get_cell_selection() const
Definition data_out.cc:1329
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
UpdateFlags
const std::vector< std::shared_ptr<::hp::FECollection< dim, spacedim > > > finite_elements
const std::vector< std::vector< unsigned int > > * cell_to_patch_index_map
Definition data_out.h:55
std::vector< Point< spacedim > > patch_evaluation_points
Definition data_out.h:53