Reference documentation for deal.II version 8.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
data_out.h
1 // ---------------------------------------------------------------------
2 // @f$Id: data_out.h 31243 2013-10-15 20:28:36Z turcksin @f$
3 //
4 // Copyright (C) 1999 - 2013 by the deal.II authors
5 //
6 // This file is part of the deal.II library.
7 //
8 // The deal.II library is free software; you can use it, redistribute
9 // it, and/or modify it under the terms of the GNU Lesser General
10 // Public License as published by the Free Software Foundation; either
11 // version 2.1 of the License, or (at your option) any later version.
12 // The full text of the license can be found in the file LICENSE at
13 // the top level of the deal.II distribution.
14 //
15 // ---------------------------------------------------------------------
16 
17 #ifndef __deal2__data_out_h
18 #define __deal2__data_out_h
19 
20 
21 
22 #include <deal.II/base/config.h>
23 #include <deal.II/numerics/data_out_dof_data.h>
24 
25 #include <deal.II/base/std_cxx1x/shared_ptr.h>
26 
27 DEAL_II_NAMESPACE_OPEN
28 
29 template <int, int> class FEValuesBase;
30 
31 namespace internal
32 {
33  namespace DataOut
34  {
40  template <int dim, int spacedim>
41  struct ParallelData : public ParallelDataBase<dim,spacedim>
42  {
43  ParallelData (const unsigned int n_datasets,
44  const unsigned int n_subdivisions,
45  const std::vector<unsigned int> &n_postprocessor_outputs,
46  const Mapping<dim,spacedim> &mapping,
47  const std::vector<std_cxx1x::shared_ptr<::hp::FECollection<dim,spacedim> > > &finite_elements,
48  const UpdateFlags update_flags,
49  const std::vector<std::vector<unsigned int> > &cell_to_patch_index_map);
50 
51  std::vector<Point<spacedim> > patch_evaluation_points;
52 
53  const std::vector<std::vector<unsigned int> > *cell_to_patch_index_map;
54  };
55  }
56 }
57 
58 
59 
143 template <int dim, class DH=DoFHandler<dim> >
144 class DataOut : public DataOut_DoFData<DH, DH::dimension, DH::space_dimension>
145 {
146 public:
153 
159  {
160  no_curved_cells,
161  curved_boundary,
162  curved_inner_cells
163  };
164 
173  virtual void build_patches (const unsigned int n_subdivisions = 0);
174 
200  virtual void build_patches (const Mapping<DH::dimension,DH::space_dimension> &mapping,
201  const unsigned int n_subdivisions = 0,
202  const CurvedCellRegion curved_region = curved_boundary);
203 
209  virtual cell_iterator first_cell ();
210 
222  virtual cell_iterator next_cell (const cell_iterator &cell);
223 
227  DeclException1 (ExcInvalidNumberOfSubdivisions,
228  int,
229  << "The number of subdivisions per patch, " << arg1
230  << ", is not valid.");
231 
232 private:
233 
240 
247 
253  void build_one_patch (const std::pair<cell_iterator, unsigned int> *cell_and_index,
256  const CurvedCellRegion curved_cell_region,
258 };
259 
260 
261 
262 DEAL_II_NAMESPACE_CLOSE
263 
264 #endif
cell_iterator next_locally_owned_cell(const cell_iterator &cell)
virtual void build_patches(const unsigned int n_subdivisions=0)
UpdateFlags
virtual cell_iterator next_cell(const cell_iterator &cell)
virtual cell_iterator first_cell()
cell_iterator first_locally_owned_cell()
DataOut_DoFData< DH, DH::dimension, DH::space_dimension >::cell_iterator cell_iterator
Definition: data_out.h:151
void build_one_patch(const std::pair< cell_iterator, unsigned int > *cell_and_index, internal::DataOut::ParallelData< DH::dimension, DH::space_dimension > &data,::DataOutBase::Patch< DH::dimension, DH::space_dimension > &patch, const CurvedCellRegion curved_cell_region, std::vector<::DataOutBase::Patch< DH::dimension, DH::space_dimension > > &patches)
DeclException1(ExcInvalidNumberOfSubdivisions, int,<< "The number of subdivisions per patch, "<< arg1<< ", is not valid.")