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
145 template <
int spacedim>
188 template <
typename DoFHandlerType>
190 set_cell (
const typename DoFHandlerType::cell_iterator &
cell);
197 template <
typename DoFHandlerType>
198 typename DoFHandlerType::cell_iterator
225 template <
int spacedim>
281 template <
int spacedim>
472 virtual std::vector<std::string>
get_names ()
const = 0;
497 std::vector<DataComponentInterpretation::DataComponentInterpretation>
558 virtual std::vector<std::string>
get_names ()
const;
568 std::vector<DataComponentInterpretation::DataComponentInterpretation>
793 virtual std::vector<std::string>
get_names ()
const;
803 std::vector<DataComponentInterpretation::DataComponentInterpretation>
1032 virtual std::vector<std::string>
get_names ()
const;
1042 std::vector<DataComponentInterpretation::DataComponentInterpretation>
1068 template <
int spacedim>
1069 template <
typename DoFHandlerType>
1076 if (
typename DoFHandlerType::cell_iterator * storage_location
1077 = boost::any_cast<typename DoFHandlerType::cell_iterator>(&cell))
1078 *storage_location = new_cell;
1087 template <
int spacedim>
1088 template <
typename DoFHandlerType>
1089 typename DoFHandlerType::cell_iterator
1092 Assert(cell.empty() ==
false,
1093 ExcMessage (
"You are trying to access the cell associated with a " 1094 "DataPostprocessorInputs::Scalar object for which no cell has " 1096 Assert(boost::any_cast<typename DoFHandlerType::cell_iterator>(&cell) !=
nullptr,
1097 ExcMessage (
"You are trying to access the cell associated with a " 1098 "DataPostprocessorInputs::Scalar with a DoFHandler type that " 1099 "is different from the type with which it has been set. For " 1100 "example, if the cell for which output is currently being " 1101 "generated belongs to a hp::DoFHandler<2,3> object, then you can " 1102 "only call the current function with a template argument " 1103 "equal to hp::DoFHandler<2,3>, but not with any other class " 1104 "type or dimension template argument."));
1105 return boost::any_cast<
typename DoFHandlerType::cell_iterator>(cell);
1111 DEAL_II_NAMESPACE_CLOSE
DataPostprocessorTensor(const std::string &name, const UpdateFlags update_flags)
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< std::string > get_names() 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
virtual std::vector< DataComponentInterpretation::DataComponentInterpretation > get_data_component_interpretation() const
void set_cell(const typename DoFHandlerType::cell_iterator &cell)
std::vector< Tensor< 2, spacedim > > solution_hessians
virtual std::vector< std::string > get_names() const
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
DataPostprocessorVector(const std::string &name, const UpdateFlags update_flags)
virtual UpdateFlags get_needed_update_flags() const
virtual std::vector< DataComponentInterpretation::DataComponentInterpretation > get_data_component_interpretation() const
virtual std::vector< DataComponentInterpretation::DataComponentInterpretation > get_data_component_interpretation() const
std::vector< Tensor< 1, spacedim > > normals
virtual std::vector< std::string > get_names() const =0
std::vector<::Vector< double > > solution_values
virtual ~DataPostprocessor()=default
virtual UpdateFlags get_needed_update_flags() const =0