22 #ifndef _aspect_prescribed_solution_interface_h
23 #define _aspect_prescribed_solution_interface_h
31 #include <boost/core/demangle.hpp>
43 namespace PrescribedSolution
64 const std::vector<unsigned int> &component_indices,
65 std::vector<bool> &should_be_constrained,
66 std::vector<double> &solution) = 0;
83 <<
"Could not find entry <"
85 <<
"> among the names of registered prescribed solution objects.");
114 const std::string &description,
166 #define ASPECT_REGISTER_PRESCRIBED_SOLUTION(classname,name,description) \
167 template class classname<2>; \
168 template class classname<3>; \
169 namespace ASPECT_REGISTER_PRESCRIBED_SOLUTION_ ## classname \
171 aspect::internal::Plugins::RegisterHelper<aspect::PrescribedSolution::Interface<2>,classname<2>> \
172 dummy_ ## classname ## _2d (&aspect::PrescribedSolution::Manager<2>::register_prescribed_solution_plugin, \
173 name, description); \
174 aspect::internal::Plugins::RegisterHelper<aspect::PrescribedSolution::Interface<3>,classname<3>> \
175 dummy_ ## classname ## _3d (&aspect::PrescribedSolution::Manager<3>::register_prescribed_solution_plugin, \
176 name, description); \
virtual void constrain_solution(const typename DoFHandler< dim >::active_cell_iterator &cell, const std::vector< Point< dim >> &positions, const std::vector< unsigned int > &component_indices, std::vector< bool > &should_be_constrained, std::vector< double > &solution)=0
DeclException1(ExcPrescribedSolutionNameNotFound, std::string,<< "Could not find entry <"<< arg1<< "> among the names of registered prescribed solution objects.")
void constrain_solution(AffineConstraints< double > ¤t_constraints) const
static void register_prescribed_solution_plugin(const std::string &name, const std::string &description, void(*declare_parameters_function)(ParameterHandler &), std::unique_ptr< Interface< dim >>(*factory_function)())
static void write_plugin_graph(std::ostream &output_stream)
static void declare_parameters(ParameterHandler &prm)
void parse_parameters(ParameterHandler &prm) override
std::string get_valid_model_names_pattern()