OMSimulatorLib
The OMSimulator project is a FMI-based co-simulation environment that supports ordinary (i.e., non-delayed) and TLM connections.
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
oms::System Class Referenceabstract

#include <System.h>

Inheritance diagram for oms::System:
Inheritance graph
Collaboration diagram for oms::System:
Collaboration graph

Public Member Functions

virtual ~System ()
 
SystemgetSystem (const ComRef &cref)
 
ComponentgetComponent (const ComRef &cref)
 
SystemgetSubSystem (const ComRef &cref)
 
VariablegetVariable (const ComRef &cref)
 
const ComRefgetCref () const
 
ComRef getFullCref () const
 
ElementgetElement ()
 
oms_status_enu_t listUnconnectedConnectors (char **contents) const
 
oms_system_enu_t getType () const
 
oms_status_enu_t addSubSystem (const ComRef &cref, oms_system_enu_t type)
 
oms_status_enu_t addSubModel (const ComRef &cref, const std::string &fmuPath)
 
bool validCref (const ComRef &cref)
 
oms_status_enu_t exportToSSD (pugi::xml_node &node, pugi::xml_node &ssvNode) const
 
oms_status_enu_t importFromSSD (const pugi::xml_node &node, const std::string &sspVersion)
 
virtual oms_status_enu_t exportToSSD_SimulationInformation (pugi::xml_node &node) const =0
 
virtual oms_status_enu_t importFromSSD_SimulationInformation (const pugi::xml_node &node, const std::string &sspVersion)=0
 
void setGeometry (const ssd::ElementGeometry &geometry)
 
oms_status_enu_t addConnector (const ComRef &cref, oms_causality_enu_t causality, oms_signal_type_enu_t type)
 
ConnectorgetConnector (const ComRef &cref)
 
std::string getConnectorOwner (const ComRef &cref) const
 
Connector ** getConnectors ()
 
BusConnectorgetBusConnector (const ComRef &cref)
 
oms_status_enu_t addTLMConnection (const ComRef &crefA, const ComRef &crefB, double delay, double alpha, double linearimpedance, double angularimpedance)
 
oms_status_enu_t setTLMConnectionParameters (const ComRef &crefA, const ComRef &crefB, const oms_tlm_connection_parameters_t *parameters)
 
oms_status_enu_t addTLMBus (const ComRef &cref, oms_tlm_domain_t domain, const int dimensions, const oms_tlm_interpolation_t interpolation)
 
oms_status_enu_t addConnectorToTLMBus (const ComRef &busCref, const ComRef &connectorCref, const std::string type)
 
oms_status_enu_t deleteConnectorFromTLMBus (const ComRef &busCref, const ComRef &connectorCref)
 
oms_status_enu_t setTLMBusGeometry (const ComRef &cref, const oms::ssd::ConnectorGeometry *geometry)
 
TLMBusConnectorgetTLMBusConnector (const ComRef &cref)
 
TLMBusConnector ** getTLMBusConnectors ()
 
ConnectiongetConnection (const ComRef &crefA, const ComRef &crefB)
 
Connection ** getConnections (const ComRef &cref)
 
oms_status_enu_t addConnection (const ComRef &crefA, const ComRef &crefB)
 
oms_status_enu_t deleteConnection (const ComRef &crefA, const ComRef &crefB)
 
oms_status_enu_t setConnectorGeometry (const ComRef &cref, const oms::ssd::ConnectorGeometry *geometry)
 
oms_status_enu_t setConnectionGeometry (const ComRef &crefA, const ComRef &crefB, const oms::ssd::ConnectionGeometry *geometry)
 
oms_status_enu_t addBus (const ComRef &cref)
 
oms_status_enu_t addConnectorToBus (const ComRef &busCref, const ComRef &connectorCref)
 
oms_status_enu_t deleteConnectorFromBus (const ComRef &busCref, const ComRef &connectorCref)
 
oms_status_enu_t setBusGeometry (const ComRef &cref, const oms::ssd::ConnectorGeometry *geometry)
 
