Peano
Loading...
Searching...
No Matches
peano4::RunMultipleSteps Class Referenceabstract

Represents a series of steps which can be called by a runner. More...

#include <RunMultipleSteps.h>

Collaboration diagram for peano4::RunMultipleSteps:

Data Structures

class  Report
 Interface for anything that wants to report on a RunMultipleSteps instance (or a whole collection thereof) once it has run. More...
 

Public Member Functions

 RunMultipleSteps (const std::string &name, int firstSubstep)
 
virtual ~RunMultipleSteps ()=default
 
virtual void run ()=0
 Run the mesh sweeps (Observers) realising this algorithmic phase.
 
tarch::timing::Measurement getRuntimeMeasurements () const
 
int getFirstSubstep () const
 Get the first substep which identifies this step sequence.
 
std::string getName () const
 Name of this step sequence, i.e.
 

Protected Attributes

const std::string _name
 
const int _firstSubstep
 
tarch::timing::Watch _watch
 
tarch::timing::Measurement _runtimeMeasurement
 Measure time spent in this particular sequence of steps.
 

Detailed Description

Represents a series of steps which can be called by a runner.

Abstract class which makes limited sense in isolation, but has to be seen in the context of codes alike ExaHyPE. They break down the calculation into a sequence of phases (e.g. grid construction, time steps, plots) and each of these can consist of multiple individual substeps. Think about a Runge-Kutta scheme.

Such steps should be collocated in an implementation of RunMultipleSteps and their sequence triggered by run(). Once we combine things in a subclass of this one, we can hand the collection of steps around for postprocessing for example.

Definition at line 32 of file RunMultipleSteps.h.

Constructor & Destructor Documentation

◆ RunMultipleSteps()

peano4::RunMultipleSteps::RunMultipleSteps ( const std::string &  name,
int  firstSubstep 
)

◆ ~RunMultipleSteps()

virtual peano4::RunMultipleSteps::~RunMultipleSteps ( )
virtualdefault

Member Function Documentation

◆ getFirstSubstep()

int peano4::RunMultipleSteps::getFirstSubstep ( ) const

Get the first substep which identifies this step sequence.

◆ getName()

std::string peano4::RunMultipleSteps::getName ( ) const

Name of this step sequence, i.e.

the program phase it represents. Set once by the subclass through the constructor and never changed afterwards. In ExaHyPE, this is e.g. "Plot" or "TimeStep".

◆ getRuntimeMeasurements()

tarch::timing::Measurement peano4::RunMultipleSteps::getRuntimeMeasurements ( ) const

◆ run()

virtual void peano4::RunMultipleSteps::run ( )
pure virtual

Run the mesh sweeps (Observers) realising this algorithmic phase.

Field Documentation

◆ _firstSubstep

const int peano4::RunMultipleSteps::_firstSubstep
protected

Definition at line 83 of file RunMultipleSteps.h.

◆ _name

const std::string peano4::RunMultipleSteps::_name
protected

Definition at line 81 of file RunMultipleSteps.h.

