16 #ifndef dealii__data_postprocessor_h 17 #define dealii__data_postprocessor_h 21 #include <deal.II/base/subscriptor.h> 22 #include <deal.II/base/tensor.h> 23 #include <deal.II/base/point.h> 24 #include <deal.II/lac/vector.h> 25 #include <deal.II/fe/fe_update_flags.h> 26 #include <deal.II/numerics/data_component_interpretation.h> 28 #include <boost/any.hpp> 33 DEAL_II_NAMESPACE_OPEN
144 template <
int spacedim>
187 template <
typename DoFHandlerType>
189 set_cell (
const typename DoFHandlerType::cell_iterator &
cell);
196 template <
typename DoFHandlerType>
197 typename DoFHandlerType::cell_iterator
224 template <
int spacedim>
280 template <
int spacedim>
475 const std::vector<
Point<dim> > &evaluation_points,
476 std::vector<
Vector<double> > &computed_quantities)
const DEAL_II_DEPRECATED;
511 const std::vector<std::vector<
Tensor<1,dim> > > &solution_gradients,
512 const std::vector<std::vector<
Tensor<2,dim> > > &solution_hessians,
514 const std::vector<
Point<dim> > &evaluation_points,
515 std::vector<
Vector<double> > &computed_quantities)
const DEAL_II_DEPRECATED;
521 virtual std::vector<std::string>
get_names ()
const = 0;
546 std::vector<DataComponentInterpretation::DataComponentInterpretation>
604 virtual std::vector<std::string>
get_names ()
const;
614 std::vector<DataComponentInterpretation::DataComponentInterpretation>
679 virtual std::vector<std::string>
get_names ()
const;
689 std::vector<DataComponentInterpretation::DataComponentInterpretation>
715 template <
int spacedim>
716 template <
typename DoFHandlerType>
723 if (
typename DoFHandlerType::cell_iterator * storage_location
724 = boost::any_cast<typename DoFHandlerType::cell_iterator>(&cell))
725 *storage_location = new_cell;
734 template <
int spacedim>
735 template <
typename DoFHandlerType>
736 typename DoFHandlerType::cell_iterator
739 Assert(cell.empty() ==
false,
740 ExcMessage (
"You are trying to access the cell associated with a " 741 "DataPostprocessorInputs::Scalar object for which no cell has " 743 Assert(boost::any_cast<typename DoFHandlerType::cell_iterator>(&cell) != 0,
744 ExcMessage (
"You are trying to access the cell associated with a " 745 "DataPostprocessorInputs::Scalar with a DoFHandler type that " 746 "is different from the type with which it has been set. For " 747 "example, if the cell for which output is currently being " 748 "generated belongs to a hp::DoFHandler<2,3> object, then you can " 749 "only call the current function with a template argument " 750 "equal to hp::DoFHandler<2,3>, but not with any other class " 751 "type or dimension template argument."));
752 return boost::any_cast<
typename DoFHandlerType::cell_iterator>(cell);
758 DEAL_II_NAMESPACE_CLOSE
virtual void evaluate_vector_field(const DataPostprocessorInputs::Vector< dim > &input_data, std::vector< Vector< double > > &computed_quantities) const
std::vector< std::vector< Tensor< 2, spacedim > > > solution_hessians
virtual void evaluate_scalar_field(const DataPostprocessorInputs::Scalar< dim > &input_data, std::vector< Vector< double > > &computed_quantities) const
std::vector< double > solution_values
DoFHandlerType::cell_iterator get_cell() const
virtual std::vector< DataComponentInterpretation::DataComponentInterpretation > get_data_component_interpretation() const
DataPostprocessorScalar(const std::string &name, const UpdateFlags update_flags)
virtual UpdateFlags get_needed_update_flags() const
static ::ExceptionBase & ExcMessage(std::string arg1)
#define Assert(cond, exc)
std::vector< std::vector< Tensor< 1, spacedim > > > solution_gradients
void set_cell(const typename DoFHandlerType::cell_iterator &cell)
std::vector< Tensor< 2, spacedim > > solution_hessians
virtual std::vector< std::string > get_names() const
virtual void compute_derived_quantities_scalar(const std::vector< double > &solution_values, const std::vector< Tensor< 1, dim > > &solution_gradients, const std::vector< Tensor< 2, dim > > &solution_hessians, const std::vector< Point< dim > > &normals, const std::vector< Point< dim > > &evaluation_points, std::vector< Vector< double > > &computed_quantities) const 1
std::vector< Tensor< 1, spacedim > > solution_gradients
virtual std::vector< std::string > get_names() const
virtual UpdateFlags get_needed_update_flags() const
std::vector< Point< spacedim > > evaluation_points
virtual void compute_derived_quantities_vector(const std::vector< Vector< double > > &solution_values, const std::vector< std::vector< Tensor< 1, dim > > > &solution_gradients, const std::vector< std::vector< Tensor< 2, dim > > > &solution_hessians, const std::vector< Point< dim > > &normals, const std::vector< Point< dim > > &evaluation_points, std::vector< Vector< double > > &computed_quantities) const 1
DataPostprocessorVector(const std::string &name, const UpdateFlags update_flags)
virtual std::vector< DataComponentInterpretation::DataComponentInterpretation > get_data_component_interpretation() const
virtual std::vector< DataComponentInterpretation::DataComponentInterpretation > get_data_component_interpretation() const
virtual ~DataPostprocessor()
std::vector< Tensor< 1, spacedim > > normals
virtual std::vector< std::string > get_names() const =0
std::vector<::Vector< double > > solution_values
virtual UpdateFlags get_needed_update_flags() const =0