ASPECT
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
aspect::Postprocess::GlobalStatistics< dim > Class Template Reference
Inheritance diagram for aspect::Postprocess::GlobalStatistics< dim >:
Inheritance graph
[legend]

Public Member Functions

void initialize () override
 
std::pair< std::string, std::string > execute (TableHandler &statistics) override
 
void parse_parameters (ParameterHandler &prm) override
 
- Public Member Functions inherited from aspect::Postprocess::Interface< dim >
virtual std::list< std::string > required_other_postprocessors () const
 
virtual void save (std::map< std::string, std::string > &status_strings) const
 
virtual void load (const std::map< std::string, std::string > &status_strings)
 
- Public Member Functions inherited from aspect::Plugins::InterfaceBase
virtual ~InterfaceBase ()=default
 
virtual void update ()
 
- Public Member Functions inherited from aspect::SimulatorAccess< dim >
 SimulatorAccess ()
 
 SimulatorAccess (const Simulator< dim > &simulator_object)
 
virtual ~SimulatorAccess ()=default
 
virtual void initialize_simulator (const Simulator< dim > &simulator_object)
 
const Introspection< dim > & introspection () const
 
const Simulator< dim > & get_simulator () const
 
const Parameters< dim > & get_parameters () const
 
SimulatorSignals< dim > & get_signals () const
 
MPI_Comm get_mpi_communicator () const
 
TimerOutput & get_computing_timer () const
 
const ConditionalOStream & get_pcout () const
 
double get_time () const
 
double get_timestep () const
 
double get_old_timestep () const
 
unsigned int get_timestep_number () const
 
const TimeStepping::Manager< dim > & get_timestepping_manager () const
 
unsigned int get_nonlinear_iteration () const
 
const parallel::distributed::Triangulation< dim > & get_triangulation () const
 
double get_volume () const
 
const Mapping< dim > & get_mapping () const
 
std::string get_output_directory () const
 
bool include_adiabatic_heating () const
 
bool include_latent_heat () const
 
bool include_melt_transport () const
 
int get_stokes_velocity_degree () const
 
double get_adiabatic_surface_temperature () const
 
double get_surface_pressure () const
 
bool convert_output_to_years () const
 
unsigned int get_pre_refinement_step () const
 
unsigned int n_compositional_fields () const
 
double get_end_time () const
 
void get_refinement_criteria (Vector< float > &estimated_error_per_cell) const
 
void get_artificial_viscosity (Vector< float > &viscosity_per_cell, const bool skip_interior_cells=false) const
 
void get_artificial_viscosity_composition (Vector< float > &viscosity_per_cell, const unsigned int compositional_variable) const
 
const LinearAlgebra::BlockVectorget_current_linearization_point () const
 
const LinearAlgebra::BlockVectorget_solution () const
 
const LinearAlgebra::BlockVectorget_old_solution () const
 
const LinearAlgebra::BlockVectorget_old_old_solution () const
 
const LinearAlgebra::BlockVectorget_reaction_vector () const
 
const LinearAlgebra::BlockVectorget_mesh_velocity () const
 
const DoFHandler< dim > & get_dof_handler () const
 
const FiniteElement< dim > & get_fe () const
 
const LinearAlgebra::BlockSparseMatrixget_system_matrix () const
 
const LinearAlgebra::BlockSparseMatrixget_system_preconditioner_matrix () const
 
const MaterialModel::Interface< dim > & get_material_model () const
 
const GravityModel::Interface< dim > & get_gravity_model () const
 
const InitialTopographyModel::Interface< dim > & get_initial_topography_model () const
 
const GeometryModel::Interface< dim > & get_geometry_model () const
 
const AdiabaticConditions::Interface< dim > & get_adiabatic_conditions () const
 
bool has_boundary_temperature () const
 
const BoundaryTemperature::Manager< dim > & get_boundary_temperature_manager () const
 
const BoundaryHeatFlux::Interface< dim > & get_boundary_heat_flux () const
 
bool has_boundary_composition () const
 
const BoundaryComposition::Manager< dim > & get_boundary_composition_manager () const
 
const BoundaryTraction::Manager< dim > & get_boundary_traction_manager () const
 
