1#ifndef TPM_SRC_GENERIC_MANAGING_MODULE_H
2#define TPM_SRC_GENERIC_MANAGING_MODULE_H
7#include <unordered_set>
32 std::shared_ptr<std::valarray<T>>
68 virtual bool init() {
return true; };
72 virtual bool output() {
return true; };
124 std::cerr <<
"[GenericManagingModule]: " << this->
getNameLocal()
125 <<
": Not all requested modules found in the registry.\n";
126 throw std::runtime_error(
static_cast<std::string
>(
"[GenericManagingModule]: ")
128 +
static_cast<std::string
>(
129 ": Not all requested modules found in the registry."));
145 <<
" = " << std::any_cast<std::string>(
map_content) <<
"\n";
void insertModule(std::string_view key, const std::shared_ptr< ModuleType > &module)
Insert modules into chains. Generates a new chain, if the chain key does not yet exist.
Definition ChainManager.h:134
std::vector< std::string > getChainNames() const
Getter function for the chain names.
Definition ChainManager.h:311
Concrete implementation of a matrix class representing a Compressed Sparse Rows (CSR) matrix....
Definition CsrMatrix.h:37
Abstract base class for the managing modules. Managing modules are the highest tier of modules and ar...
Definition GenericManagingModule.h:29
virtual bool output()
Definition GenericManagingModule.h:72
virtual std::vector< std::string > getDependencies() const
Definition GenericManagingModule.h:78
InputManager ini_file_data
Definition GenericManagingModule.h:38
virtual void setSubmoduleList(std::vector< std::string > submodules)
Definition GenericManagingModule.h:82
SimulationClassBase< T > * sim
Definition GenericManagingModule.h:31
ChainManager< GenericSubmodule< T > > sub_module_chain
Definition GenericManagingModule.h:34
virtual bool setup(std::vector< std::shared_ptr< GenericSubmodule< T > > > all_submodules)
Definition GenericManagingModule.h:61
virtual std::vector< std::string > getChainInsertion() const
Definition GenericManagingModule.h:74
std::shared_ptr< std::valarray< T > > module_field
Definition GenericManagingModule.h:33
void writeToGlobalIniContent(std::ofstream &global_stream)
Function that writes the local ini file contents to the global ini file stream. "Tags" the keys with ...
Definition GenericManagingModule.h:139
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-pointer...
Definition GenericManagingModule.h:103
GenericManagingModule()
Constructor without arguments. Will be employed when using the static modules registry.
Definition GenericManagingModule.h:50
bool in_snapshot
Definition GenericManagingModule.h:40
std::vector< std::string > m_generic_submodules
Definition GenericManagingModule.h:36
std::vector< std::string > getSubmoduleList() const
Definition GenericManagingModule.h:86
GenericManagingModule(SimulationClassBase< T > *l_sim)
Constructor to be preferably used when a module is created during runtime.
Definition GenericManagingModule.h:59
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...
Definition GenericManagingModule.h:157
virtual ~GenericManagingModule()=default
virtual bool init()
Definition GenericManagingModule.h:68
char field_id
Definition GenericManagingModule.h:42
virtual bool preTimeStep()
Definition GenericManagingModule.h:69
virtual bool postNonLinIter()
Definition GenericManagingModule.h:71
virtual std::string_view getNameLocal() const =0
virtual bool postTimeStep()
Definition GenericManagingModule.h:70
void setSimPointer(SimulationClassBase< T > *sim)
Setter function for the sim pointer. As the module is usually registered during static initialization...
Definition GenericManagingModule.h:96
bool in_output
Definition GenericManagingModule.h:41
virtual bool exec(std::string_view param)=0
std::pair< int, int > size() const
Function that returns the size of the matrix as a pair in (rows, columns) format.
Definition GenericMatrix.h:120