Note
Go to the end to download the full example code.
FMUFunction basics
FMUFunction
enables to use OpenTURNS’ high
level algorithms by wrapping the FMU into an openturns.Function
object.
First, retrieve the path to the FMU deviation.fmu. Recall the deviation model is static, i.e. its output does not evolve over time.
import openturns as ot
import otfmi.example.utility
path_fmu = otfmi.example.utility.get_path_fmu("deviation")
Wrap the FMU into an OpenTURNS function:
function = otfmi.FMUFunction(
path_fmu, inputs_fmu=["E", "F", "L", "I"], outputs_fmu=["y"]
)
print(type(function))
<class 'openturns.func.Function'>
Simulate the FMU on a point:
inputPoint = ot.Point([3.0e7, 30000, 200, 400])
outputPoint = function(inputPoint)
print("y = {}".format(outputPoint))
y = [6.66667]
Simulate the FMU on a sample:
inputSample = ot.Sample(
[[3.0e7, 30000, 200, 400], [3.0e7, 30000, 250, 400], [3.0e7, 30000, 300, 400]]
)
inputSample.setDescription(["E", "F", "L", "I"])
outputSample = function(inputSample)
print(outputSample)
[ y ]
0 : [ 6.66667 ]
1 : [ 13.0208 ]
2 : [ 22.5 ]
Total running time of the script: (0 minutes 0.099 seconds)