Skip to main content

AVxcelerate Simulation Framework 2025 R1

i_fmu_logic

Last update: 16.07.2025
1 
4 #pragma once
5 
6 #include "core/lifecycle/fmu_activity/fmu_config.h"
7 #include <set>
8 #include <string>
9 
14 namespace simulation_framework
15 {
16 namespace core
17 {
18 
19 namespace lifecycle
20 {
21 
25 class IFmuLogic
26 {
27  public:
28  virtual ~IFmuLogic() = default;
29 
34  virtual void SetupExperiment(double start = 0, double stop = 0, double tolerance = 0) = 0;
35 
37  virtual void EnterInitialization() = 0;
38 
40  virtual void ExitInitialization() = 0;
41 
46  virtual void Setup(double start = 0, double stop = 0, double tolerance = 0) = 0;
47 
51  virtual bool Step(double step_size) = 0;
52 
54  virtual void PrepareInputsOutputs() = 0;
55 
59  virtual FmuInOutMap InitInOutMap(std::set<std::string> variable_names) = 0;
60 
65  virtual bool Step(double step_size, const FmuInOutMap& input) = 0;
66 
69  virtual void SetInputs(const FmuInOutMap& inputs) = 0;
70 
73  virtual FmuInOutMap GetOutputs() const = 0;
74 
78  virtual void GetOutputs(FmuInOutMap& requested_outputs) const = 0;
79 };
80 
81 } // namespace lifecycle
82 } // namespace core
83 } // namespace simulation_framework

Connect with Ansys