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

#include <SimulationClassBase.h>

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

Public Member Functions

 SimulationClassBase ()
 
 SimulationClassBase (const int argc, const char *argv[])
 Constructs a SimulationClassBase object and initializes its configuration.
 
 SimulationClassBase (const std::string &user_ini)
 
void setInitChainStr ()
 
void setPreTimeStepChainStr ()
 
void setPostTimeStepChainStr ()
 
void setPostNonLinIterChainStr ()
 
void setOutputChainStr ()
 
virtual void setUserIni (const std::string &user_ini)
 
void printField (const std::string &key)
 
const std::valarray< T > & getField (const std::string &key) const
 
const TgetFieldValue (const std::string &key, int pos) const
 
virtual int run ()=0
 
virtual ~SimulationClassBase ()=default
 

Public Attributes

std::map< std::string, std::valarray< T > > m_field_map {}
 
std::string_view m_current_position
 
InputManager m_simulation_config {"ini_files/default.ini"}
 
T elapsed_time {0}
 
int time_step {0}
 

Constructor & Destructor Documentation

◆ SimulationClassBase() [1/3]

◆ SimulationClassBase() [2/3]

template<typename T >
SimulationClassBase< T >::SimulationClassBase ( const int  argc,
const char argv[] 
)

Constructs a SimulationClassBase object and initializes its configuration.

This constructor implements the command-line-driven configuration for the simulation by forwarding the provided argc and argv parameters to the internal simulation configuration object (m_simulation_config). It handles:

  • Parsing the input .ini file specified via the -i option.
  • Applying any additional key=value overrides provided via the command line.

After construction, the simulation object is ready to run with a fully initialized configuration, combining the .ini file and any CLI overrides.

Usage: int main(int argc, char* argv[]) { SimulationClassBase<MySimType> sim(argc, argv); sim.run(); // Run simulation using parsed ini + CLI overrides }

Template Parameters
TThe template type parameter for the SimulationClassBase.
Parameters
argcThe number of command-line arguments, typically passed from main().
argvThe array of command-line argument strings, typically passed from main().
Note
  • The command-line parsing is entirely handled by m_simulation_config.
  • Users may provide multiple key=value overrides in the command line, e.g., ./tpm -i config.ini param1=42 param2=foo.
  • This constructor does not start the simulation; it only sets up the configuration.

◆ SimulationClassBase() [3/3]

template<typename T >
SimulationClassBase< T >::SimulationClassBase ( const std::string &  user_ini)

◆ ~SimulationClassBase()

template<typename T >
virtual SimulationClassBase< T >::~SimulationClassBase ( )
virtualdefault

Member Function Documentation

◆ getField()

template<typename T >
const std::valarray< T > & SimulationClassBase< T >::getField ( const std::string &  key) const

◆ getFieldValue()

template<typename T >
const T & SimulationClassBase< T >::getFieldValue ( const std::string &  key,
int  pos 
) const

◆ printField()

template<typename T >
void SimulationClassBase< T >::printField ( const std::string &  key)

◆ run()

template<typename T >
virtual int SimulationClassBase< T >::run ( )
pure virtual

◆ setInitChainStr()

template<typename T >
void SimulationClassBase< T >::setInitChainStr ( )
inline

◆ setOutputChainStr()

template<typename T >
void SimulationClassBase< T >::setOutputChainStr ( )
inline

◆ setPostNonLinIterChainStr()

template<typename T >
void SimulationClassBase< T >::setPostNonLinIterChainStr ( )
inline

◆ setPostTimeStepChainStr()

template<typename T >
void SimulationClassBase< T >::setPostTimeStepChainStr ( )
inline

◆ setPreTimeStepChainStr()

template<typename T >
void SimulationClassBase< T >::setPreTimeStepChainStr ( )
inline

◆ setUserIni()

template<typename T >
void SimulationClassBase< T >::setUserIni ( const std::string &  user_ini)
virtual

Member Data Documentation

◆ elapsed_time

template<typename T >
T SimulationClassBase< T >::elapsed_time {0}

◆ m_current_position

template<typename T >
std::string_view SimulationClassBase< T >::m_current_position

◆ m_field_map

template<typename T >
std::map<std::string, std::valarray<T> > SimulationClassBase< T >::m_field_map {}

◆ m_simulation_config

template<typename T >
InputManager SimulationClassBase< T >::m_simulation_config {"ini_files/default.ini"}

◆ time_step

template<typename T >
int SimulationClassBase< T >::time_step {0}

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