25 #ifndef CASADI_FMU2_HPP
26 #define CASADI_FMU2_HPP
28 #include "fmu_impl.hpp"
30 #include <fmi2Functions.h>
45 Fmu2(
const std::string& name,
46 const std::vector<std::string>& scheme_in,
const std::vector<std::string>& scheme_out,
47 const std::map<std::string, std::vector<size_t>>& scheme,
const std::vector<std::string>& aux);
55 std::string
class_name()
const override {
return "Fmu2";}
61 void load_functions()
override;
64 std::vector<fmi2ValueReference> vr_real_, vr_integer_,
vr_boolean_, vr_string_;
71 std::vector<std::string> vn_aux_real_, vn_aux_integer_,
vn_aux_boolean_, vn_aux_string_;
72 std::vector<fmi2ValueReference> vr_aux_real_, vr_aux_integer_,
vr_aux_boolean_, vr_aux_string_;
109 std::string system_infix()
const override;
112 void* instantiate()
const override;
115 void free_instance(
void* instance)
const override;
118 int reset(
void* instance);
121 int enter_initialization_mode(
void* instance)
const override;
124 int exit_initialization_mode(
void* instance)
const override;
127 int enter_continuous_time_mode(
void* instance)
const override;
130 int update_discrete_states(
void* instance,
EventMemory* eventmem)
const override;
133 int set_real(
void* instance,
const unsigned int* vr,
size_t n_vr,
134 const double* values,
size_t n_values)
const override;
137 int get_real(
void* instance,
const unsigned int* vr,
size_t n_vr,
138 double* values,
size_t n_values)
const override;
141 int get_directional_derivative(
void* instance,
const unsigned int* vr_out,
size_t n_out,
142 const unsigned int* vr_in,
size_t n_in,
const double* seed,
size_t n_seed,
143 double* sensitivity,
size_t n_sensitivity)
const override;
146 int set_values(
void* instance)
const override;
149 int get_aux(
void* instance)
override;
155 const std::vector<std::string>& name_in,
const InputStruct* in)
const override;
158 static void logger(fmi2ComponentEnvironment componentEnvironment,
159 fmi2String instanceName,
162 fmi2String message, ...);
Helper class for Serialization.
Interface to a binary FMU, adhering to FMI version 2.0.
fmi2ExitInitializationModeTYPE * exit_initialization_mode_
std::vector< fmi2Real > init_real_
std::vector< fmi2ValueReference > vr_boolean_
std::vector< fmi2Boolean > init_boolean_
fmi2CallbackFunctions functions_
fmi2SetupExperimentTYPE * setup_experiment_
std::vector< fmi2Integer > init_integer_
fmi2EnterInitializationModeTYPE * enter_initialization_mode_
fmi2InstantiateTYPE * instantiate_
fmi2GetIntegerTYPE * get_integer_
fmi2GetBooleanTYPE * get_boolean_
fmi2SetBooleanTYPE * set_boolean_
fmi2SetStringTYPE * set_string_
fmi2SetIntegerTYPE * set_integer_
fmi2SetRealTYPE * set_real_
std::vector< std::string > vn_aux_boolean_
fmi2GetDirectionalDerivativeTYPE * get_directional_derivative_
fmi2FreeInstanceTYPE * free_instance_
fmi2EnterContinuousTimeModeTYPE * enter_continuous_time_mode_
std::string class_name() const override
Get type name.
fmi2NewDiscreteStatesTYPE * new_discrete_states_
fmi2GetRealTYPE * get_real_
fmi2GetStringTYPE * get_string_
std::vector< std::string > init_string_
std::vector< fmi2ValueReference > vr_aux_boolean_
Helper class for Serialization.
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
std::vector< fmi2Boolean > v_boolean
std::vector< fmi2Real > v_real
std::vector< std::string > v_string
std::vector< fmi2Integer > v_integer