ASPECT
aspect::SimulatorSignals< dim > Struct Template Reference

Public Attributes

boost::signals2::signal< void(std::vector< VariableDeclaration< dim > > &)> edit_finite_element_variables

boost::signals2::signal< void(typename parallel::distributed::Triangulation< dim > &)> pre_set_initial_state

boost::signals2::signal< void(const SimulatorAccess< dim > &)> post_set_initial_state

boost::signals2::signal< void(const SimulatorAccess< dim > &, AffineConstraints< double > &)> post_constraints_creation

boost::signals2::signal< void(const SimulatorAccess< dim > &, Parameters< dim > &parameters)> edit_parameters_pre_setup_dofs

boost::signals2::signal< void(typename parallel::distributed::Triangulation< dim > &)> pre_refinement_store_user_data

boost::signals2::signal< void(typename parallel::distributed::Triangulation< dim > &)> post_refinement_load_user_data

boost::signals2::signal< void(typename parallel::distributed::Triangulation< dim > &)> pre_compute_no_normal_flux_constraints

boost::signals2::signal< void(typename parallel::distributed::Triangulation< dim > &)> post_compute_no_normal_flux_constraints

boost::signals2::signal< void(typename parallel::distributed::Triangulation< dim > &)> pre_checkpoint_store_user_data

boost::signals2::signal< void(typename parallel::distributed::Triangulation< dim > &)> post_resume_load_user_data

boost::signals2::signal< void(const SimulatorAccess< dim > &, const unsigned int number_S_iterations, const unsigned int number_A_iterations, const SolverControl &solver_control_cheap, const SolverControl &solver_control_expensive)> post_stokes_solver

boost::signals2::signal< void(const SimulatorAccess< dim > &, const bool solved_temperature_field, const unsigned int compositional_index, const SolverControl &solver_control)> post_advection_solver

boost::signals2::signal< void(const SolverControl &)> post_nonlinear_solver

boost::signals2::signal< void(const SimulatorAccess< dim > &)> post_mesh_deformation

boost::signals2::signal< void(const SimulatorAccess< dim > &, aspect::Assemblers::Manager< dim > &)> set_assemblers

Static Public Attributes

static boost::signals2::signal< void(const unsigned int aspect_dim, ParameterHandler &prm)> declare_additional_parameters

static boost::signals2::signal< void(const Parameters< dim > &, ParameterHandler &)> parse_additional_parameters

Detailed Description

template<int dim> struct aspect::SimulatorSignals< dim >

A class that collects the definition of signals that can be triggered at different points in a computation. A signal is in essence an event that is triggered whenever the program passes a certain point in a computation. Parties interested in any of these signals can attach "slots" to a signal. A slot is, in essence, a function that is called whenever the signal is triggered. Multiple slots (or none) can be attached to the same signal. To be as general as possible, slots are not actually just pointers to functions, but std::function objects that have a certain signature. Consequently, they can have much more complicated types than just function pointers, such as objects with an operator() or lambda functions.

The documentation of each of the signals below indicates when exactly it is called.

Definition at line 54 of file simulator_access.h.

§ edit_finite_element_variables

template<int dim>
 boost::signals2::signal > &)> aspect::SimulatorSignals< dim >::edit_finite_element_variables

A signal that is called before the list of finite element variables is used to construct the Introspection class.

The functions (slots) that can attach to this signal need to take one argument: A std::vector of VariableDeclaration<dim> representing the collection of finite element variables, that can be modified and will be used to construct the final finite element system later.

Definition at line 76 of file simulator_signals.h.

§ pre_set_initial_state

template<int dim>
 boost::signals2::signal &)> aspect::SimulatorSignals< dim >::pre_set_initial_state

A signal that is called before setting up the initial conditions.

The functions (slots) that can attach to this signal need to take one argument: A SimulatorAccess object that describes the simulator.

Definition at line 84 of file simulator_signals.h.

§ post_set_initial_state

template<int dim>
 boost::signals2::signal &)> aspect::SimulatorSignals< dim >::post_set_initial_state

A signal that is called after setting up the initial conditions.

The functions (slots) that can attach to this signal need to take one argument: A SimulatorAccess object that describes the simulator.

Definition at line 92 of file simulator_signals.h.

§ post_constraints_creation

template<int dim>
 boost::signals2::signal &, AffineConstraints &)> aspect::SimulatorSignals< dim >::post_constraints_creation

A signal that is called at the end of setting up the constraints for the current time step. This allows to add more constraints on degrees of freedom, for example to fix the velocity at certain points.

The functions (slots) that can attach to this signal need to take two arguments: A SimulatorAccess object that describes the simulator to act on, and an (output) argument that indicates the constraints to be computed.

Definition at line 106 of file simulator_signals.h.

§ edit_parameters_pre_setup_dofs

template<int dim>
 boost::signals2::signal &, Parameters ¶meters)> aspect::SimulatorSignals< dim >::edit_parameters_pre_setup_dofs

A signal that is called at the start of setup_dofs(). This allows for editing of the parameters struct on the fly (such as changing boundary conditions) to give ASPECT different behavior in mid-run than it otherwise would have.

The functions that connect to this signal must take two arguments, a SimulatorAccess object that describes the simulator, and an object of type aspect::Parameters<dim>, which is the current parameters object that the simulator is working with.

Definition at line 120 of file simulator_signals.h.

§ pre_refinement_store_user_data

template<int dim>
 boost::signals2::signal &)> aspect::SimulatorSignals< dim >::pre_refinement_store_user_data

A signal that is called before every mesh_refinement. This signal allows for registering functions that store data that is related to mesh cells and needs to be transferred with the cells during the repartitioning.

The functions that connect to this signal must take a reference to a parallel::distributed::Triangulation object as argument. This argument will point to the triangulation used by the Simulator class.

