22 #ifndef _aspect_boundary_heat_flux_interface_h 23 #define _aspect_boundary_heat_flux_interface_h 36 namespace BoundaryHeatFlux
44 class Interface :
public Plugins::InterfaceBase
74 std::vector<Tensor<1,dim>>
75 heat_flux (
const types::boundary_id boundary_indicator,
76 const MaterialModel::MaterialModelInputs<dim> &material_model_inputs,
77 const MaterialModel::MaterialModelOutputs<dim> &material_model_outputs,
78 const std::vector<Tensor<1,dim>> &normal_vectors)
const = 0;
100 const std::string &description,
101 void (*declare_parameters_function) (ParameterHandler &),
102 std::unique_ptr<Interface<dim>> (*factory_function) ());
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 write_plugin_graph(std::ostream &output_stream)
std::unique_ptr< Interface< dim > > create_boundary_heat_flux(ParameterHandler &prm)
static void declare_parameters(ParameterHandler &prm)