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);
48 int cvode_roots(realtype t, N_Vector y, realtype *gout,
void* user_data);
62 oms_status_enu_t
reset();
64 oms_status_enu_t
stepUntil(
double stopTime);
71 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;}
85 std::vector<ComponentFMUME*>
fmus;
118 friend int oms::cvode_rhs(realtype t, N_Vector y, N_Vector ydot,
void* user_data);
ComRef - component reference.
Definition: ComRef.h:47
Definition: DirectedGraph.h:65
Definition: SystemSC.h:51
oms_status_enu_t importFromSSD_SimulationInformation(const pugi::xml_node &node, const std::string &sspVersion)
Definition: SystemSC.cpp:199
oms_status_enu_t setSolverMethod(std::string)
Definition: SystemSC.cpp:164
oms_status_enu_t doStepEuler()
Definition: SystemSC.cpp:547
std::vector< double * > event_indicators
Definition: SystemSC.h:95
std::vector< ComponentFMUME * > fmus
Definition: SystemSC.h:85
std::string getSolverName() const
Definition: SystemSC.cpp:151
oms_status_enu_t terminate()
Definition: SystemSC.cpp:420
static System * NewSystem(const oms::ComRef &cref, Model *parentModel, System *parentSystem)
Definition: SystemSC.cpp:133
oms_status_enu_t reset()
Definition: SystemSC.cpp:485
oms_status_enu_t setSolver(oms_solver_enu_t solver)
Definition: SystemSC.h:71
oms_status_enu_t exportToSSD_SimulationInformation(pugi::xml_node &node) const
Definition: SystemSC.cpp:176
SystemSC & operator=(SystemSC const ©)
not implemented
union oms::SystemSC::SolverData_t solverData
~SystemSC()
Definition: SystemSC.cpp:129
std::vector< double * > event_indicators_prev
Definition: SystemSC.h:96
std::vector< size_t > nStates
Definition: SystemSC.h:89
std::vector< double * > states
Definition: SystemSC.h:92
SystemSC(SystemSC const ©)
not implemented
oms_status_enu_t doStepCVODE()
Definition: SystemSC.cpp:769
std::vector< fmi2Boolean > callEventUpdate
Definition: SystemSC.h:87
oms_status_enu_t initialize()
Definition: SystemSC.cpp:276
oms_status_enu_t instantiate()
Definition: SystemSC.cpp:227
SystemSC(const ComRef &cref, Model *parentModel, System *parentSystem)
Definition: SystemSC.cpp:124
std::vector< double * > states_nominal
Definition: SystemSC.h:94
oms_status_enu_t updateInputs(DirectedGraph &graph)
Definition: SystemSC.cpp:949
oms_status_enu_t stepUntil(double stopTime)
Definition: SystemSC.cpp:923
std::vector< double * > states_der
Definition: SystemSC.h:93
oms_status_enu_t doStep()
Definition: SystemSC.cpp:532
std::vector< fmi2Boolean > terminateSimulation
Definition: SystemSC.h:88
std::vector< size_t > nEventIndicators
Definition: SystemSC.h:90
ComRef cref
Definition: System.h:242
oms_solver_enu_t solverMethod
Definition: System.h:230
System * parentSystem
Definition: System.h:245
Model * parentModel
Definition: System.h:244
int cvode_roots(realtype t, N_Vector y, realtype *gout, void *user_data)
Definition: SystemSC.cpp:86
int cvode_rhs(realtype t, N_Vector y, N_Vector ydot, void *user_data)
Definition: SystemSC.cpp:45
Definition: SystemSC.h:103
SUNMatrix J
Definition: SystemSC.h:107
SUNLinearSolver linSol
Definition: SystemSC.h:106
N_Vector y
Definition: SystemSC.h:105
N_Vector abstol
Definition: SystemSC.h:109
void * mem
Definition: SystemSC.h:104
N_Vector liny
Definition: SystemSC.h:108
Definition: SystemSC.h:99
Definition: SystemSC.h:113
SolverDataEuler_t euler
Definition: SystemSC.h:114
SolverDataCVODE_t cvode
Definition: SystemSC.h:115