22 #ifndef _aspect_boundary_heat_flux_interface_h
23 #define _aspect_boundary_heat_flux_interface_h
36 namespace BoundaryHeatFlux
74 std::vector<Tensor<1,dim>>
100 const std::string &description,
115 std::unique_ptr<Interface<dim>>
151 #define ASPECT_REGISTER_BOUNDARY_HEAT_FLUX_MODEL(classname, name, description) \
152 template class classname<2>; \
153 template class classname<3>; \
154 namespace ASPECT_REGISTER_BOUNDARY_HEAT_FLUX_MODEL_ ## classname \
156 aspect::internal::Plugins::RegisterHelper<aspect::BoundaryHeatFlux::Interface<2>,classname<2>> \
157 dummy_ ## classname ## _2d (&aspect::BoundaryHeatFlux::register_boundary_heat_flux<2>, \
158 name, description); \
159 aspect::internal::Plugins::RegisterHelper<aspect::BoundaryHeatFlux::Interface<3>,classname<3>> \
160 dummy_ ## classname ## _3d (&aspect::BoundaryHeatFlux::register_boundary_heat_flux<3>, \
161 name, description); \
virtual std::vector< Tensor< 1, dim > > heat_flux(const types::boundary_id boundary_indicator, const MaterialModel::MaterialModelInputs< dim > &material_model_inputs, const MaterialModel::MaterialModelOutputs< dim > &material_model_outputs, const std::vector< Tensor< 1, dim >> &normal_vectors) const =0
void register_boundary_heat_flux(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_boundary_heat_flux(ParameterHandler &prm)
void write_plugin_graph(std::ostream &output_stream)