22 #ifndef _aspect_simulator_signals_h 23 #define _aspect_simulator_signals_h 29 #include <deal.II/base/parameter_handler.h> 31 #include <boost/signals2.hpp> 63 struct SimulatorSignals
75 boost::signals2::signal<void (std::vector<VariableDeclaration<dim>> &)>
76 edit_finite_element_variables;
84 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> pre_set_initial_state;
92 boost::signals2::signal<void (const SimulatorAccess<dim> &)> post_set_initial_state;
100 boost::signals2::signal<void (const SimulatorAccess<dim> &)> start_timestep;
113 boost::signals2::signal<void (const SimulatorAccess<dim> &,
114 AffineConstraints<double> &)> post_constraints_creation;
127 boost::signals2::signal<void (const SimulatorAccess<dim> &,
140 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> pre_refinement_store_user_data;
151 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> post_refinement_load_user_data;
165 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> pre_compute_no_normal_flux_constraints;
179 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> post_compute_no_normal_flux_constraints;
190 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> pre_checkpoint_store_user_data;
204 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> post_resume_load_user_data;
218 static boost::signals2::signal<void (
const unsigned int aspect_dim,
231 static boost::signals2::signal<void (const Parameters<dim> &,
232 ParameterHandler &)> parse_additional_parameters;
246 boost::signals2::signal<void (const SimulatorAccess<dim> &,
247 const unsigned int number_S_iterations,
248 const unsigned int number_A_iterations,
249 const SolverControl &solver_control_cheap,
250 const SolverControl &solver_control_expensive)> post_stokes_solver;
260 boost::signals2::signal<void (const SimulatorAccess<dim> &,
261 const bool solved_temperature_field,
262 const unsigned int compositional_index,
263 const SolverControl &solver_control)> post_advection_solver;
281 boost::signals2::signal<void (const SimulatorAccess<dim> &)> post_mesh_deformation;
287 boost::signals2::signal<void (const SimulatorAccess<dim> &,
298 boost::signals2::signal<void (const unsigned int aspect_dim, ParameterHandler &prm)>
301 boost::signals2::signal<void (const Parameters<2> &, ParameterHandler &)>
306 boost::signals2::signal<void (const unsigned int aspect_dim, ParameterHandler &prm)>
309 boost::signals2::signal<void (const Parameters<3> &, ParameterHandler &)>
352 #define ASPECT_REGISTER_SIGNALS_CONNECTOR(connector_function_2d,connector_function_3d) \ 353 namespace ASPECT_REGISTER_SIGNALS_CONNECTOR \ 355 struct dummy_do_register \ 357 dummy_do_register () \ 359 aspect::internals::SimulatorSignals::register_connector_function_2d (connector_function_2d); \ 360 aspect::internals::SimulatorSignals::register_connector_function_3d (connector_function_3d); \ 374 #define ASPECT_REGISTER_SIGNALS_PARAMETER_CONNECTOR(connector_function) \ 375 namespace ASPECT_REGISTER_SIGNALS_PARAMETER_CONNECTOR_ ## connector_function \ 377 struct dummy_do_register_ ## connector_function \ 379 dummy_do_register_ ## connector_function () \ 381 connector_function (); \ 383 } dummy_variable_ ## classname; \ void register_connector_function_2d(const std::function< void(aspect::SimulatorSignals< 2 > &)> &connector)
boost::signals2::signal< void(const SolverControl &)> post_nonlinear_solver
void call_connector_functions(aspect::SimulatorSignals< dim > &signals)
void register_connector_function_3d(const std::function< void(aspect::SimulatorSignals< 3 > &)> &connector)
static boost::signals2::signal< void(const unsigned int aspect_dim, ParameterHandler &prm)> declare_additional_parameters