22 #ifndef _aspect_postprocess_interface_h 23 #define _aspect_postprocess_interface_h 30 #include <deal.II/base/table_handler.h> 31 #include <deal.II/base/parameter_handler.h> 33 #include <boost/serialization/split_member.hpp> 34 #include <boost/core/demangle.hpp> 41 template <
int dim>
class Simulator;
42 template <
int dim>
class SimulatorAccess;
90 std::pair<std::string,std::string>
91 execute (TableHandler &statistics) = 0;
116 std::list<std::string>
143 std::list<std::pair<std::string,std::string>>
144 execute (TableHandler &statistics);
160 template <
typename PostprocessorType,
161 typename =
typename std::enable_if_t<std::is_base_of<Interface<dim>,PostprocessorType>::value>>
164 has_matching_postprocessor ()
const;
182 template <
typename PostprocessorType,
183 typename =
typename std::enable_if_t<std::is_base_of<Interface<dim>,PostprocessorType>::value>>
185 const PostprocessorType &
186 get_matching_postprocessor ()
const;
223 register_postprocessor (
const std::string &name,
224 const std::string &description,
225 void (*declare_parameters_function) (ParameterHandler &),
246 <<
"Could not find entry <" 248 <<
"> among the names of registered postprocessors.");
255 template <
typename PostprocessorType,
typename>
260 return this->
template has_matching_active_plugin<PostprocessorType>();
266 template <
typename PostprocessorType,
typename>
268 const PostprocessorType &
271 return this->
template get_matching_active_plugin<PostprocessorType>();
282 #define ASPECT_REGISTER_POSTPROCESSOR(classname,name,description) \ 283 template class classname<2>; \ 284 template class classname<3>; \ 285 namespace ASPECT_REGISTER_POSTPROCESSOR_ ## classname \ 287 aspect::internal::Plugins::RegisterHelper<aspect::Postprocess::Interface<2>,classname<2>> \ 288 dummy_ ## classname ## _2d (&aspect::Postprocess::Manager<2>::register_postprocessor, \ 289 name, description); \ 290 aspect::internal::Plugins::RegisterHelper<aspect::Postprocess::Interface<3>,classname<3>> \ 291 dummy_ ## classname ## _3d (&aspect::Postprocess::Manager<3>::register_postprocessor, \ 292 name, description); \ virtual void parse_parameters(ParameterHandler &prm)
void write_plugin_graph(std::ostream &output_stream)
DEAL_II_DEPRECATED const PostprocessorType & get_matching_postprocessor() const
virtual std::pair< std::string, std::string > execute(TableHandler &statistics)=0
DEAL_II_DEPRECATED bool has_matching_postprocessor() const
virtual std::list< std::string > required_other_postprocessors() const
static void declare_parameters(ParameterHandler &prm)
DeclException1(ProbabilityFunctionNegative, Point< dim >,<< "Your probability density function in the particle generator " "returned a negative probability density for the following position: "<< arg1<< ". Please check your function expression.")