22 #ifndef _aspect_boundary_convective_heating_interface_h
23 #define _aspect_boundary_convective_heating_interface_h
33 template <
int dim>
class SimulatorAccess;
41 namespace BoundaryConvectiveHeating
132 std::vector<Tensor<1,dim>>
169 const std::string &description,
176 const std::string &description,
183 const std::string &description,
191 const std::set<types::boundary_id> &
212 <<
"Could not find entry <"
214 <<
"> among the names of registered boundary convective heating objects.");
255 #define ASPECT_REGISTER_BOUNDARY_CONVECTIVE_HEATING_MODEL(classname, name, description) \
256 template class classname<2>; \
257 template class classname<3>; \
258 namespace ASPECT_REGISTER_BOUNDARY_CONVECTIVE_HEATING_MODEL_ ## classname \
260 aspect::internal::Plugins::RegisterHelper<aspect::BoundaryConvectiveHeating::Interface<2>,classname<2>> \
261 dummy_ ## classname ## _2d (&aspect::BoundaryConvectiveHeating::Manager<2>::register_boundary_convective_heating, \
262 name, description); \
263 aspect::internal::Plugins::RegisterHelper<aspect::BoundaryConvectiveHeating::Interface<3>,classname<3>> \
264 dummy_ ## classname ## _3d (&aspect::BoundaryConvectiveHeating::Manager<3>::register_boundary_convective_heating, \
265 name, description); \
virtual std::vector< double > heat_transfer_coefficient(const types::boundary_id boundary_indicator, const MaterialModel::MaterialModelInputs< dim > &material_model_inputs, const MaterialModel::MaterialModelOutputs< dim > &material_model_outputs) const =0
static void write_plugin_graph(std::ostream &output_stream)
static void register_boundary_heat_flux(const std::string &name, const std::string &description, void(*declare_parameters_function)(ParameterHandler &), std::unique_ptr< BoundaryHeatFlux::Interface< dim >>(*factory_function)())
static void declare_parameters(ParameterHandler &prm)
std::list< std::unique_ptr< aspect::BoundaryTemperature::Interface< dim > > > temperature_plugin_objects
void parse_parameters(ParameterHandler &prm) override
std::set< types::boundary_id > convective_heating_boundary_indicators
DeclException1(ExcBoundaryConvectiveHeatingNameNotFound, std::string,<< "Could not find entry <"<< arg1<< "> among the names of registered boundary convective heating objects.")
double boundary_temperature(const types::boundary_id boundary_indicator, const Point< dim > &position) const
std::vector< std::string > heat_flux_plugin_names
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
std::vector< std::string > temperature_plugin_names
static void register_boundary_convective_heating(const std::string &name, const std::string &description, void(*declare_parameters_function)(ParameterHandler &), std::unique_ptr< Interface< dim >>(*factory_function)())
std::vector< double > heat_transfer_coefficient(const types::boundary_id boundary_indicator, const MaterialModel::MaterialModelInputs< dim > &material_model_inputs, const MaterialModel::MaterialModelOutputs< dim > &material_model_outputs) const
static void register_boundary_temperature(const std::string &name, const std::string &description, void(*declare_parameters_function)(ParameterHandler &), std::unique_ptr< BoundaryTemperature::Interface< dim >>(*factory_function)())
const std::set< types::boundary_id > & get_convective_heating_boundary_indicators() const
std::list< std::unique_ptr< aspect::BoundaryHeatFlux::Interface< dim > > > heat_flux_plugin_objects