oms_status_enu_t addExternalModel (const ComRef &cref, std::string path, std::string startscript)
 
oms_status_enu_t delete_ (const ComRef &cref)
 
oms_status_enu_t deleteAllConectionsTo (const ComRef &cref)
 
bool isConnected (const ComRef &cref) const
 
ModelgetModel ()
 
SystemgetParentSystem () const
 
bool copyResources ()
 
oms_status_enu_t getAllResources (std::vector< std::string > &resources)
 
const std::map< ComRef, System * > & getSubSystems ()
 
const std::map< ComRef, Component * > & getComponents ()
 
oms_status_enu_t updateDependencyGraphs ()
 
const DirectedGraphgetInitialUnknownsGraph ()
 
const DirectedGraphgetOutputsGraph ()
 
oms_status_enu_t exportDependencyGraphs (const std::string &pathInitialization, const std::string &pathEvent, const std::string &pathSimulation)
 
oms_status_enu_t setFaultInjection (const ComRef &signal, oms_fault_type_enu_t faultType, double faultValue)
 
virtual oms_status_enu_t instantiate ()=0
 
virtual oms_status_enu_t initialize ()=0
 
virtual oms_status_enu_t terminate ()=0
 
virtual oms_status_enu_t reset ()=0
 
virtual oms_status_enu_t stepUntil (double stopTime, void(*cb)(const char *ident, double time, oms_status_enu_t status))=0
 
double getTime () const
 
oms_status_enu_t getBoolean (const ComRef &cref, bool &value)
 
oms_status_enu_t getInteger (const ComRef &cref, int &value)
 
oms_status_enu_t getReal (const ComRef &cref, double &value)
 
oms_status_enu_t setBoolean (const ComRef &cref, bool value)
 
oms_status_enu_t setInteger (const ComRef &cref, int value)
 
oms_status_enu_t setReal (const ComRef &cref, double value)
 
oms_status_enu_t getReals (const std::vector< ComRef > &crefs, std::vector< double > &values)
 
oms_status_enu_t setReals (const std::vector< ComRef > &crefs, std::vector< double > values)
 
oms_status_enu_t setRealInputDerivatives (const ComRef &cref, int order, double value)
 
bool isTopLevelSystem () const
 
virtual oms_status_enu_t registerSignalsForResultFile (ResultWriter &resultFile)
 
virtual oms_status_enu_t updateSignals (ResultWriter &resultFile)
 
oms_status_enu_t addSignalsToResults (const char *regex)
 
oms_status_enu_t removeSignalsFromResults (const char *regex)
 
virtual oms_status_enu_t setSolver (oms_solver_enu_t solver)
 
void getTolerance (double *absoluteTolerance, double *relativeTolerance) const
 
void getStepSize (double *initialStepSize, double *minimumStepSize, double *maximumStepSize) const
 
oms_status_enu_t setTolerance (double absoluteTolerance, double relativeTolerance)
 
oms_status_enu_t setFixedStepSize (double stepSize)
 
oms_status_enu_t setVariableStepSize (double initialStepSize, double minimumStepSize, double maximumStepSize)
 
double getMaximumStepSize ()
 
oms_solver_enu_t getSolver ()
 
AlgLoopgetAlgLoop (const int systemNumber)
 
oms_status_enu_t addAlgLoop (oms_ssc_t SCC, const int algLoopNum)
 
oms_status_enu_t updateAlgebraicLoops (const std::vector< oms_ssc_t > &sortedConnections)
 
oms_status_enu_t solveAlgLoop (DirectedGraph &graph, int loopNumber)
 
bool useThreadPool ()
 
ctpl::thread_pool & getThreadPool ()
 
std::string getUniqueID () const
 

Static Public Member Functions

static SystemNewSystem (const ComRef &cref, oms_system_enu_t type, Model *parentModel, System *parentSystem)
 

Public Attributes

std::map< std::string, std::string > startValuesFileSources
 ssvFileSource mapped with ssmFilesource if mapping is provided, otherwise only ssvFilesource entry is made More...
 