Definition at line 132 of file simulator_signals.h.

template<int dim>

A signal that is called after every mesh_refinement. This signal allows for registering functions that load data related to mesh cells and that was transferred with the cells during the repartitioning.

The functions that connect to this signal must take a reference to a parallel::distributed::Triangulation object as argument. This argument will point to the triangulation used by the Simulator class.

Definition at line 143 of file simulator_signals.h.

§ pre_compute_no_normal_flux_constraints

template<int dim>
 boost::signals2::signal &)> aspect::SimulatorSignals< dim >::pre_compute_no_normal_flux_constraints

A signal that is called before the computation of tangential boundary conditions for which normal vectors are needed, i.e. calls to the compute_no_normal_flux_constraints function for both the velocity variable in the main simulator and the mesh velocity variable in models with mesh deformation.

The functions that connect to this signal must take a reference to a parallel::distributed::Triangulation object as argument. This argument will point to the triangulation used by the Simulator class.

Definition at line 157 of file simulator_signals.h.

§ post_compute_no_normal_flux_constraints

template<int dim>
 boost::signals2::signal &)> aspect::SimulatorSignals< dim >::post_compute_no_normal_flux_constraints

A signal that is called after the computation of tangential boundary conditions for which normal vectors are needed, i.e. calls to the compute_no_normal_flux_constraints function for both the velocity variable in the main simulator and the mesh velocity variable in models with mesh deformation.

The functions that connect to this signal must take a reference to a parallel::distributed::Triangulation object as argument. This argument will point to the triangulation used by the Simulator class.

Definition at line 171 of file simulator_signals.h.

§ pre_checkpoint_store_user_data

template<int dim>
 boost::signals2::signal &)> aspect::SimulatorSignals< dim >::pre_checkpoint_store_user_data

A signal that is called before the creation of every checkpoint. This signal allows for registering functions that store data related to mesh cells.

The functions that connect to this signal must take a reference to a parallel::distributed::Triangulation object as argument. This argument will point to the triangulation used by the Simulator class.

Definition at line 182 of file simulator_signals.h.

template<int dim>

A signal that is called after resuming from a checkpoint. This signal allows for registering functions that load data related to mesh cells that was previously stored in the checkpoint. Note that before calling Triangulation::notify_ready_to_unpack() the function needs to call register_attach_data() with the appropriate arguments to restore the state of the triangulation.

The functions that connect to this signal must take a reference to a parallel::distributed::Triangulation object as argument. This argument will point to the triangulation used by the Simulator class.

Definition at line 196 of file simulator_signals.h.

template<int dim>
static

A signal that is called at the beginning of the program. It gives user extensions the ability to declare additional parameters via the provided argument. User extensions connected to this signal will likely also want to connect to the parse_additional_parameters signal.

The first argument to functions that connect to this signal denotes the dimension in which ASPECT will be run. Functions connected to this signal can declare additional runtime parameters in the second argument.

Definition at line 211 of file simulator_signals.h.

template<int dim>
 boost::signals2::signal &, ParameterHandler &)> aspect::SimulatorSignals< dim >::parse_additional_parameters
static

A signal that is called at the beginning of the program, after reading the input file. It gives user extensions the ability to read additional parameters from the provided argument. The first argument indicates an object that represents all of the other parameters (that have already been parsed at this point).

User extensions connected to this signal will likely also want to connect to the declare_additional_parameters signal.

Definition at line 224 of file simulator_signals.h.

§ post_stokes_solver

template<int dim>
 boost::signals2::signal &, const unsigned int number_S_iterations, const unsigned int number_A_iterations, const SolverControl &solver_control_cheap, const SolverControl &solver_control_expensive)> aspect::SimulatorSignals< dim >::post_stokes_solver

A signal that is fired when the iterative Stokes solver is done. Parameters are a reference to the SimulatorAccess, the number of preconditioner inner solver iterations for the S and A block of the system, and two information objects that contain information about the success of the solve, the number of outer GMRES iterations and the residual history for the cheap and expensive solver phase.

Definition at line 238 of file simulator_signals.h.

template<int dim>
 boost::signals2::signal &, const bool solved_temperature_field, const unsigned int compositional_index, const SolverControl &solver_control)> aspect::SimulatorSignals< dim >::post_advection_solver

A signal that is fired when the iterative advection solver is done. Parameters are a reference to the SimulatorAccess, a bool indicating whether the temperature field or a compositional field was solved, a composition index that describes which compositional field was solved, and an information object that contains information about the number of iterations and history of residuals.

Definition at line 251 of file simulator_signals.h.

§ post_nonlinear_solver

template<int dim>
 boost::signals2::signal aspect::SimulatorSignals< dim >::post_nonlinear_solver

A signal that is fired when the nonlinear solver scheme is done. The signal parameter is an object that contains information about the final state (failure/success), number of iterations and history of residuals of the nonlinear solver. If there is no nonlinear solver (only a single solve), the SolverControl object will report a successful state, a single iteration and a remaining residual of zero.

Definition at line 262 of file simulator_signals.h.

§ post_mesh_deformation

template<int dim>
 boost::signals2::signal &)> aspect::SimulatorSignals< dim >::post_mesh_deformation

A signal that is fired when mesh deformation has occurred. Parameters are a reference to the SimulatorAccess.

Definition at line 268 of file simulator_signals.h.

§ set_assemblers

template<int dim>
 boost::signals2::signal &, aspect::Assemblers::Manager &)> aspect::SimulatorSignals< dim >::set_assemblers

A signal that is fired at the end of the set_assemblers() function that allows modification of the assembly objects active in this simulation.

Definition at line 276 of file simulator_signals.h.

The documentation for this struct was generated from the following files: