Reference documentation for deal.II version 9.1.0-pre
data_out.h
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 1999 - 2018 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE.md at
12 // the top level directory of deal.II.
13 //
14 // ---------------------------------------------------------------------
15 
16 #ifndef dealii_data_out_h
17 #define dealii_data_out_h
18 
19 
20 
21 #include <deal.II/base/config.h>
22 
23 #include <deal.II/numerics/data_out_dof_data.h>
24 
25 #include <memory>
26 
27 DEAL_II_NAMESPACE_OPEN
28 
29 namespace internal
30 {
31  namespace DataOutImplementation
32  {
38  template <int dim, int spacedim>
39  struct ParallelData : public ParallelDataBase<dim, spacedim>
40  {
42  const unsigned int n_datasets,
43  const unsigned int n_subdivisions,
44  const std::vector<unsigned int> &n_postprocessor_outputs,
45  const Mapping<dim, spacedim> & mapping,
46  const std::vector<
47  std::shared_ptr<::hp::FECollection<dim, spacedim>>>
48  & finite_elements,
49  const UpdateFlags update_flags,
50  const std::vector<std::vector<unsigned int>> &cell_to_patch_index_map);
51 
52  std::vector<Point<spacedim>> patch_evaluation_points;
53 
54  const std::vector<std::vector<unsigned int>> *cell_to_patch_index_map;
55  };
56  } // namespace DataOutImplementation
57 } // namespace internal
58 
59 
60 
159 template <int dim, typename DoFHandlerType = DoFHandler<dim>>
160 class DataOut : public DataOut_DoFData<DoFHandlerType,
161  DoFHandlerType::dimension,
162  DoFHandlerType::space_dimension>
163 {
164 public:
169  using cell_iterator =
170  typename DataOut_DoFData<DoFHandlerType,
171  DoFHandlerType::dimension,
172  DoFHandlerType::space_dimension>::cell_iterator;
173  using active_cell_iterator = typename DataOut_DoFData<
174  DoFHandlerType,
175  DoFHandlerType::dimension,
176  DoFHandlerType::space_dimension>::active_cell_iterator;
177 
192  {
202 
212 
219  curved_inner_cells
220  };
221 
279  virtual void
280  build_patches(const unsigned int n_subdivisions = 0);
281 
313  virtual void
314  build_patches(const Mapping<DoFHandlerType::dimension,
315  DoFHandlerType::space_dimension> &mapping,
316  const unsigned int n_subdivisions = 0,
317  const CurvedCellRegion curved_region = curved_boundary);
318 
324  virtual cell_iterator
325  first_cell();
326 
338  virtual cell_iterator
339  next_cell(const cell_iterator &cell);
340 
341 private:
347  virtual cell_iterator
348  first_locally_owned_cell();
349 
355  virtual cell_iterator
356  next_locally_owned_cell(const cell_iterator &cell);
357 
367  void
368  build_one_patch(const std::pair<cell_iterator, unsigned int> *cell_and_index,
370  DoFHandlerType::dimension,
371  DoFHandlerType::space_dimension> &scratch_data,
372  const unsigned int n_subdivisions,
373  const CurvedCellRegion curved_cell_region);
374 };
375 
376 
377 
378 DEAL_II_NAMESPACE_CLOSE
379 
380 #endif
typename DataOut_DoFData< DoFHandlerType, DoFHandlerType::dimension, DoFHandlerType::space_dimension >::cell_iterator cell_iterator
Definition: data_out.h:172
UpdateFlags
Abstract base class for mapping classes.
Definition: dof_tools.h:57