16 #ifndef _aspect_geometry_model_initial_topography_model_interface_h 17 #define _aspect_geometry_model_initial_topography_model_interface_h 36 namespace InitialTopographyModel
45 class Interface :
public Plugins::InterfaceBase
88 const std::string &description,
90 std::unique_ptr<Interface<dim>> (*factory_function) ());
103 std::unique_ptr<Interface<dim>>
139 #define ASPECT_REGISTER_INITIAL_TOPOGRAPHY_MODEL(classname,name,description) \ 140 template class classname<2>; \ 141 template class classname<3>; \ 142 namespace ASPECT_REGISTER_INITIAL_TOPOGRAPHY_MODEL_ ## classname \ 144 aspect::internal::Plugins::RegisterHelper<aspect::InitialTopographyModel::Interface<2>,classname<2>> \ 145 dummy_ ## classname ## _2d (&aspect::InitialTopographyModel::register_initial_topography_model<2>, \ 146 name, description); \ 147 aspect::internal::Plugins::RegisterHelper<aspect::InitialTopographyModel::Interface<3>,classname<3>> \ 148 dummy_ ## classname ## _3d (&aspect::InitialTopographyModel::register_initial_topography_model<3>, \ 149 name, description); \ void register_initial_topography_model(const std::string &name, const std::string &description, void(*declare_parameters_function)(ParameterHandler &), std::unique_ptr< Interface< dim >>(*factory_function)())
std::unique_ptr< Interface< dim > > create_initial_topography_model(ParameterHandler &prm)
virtual double max_topography() const =0
virtual double value(const Point< dim-1 > &surface_point) const =0
void write_plugin_graph(std::ostream &output_stream)
static void declare_parameters(ParameterHandler &prm)