include/deal.II/numerics/data_postprocessor.h

00001 //---------------------------------------------------------------------------
00002 //    @f$Id: data_postprocessor.h 25345 2012-03-31 08:37:04Z bangerth @f$
00003 //
00004 //    Copyright (C) 2007, 2008, 2010, 2011, 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_postprocessor_h
00013 #define __deal2__data_postprocessor_h
00014 
00015 
00016 
00017 #include <deal.II/base/subscriptor.h>
00018 #include <deal.II/base/tensor.h>
00019 #include <deal.II/lac/vector.h>
00020 #include <deal.II/fe/fe_update_flags.h>
00021 #include <deal.II/numerics/data_component_interpretation.h>
00022 
00023 #include <vector>
00024 #include <string>
00025 
00026 DEAL_II_NAMESPACE_OPEN
00027 
00028 
00097 template <int dim>
00098 class DataPostprocessor: public Subscriptor
00099 {
00100   public:
00105     virtual ~DataPostprocessor ();
00106 
00121     virtual
00122     void
00123     compute_derived_quantities_scalar (const std::vector<double>         &uh,
00124                                        const std::vector<Tensor<1,dim> > &duh,
00125                                        const std::vector<Tensor<2,dim> > &dduh,
00126                                        const std::vector<Point<dim> >    &normals,
00127                                        std::vector<Vector<double> >      &computed_quantities) const;
00128 
00156     virtual
00157     void
00158     compute_derived_quantities_scalar (const std::vector<double>         &uh,
00159                                        const std::vector<Tensor<1,dim> > &duh,
00160                                        const std::vector<Tensor<2,dim> > &dduh,
00161                                        const std::vector<Point<dim> >    &normals,
00162                                        const std::vector<Point<dim> >    &evaluation_points,
00163                                        std::vector<Vector<double> >      &computed_quantities) const;
00164 
00179     virtual
00180     void
00181     compute_derived_quantities_vector (const std::vector<Vector<double> >              &uh,
00182                                        const std::vector<std::vector<Tensor<1,dim> > > &duh,
00183                                        const std::vector<std::vector<Tensor<2,dim> > > &dduh,
00184                                        const std::vector<Point<dim> >                  &normals,
00185                                        std::vector<Vector<double> >                    &computed_quantities) const;
00186 
00196     virtual
00197     void
00198     compute_derived_quantities_vector (const std::vector<Vector<double> >              &uh,
00199                                        const std::vector<std::vector<Tensor<1,dim> > > &duh,
00200                                        const std::vector<std::vector<Tensor<2,dim> > > &dduh,
00201                                        const std::vector<Point<dim> >                  &normals,
00202                                        const std::vector<Point<dim> >                  &evaluation_points,
00203                                        std::vector<Vector<double> >                    &computed_quantities) const;
00204 
00209     virtual std::vector<std::string> get_names () const = 0;
00210 
00249     virtual
00250     std::vector<DataComponentInterpretation::DataComponentInterpretation>
00251     get_data_component_interpretation () const;
00252 
00264     virtual UpdateFlags get_needed_update_flags () const = 0;
00265 };
00266 
00267 
00268 
00288 template <int dim>
00289 class DataPostprocessorScalar : public DataPostprocessor<dim>
00290 {
00291 public:
00309   DataPostprocessorScalar (const std::string &name,
00310                            const UpdateFlags  update_flags);
00311 
00319     virtual std::vector<std::string> get_names () const;
00320 
00333     virtual
00334     std::vector<DataComponentInterpretation::DataComponentInterpretation>
00335     get_data_component_interpretation () const;
00336 
00344     virtual UpdateFlags get_needed_update_flags () const;
00345 
00346 private:
00351   const std::string name;
00352   const UpdateFlags update_flags;
00353 };
00354 
00355 
00356 
00378 template <int dim>
00379 class DataPostprocessorVector : public DataPostprocessor<dim>
00380 {
00381 public:
00399   DataPostprocessorVector (const std::string &name,
00400                            const UpdateFlags  update_flags);
00401 
00409     virtual std::vector<std::string> get_names () const;
00410 
00424     virtual
00425     std::vector<DataComponentInterpretation::DataComponentInterpretation>
00426     get_data_component_interpretation () const;
00427 
00435     virtual UpdateFlags get_needed_update_flags () const;
00436 
00437 private:
00442   const std::string name;
00443   const UpdateFlags update_flags;
00444 };
00445 
00446 
00447 DEAL_II_NAMESPACE_CLOSE
00448 
00449 #endif
00450 
 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