22 #ifndef _aspect_boundary_heat_flux_interface_h 23 #define _aspect_boundary_heat_flux_interface_h 36 namespace BoundaryHeatFlux
46 class Interface :
public Plugins::InterfaceBase
76 std::vector<Tensor<1,dim>>
77 heat_flux (
const types::boundary_id boundary_indicator,
78 const MaterialModel::MaterialModelInputs<dim> &material_model_inputs,
79 const MaterialModel::MaterialModelOutputs<dim> &material_model_outputs,
80 const std::vector<Tensor<1,dim>> &normal_vectors)
const = 0;
102 const std::string &description,
103 void (*declare_parameters_function) (ParameterHandler &),
104 std::unique_ptr<Interface<dim>> (*factory_function) ());
117 std::unique_ptr<Interface<dim>>
153 #define ASPECT_REGISTER_BOUNDARY_HEAT_FLUX_MODEL(classname, name, description) \ 154 template class classname<2>; \ 155 template class classname<3>; \ 156 namespace ASPECT_REGISTER_BOUNDARY_HEAT_FLUX_MODEL_ ## classname \ 158 aspect::internal::Plugins::RegisterHelper<aspect::BoundaryHeatFlux::Interface<2>,classname<2>> \ 159 dummy_ ## classname ## _2d (&aspect::BoundaryHeatFlux::register_boundary_heat_flux<2>, \ 160 name, description); \ 161 aspect::internal::Plugins::RegisterHelper<aspect::BoundaryHeatFlux::Interface<3>,classname<3>> \ 162 dummy_ ## classname ## _3d (&aspect::BoundaryHeatFlux::register_boundary_heat_flux<3>, \ 163 name, description); \
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 write_plugin_graph(std::ostream &output_stream)
std::unique_ptr< Interface< dim > > create_boundary_heat_flux(ParameterHandler &prm)
void declare_parameters(ParameterHandler &prm)