16 #ifndef dealii_data_postprocessor_h 17 #define dealii_data_postprocessor_h 21 #include <deal.II/base/point.h> 22 #include <deal.II/base/subscriptor.h> 23 #include <deal.II/base/tensor.h> 25 #include <deal.II/fe/fe_update_flags.h> 27 #include <deal.II/lac/vector.h> 29 #include <deal.II/numerics/data_component_interpretation.h> 31 #include <boost/any.hpp> 36 DEAL_II_NAMESPACE_OPEN
150 template <
int spacedim>
193 template <
typename DoFHandlerType>
195 set_cell(
const typename DoFHandlerType::cell_iterator &
cell);
202 template <
typename DoFHandlerType>
203 typename DoFHandlerType::cell_iterator
230 template <
int spacedim>
286 template <
int spacedim>
475 virtual std::vector<std::string>
500 virtual std::vector<DataComponentInterpretation::DataComponentInterpretation>
562 virtual std::vector<std::string>
572 virtual std::vector<DataComponentInterpretation::DataComponentInterpretation>
801 virtual std::vector<std::string>
811 virtual std::vector<DataComponentInterpretation::DataComponentInterpretation>
1046 virtual std::vector<std::string>
1056 virtual std::vector<DataComponentInterpretation::DataComponentInterpretation>
1082 template <
int spacedim>
1083 template <
typename DoFHandlerType>
1086 const typename DoFHandlerType::cell_iterator &new_cell)
1091 if (
typename DoFHandlerType::cell_iterator *storage_location =
1092 boost::any_cast<typename DoFHandlerType::cell_iterator>(&cell))
1093 *storage_location = new_cell;
1102 template <
int spacedim>
1103 template <
typename DoFHandlerType>
1104 typename DoFHandlerType::cell_iterator
1107 Assert(cell.empty() ==
false,
1109 "You are trying to access the cell associated with a " 1110 "DataPostprocessorInputs::Scalar object for which no cell has " 1112 Assert(boost::any_cast<typename DoFHandlerType::cell_iterator>(&cell) !=
1115 "You are trying to access the cell associated with a " 1116 "DataPostprocessorInputs::Scalar with a DoFHandler type that " 1117 "is different from the type with which it has been set. For " 1118 "example, if the cell for which output is currently being " 1119 "generated belongs to a hp::DoFHandler<2,3> object, then you can " 1120 "only call the current function with a template argument " 1121 "equal to hp::DoFHandler<2,3>, but not with any other class " 1122 "type or dimension template argument."));
1123 return boost::any_cast<
typename DoFHandlerType::cell_iterator>(cell);
1129 DEAL_II_NAMESPACE_CLOSE
virtual std::vector< std::string > get_names() const override
DataPostprocessorTensor(const std::string &name, const UpdateFlags update_flags)
virtual std::vector< std::string > get_names() const override
std::vector< std::vector< Tensor< 2, spacedim > > > solution_hessians
std::vector< double > solution_values
virtual std::vector< std::string > get_names() const override
DoFHandlerType::cell_iterator get_cell() const
virtual UpdateFlags get_needed_update_flags() const override
virtual void evaluate_vector_field(const DataPostprocessorInputs::Vector< dim > &input_data, std::vector< Vector< double >> &computed_quantities) const
DataPostprocessorScalar(const std::string &name, const UpdateFlags update_flags)
virtual std::vector< DataComponentInterpretation::DataComponentInterpretation > get_data_component_interpretation() const override
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)
virtual std::vector< DataComponentInterpretation::DataComponentInterpretation > get_data_component_interpretation() const override
std::vector< Tensor< 2, spacedim > > solution_hessians
virtual std::vector< DataComponentInterpretation::DataComponentInterpretation > get_data_component_interpretation() const override
std::vector< Tensor< 1, spacedim > > solution_gradients
std::vector< Point< spacedim > > evaluation_points
virtual void evaluate_scalar_field(const DataPostprocessorInputs::Scalar< dim > &input_data, std::vector< Vector< double >> &computed_quantities) const
DataPostprocessorVector(const std::string &name, const UpdateFlags update_flags)
virtual UpdateFlags get_needed_update_flags() const override
virtual std::vector< DataComponentInterpretation::DataComponentInterpretation > get_data_component_interpretation() const
std::vector< Tensor< 1, spacedim > > normals
virtual UpdateFlags get_needed_update_flags() const override
virtual std::vector< std::string > get_names() const =0
std::vector<::Vector< double > > solution_values
virtual ~DataPostprocessor() override=default
virtual UpdateFlags get_needed_update_flags() const =0