32 #ifndef _OMS_SYSTEM_H_ 33 #define _OMS_SYSTEM_H_ 42 #include "ExternalModel.h" 47 #include "TLMBusConnector.h" 53 #include <pugixml.hpp> 54 #include <unordered_map> 56 #if (BOOST_VERSION >= 105300) 58 #else // use the standard queue 204 std::map<std::string, filesystem::path>
fmuGuid;
TLMBusConnector * getTLMBusConnector(const ComRef &cref)
Definition: System.cpp:1211
oms_status_enu_t addSignalsToResults(const char *regex)
Definition: System.cpp:2755
virtual oms_status_enu_t initialize()=0
oms_status_enu_t setFaultInjection(const ComRef &signal, oms_fault_type_enu_t faultType, double faultValue)
Definition: System.cpp:2842
ComRef getFullCref() const
Definition: System.cpp:162
void forceLoopsToBeUpdated()
Definition: System.h:197
double getTime() const
Definition: System.h:151
oms_solver_enu_t
Definition: Types.h:96
oms_solver_enu_t solverMethod
Definition: System.h:229
Definition: ResultWriter.h:68
oms_status_enu_t deleteResourcesInSSP(const std::string &filename)
Definition: System.cpp:564
std::vector< AlgLoop > algLoops
vector of algebraic loop objects
Definition: System.h:260
std::string getUniqueID() const
Definition: System.cpp:2831
Definition: ElementGeometry.h:45
std::vector< oms_element_t * > subelements
last element is always NULL; don't free it
Definition: System.h:252
oms_status_enu_t setTLMBusGeometry(const ComRef &cref, const oms::ssd::ConnectorGeometry *geometry)
Definition: System.cpp:1768
oms_status_enu_t setConnectionGeometry(const ComRef &crefA, const ComRef &crefB, const oms::ssd::ConnectionGeometry *geometry)
Definition: System.cpp:1693
Strong connected components data type.
Definition: DirectedGraph.h:54
Element element
Definition: System.h:250
virtual oms_status_enu_t doStep()=0
oms_system_enu_t type
Definition: System.h:242
void setGeometry(const oms::ssd::ElementGeometry *newGeometry)
Definition: Element.cpp:69
Clock clock
Definition: System.h:226
oms_status_enu_t addBus(const ComRef &cref)
Definition: System.cpp:1460
oms_status_enu_t removeSignalsFromResults(const char *regex)
Definition: System.cpp:2788
Definition: Variable.h:45
double initialStepSize
Definition: System.h:235
System & operator=(System const ©)
not implemented
oms_status_enu_t deleteAllConectionsTo(const ComRef &cref)
Definition: System.cpp:1804
oms_status_enu_t setString(const ComRef &cref, const std::string &value)
Definition: System.cpp:2533
DirectedGraph simulationGraph
filtered dependency graph, with connections of type Real, solved at continuous time mode; ...
Definition: System.h:224
std::unordered_map< unsigned int, unsigned int > resultFileMapping
Definition: System.h:237
DirectedGraph initializationGraph
dependency graph, with all connections, solved at initialization
Definition: System.h:222
oms_status_enu_t setUnit(const ComRef &cref, const std::string &value)
Definition: System.cpp:2579
virtual oms_status_enu_t updateSignals(ResultWriter &resultFile)
Definition: System.cpp:2710
virtual ~System()
Definition: System.cpp:74
oms_causality_enu_t
Definition: Types.h:61
oms_tlm_interpolation_t
Definition: Types.h:70
oms_status_enu_t getBoolean(const ComRef &cref, bool &value)
Definition: System.cpp:2102
oms_status_enu_t setBoolean(const ComRef &cref, bool value)
Definition: System.cpp:2389
oms_status_enu_t getReals(const std::vector< ComRef > &crefs, std::vector< double > &values)
Definition: System.cpp:2617
TLMBusConnector ** getTLMBusConnectors()
Definition: System.h:118
oms_status_enu_t importFromSnapshot(const pugi::xml_node &node, const std::string &sspVersion, const Snapshot &snapshot, std::string variantName)
Definition: System.cpp:792
std::unordered_map< ComRef, bool > exportConnectors
Definition: System.h:238
oms_status_enu_t deleteReferencesInSSD(const ComRef &cref, const std::string &filename)
Definition: System.cpp:540
oms_status_enu_t rename(const ComRef &newCref)
rename the system itself
Definition: System.cpp:3035
oms_status_enu_t
Definition: Types.h:43
oms_status_enu_t exportToSSD(pugi::xml_node &node, Snapshot &snapshot, std::string variantName) const
Definition: System.cpp:668
void getTolerance(double *absoluteTolerance, double *relativeTolerance) const
Definition: System.h:179
TLMBusConnector.
Definition: TLMBusConnector.h:96
std::map< std::string, filesystem::path > fmuGuid
Definition: System.h:204
bool isTopLevelSystem() const
Definition: System.h:174
virtual oms_status_enu_t exportToSSD_SimulationInformation(pugi::xml_node &node) const =0
ComRef cref
Definition: System.h:241
bool loopsNeedUpdate
Definition: System.h:259
oms_status_enu_t addTLMConnection(const ComRef &crefA, const ComRef &crefB, double delay, double alpha, double linearimpedance, double angularimpedance)
Definition: System.cpp:1404
oms_solver_enu_t getSolver()
Definition: System.h:185
bool useThreadPool()
Definition: System.cpp:2821
System(const ComRef &cref, oms_system_enu_t type, Model *parentModel, System *parentSystem, oms_solver_enu_t solverMethod)
Definition: System.cpp:50
oms_status_enu_t setFixedStepSize(double stepSize)
Definition: System.h:182
oms_status_enu_t deleteConnection(const ComRef &crefA, const ComRef &crefB)
Definition: System.cpp:1371
oms_status_enu_t getString(const ComRef &cref, std::string &value)
Definition: System.cpp:2318
oms_status_enu_t getReal(const ComRef &cref, double &value)
Definition: System.cpp:2242
oms_status_enu_t setInteger(const ComRef &cref, int value)
Definition: System.cpp:2436
Connector * getConnector(const ComRef &cref)
Definition: System.cpp:1164
Definition: Snapshot.h:46
oms_status_enu_t updateDependencyGraphs()
Definition: System.cpp:2026
oms_status_enu_t getDirectionalDerivative(const ComRef &unknownCref, const ComRef &knownCref, double &value)
Definition: System.cpp:2370
static System * NewSystem(const ComRef &cref, oms_system_enu_t type, Model *parentModel, System *parentSystem)
Definition: System.cpp:101
Values & getValues()
Definition: System.h:203
void getFilteredSignals(std::vector< Connector > &filteredSignals) const
Definition: System.cpp:2001
BusConnector * getBusConnector(const ComRef &cref)
Definition: System.cpp:1189
Values values
system level connectors, parameters and their start values defined before instantiating the FMU and e...
Definition: System.h:248
void setGeometry(const ssd::ElementGeometry &geometry)
Definition: System.h:104
oms_status_enu_t getInteger(const ComRef &cref, int &value)
Definition: System.cpp:2172
oms_status_enu_t renameConnectors()
Definition: System.cpp:3110
oms_status_enu_t listUnconnectedConnectors(char **contents) const
Definition: System.cpp:592
std::vector< TLMBusConnector * > tlmbusconnectors
Definition: System.h:255
oms_status_enu_t replaceSubModel(const ComRef &cref, const std::string &fmuPath, bool dryRun, int &warningCount)
Definition: System.cpp:328
oms_status_enu_t addConnector(const ComRef &cref, oms_causality_enu_t causality, oms_signal_type_enu_t type)
Definition: System.cpp:1141
ComRef - component reference.
Definition: ComRef.h:46
void getStepSize(double *initialStepSize, double *minimumStepSize, double *maximumStepSize) const
Definition: System.h:180
unsigned int clock_id
Definition: System.h:227
oms_status_enu_t setBusGeometry(const ComRef &cref, const oms::ssd::ConnectorGeometry *geometry)
Definition: System.cpp:1751
oms_system_enu_t
Definition: Types.h:121
const char * parameters
Definition: Tags.cpp:80
AlgLoop * getAlgLoop(const int systemNumber)
Definition: System.cpp:2967
Definition: Component.h:60
std::vector< BusConnector * > busconnectors
Definition: System.h:253
oms_status_enu_t setReals(const std::vector< ComRef > &crefs, std::vector< double > values)
Definition: System.cpp:2628
Connection * getConnection(const ComRef &crefA, const ComRef &crefB)
Definition: System.cpp:1789
oms_status_enu_t setVariableStepSize(double initialStepSize, double minimumStepSize, double maximumStepSize)
Definition: System.h:183
Connector.
Definition: Connector.h:49
double relativeTolerance
Definition: System.h:232
oms_status_enu_t deleteConnectorFromBus(const ComRef &busCref, const ComRef &connectorCref)
Definition: System.cpp:1544
oms_status_enu_t deleteConnectorFromTLMBus(const ComRef &busCref, const ComRef &connectorCref)
Definition: System.cpp:1607
bool isValidScalarVariable(Component *referenceComponent, Component *replacingComponent, Connection *connection, const ComRef &crefA, const ComRef &crefB, const ComRef &signalName, const std::string &path, std::vector< std::string > &warningList)
Definition: System.cpp:438
BusConnector.
Definition: BusConnector.h:20
virtual oms_status_enu_t setSolver(oms_solver_enu_t solver)
Definition: System.h:78
Model & getModel()
Definition: System.cpp:1797
bool supportsDirectionalDerivatives(int i, DirectedGraph &graph)
returns true if all FMUs support providesDirectionalDerivative
Definition: System.cpp:2995
oms_status_enu_t setTLMConnectionParameters(const ComRef &crefA, const ComRef &crefB, const oms_tlm_connection_parameters_t *parameters)
Definition: System.cpp:1721
oms_status_enu_t addConnectorToBus(const ComRef &busCref, const ComRef &connectorCref)
Definition: System.cpp:1520
oms_status_enu_t renameConnections(const ComRef &cref, const ComRef &newCref)
Definition: System.cpp:3100
oms_signal_type_enu_t
Definition: Types.h:135
std::vector< Connector * > connectors
last element is always NULL
Definition: System.h:251
oms_status_enu_t addConnectorToTLMBus(const ComRef &busCref, const ComRef &connectorCref, const std::string type)
Definition: System.cpp:1568
oms_status_enu_t importFromSSD_ConnectionGeometry(const pugi::xml_node &node, const ComRef &crefA, const ComRef &crefB)
Definition: System.cpp:2644
oms_system_enu_t getType() const
Definition: System.h:95
oms_status_enu_t importBusConnectorGeometry(const pugi::xml_node &node)
Definition: System.cpp:2936
oms_status_enu_t delete_(const ComRef &cref)
Definition: System.cpp:1830
double absoluteTolerance
Definition: System.h:231
oms_fault_type_enu_t
Definition: Types.h:76
virtual oms_status_enu_t instantiate()=0
std::map< ComRef, System * > & getSubSystems()
Definition: System.h:142
oms_status_enu_t setTolerance(double absoluteTolerance, double relativeTolerance)
Definition: System.h:181
Parameters for TLM connection.
Definition: Types.h:336
oms_status_enu_t newResources(const ComRef &cref, const std::string &ssvFilename, const std::string &ssmFilename="", bool externalresources=false)
Definition: System.cpp:470
bool isConnected(const ComRef &cref) const
Definition: System.cpp:1821
double time
Definition: System.h:220
const ComRef & getCref() const
Definition: System.h:88
Element * getElement()
Definition: System.h:93
oms_tlm_domain_t
Definition: Types.h:87
virtual oms_status_enu_t stepUntil(double stopTime)=0
oms_status_enu_t addConnection(const ComRef &crefA, const ComRef &crefB, bool suppressUnitConversion=false)
Definition: System.cpp:1250
const char * signal
Definition: Tags.cpp:38
DirectedGraph eventGraph
filtered dependency graph, without parameters, solved at event mode
Definition: System.h:223
bool copyResources()
Definition: System.cpp:1985
std::string getConnectorOwner(const ComRef &cref) const
Definition: System.cpp:1184
virtual oms_status_enu_t reset()=0
oms_status_enu_t updateAlgebraicLoops(const std::vector< scc_t > &sortedConnections, DirectedGraph &graph)
Definition: System.cpp:3009
oms_status_enu_t solveAlgLoop(DirectedGraph &graph, int loopNumber)
Definition: System.cpp:3030
oms_status_enu_t importBusConnectorSignals(const pugi::xml_node &node)
Definition: System.cpp:2908
oms_status_enu_t addSubSystem(const ComRef &cref, oms_system_enu_t type)
Definition: System.cpp:250
oms_status_enu_t exportToSSV(Snapshot &snapshot) const
Definition: System.cpp:777
oms_status_enu_t setReal(const ComRef &cref, double value)
Definition: System.cpp:2483
double minimumStepSize
Definition: System.h:233
Model * parentModel
Definition: System.h:243
Element.
Definition: Element.h:49
Definition: ConnectionGeometry.h:45
oms_status_enu_t importTLMBus(const pugi::xml_node &node, Component *component)
Definition: System.cpp:2860
**
Definition: Connection.h:47
const DirectedGraph & getOutputsGraph()
Definition: System.h:147
std::map< ComRef, Component * > components
Definition: System.h:246
ctpl::thread_pool & getThreadPool()
Definition: System.cpp:2826
System * getParentSystem() const
Definition: System.h:139
double maximumStepSize
Definition: System.h:234
Variable * getVariable(const ComRef &cref)
Definition: System.cpp:204
oms_status_enu_t addSubModel(const ComRef &cref, const std::string &fmuPath)
Definition: System.cpp:282
oms_status_enu_t addTLMBus(const ComRef &cref, oms_tlm_domain_t domain, const int dimensions, const oms_tlm_interpolation_t interpolation)
Definition: System.cpp:1487
Definition: ConnectorGeometry.h:45
oms_status_enu_t setRealInputDerivatives(const ComRef &cref, int order, double value)
Definition: System.cpp:2639
const char * connection
Definition: Tags.cpp:46
std::map< ComRef, Component * > & getComponents()
Definition: System.h:143
const DirectedGraph & getInitialUnknownsGraph()
Definition: System.h:146
const char * component
Definition: Tags.cpp:45
Component * getComponent(const ComRef &cref)
Definition: System.cpp:188
bool validCref(const ComRef &cref)
Definition: System.cpp:225
oms_status_enu_t addAlgLoop(scc_t SCC, const int algLoopNum, DirectedGraph &graph, bool supportsDirectionalDerivatives)
Definition: System.cpp:2978
oms_status_enu_t setConnectorGeometry(const ComRef &cref, const oms::ssd::ConnectorGeometry *geometry)
Definition: System.cpp:1662
System * parentSystem
Definition: System.h:244
Connector ** getConnectors()
Definition: System.h:108
Definition: DirectedGraph.h:65
oms_status_enu_t addExternalModel(const ComRef &cref, std::string path, std::string startscript)
Definition: System.cpp:1638
System * getSystem(const ComRef &cref)
Definition: System.cpp:173
std::map< ComRef, System * > subsystems
Definition: System.h:245
std::vector< Connection * > & getConnections()
Definition: System.h:144
virtual oms_status_enu_t terminate()=0
double getMaximumStepSize()
Definition: System.h:184
void getAllResources(std::vector< std::string > &resources) const
Definition: System.cpp:1992
virtual oms_status_enu_t registerSignalsForResultFile(ResultWriter &resultFile)
Definition: System.cpp:2664
oms_status_enu_t exportDependencyGraphs(const std::string &pathInitialization, const std::string &pathEvent, const std::string &pathSimulation)
Definition: System.cpp:2016
std::vector< Connection * > connections
last element is always NULL
Definition: System.h:257
virtual oms_status_enu_t importFromSSD_SimulationInformation(const pugi::xml_node &node, const std::string &sspVersion)=0