|
Peano
|
Represents a series of steps which can be called by a runner. More...
#include <RunMultipleSteps.h>

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. | |
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.
| peano4::RunMultipleSteps::RunMultipleSteps | ( | const std::string & | name, |
| int | firstSubstep | ||
| ) |
|
virtualdefault |
| int peano4::RunMultipleSteps::getFirstSubstep | ( | ) | const |
Get the first substep which identifies this step sequence.
| 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".
| tarch::timing::Measurement peano4::RunMultipleSteps::getRuntimeMeasurements | ( | ) | const |
|
pure virtual |
Run the mesh sweeps (Observers) realising this algorithmic phase.
|
protected |
Definition at line 83 of file RunMultipleSteps.h.
|
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().
|
protected |
Measure time spent in this particular sequence of steps.
Is an average.
Definition at line 90 of file RunMultipleSteps.h.
|
protected |
Definition at line 85 of file RunMultipleSteps.h.