OMSimulatorLib
The OMSimulator project is a FMI-based co-simulation environment that supports ordinary (i.e., non-delayed) and TLM connections.
|
Go to the documentation of this file.
32 #ifndef _OMS_SYSTEM_SC_H_
33 #define _OMS_SYSTEM_SC_H_
37 #include "OMSimulator/Types.h"
39 #include <cvode/cvode.h>
40 #include <nvector/nvector_serial.h>
41 #include <sunlinsol/sunlinsol_dense.h>
47 int cvode_rhs(realtype t, N_Vector y, N_Vector ydot,
void* user_data);
61 oms_status_enu_t
reset();
63 oms_status_enu_t
stepUntil(
double stopTime);
70 oms_status_enu_t
setSolver(oms_solver_enu_t solver) {
if (solver > oms_solver_sc_min && solver < oms_solver_sc_max) {
solverMethod=solver;
return oms_status_ok;}
return oms_status_error;}
80 std::vector<ComponentFMUME*>
fmus;
113 friend int oms::cvode_rhs(realtype t, N_Vector y, N_Vector ydot,
void* user_data);
std::vector< size_t > nEventIndicators
Definition: SystemSC.h:85
N_Vector y
Definition: SystemSC.h:100
std::vector< ComponentFMUME * > fmus
Definition: SystemSC.h:80
static int CVODEMaxNLSFailures()
Definition: Flags.h:60
oms_status_enu_t doStep()
Definition: SystemSC.cpp:484
const char * system
Definition: Tags.cpp:57
System * parentSystem
Definition: System.h:244
ComRef - component reference.
Definition: ComRef.h:46
SUNMatrix J
Definition: SystemSC.h:102
const char * component
Definition: Tags.cpp:45
Definition: SystemSC.h:97
SolverDataCVODE_t cvode
Definition: SystemSC.h:110
static void ProgressBar(double start, double stop, double value)
Definition: Logging.cpp:294
~SystemSC()
Definition: SystemSC.cpp:89
SystemSC(const ComRef &cref, Model *parentModel, System *parentSystem)
Definition: SystemSC.cpp:84
static int CVODEMaxErrTestFails()
Definition: Flags.h:59
oms_status_enu_t setSolverMethod(std::string)
Definition: SystemSC.cpp:124
Definition: ComponentTable.h:49
#define logError_InternalError
Definition: Logging.h:132
oms_status_enu_t terminate()
Definition: SystemSC.cpp:375
static void TerminateBar()
Definition: Logging.cpp:324
std::vector< size_t > nStates
Definition: SystemSC.h:84
oms_status_enu_t setSolver(oms_solver_enu_t solver)
Definition: SystemSC.h:70
static bool isValidIdent(const std::string &ident)
Definition: ComRef.cpp:89
#define logError_FMUCall(call, fmu)
Definition: Logging.h:130
#define logInfo(msg)
Definition: Logging.h:100
oms_status_enu_t instantiate()
Definition: SystemSC.cpp:187
union oms::SystemSC::SolverData_t solverData
Definition: DirectedGraph.h:64
const char * VariableStepSolver
Definition: Tags.cpp:65
const std::vector< scc_t > & getSortedConnections()
Definition: DirectedGraph.cpp:247
static System * NewSystem(const oms::ComRef &cref, Model *parentModel, System *parentSystem)
Definition: SystemSC.cpp:93
oms_status_enu_t stepUntil(double stopTime)
Definition: SystemSC.cpp:651
void * mem
Definition: SystemSC.h:99
#define logDebug(msg)
Definition: Logging.h:109
static bool ProgressBar()
Definition: Flags.h:70
std::string getSolverName() const
Definition: SystemSC.cpp:111
#define logWarning(msg)
Definition: Logging.h:101
static int CVODEMaxNLSIterations()
Definition: Flags.h:61
static int CVODEMaxSteps()
Definition: Flags.h:62
Definition: SystemSC.h:49
SolverDataEuler_t euler
Definition: SystemSC.h:109
Definition: SystemSC.h:107
std::vector< double * > states_der
Definition: SystemSC.h:88
std::vector< double * > states
Definition: SystemSC.h:87
Definition: SystemSC.h:93
int cvode_rhs(realtype t, N_Vector y, N_Vector ydot, void *user_data)
Definition: SystemSC.cpp:43
oms_status_enu_t importFromSSD_SimulationInformation(const pugi::xml_node &node, const std::string &sspVersion)
Definition: SystemSC.cpp:159
const char * simulation_information
Definition: Tags.cpp:62
Definition: ComponentFMUME.h:52
std::vector< double * > event_indicators_prev
Definition: SystemSC.h:91
#define logError(msg)
Definition: Logging.h:102
SystemSC & operator=(SystemSC const ©)
not implemented
N_Vector abstol
Definition: SystemSC.h:104
static bool ZeroNominal()
Definition: Flags.h:77
oms_solver_enu_t solverMethod
Definition: System.h:229
fmiHandle * getFMU()
Definition: ComponentFMUME.h:115
Model * parentModel
Definition: System.h:243
const std::vector< Connector > & getNodes() const
Definition: DirectedGraph.h:81
std::vector< double * > event_indicators
Definition: SystemSC.h:90
N_Vector liny
Definition: SystemSC.h:103
oms_status_enu_t updateInputs(DirectedGraph &graph)
Definition: SystemSC.cpp:675
SUNLinearSolver linSol
Definition: SystemSC.h:101
std::vector< fmi2Boolean > terminateSimulation
Definition: SystemSC.h:83
#define logError_InvalidIdent(cref)
Definition: Logging.h:134
oms_status_enu_t exportToSSD_SimulationInformation(pugi::xml_node &node) const
Definition: SystemSC.cpp:136
std::vector< double * > states_nominal
Definition: SystemSC.h:89
std::vector< fmi2Boolean > callEventUpdate
Definition: SystemSC.h:82
ComRef cref
Definition: System.h:241
oms_status_enu_t initialize()
Definition: SystemSC.cpp:236
oms_status_enu_t reset()
Definition: SystemSC.cpp:440