    

 ## On this page

  

 

 # i\_fmu\_logic

 Last update: 16.07.2025 

<a name="l00001"></a> 1 

<a name="l00004"></a> 4 \#pragma once

<a name="l00005"></a> 5 

<a name="l00006"></a> 6 \#include "core/lifecycle/fmu\_activity/fmu\_config.h"

<a name="l00007"></a> 7 \#include &lt;set&gt;

<a name="l00008"></a> 8 \#include &lt;string&gt;

<a name="l00009"></a> 9 

<a name="l00014"></a> 14 namespace [simulation\_framework](namespacesimulation__framework.xhtml)

<a name="l00015"></a> 15 {

<a name="l00016"></a> 16 namespace [core](namespacecore.xhtml)

<a name="l00017"></a> 17 {

<a name="l00018"></a> 18 

<a name="l00019"></a> 19 namespace lifecycle

<a name="l00020"></a> 20 {

<a name="l00021"></a> 21 

<a name="l00025"></a>[ 25](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml) class [IFmuLogic](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml)

<a name="l00026"></a> 26 {

<a name="l00027"></a> 27 public:

<a name="l00028"></a> 28 virtual ~[IFmuLogic](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml)() = default;

<a name="l00029"></a> 29 

<a name="l00034"></a> 34 virtual void [SetupExperiment](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml#a31bd3fac13966e3bbeac00874fc8a2a2)(double start = 0, double stop = 0, double tolerance = 0) = 0;

<a name="l00035"></a> 35 

<a name="l00037"></a> 37 virtual void [EnterInitialization](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml#a37799269a2473c00bc062dec185ccec2)() = 0;

<a name="l00038"></a> 38 

<a name="l00040"></a> 40 virtual void [ExitInitialization](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml#ae6fc6b7997934b0029c1502d1cd9b891)() = 0;

<a name="l00041"></a> 41 

<a name="l00046"></a> 46 virtual void [Setup](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml#a3a68d8e71105c3f41094d2f34cf4a7bf)(double start = 0, double stop = 0, double tolerance = 0) = 0;

<a name="l00047"></a> 47 

<a name="l00051"></a> 51 virtual bool [Step](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml#a9c0f65bae99a9e27d265b70c8e96540f)(double step_size) = 0;

<a name="l00052"></a> 52 

<a name="l00054"></a> 54 virtual void [PrepareInputsOutputs](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml#a0c6cf6c71388e08606e436d079984f02)() = 0;

<a name="l00055"></a> 55 

<a name="l00059"></a> 59 virtual FmuInOutMap [InitInOutMap](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml#a52806434ca9460d5494964d2427625d7)(std::set&lt;std::string&gt; variable_names) = 0;

<a name="l00060"></a> 60 

<a name="l00065"></a> 65 virtual bool [Step](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml#a9c0f65bae99a9e27d265b70c8e96540f)(double step_size, const FmuInOutMap&amp; input) = 0;

<a name="l00066"></a> 66 

<a name="l00069"></a> 69 virtual void [SetInputs](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml#a2561e600ec9b6cd47fba87d4f7abccda)(const FmuInOutMap&amp; inputs) = 0;

<a name="l00070"></a> 70 

<a name="l00073"></a> 73 virtual FmuInOutMap [GetOutputs](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml#a78a9abe5d2efee8fd629b82b41c52753)() const = 0;

<a name="l00074"></a> 74 

<a name="l00078"></a> 78 virtual void [GetOutputs](classsimulation__framework_1_1core_1_1lifecycle_1_1IFmuLogic.xhtml#a78a9abe5d2efee8fd629b82b41c52753)(FmuInOutMap&amp; requested_outputs) const = 0;

<a name="l00079"></a> 79 };

<a name="l00080"></a> 80 

<a name="l00081"></a> 81 } // namespace lifecycle

<a name="l00082"></a> 82 } // namespace core

<a name="l00083"></a> 83 } // namespace simulation\_framework