37 #ifndef LPNSolverInterface_h
38 #define LPNSolverInterface_h
50 void load_library(
const std::string& interface_lib);
51 void initialize(std::string file_name);
52 void increment_time(
const double time, std::vector<double>& solution);
53 void run_simulation(
const double time, std::vector<double>& output_times,
54 std::vector<double>& output_solutions,
int& error_code);
55 void update_block_params(std::string block_name, std::vector<double>& new_params);
56 void read_block_params(std::string block_name, std::vector<double>& block_params);
57 void get_block_node_IDs(std::string block_name, std::vector<int>& IDs);
58 void update_state(std::vector<double> state_y, std::vector<double> state_ydot);
59 void return_y(std::vector<double>& y);
60 void return_ydot(std::vector<double>& ydot);
61 void set_external_step_size(
double step_size);
64 std::string lpn_initialize_name_;
65 void (*lpn_initialize_)(std::string,
int&,
int&,
int&,
int&, std::vector<std::string>&,
66 std::vector<std::string>&);
68 std::string lpn_increment_time_name_;
69 void (*lpn_increment_time_)(
const int,
const double, std::vector<double>& solution);
71 std::string lpn_run_simulation_name_;
72 void (*lpn_run_simulation_)(
const int,
const double, std::vector<double>& output_times,
73 std::vector<double>& output_solutions,
int& error_code);
75 std::string lpn_update_block_params_name_;
76 void (*lpn_update_block_params_)(
const int, std::string, std::vector<double>& new_params);
78 std::string lpn_read_block_params_name_;
79 void (*lpn_read_block_params_)(
const int, std::string, std::vector<double>& block_params);
81 std::string lpn_get_block_node_IDs_name_;
82 void (*lpn_get_block_node_IDs_)(
const int, std::string, std::vector<int>& block_params);
84 std::string lpn_update_state_name_;
85 void (*lpn_update_state_)(
const int, std::vector<double>, std::vector<double>);
87 std::string lpn_return_y_name_;
88 void (*lpn_return_y_)(
const int, std::vector<double>&);
90 std::string lpn_return_ydot_name_;
91 void (*lpn_return_ydot_)(
const int, std::vector<double>&);
93 std::string lpn_set_external_step_size_name_;
94 void (*lpn_set_external_step_size_)(
const int, double);
96 void* library_handle_ =
nullptr;
100 int pts_per_cycle_ = 0;
101 int num_output_steps_ = 0;
102 std::vector<std::string> block_names_;
103 std::vector<std::string> variable_names_;
Definition: LPNSolverInterface.h:45