std::shared_ptr< const InitialTemperature::Manager< dim > > get_initial_temperature_manager_pointer () const
 
const InitialTemperature::Manager< dim > & get_initial_temperature_manager () const
 
std::shared_ptr< const InitialComposition::Manager< dim > > get_initial_composition_manager_pointer () const
 
const InitialComposition::Manager< dim > & get_initial_composition_manager () const
 
const std::set< types::boundary_id > & get_fixed_temperature_boundary_indicators () const
 
const std::set< types::boundary_id > & get_fixed_heat_flux_boundary_indicators () const
 
const std::set< types::boundary_id > & get_fixed_composition_boundary_indicators () const
 
const std::set< types::boundary_id > & get_mesh_deformation_boundary_indicators () const
 
const BoundaryVelocity::Manager< dim > & get_boundary_velocity_manager () const
 
const HeatingModel::Manager< dim > & get_heating_model_manager () const
 
const MeshRefinement::Manager< dim > & get_mesh_refinement_manager () const
 
const MeltHandler< dim > & get_melt_handler () const
 
const VolumeOfFluidHandler< dim > & get_volume_of_fluid_handler () const
 
const NewtonHandler< dim > & get_newton_handler () const
 
const MeshDeformation::MeshDeformationHandler< dim > & get_mesh_deformation_handler () const
 
const LateralAveraging< dim > & get_lateral_averaging () const
 
const AffineConstraints< double > & get_current_constraints () const
 
bool simulator_is_past_initialization () const
 
double get_pressure_scaling () const
 
bool pressure_rhs_needs_compatibility_modification () const
 
bool model_has_prescribed_stokes_solution () const
 
TableHandler & get_statistics_object () const
 
const Postprocess::Manager< dim > & get_postprocess_manager () const
 
unsigned int n_particle_managers () const
 
const Particle::Manager< dim > & get_particle_manager (const unsigned int particle_manager_index) const
 
Particle::Manager< dim > & get_particle_manager (const unsigned int particle_manager_index)
 
bool is_stokes_matrix_free ()
 
const StokesMatrixFreeHandler< dim > & get_stokes_matrix_free () const
 
RotationProperties< dim > compute_net_angular_momentum (const bool use_constant_density, const LinearAlgebra::BlockVector &solution, const bool limit_to_top_faces=false) const
 

Static Public Member Functions

static void declare_parameters (ParameterHandler &prm)
 
- Static Public Member Functions inherited from aspect::Plugins::InterfaceBase
static void declare_parameters (ParameterHandler &prm)
 
- Static Public Member Functions inherited from aspect::SimulatorAccess< dim >
static void get_composition_values_at_q_point (const std::vector< std::vector< double >> &composition_values, const unsigned int q, std::vector< double > &composition_values_at_q_point)
 

Private Member Functions

void generate_global_statistics (TableHandler &statistics)
 
void clear_data ()
 
void store_stokes_solver_history (const unsigned int number_S_iterations, const unsigned int number_A_iterations, const SolverControl &solver_control_cheap, const SolverControl &solver_control_expensive)
 
void store_advection_solver_history (const bool solved_temperature_field, const unsigned int compositional_index, const SolverControl &solver_control)
 

Private Attributes

std::vector< unsigned int > list_of_S_iterations
 
std::vector< unsigned int > list_of_A_iterations
 
std::vector< unsigned int > stokes_iterations_cheap
 
std::vector< unsigned int > stokes_iterations_expensive
 
std::vector< std::pair< std::string, std::vector< unsigned int > > > advection_iterations
 
bool one_line_per_iteration
 

Detailed Description

template<int dim>
class aspect::Postprocess::GlobalStatistics< dim >

A postprocessor that outputs all the global statistics information, e.g. the time of the simulation, the timestep number, number of degrees of freedom and solver iterations for each timestep. The postprocessor can output different formats, the first printing one line in the statistics file per nonlinear solver iteration (if a nonlinear solver scheme is selected). The second prints one line per timestep, summing the information about all nonlinear iterations in this line. Note that this postprocessor is always active independent on whether or not it is selected in the parameter file.

Definition at line 51 of file global_statistics.h.

Member Function Documentation

§ initialize()

