MoCSI API Reference
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
RuntimeProgressTool< T > Class Template Reference

Monitors and reports the simulation progress and iterations per second. More...

#include <RuntimeProgressTool.h>

Inheritance diagram for RuntimeProgressTool< T >:
Inheritance graph
Collaboration diagram for RuntimeProgressTool< T >:
Collaboration graph

Public Member Functions

 RuntimeProgressTool (SimulationClassBase< T > *sim)
 
bool setup (std::vector< std::shared_ptr< GenericSubmodule< T > > > all_submodules) override
 
bool exec (std::string_view param) override
 
bool init () override
 
bool preTimeStep () override
 
bool postNonLinIter () override
 
bool postTimeStep () override
 
bool output () override
 
void checkProgress ()
 
std::vector< std::string > getChainInsertion () const override
 
std::string_view getNameLocal () const override
 
- Public Member Functions inherited from GenericManagingModule< T >
 GenericManagingModule ()
 Constructor without arguments. Will be employed when using the static modules registry.
 
virtual ~GenericManagingModule ()=default
 
 GenericManagingModule (SimulationClassBase< T > *l_sim)
 Constructor to be preferably used when a module is created during runtime.
 
virtual std::vector< std::string > getDependencies () const
 
virtual void setSubmoduleList (std::vector< std::string > submodules)
 
std::vector< std::string > getSubmoduleList () const
 
void setSimPointer (SimulationClassBase< T > *sim)
 Setter function for the sim pointer. As the module is usually registered during static initialization when the sim class is not yet existing, this function is needed to set the pointer.
 
void setSubmodules (std::vector< std::shared_ptr< GenericSubmodule< T > > > all_submodules)
 Sets all the submodules of this module into their corresponding chains. Also sets their field-pointers to this->module_field as a way to communicate between submodules.
 
void writeToGlobalIniContent (std::ofstream &global_stream)
 Function that writes the local ini file contents to the global ini file stream. "Tags" the keys with the name of the module in the format "module_name$key".
 
void overwriteLocalIniContent (const std::unordered_map< std::string, std::any > &global_ini_content)
 Writes the (already trimmed to the local content) data from the global ini file to the local ini file. This only overwrites the internal data and not the file contents itself.
 

Static Public Member Functions

static std::shared_ptr< GenericManagingModule< T > > createMethode (SimulationClassBase< T > *sim)
 
static std::string getName ()
 

Additional Inherited Members

- Protected Attributes inherited from GenericManagingModule< T >
SimulationClassBase< T > * sim {}
 
std::shared_ptr< std::valarray< T > > module_field
 
ChainManager< GenericSubmodule< T > > sub_module_chain
 
std::vector< std::string > m_generic_submodules
 
InputManager ini_file_data
 
bool in_snapshot {false}
 
bool in_output {false}
 
char field_id
 

Detailed Description

template<typename T>
class RuntimeProgressTool< T >

Monitors and reports the simulation progress and iterations per second.

This managing module provides real-time feedback on the simulation runtime by calculating the number of iterations per second and printing progress updates to the console. It is particularly useful for long-running simulations to estimate remaining runtime and monitor performance.

Key Features:

Template Parameters
TNumeric type used in the simulation (e.g., float, double)
Note
Requires proper INI configuration specifying the iteration reporting interval. Designed for console-based monitoring; ANSI color codes may not display correctly in all terminals.

Constructor & Destructor Documentation

◆ RuntimeProgressTool()

Member Function Documentation

◆ checkProgress()

template<typename T >
void RuntimeProgressTool< T >::checkProgress ( )

◆ createMethode()

template<typename T >
static std::shared_ptr< GenericManagingModule< T > > RuntimeProgressTool< T >::createMethode ( SimulationClassBase< T > *  sim)
inlinestatic

◆ exec()

template<typename T >
bool RuntimeProgressTool< T >::exec ( std::string_view  param)
overridevirtual

◆ getChainInsertion()

template<typename T >
std::vector< std::string > RuntimeProgressTool< T >::getChainInsertion ( ) const
inlineoverridevirtual

Reimplemented from GenericManagingModule< T >.

◆ getName()

template<typename T >
static std::string RuntimeProgressTool< T >::getName ( )
inlinestatic

◆ getNameLocal()

template<typename T >
std::string_view RuntimeProgressTool< T >::getNameLocal ( ) const
inlineoverridevirtual

◆ init()

template<typename T >
bool RuntimeProgressTool< T >::init ( )
inlineoverridevirtual

Reimplemented from GenericManagingModule< T >.

◆ output()

template<typename T >
bool RuntimeProgressTool< T >::output ( )
inlineoverridevirtual

Reimplemented from GenericManagingModule< T >.

◆ postNonLinIter()

template<typename T >
bool RuntimeProgressTool< T >::postNonLinIter ( )
inlineoverridevirtual

Reimplemented from GenericManagingModule< T >.

◆ postTimeStep()

template<typename T >
bool RuntimeProgressTool< T >::postTimeStep ( )
overridevirtual

Reimplemented from GenericManagingModule< T >.

◆ preTimeStep()

template<typename T >
bool RuntimeProgressTool< T >::preTimeStep ( )
overridevirtual

Reimplemented from GenericManagingModule< T >.

◆ setup()

template<typename T >
bool RuntimeProgressTool< T >::setup ( std::vector< std::shared_ptr< GenericSubmodule< T > > >  all_submodules)
overridevirtual

Reimplemented from GenericManagingModule< T >.


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