36#ifndef _OMS_SYSTEM_SC3_H_
37#define _OMS_SYSTEM_SC3_H_
41#include "OMSimulator/Types.h"
43#include <cvode/cvode.h>
44#include <nvector/nvector_serial.h>
45#include <sunlinsol/sunlinsol_dense.h>
50 class ComponentFMU3ME;
52 int cvode_rhs3(realtype t, N_Vector y, N_Vector ydot,
void* user_data);
54 int cvode_roots3(realtype t, N_Vector y, realtype *gout,
void* user_data);
68 oms_status_enu_t
reset();
70 oms_status_enu_t
stepUntil(
double stopTime);
77 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;}
90 std::vector<ComponentFMU3ME*>
fmus;
ComRef - component reference.
Definition ComRef.h:51
Definition DirectedGraph.h:71
Definition SystemSC3.h:57
SystemSC3 & operator=(SystemSC3 const ©)
not implemented
oms_status_enu_t instantiate()
Definition SystemSC3.cpp:240
std::vector< double * > event_indicators_prev
Definition SystemSC3.h:101
fmi3Boolean * callEventUpdate
Definition SystemSC3.h:91
oms_status_enu_t importFromSSD_SimulationInformation(const pugi::xml_node &node, const std::string &sspVersion)
Definition SystemSC3.cpp:213
oms_status_enu_t initialize()
Definition SystemSC3.cpp:263
oms_status_enu_t doStepCVODE()
Definition SystemSC3.cpp:805
fmi3Boolean * terminateSimulation
Definition SystemSC3.h:92
oms_status_enu_t doStep()
Definition SystemSC3.cpp:571
std::vector< double * > states_der
Definition SystemSC3.h:98
oms_status_enu_t terminate()
Definition SystemSC3.cpp:440
std::vector< double * > event_indicators
Definition SystemSC3.h:100
std::vector< double * > states_nominal
Definition SystemSC3.h:99
~SystemSC3()
Definition SystemSC3.cpp:145
std::vector< size_t > nEventIndicators
Definition SystemSC3.h:95
oms_status_enu_t updateInputs(DirectedGraph &graph)
Definition SystemSC3.cpp:994
oms_status_enu_t setSolver(oms_solver_enu_t solver)
Definition SystemSC3.h:77
bool algebraic
Definition SystemSC3.h:103
static System * NewSystem(const oms::ComRef &cref, Model *parentModel, System *parentSystem)
Definition SystemSC3.cpp:149
union oms::SystemSC3::SolverData_t solverData
std::vector< size_t > nStates
Definition SystemSC3.h:94
std::vector< ComponentFMU3ME * > fmus
Definition SystemSC3.h:90
SystemSC3(SystemSC3 const ©)
not implemented
oms_status_enu_t reset()
Definition SystemSC3.cpp:505
oms_status_enu_t exportToSSD_SimulationInformation(pugi::xml_node &node) const
Definition SystemSC3.cpp:192
std::vector< double * > states
Definition SystemSC3.h:97
oms_status_enu_t setSolverMethod(std::string)
Definition SystemSC3.cpp:180
oms_status_enu_t doStepEuler()
Definition SystemSC3.cpp:586
oms_status_enu_t stepUntil(double stopTime)
Definition SystemSC3.cpp:968
std::string getSolverName() const
Definition SystemSC3.cpp:167
ComRef cref
Definition System.h:232
oms_solver_enu_t solverMethod
Definition System.h:221
System * parentSystem
Definition System.h:235
Model * parentModel
Definition System.h:234
int cvode_rhs3(realtype t, N_Vector y, N_Vector ydot, void *user_data)
Definition SystemSC3.cpp:50
int cvode_rhs_algebraic3(realtype t, N_Vector y, N_Vector ydot, void *user_data)
Definition SystemSC3.cpp:97
int cvode_roots3(realtype t, N_Vector y, realtype *gout, void *user_data)
Definition SystemSC3.cpp:109
Definition SystemSC3.h:110
N_Vector abstol
Definition SystemSC3.h:116
SUNLinearSolver linSol
Definition SystemSC3.h:113
N_Vector liny
Definition SystemSC3.h:115
N_Vector y
Definition SystemSC3.h:112
void * mem
Definition SystemSC3.h:111
SUNMatrix J
Definition SystemSC3.h:114
Definition SystemSC3.h:106
Definition SystemSC3.h:120
SolverDataEuler_t euler
Definition SystemSC3.h:121
SolverDataCVODE_t cvode
Definition SystemSC3.h:122