Referenced by solvers.aderdg.ADERDG.ADERDG::__str__(), solvers.elliptic.AMRMarker.AMRMarker::__str__(), solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells::__str__(), solvers.fv.FV.FV::__str__(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG::__str__(), exahype2.api.Solver.Solver::__str__(), solvers.api.Solver.Solver::__str__(), api.Tree.Tree::__str__(), solvers.fv.EnclaveTasking.EnclaveTasking::_enclave_task_name(), dastgen2.attributes.Enumeration.Enumeration::_enum_name(), solvers.aderdg.ADERDG.ADERDG::_generate_kernels(), solvers.aderdg.ADERDG.ADERDG::_init_dictionary_with_default_parameters(), solvers.fv.FV.FV::_init_dictionary_with_default_parameters(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG::_init_dictionary_with_default_parameters(), solvers.aderdg.ADERDG.ADERDG::_interpolate_face_data_default_guard(), solvers.aderdg.SingleSweep.SingleSweep::_interpolate_face_data_default_guard(), solvers.aderdg.ADERDG.ADERDG::_load_cell_data_default_guard(), solvers.fv.FV.FV::_load_cell_data_default_guard(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG::_load_cell_data_default_guard(), solvers.aderdg.ADERDG.ADERDG::_load_face_data_default_guard(), solvers.fv.FV.FV::_load_face_data_default_guard(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG::_load_face_data_default_guard(), solvers.aderdg.ADERDG.ADERDG::_provide_cell_data_to_compute_kernels_default_guard(), solvers.fv.FV.FV::_provide_cell_data_to_compute_kernels_default_guard(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG::_provide_cell_data_to_compute_kernels_default_guard(), solvers.aderdg.ADERDG.ADERDG::_provide_face_data_to_compute_kernels_default_guard(), solvers.fv.FV.FV::_provide_face_data_to_compute_kernels_default_guard(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG::_provide_face_data_to_compute_kernels_default_guard(), solvers.aderdg.SingleSweep.SingleSweep::_restrict_face_data_default_guard(), solvers.aderdg.ADERDG.ADERDG::_store_boundary_data_default_guard(), solvers.aderdg.ADERDG.ADERDG::_store_cell_data_default_guard(), solvers.fv.FV.FV::_store_cell_data_default_guard(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG::_store_cell_data_default_guard(), solvers.aderdg.ADERDG.ADERDG::_store_face_data_default_guard(), solvers.fv.FV.FV::_store_face_data_default_guard(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG::_store_face_data_default_guard(), solvers.aderdg.ADERDG.ADERDG::_unknown_identifier(), solvers.elliptic.AMRMarker.AMRMarker::_unknown_identifier(), solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells::_unknown_identifier(), solvers.fv.FV.FV::_unknown_identifier(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG::_unknown_identifier(), exahype2.api.Solver.Solver::_unknown_identifier(), solvers.fv.FV.FV::add_actions_to_checkpoint_solution(), solvers.fv.EnclaveTasking.EnclaveTasking::add_actions_to_create_grid(), solvers.fv.EnclaveTasking.EnclaveTasking::add_actions_to_init_grid(), solvers.aderdg.ADERDG.ADERDG::add_actions_to_plot_solution(), solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells::add_actions_to_plot_solution(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG::add_actions_to_plot_solution(), solvers.fv.FV.FV::add_actions_to_plot_solution(), solvers.fv.EnclaveTasking.EnclaveTasking::add_entries_to_text_replacement_dictionary(), solvers.rkdg.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking::add_entries_to_text_replacement_dictionary(), solvers.aderdg.ADERDG.ADERDG::add_implementation_files_to_project(), solvers.elliptic.AMRMarker.AMRMarker::add_to_Peano4_datamodel(), solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells::add_to_Peano4_datamodel(), api.solvers.CollocatedLowOrderDiscretisation.CollocatedLowOrderDiscretisation::add_to_plot(), solvers.aderdg.SingleSweep.SingleSweep::create_action_sets(), solvers.fv.rusanov.LocalTimeStepWithEnclaveTasking.LocalTimeStepWithEnclaveTasking::create_action_sets(), solvers.fv.rusanov.SubcyclingAdaptiveTimeStepWithEnclaveTasking.SubcyclingAdaptiveTimeStepWithEnclaveTasking::create_action_sets(), solvers.fv.rusanov.SubcyclingFixedTimeStep.SubcyclingFixedTimeStep::create_action_sets(), solvers.fv.rusanov.SubcyclingFixedTimeStepWithEnclaveTasking.SubcyclingFixedTimeStepWithEnclaveTasking::create_action_sets(), solvers.rkdg.SeparateSweeps.SeparateSweeps::create_action_sets(), solvers.fv.SingleSweep.SingleSweep::create_data_structures(), dastgen2.attributes.Attribute.Attribute::get_accessor_name(), dastgen2.attributes.BooleanArray.BooleanArray::get_constructor_arguments(), peano4.api.dastgen2.Peano4DoubleArray.Peano4DoubleArray::get_constructor_arguments(), peano4.api.dastgen2.Peano4IntegerArray.Peano4IntegerArray::get_constructor_arguments(), peano4.api.dastgen2.Peano4SmartPointerDoubleArray.Peano4SmartPointerDoubleArray::get_constructor_arguments(), dastgen2.attributes.BooleanArray.BooleanArray::get_first_plain_C_attribute(), dastgen2.attributes.DoubleArray.DoubleArray::get_first_plain_C_attribute(), dastgen2.attributes.IntegerArray.IntegerArray::get_first_plain_C_attribute(), peano4.api.dastgen2.Peano4DoubleArray.Peano4DoubleArray::get_first_plain_C_attribute(), peano4.api.dastgen2.Peano4IntegerArray.Peano4IntegerArray::get_first_plain_C_attribute(), peano4.api.dastgen2.Peano4SmartPointerDoubleArray.Peano4SmartPointerDoubleArray::get_first_plain_C_attribute(), dastgen2.attributes.Boolean.Boolean::get_method_body(), dastgen2.attributes.BooleanArray.BooleanArray::get_method_body(), dastgen2.attributes.Double.Double::get_method_body(), dastgen2.attributes.DoubleArray.DoubleArray::get_method_body(), dastgen2.attributes.DoublePointer.DoublePointer::get_method_body(), dastgen2.attributes.Enumeration.Enumeration::get_method_body(), dastgen2.attributes.Integer.Integer::get_method_body(), dastgen2.attributes.IntegerArray.IntegerArray::get_method_body(), dastgen2.attributes.String.String::get_method_body(), dastgen2.attributes.UserDefinedType.UserDefinedType::get_method_body(), peano4.api.dastgen2.Peano4DoubleArray.Peano4DoubleArray::get_method_body(), peano4.api.dastgen2.Peano4IntegerArray.Peano4IntegerArray::get_method_body(), peano4.api.dastgen2.Peano4SmartPointerDoubleArray.Peano4SmartPointerDoubleArray::get_method_body(), dastgen2.attributes.BooleanArray.BooleanArray::get_methods(), dastgen2.attributes.DoubleArray.DoubleArray::get_methods(), dastgen2.attributes.IntegerArray.IntegerArray::get_methods(), peano4.api.dastgen2.Peano4DoubleArray.Peano4DoubleArray::get_methods(), peano4.api.dastgen2.Peano4IntegerArray.Peano4IntegerArray::get_methods(), peano4.api.dastgen2.Peano4SmartPointerDoubleArray.Peano4SmartPointerDoubleArray::get_methods(), solvers.aderdg.ADERDG.ADERDG::get_name_of_global_instance(), solvers.elliptic.AMRMarker.AMRMarker::get_name_of_global_instance(), solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells::get_name_of_global_instance(), solvers.fv.FV.FV::get_name_of_global_instance(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG::get_name_of_global_instance(), exahype2.api.Solver.Solver::get_name_of_global_instance(), exahype2.api.Solver.Solver::get_name_of_solver_class(), dastgen2.attributes.Boolean.Boolean::get_plain_C_attributes(), dastgen2.attributes.BooleanArray.BooleanArray::get_plain_C_attributes(), dastgen2.attributes.Double.Double::get_plain_C_attributes(), dastgen2.attributes.DoubleArray.DoubleArray::get_plain_C_attributes(), dastgen2.attributes.DoublePointer.DoublePointer::get_plain_C_attributes(), dastgen2.attributes.Integer.Integer::get_plain_C_attributes(), dastgen2.attributes.IntegerArray.IntegerArray::get_plain_C_attributes(), dastgen2.attributes.String.String::get_plain_C_attributes(), dastgen2.attributes.UserDefinedType.UserDefinedType::get_plain_C_attributes(), peano4.api.dastgen2.Peano4DoubleArray.Peano4DoubleArray::get_plain_C_attributes(), peano4.api.dastgen2.Peano4IntegerArray.Peano4IntegerArray::get_plain_C_attributes(), dastgen2.attributes.String.String::get_setter_getter_name(), dastgen2.attributes.Boolean.Boolean::get_to_string(), dastgen2.attributes.BooleanArray.BooleanArray::get_to_string(), dastgen2.attributes.Double.Double::get_to_string(), dastgen2.attributes.DoubleArray.DoubleArray::get_to_string(), dastgen2.attributes.DoublePointer.DoublePointer::get_to_string(), dastgen2.attributes.Enumeration.Enumeration::get_to_string(), dastgen2.attributes.Integer.Integer::get_to_string(), dastgen2.attributes.IntegerArray.IntegerArray::get_to_string(), dastgen2.attributes.UserDefinedType.UserDefinedType::get_to_string(), peano4.api.dastgen2.Peano4DoubleArray.Peano4DoubleArray::get_to_string(), peano4.api.dastgen2.Peano4IntegerArray.Peano4IntegerArray::get_to_string(), peano4.api.dastgen2.Peano4SmartPointerDoubleArray.Peano4SmartPointerDoubleArray::get_to_string(), solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells::name(), solvers.fv.FV.FV::name(), dastgen2.attributes.Attribute.Attribute::name(), exahype2.api.Solver.Solver::name(), solvers.api.Solver.Solver::name(), api.solvers.Solver.Solver::name(), solvers.api.Solver.Solver::typename(), and api.solvers.Solver.Solver::typename().

◆ _runtimeMeasurement

tarch::timing::Measurement peano4::RunMultipleSteps::_runtimeMeasurement
protected

Measure time spent in this particular sequence of steps.

Is an average.

Definition at line 90 of file RunMultipleSteps.h.

◆ _watch

tarch::timing::Watch peano4::RunMultipleSteps::_watch
protected

Definition at line 85 of file RunMultipleSteps.h.


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