Protected Member Functions

 System (const ComRef &cref, oms_system_enu_t type, Model *parentModel, System *parentSystem, oms_solver_enu_t solverMethod)
 
 System (System const &copy)
 not implemented More...
 
Systemoperator= (System const &copy)
 not implemented More...
 

Protected Attributes

double time
 
DirectedGraph initializationGraph
 dependency graph, with all connections, solved at initialization More...
 
DirectedGraph eventGraph
 filtered dependency graph, without parameters, solved at event mode More...
 
DirectedGraph simulationGraph
 filtered dependency graph, with connections of type Real, solved at continuous time mode; More...
 
Clock clock
 
unsigned int clock_id
 
oms_solver_enu_t solverMethod = oms_solver_none
 
double absoluteTolerance = 1e-4
 
double relativeTolerance = 1e-4
 
double minimumStepSize = 1e-4
 
double maximumStepSize = 1e-1
 
double initialStepSize = 1e-4
 
std::unordered_map< unsigned int, unsigned int > resultFileMapping
 
std::unordered_map< ComRef, bool > exportConnectors
 
bool loopsNeedUpdate = true
 

Private Member Functions

oms_status_enu_t importFromSSD_ConnectionGeometry (const pugi::xml_node &node, const ComRef &crefA, const ComRef &crefB)
 
oms::ComRef getValidCref (const ComRef &cref)
 
oms_status_enu_t importTLMBus (const pugi::xml_node &node, Component *component)
 
oms_status_enu_t importBusConnectorSignals (const pugi::xml_node &node)
 
oms_status_enu_t importBusConnectorGeometry (const pugi::xml_node &node)
 
oms_status_enu_t importStartValuesFromSSV ()
 
oms_status_enu_t importStartValuesFromSSVHelper (std::string fileName, std::multimap< ComRef, ComRef > &mappedEntry)
 
oms_status_enu_t importParameterMappingFromSSM (std::string fileName, std::multimap< ComRef, ComRef > &mappedEntry)
 

Private Attributes

ComRef cref
 
oms_system_enu_t type
 
ModelparentModel
 
SystemparentSystem
 
std::map< ComRef, System * > subsystems
 
std::map< ComRef, Component * > components
 
Values values
 system level connectors, parameters and their start values defined before instantiating the FMU and external inputs defined after initialization More...
 
Element element
 
std::vector< Connector * > connectors
 last element is always NULL More...
 
std::vector< oms_element_t * > subelements
 last element is always NULL; don't free it More...
 
std::vector< BusConnector * > busconnectors
 
std::vector< TLMBusConnector * > tlmbusconnectors
 
std::vector< Connection * > connections
 last element is always NULL More...
 
std::vector< AlgLoopalgLoops
 Vector of algebraic loop objects. More...
 

Constructor & Destructor Documentation

◆ ~System()

oms::System::~System ( )
virtual

◆ System() [1/2]

oms::System::System ( const ComRef cref,
oms_system_enu_t  type,
oms::Model parentModel,
oms::System parentSystem,
oms_solver_enu_t  solverMethod 
)
protected
Here is the call graph for this function:

◆ System() [2/2]

oms::System::System ( System const &  copy)
protected

not implemented

Member Function Documentation

◆ addAlgLoop()

oms_status_enu_t oms::System::addAlgLoop ( oms_ssc_t  SCC,
const int  algLoopNum 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addBus()

oms_status_enu_t oms::System::addBus ( const ComRef cref)

< TODO: Implement bus connectors for components

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addConnection()

oms_status_enu_t oms::System::addConnection ( const ComRef crefA,
const ComRef crefB 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addConnector()

oms_status_enu_t oms::System::addConnector ( const ComRef cref,
oms_causality_enu_t  causality,
oms_signal_type_enu_t  type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addConnectorToBus()

oms_status_enu_t oms::System::addConnectorToBus ( const ComRef busCref,
const ComRef connectorCref 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addConnectorToTLMBus()

oms_status_enu_t oms::System::addConnectorToTLMBus ( const ComRef busCref,
const ComRef connectorCref,
const std::string  type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addExternalModel()

oms_status_enu_t oms::System::addExternalModel ( const ComRef cref,
std::string  path,
std::string  startscript 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addSignalsToResults()

oms_status_enu_t oms::System::addSignalsToResults ( const char *  regex)
Here is the caller graph for this function:

◆ addSubModel()

oms_status_enu_t oms::System::addSubModel ( const ComRef cref,
const std::string &  fmuPath 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addSubSystem()

oms_status_enu_t oms::System::addSubSystem ( const ComRef cref,
oms_system_enu_t  type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addTLMBus()

oms_status_enu_t oms::System::addTLMBus ( const ComRef cref,
oms_tlm_domain_t  domain,
const int  dimensions,
const oms_tlm_interpolation_t  interpolation 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addTLMConnection()

oms_status_enu_t oms::System::addTLMConnection ( const ComRef crefA,
const ComRef crefB,
double  delay,
double  alpha,
double  linearimpedance,
double  angularimpedance 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ copyResources()

bool oms::System::copyResources ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ delete_()

oms_status_enu_t oms::System::delete_ ( const ComRef cref)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deleteAllConectionsTo()

oms_status_enu_t oms::System::deleteAllConectionsTo ( const ComRef cref)
Here is the caller graph for this function:

◆ deleteConnection()

oms_status_enu_t oms::System::deleteConnection ( const ComRef crefA,
const ComRef crefB 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deleteConnectorFromBus()

oms_status_enu_t oms::System::deleteConnectorFromBus ( const ComRef busCref,
const ComRef connectorCref 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deleteConnectorFromTLMBus()

oms_status_enu_t oms::System::deleteConnectorFromTLMBus ( const ComRef busCref,
const ComRef connectorCref 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ exportDependencyGraphs()

oms_status_enu_t oms::System::exportDependencyGraphs ( const std::string &  pathInitialization,
const std::string &  pathEvent,
const std::string &  pathSimulation 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ exportToSSD()

oms_status_enu_t oms::System::exportToSSD ( pugi::xml_node &  node,
pugi::xml_node &  ssvNode 
) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ exportToSSD_SimulationInformation()

virtual oms_status_enu_t oms::System::exportToSSD_SimulationInformation ( pugi::xml_node &  node) const
pure virtual

Implemented in oms::SystemSC, oms::SystemWC, and oms::SystemTLM.

Here is the caller graph for this function:

◆ getAlgLoop()

oms::AlgLoop * oms::System::getAlgLoop ( const int  systemNumber)
Here is the caller graph for this function:

◆ getAllResources()

oms_status_enu_t oms::System::getAllResources ( std::vector< std::string > &  resources)
Here is the caller graph for this function:

◆ getBoolean()

oms_status_enu_t oms::System::getBoolean ( const ComRef cref,
bool &  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBusConnector()

oms::BusConnector * oms::System::getBusConnector ( const ComRef cref)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getComponent()

oms::Component * oms::System::getComponent ( const ComRef cref)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getComponents()

const std::map<ComRef, Component*>& oms::System::getComponents ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getConnection()

oms::Connection * oms::System::getConnection ( const ComRef crefA,
const ComRef crefB 
)
Here is the caller graph for this function:

◆ getConnections()

oms::Connection ** oms::System::getConnections ( const ComRef cref)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getConnector()

oms::Connector * oms::System::getConnector ( const ComRef cref)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getConnectorOwner()

std::string oms::System::getConnectorOwner ( const ComRef cref) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getConnectors()

Connector** oms::System::getConnectors ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getCref()

const ComRef& oms::System::getCref ( ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getElement()

Element* oms::System::getElement ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFullCref()

oms::ComRef oms::System::getFullCref ( ) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getInitialUnknownsGraph()

const DirectedGraph& oms::System::getInitialUnknownsGraph ( )
inline

◆ getInteger()

oms_status_enu_t oms::System::getInteger ( const ComRef cref,
int &  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getMaximumStepSize()

double oms::System::getMaximumStepSize ( )
inline
Here is the caller graph for this function:

◆ getModel()

oms::Model * oms::System::getModel ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getOutputsGraph()

const DirectedGraph& oms::System::getOutputsGraph ( )
inline
Here is the call graph for this function:

◆ getParentSystem()

System* oms::System::getParentSystem ( ) const
inline
Here is the call graph for this function:

◆ getReal()

oms_status_enu_t oms::System::getReal ( const ComRef cref,
double &  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getReals()

oms_status_enu_t oms::System::getReals ( const std::vector< ComRef > &  crefs,
std::vector< double > &  values 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getSolver()

oms_solver_enu_t oms::System::getSolver ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getStepSize()

void oms::System::getStepSize ( double *  initialStepSize,
double *  minimumStepSize,
double *  maximumStepSize 
) const
inline
Here is the caller graph for this function:

◆ getSubSystem()

oms::System * oms::System::getSubSystem ( const ComRef cref)
Here is the caller graph for this function:

◆ getSubSystems()

const std::map<ComRef, System*>& oms::System::getSubSystems ( )
inline
Here is the caller graph for this function:

◆ getSystem()

oms::System * oms::System::getSystem ( const ComRef cref)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getThreadPool()

ctpl::thread_pool & oms::System::getThreadPool ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getTime()

double oms::System::getTime ( ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getTLMBusConnector()

oms::TLMBusConnector * oms::System::getTLMBusConnector ( const ComRef cref)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getTLMBusConnectors()

TLMBusConnector** oms::System::getTLMBusConnectors ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getTolerance()

void oms::System::getTolerance ( double *  absoluteTolerance,
double *  relativeTolerance 
) const
inline
Here is the caller graph for this function:

◆ getType()

oms_system_enu_t oms::System::getType ( ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getUniqueID()

std::string oms::System::getUniqueID ( ) const
Here is the caller graph for this function:

◆ getValidCref()

oms::ComRef oms::System::getValidCref ( const ComRef cref)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getVariable()

oms::Variable * oms::System::getVariable ( const ComRef cref)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ importBusConnectorGeometry()

oms_status_enu_t oms::System::importBusConnectorGeometry ( const pugi::xml_node &  node)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ importBusConnectorSignals()

oms_status_enu_t oms::System::importBusConnectorSignals ( const pugi::xml_node &  node)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ importFromSSD()

oms_status_enu_t oms::System::importFromSSD ( const pugi::xml_node &  node,
const std::string &  sspVersion 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ importFromSSD_ConnectionGeometry()

oms_status_enu_t oms::System::importFromSSD_ConnectionGeometry ( const pugi::xml_node &  node,
const ComRef crefA,
const ComRef crefB 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ importFromSSD_SimulationInformation()

virtual oms_status_enu_t oms::System::importFromSSD_SimulationInformation ( const pugi::xml_node &  node,
const std::string &  sspVersion 
)
pure virtual

Implemented in oms::SystemSC, oms::SystemWC, and oms::SystemTLM.

Here is the caller graph for this function:

◆ importParameterMappingFromSSM()

oms_status_enu_t oms::System::importParameterMappingFromSSM ( std::string  fileName,
std::multimap< ComRef, ComRef > &  mappedEntry 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ importStartValuesFromSSV()

oms_status_enu_t oms::System::importStartValuesFromSSV ( )
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ importStartValuesFromSSVHelper()

oms_status_enu_t oms::System::importStartValuesFromSSVHelper ( std::string  fileName,
std::multimap< ComRef, ComRef > &  mappedEntry 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ importTLMBus()

oms_status_enu_t oms::System::importTLMBus ( const pugi::xml_node &  node,
Component component 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize()

virtual oms_status_enu_t oms::System::initialize ( )
pure virtual

Implemented in oms::SystemSC, oms::SystemTLM, and oms::SystemWC.

Here is the caller graph for this function:

◆ instantiate()

virtual oms_status_enu_t oms::System::instantiate ( )
pure virtual

Implemented in oms::SystemSC, oms::SystemTLM, and oms::SystemWC.

Here is the caller graph for this function:

◆ isConnected()

bool oms::System::isConnected ( const ComRef cref) const
Here is the caller graph for this function:

◆ isTopLevelSystem()

bool oms::System::isTopLevelSystem ( ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ listUnconnectedConnectors()

oms_status_enu_t oms::System::listUnconnectedConnectors ( char **  contents) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ NewSystem()

oms::System * oms::System::NewSystem ( const ComRef cref,
oms_system_enu_t  type,
oms::Model parentModel,
oms::System parentSystem 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

System& oms::System::operator= ( System const &  copy)
protected

not implemented

◆ registerSignalsForResultFile()

oms_status_enu_t oms::System::registerSignalsForResultFile ( ResultWriter resultFile)
virtual

Reimplemented in oms::SystemWC, and oms::SystemTLM.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ removeSignalsFromResults()

oms_status_enu_t oms::System::removeSignalsFromResults ( const char *  regex)
Here is the caller graph for this function:

◆ reset()

virtual oms_status_enu_t oms::System::reset ( )
pure virtual

Implemented in oms::SystemSC, oms::SystemTLM, and oms::SystemWC.

Here is the caller graph for this function:

◆ setBoolean()

oms_status_enu_t oms::System::setBoolean ( const ComRef cref,
bool  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setBusGeometry()

oms_status_enu_t oms::System::setBusGeometry ( const ComRef cref,
const oms::ssd::ConnectorGeometry geometry 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setConnectionGeometry()

oms_status_enu_t oms::System::setConnectionGeometry ( const ComRef crefA,
const ComRef crefB,
const oms::ssd::ConnectionGeometry geometry 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setConnectorGeometry()

oms_status_enu_t oms::System::setConnectorGeometry ( const ComRef cref,
const oms::ssd::ConnectorGeometry geometry 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setFaultInjection()

oms_status_enu_t oms::System::setFaultInjection ( const ComRef signal,
oms_fault_type_enu_t  faultType,
double  faultValue 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setFixedStepSize()

oms_status_enu_t oms::System::setFixedStepSize ( double  stepSize)
inline
Here is the caller graph for this function:

◆ setGeometry()

void oms::System::setGeometry ( const ssd::ElementGeometry geometry)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setInteger()

oms_status_enu_t oms::System::setInteger ( const ComRef cref,
int  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setReal()

oms_status_enu_t oms::System::setReal ( const ComRef cref,
double  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setRealInputDerivatives()

oms_status_enu_t oms::System::setRealInputDerivatives ( const ComRef cref,
int  order,
double  value 
)
Here is the caller graph for this function:

◆ setReals()

oms_status_enu_t oms::System::setReals ( const std::vector< ComRef > &  crefs,
std::vector< double >  values 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setSolver()

virtual oms_status_enu_t oms::System::setSolver ( oms_solver_enu_t  solver)
inlinevirtual

Reimplemented in oms::SystemSC, and oms::SystemWC.

Here is the caller graph for this function:

◆ setTLMBusGeometry()

oms_status_enu_t oms::System::setTLMBusGeometry ( const ComRef cref,
const oms::ssd::ConnectorGeometry geometry 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setTLMConnectionParameters()

oms_status_enu_t oms::System::setTLMConnectionParameters ( const ComRef crefA,
const ComRef crefB,
const oms_tlm_connection_parameters_t parameters 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setTolerance()

oms_status_enu_t oms::System::setTolerance ( double  absoluteTolerance,
double  relativeTolerance 
)
inline
Here is the caller graph for this function:

◆ setVariableStepSize()

oms_status_enu_t oms::System::setVariableStepSize ( double  initialStepSize,
double  minimumStepSize,
double  maximumStepSize 
)
inline
Here is the caller graph for this function:

◆ solveAlgLoop()

oms_status_enu_t oms::System::solveAlgLoop ( DirectedGraph graph,
int  loopNumber 
)
Here is the caller graph for this function:

◆ stepUntil()

virtual oms_status_enu_t oms::System::stepUntil ( double  stopTime,
void(*)(const char *ident, double time, oms_status_enu_t status)  cb 
)
pure virtual

Implemented in oms::SystemSC, oms::SystemTLM, and oms::SystemWC.

Here is the caller graph for this function:

◆ terminate()

virtual oms_status_enu_t oms::System::terminate ( )
pure virtual

Implemented in oms::SystemSC, oms::SystemTLM, and oms::SystemWC.

Here is the caller graph for this function:

◆ updateAlgebraicLoops()

oms_status_enu_t oms::System::updateAlgebraicLoops ( const std::vector< oms_ssc_t > &  sortedConnections)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateDependencyGraphs()

oms_status_enu_t oms::System::updateDependencyGraphs ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateSignals()

oms_status_enu_t oms::System::updateSignals ( ResultWriter resultFile)
virtual

Reimplemented in oms::SystemWC, and oms::SystemTLM.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ useThreadPool()

bool oms::System::useThreadPool ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ validCref()

bool oms::System::validCref ( const ComRef cref)
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ absoluteTolerance

double oms::System::absoluteTolerance = 1e-4
protected

◆ algLoops

std::vector<AlgLoop> oms::System::algLoops
private

Vector of algebraic loop objects.

◆ busconnectors

std::vector<BusConnector*> oms::System::busconnectors
private

◆ clock

Clock oms::System::clock
protected

◆ clock_id

unsigned int oms::System::clock_id
protected

◆ components

std::map<ComRef, Component*> oms::System::components
private

◆ connections

std::vector<Connection*> oms::System::connections
private

last element is always NULL

◆ connectors

std::vector<Connector*> oms::System::connectors
private

last element is always NULL

◆ cref

ComRef oms::System::cref
private

◆ element

Element oms::System::element
private

◆ eventGraph

DirectedGraph oms::System::eventGraph
protected

filtered dependency graph, without parameters, solved at event mode

◆ exportConnectors

std::unordered_map<ComRef, bool> oms::System::exportConnectors
protected

◆ initializationGraph

DirectedGraph oms::System::initializationGraph
protected

dependency graph, with all connections, solved at initialization

◆ initialStepSize

double oms::System::initialStepSize = 1e-4
protected

◆ loopsNeedUpdate

bool oms::System::loopsNeedUpdate = true
protected

◆ maximumStepSize

double oms::System::maximumStepSize = 1e-1
protected

◆ minimumStepSize

double oms::System::minimumStepSize = 1e-4
protected

◆ parentModel

Model* oms::System::parentModel
private

◆ parentSystem

System* oms::System::parentSystem
private

◆ relativeTolerance

double oms::System::relativeTolerance = 1e-4
protected

◆ resultFileMapping

std::unordered_map<unsigned int , unsigned int > oms::System::resultFileMapping
protected

◆ simulationGraph

DirectedGraph oms::System::simulationGraph
protected

filtered dependency graph, with connections of type Real, solved at continuous time mode;

◆ solverMethod

oms_solver_enu_t oms::System::solverMethod = oms_solver_none
protected

◆ startValuesFileSources

std::map<std::string, std::string> oms::System::startValuesFileSources

ssvFileSource mapped with ssmFilesource if mapping is provided, otherwise only ssvFilesource entry is made

◆ subelements

std::vector<oms_element_t*> oms::System::subelements
private

last element is always NULL; don't free it

◆ subsystems

std::map<ComRef, System*> oms::System::subsystems
private

◆ time

double oms::System::time
protected

◆ tlmbusconnectors

std::vector<TLMBusConnector*> oms::System::tlmbusconnectors
private

◆ type

oms_system_enu_t oms::System::type
private

◆ values

Values oms::System::values
private

system level connectors, parameters and their start values defined before instantiating the FMU and external inputs defined after initialization


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