template<int dim>
void aspect::Postprocess::GlobalStatistics< dim >::initialize ( )
overridevirtual

Connect the callback functions to the respective signals.

Reimplemented from aspect::Plugins::InterfaceBase.

§ execute()

template<int dim>
std::pair<std::string,std::string> aspect::Postprocess::GlobalStatistics< dim >::execute ( TableHandler &  statistics)
overridevirtual

Write all global statistics columns into the statistics object.

Implements aspect::Postprocess::Interface< dim >.

§ declare_parameters()

template<int dim>
static void aspect::Postprocess::GlobalStatistics< dim >::declare_parameters ( ParameterHandler &  prm)
static

Declare the parameters this class takes through input files.

§ parse_parameters()

template<int dim>
void aspect::Postprocess::GlobalStatistics< dim >::parse_parameters ( ParameterHandler &  prm)
overridevirtual

Read the parameters this class declares from the parameter file.

Reimplemented from aspect::Plugins::InterfaceBase.

§ generate_global_statistics()

template<int dim>
void aspect::Postprocess::GlobalStatistics< dim >::generate_global_statistics ( TableHandler &  statistics)
private

Write global statistics such as the time step number and the number of degrees of freedom into the statistics object.

§ clear_data()

template<int dim>
void aspect::Postprocess::GlobalStatistics< dim >::clear_data ( )
private

This function clears all the saved solver information that is stored in this class. It is executed every time the output is written into the statistics object, but also after each initial refinement step, in case it is not written (to avoid summing information across different refinement steps).

§ store_stokes_solver_history()

template<int dim>
void aspect::Postprocess::GlobalStatistics< dim >::store_stokes_solver_history ( const unsigned int  number_S_iterations,
const unsigned int  number_A_iterations,
const SolverControl &  solver_control_cheap,
const SolverControl &  solver_control_expensive 
)
private

Callback function that is connected to the post_stokes_solver signal to store the solver history.

§ store_advection_solver_history()

template<int dim>
void aspect::Postprocess::GlobalStatistics< dim >::store_advection_solver_history ( const bool  solved_temperature_field,
const unsigned int  compositional_index,
const SolverControl &  solver_control 
)
private

Callback function that is connected to the post_advection_solver signal to store the solver history.

Member Data Documentation

§ list_of_S_iterations

template<int dim>
std::vector<unsigned int> aspect::Postprocess::GlobalStatistics< dim >::list_of_S_iterations
private

Variables that store the Stokes solver history of the current timestep, until they are written into the statistics object upon the call to execute(). They are cleared after writing the content.

Definition at line 122 of file global_statistics.h.

§ list_of_A_iterations

template<int dim>
std::vector<unsigned int> aspect::Postprocess::GlobalStatistics< dim >::list_of_A_iterations
private

Definition at line 123 of file global_statistics.h.

§ stokes_iterations_cheap

template<int dim>
std::vector<unsigned int> aspect::Postprocess::GlobalStatistics< dim >::stokes_iterations_cheap
private

Definition at line 124 of file global_statistics.h.

§ stokes_iterations_expensive

template<int dim>
std::vector<unsigned int> aspect::Postprocess::GlobalStatistics< dim >::stokes_iterations_expensive
private

Definition at line 125 of file global_statistics.h.

§ advection_iterations

template<int dim>
std::vector<std::pair<std::string, std::vector<unsigned int> > > aspect::Postprocess::GlobalStatistics< dim >::advection_iterations
private

A container that stores the advection solver history of the current timestep, until it is written into the statistics object upon the call to execute(). It is cleared after writing the content. The vector contains pairs, which consist of a column name (for the temperature or one of the compositional fields), and a vector of SolverControl objects (one per nonlinear iteration for this particular field). This layout allows storing varying numbers of nonlinear iterations for temperature and compositional fields (if any nonlinear solver scheme would implement that at some point).

Definition at line 140 of file global_statistics.h.

§ one_line_per_iteration

template<int dim>
bool aspect::Postprocess::GlobalStatistics< dim >::one_line_per_iteration
private

Whether to put every nonlinear iteration into a separate line in the statistics file or to only output one line per time step.

Definition at line 147 of file global_statistics.h.


The documentation for this class was generated from the following file: