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

#include <SystemSC.h>

Inheritance diagram for oms::SystemSC:
Inheritance graph
Collaboration diagram for oms::SystemSC:
Collaboration graph

Classes

union  SolverData_t
 
struct  SolverDataCVODE_t
 
struct  SolverDataEuler_t
 

Public Member Functions

 ~SystemSC ()
 
oms_status_enu_t exportToSSD_SimulationInformation (pugi::xml_node &node) const
 
oms_status_enu_t importFromSSD_SimulationInformation (const pugi::xml_node &node)
 
oms_status_enu_t instantiate ()
 
oms_status_enu_t initialize ()
 
oms_status_enu_t terminate ()
 
oms_status_enu_t reset ()
 
oms_status_enu_t stepUntil (double stopTime, void(*cb)(const char *ident, double time, oms_status_enu_t status))
 
double getTime () const
 
oms_status_enu_t updateInputs (DirectedGraph &graph)
 
oms_status_enu_t solveAlgLoop (DirectedGraph &graph, const std::vector< std::pair< int, int > > &SCC)
 
std::string getSolverName () const
 
oms_status_enu_t setSolverMethod (std::string)
 
oms_status_enu_t setSolver (oms_solver_enu_t solver)
 
- Public Member Functions inherited from oms::System
virtual ~System ()
 
SystemgetSystem (const ComRef &cref)
 
ComponentgetComponent (const ComRef &cref)
 
SystemgetSubSystem (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) const
 
oms_status_enu_t importFromSSD (const pugi::xml_node &node)
 
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)
 
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 &pathSimulation)
 
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)
 
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 ()
 

Static Public Member Functions

static SystemNewSystem (const oms::ComRef &cref, Model *parentModel, System *parentSystem)
 
- Static Public Member Functions inherited from oms::System
static SystemNewSystem (const ComRef &cref, oms_system_enu_t type, Model *parentModel, System *parentSystem)
 

Protected Member Functions

 SystemSC (const ComRef &cref, Model *parentModel, System *parentSystem)
 
 SystemSC (SystemSC const &copy)
 not implemented More...
 
SystemSCoperator= (SystemSC const &copy)
 not implemented More...
 
- Protected Member Functions inherited from oms::System
 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...
 

Private Attributes

double time
 
std::vector< ComponentFMUME * > fmus
 
std::vector< fmi2_boolean_t > callEventUpdate
 
std::vector< fmi2_boolean_t > terminateSimulation
 
std::vector< size_t > nStates
 
std::vector< size_t > nEventIndicators
 
std::vector< double * > states
 
std::vector< double * > states_der
 
std::vector< double * > states_nominal
 
std::vector< double * > event_indicators
 
std::vector< double * > event_indicators_prev
 
union oms::SystemSC::SolverData_t solverData
 

Friends

int oms::cvode_rhs (realtype t, N_Vector y, N_Vector ydot, void *user_data)
 

Additional Inherited Members

- Protected Attributes inherited from oms::System
DirectedGraph initialUnknownsGraph
 
DirectedGraph outputsGraph
 
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
 

Constructor & Destructor Documentation

◆ ~SystemSC()

oms::SystemSC::~SystemSC ( )

◆ SystemSC() [1/2]

oms::SystemSC::SystemSC ( const ComRef cref,
Model parentModel,
System parentSystem 
)
protected
Here is the caller graph for this function:

◆ SystemSC() [2/2]

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

not implemented

Member Function Documentation

◆ exportToSSD_SimulationInformation()

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

Implements oms::System.

Here is the call graph for this function:

◆ getSolverName()

std::string oms::SystemSC::getSolverName ( ) const
Here is the caller graph for this function:

◆ getTime()

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

◆ importFromSSD_SimulationInformation()

oms_status_enu_t oms::SystemSC::importFromSSD_SimulationInformation ( const pugi::xml_node &  node)
virtual

Implements oms::System.

Here is the call graph for this function:

◆ initialize()

oms_status_enu_t oms::SystemSC::initialize ( )
virtual

Implements oms::System.

Here is the call graph for this function:

◆ instantiate()

oms_status_enu_t oms::SystemSC::instantiate ( )
virtual

Implements oms::System.

Here is the call graph for this function:

◆ NewSystem()

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

◆ operator=()

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

not implemented

Here is the caller graph for this function:

◆ reset()

oms_status_enu_t oms::SystemSC::reset ( )
virtual

Implements oms::System.

Here is the call graph for this function:

◆ setSolver()

oms_status_enu_t oms::SystemSC::setSolver ( oms_solver_enu_t  solver)
inlinevirtual

Reimplemented from oms::System.

Here is the call graph for this function:

◆ setSolverMethod()

oms_status_enu_t oms::SystemSC::setSolverMethod ( std::string  solver)
Here is the caller graph for this function:

◆ solveAlgLoop()

oms_status_enu_t oms::SystemSC::solveAlgLoop ( DirectedGraph graph,
const std::vector< std::pair< int, int > > &  SCC 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ stepUntil()

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

Implements oms::System.

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

◆ terminate()

oms_status_enu_t oms::SystemSC::terminate ( )
virtual

Implements oms::System.

Here is the call graph for this function:

◆ updateInputs()

oms_status_enu_t oms::SystemSC::updateInputs ( DirectedGraph graph)
Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ oms::cvode_rhs

int oms::cvode_rhs ( realtype  t,
N_Vector  y,
N_Vector  ydot,
void *  user_data 
)
friend

Member Data Documentation

◆ callEventUpdate

std::vector<fmi2_boolean_t> oms::SystemSC::callEventUpdate
private

◆ event_indicators

std::vector<double*> oms::SystemSC::event_indicators
private

◆ event_indicators_prev

std::vector<double*> oms::SystemSC::event_indicators_prev
private

◆ fmus

std::vector<ComponentFMUME*> oms::SystemSC::fmus
private

◆ nEventIndicators

std::vector<size_t> oms::SystemSC::nEventIndicators
private

◆ nStates

std::vector<size_t> oms::SystemSC::nStates
private

◆ solverData

union oms::SystemSC::SolverData_t oms::SystemSC::solverData
private

◆ states

std::vector<double*> oms::SystemSC::states
private

◆ states_der

std::vector<double*> oms::SystemSC::states_der
private

◆ states_nominal

std::vector<double*> oms::SystemSC::states_nominal
private

◆ terminateSimulation

std::vector<fmi2_boolean_t> oms::SystemSC::terminateSimulation
private

◆ time

double oms::SystemSC::time
private

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