Reference documentation for deal.II version 8.1.0
data_out_faces.h
1 // ---------------------------------------------------------------------
2 // @f$Id: data_out_faces.h 31076 2013-10-02 17:52:30Z heister @f$
3 //
4 // Copyright (C) 2000 - 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_faces_h
18 #define __deal2__data_out_faces_h
19 
20 
21 #include <deal.II/base/config.h>
22 #include <deal.II/numerics/data_out.h>
23 
24 #include <string>
25 #include <vector>
26 
28 
29 
30 namespace internal
31 {
32  namespace DataOutFaces
33  {
43  template <int dim, int spacedim>
44  struct ParallelData : public internal::DataOut::ParallelDataBase<dim,spacedim>
45  {
46  ParallelData (const unsigned int n_datasets,
47  const unsigned int n_subdivisions,
48  const std::vector<unsigned int> &n_postprocessor_outputs,
49  const Mapping<dim,spacedim> &mapping,
50  const std::vector<std_cxx1x::shared_ptr<::hp::FECollection<dim,spacedim> > > &finite_elements,
51  const UpdateFlags update_flags);
52 
53  std::vector<Point<dim> > patch_normals;
54  std::vector<Point<spacedim> > patch_evaluation_points;
55  };
56  }
57 }
58 
59 
116 template <int dim, class DH=DoFHandler<dim> >
117 class DataOutFaces : public DataOut_DoFData<DH,DH::dimension-1,
118  DH::dimension>
119 {
120 public:
126  typedef typename DataOut_DoFData<DH,DH::dimension-1,
128 
135  DataOutFaces (const bool surface_only = true);
136 
152  virtual void
153  build_patches (const unsigned int n_subdivisions = 0);
154 
196  virtual void build_patches (const Mapping<DH::dimension> &mapping,
197  const unsigned int n_subdivisions = 0);
198 
215  typedef typename std::pair<cell_iterator,unsigned int> FaceDescriptor;
216 
217 
230  virtual FaceDescriptor first_face ();
231 
265  virtual FaceDescriptor next_face (const FaceDescriptor &face);
266 
270  DeclException1 (ExcInvalidNumberOfSubdivisions,
271  int,
272  << "The number of subdivisions per patch, " << arg1
273  << ", is not valid.");
274 
278  DeclException0 (ExcCellNotActiveForCellData);
279 
280 private:
286  const bool surface_only;
287 
293  void build_one_patch (const FaceDescriptor *cell_and_face,
296 };
297 
298 
299 DEAL_II_NAMESPACE_CLOSE
300 
301 #endif
DeclException1(ExcInvalidNumberOfSubdivisions, int,<< "The number of subdivisions per patch, "<< arg1<< ", is not valid.")
const bool surface_only
virtual FaceDescriptor first_face()
void build_one_patch(const FaceDescriptor *cell_and_face, internal::DataOutFaces::ParallelData< DH::dimension, DH::dimension > &data, DataOutBase::Patch< DH::dimension-1, DH::space_dimension > &patch)
std::pair< cell_iterator, unsigned int > FaceDescriptor
UpdateFlags
DataOutFaces(const bool surface_only=true)
DeclException0(ExcCellNotActiveForCellData)
virtual void build_patches(const unsigned int n_subdivisions=0)
virtual FaceDescriptor next_face(const FaceDescriptor &face)
DataOut_DoFData< DH, DH::dimension-1, DH::dimension >::cell_iterator cell_iterator