include/deal.II/numerics/data_out_rotation.h

00001 //---------------------------------------------------------------------------
00002 //    @f$Id: data_out_rotation.h 25345 2012-03-31 08:37:04Z bangerth @f$
00003 //
00004 //    Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2012 by the deal.II authors
00005 //
00006 //    This file is subject to QPL and may not be  distributed
00007 //    without copyright and license information. Please refer
00008 //    to the file deal.II/doc/license.html for the  text  and
00009 //    further information on this license.
00010 //
00011 //---------------------------------------------------------------------------
00012 #ifndef __deal2__data_out_rotation_h
00013 #define __deal2__data_out_rotation_h
00014 
00015 
00016 #include <deal.II/base/config.h>
00017 #include <deal.II/numerics/data_out.h>
00018 
00019 #include <string>
00020 #include <vector>
00021 
00022 DEAL_II_NAMESPACE_OPEN
00023 
00024 
00025 namespace internal
00026 {
00027   namespace DataOutRotation
00028   {
00038     template <int dim, int spacedim>
00039     struct ParallelData : public internal::DataOut::ParallelDataBase<dim,spacedim>
00040     {
00041         template <class FE>
00042         ParallelData (const Quadrature<dim> &quadrature,
00043                       const unsigned int n_components,
00044                       const unsigned int n_datasets,
00045                       const unsigned int n_subdivisions,
00046                       const unsigned int n_patches_per_circle,
00047                       const std::vector<unsigned int> &n_postprocessor_outputs,
00048                       const FE &finite_elements,
00049                       const UpdateFlags update_flags);
00050 
00051         const unsigned int n_patches_per_circle;
00052 
00053         const ::hp::QCollection<dim> q_collection;
00054         ::hp::FEValues<dim,spacedim> x_fe_values;
00055 
00056         std::vector<Point<spacedim> > patch_evaluation_points;
00057     };
00058   }
00059 }
00060 
00061 
00062 
00120 template <int dim, class DH=DoFHandler<dim> >
00121 class DataOutRotation : public DataOut_DoFData<DH,DH::dimension+1>
00122 {
00123   public:
00129     typedef typename DataOut_DoFData<DH,DH::dimension+1>::cell_iterator cell_iterator;
00130 
00158     virtual void build_patches (const unsigned int n_patches_per_circle,
00159                                 const unsigned int n_subdivisions = 0);
00160 
00170     virtual cell_iterator first_cell ();
00171 
00191     virtual cell_iterator next_cell (const cell_iterator &cell);
00192 
00196     DeclException1 (ExcInvalidNumberOfSubdivisions,
00197                     int,
00198                     << "The number of subdivisions per patch, " << arg1
00199                     << ", is not valid.");
00203     DeclException1 (ExcRadialVariableHasNegativeValues,
00204                     double,
00205                     << "The radial variable attains a negative value of " << arg1);
00206 
00207   private:
00216     void
00217     build_one_patch (const cell_iterator *cell,
00218                      internal::DataOutRotation::ParallelData<DH::dimension, DH::space_dimension> &data,
00219                      std::vector<DataOutBase::Patch<DH::dimension+1,DH::space_dimension+1> > &patches);
00220 };
00221 
00222 
00223 DEAL_II_NAMESPACE_CLOSE
00224 
00225 #endif
00226 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

deal.II documentation generated on Tue May 22 2012 12:06:17 by doxygen 1.7.3