22 #ifndef _aspect_geometry_model_initial_topography_model_interface_h
23 #define _aspect_geometry_model_initial_topography_model_interface_h
42 namespace InitialTopographyModel
94 const std::string &description,
109 std::unique_ptr<Interface<dim>>
145 #define ASPECT_REGISTER_INITIAL_TOPOGRAPHY_MODEL(classname,name,description) \
146 template class classname<2>; \
147 template class classname<3>; \
148 namespace ASPECT_REGISTER_INITIAL_TOPOGRAPHY_MODEL_ ## classname \
150 aspect::internal::Plugins::RegisterHelper<aspect::InitialTopographyModel::Interface<2>,classname<2>> \
151 dummy_ ## classname ## _2d (&aspect::InitialTopographyModel::register_initial_topography_model<2>, \
152 name, description); \
153 aspect::internal::Plugins::RegisterHelper<aspect::InitialTopographyModel::Interface<3>,classname<3>> \
154 dummy_ ## classname ## _3d (&aspect::InitialTopographyModel::register_initial_topography_model<3>, \
155 name, description); \
virtual double value(const Point< dim-1 > &surface_point) const =0
virtual double max_topography() const =0
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)())
void declare_parameters(ParameterHandler &prm)
std::unique_ptr< Interface< dim > > create_initial_topography_model(ParameterHandler &prm)
void write_plugin_graph(std::ostream &output_stream)