22 #ifndef _aspect_simulator_signals_h 23 #define _aspect_simulator_signals_h 29 #include <deal.II/base/parameter_handler.h> 30 #include <deal.II/numerics/data_out.h> 32 #include <boost/signals2.hpp> 64 struct SimulatorSignals
76 boost::signals2::signal<void (std::vector<VariableDeclaration<dim>> &)>
77 edit_finite_element_variables;
85 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> pre_set_initial_state;
93 boost::signals2::signal<void (const SimulatorAccess<dim> &)> post_set_initial_state;
101 boost::signals2::signal<void (const SimulatorAccess<dim> &)> start_timestep;
114 boost::signals2::signal<void (const SimulatorAccess<dim> &,
115 AffineConstraints<double> &)> post_constraints_creation;
128 boost::signals2::signal<void (const SimulatorAccess<dim> &,
141 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> pre_refinement_store_user_data;
152 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> post_refinement_load_user_data;
166 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> pre_compute_no_normal_flux_constraints;
180 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> post_compute_no_normal_flux_constraints;
191 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> pre_checkpoint_store_user_data;
205 boost::signals2::signal<void (typename parallel::distributed::Triangulation<dim> &)> post_resume_load_user_data;
219 boost::signals2::signal<double (const double pressure_scaling, const double reference_viscosity, const double length_scale)>
modify_pressure_scaling;
233 static boost::signals2::signal<void (
const unsigned int aspect_dim,
246 static boost::signals2::signal<void (const Parameters<dim> &,
247 ParameterHandler &)> parse_additional_parameters;
261 boost::signals2::signal<void (const SimulatorAccess<dim> &,
262 const unsigned int number_S_iterations,
263 const unsigned int number_A_iterations,
264 const SolverControl &solver_control_cheap,
265 const SolverControl &solver_control_expensive)> post_stokes_solver;
275 boost::signals2::signal<void (const SimulatorAccess<dim> &,
276 const bool solved_temperature_field,
277 const unsigned int compositional_index,
278 const SolverControl &solver_control)> post_advection_solver;
297 boost::signals2::signal<void (const SimulatorAccess<dim> &,
298 const unsigned int iteration_count)> post_ARKode_solve;
305 boost::signals2::signal<void (const SimulatorAccess<dim> &)> post_mesh_deformation;
311 boost::signals2::signal<void (const SimulatorAccess<dim> &,
322 boost::signals2::signal<void (DataOut<dim> &)> pre_data_out_build_patches;
331 boost::signals2::signal<void (const unsigned int aspect_dim, ParameterHandler &prm)>
334 boost::signals2::signal<void (const Parameters<2> &, ParameterHandler &)>
339 boost::signals2::signal<void (const unsigned int aspect_dim, ParameterHandler &prm)>
342 boost::signals2::signal<void (const Parameters<3> &, ParameterHandler &)>
385 #define ASPECT_REGISTER_SIGNALS_CONNECTOR(connector_function_2d,connector_function_3d) \ 386 namespace ASPECT_REGISTER_SIGNALS_CONNECTOR \ 388 struct dummy_do_register \ 390 dummy_do_register () \ 392 aspect::internals::SimulatorSignals::register_connector_function_2d (connector_function_2d); \ 393 aspect::internals::SimulatorSignals::register_connector_function_3d (connector_function_3d); \ 407 #define ASPECT_REGISTER_SIGNALS_PARAMETER_CONNECTOR(connector_function) \ 408 namespace ASPECT_REGISTER_SIGNALS_PARAMETER_CONNECTOR_ ## connector_function \ 410 struct dummy_do_register_ ## connector_function \ 412 dummy_do_register_ ## connector_function () \ 414 connector_function (); \ 416 } dummy_variable_ ## classname; \ void register_connector_function_2d(const std::function< void(aspect::SimulatorSignals< 2 > &)> &connector)
boost::signals2::signal< double(const double pressure_scaling, const double reference_viscosity, const double length_scale)> modify_pressure_scaling
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