@@ -128,7 +128,7 @@ function MTK.FMIComponent(::Val{Ver}; fmu = nothing, tolerance = 1e-6,
128
128
129
129
if type == :ME
130
130
FunctorT = Ver == 2 ? FMI2MEFunctor : FMI3MEFunctor
131
- _functor = FunctorT (zeros (buffer_length), output_value_references)
131
+ _functor = FunctorT (output_value_references)
132
132
@parameters (functor:: (typeof(_functor) ))(.. )[1 : buffer_length] = _functor
133
133
call_expr = functor (
134
134
wrapper, __mtk_internal_u, __mtk_internal_x, __mtk_internal_p, t)
@@ -147,11 +147,8 @@ function MTK.FMIComponent(::Val{Ver}; fmu = nothing, tolerance = 1e-6,
147
147
push! (states, __mtk_internal_u)
148
148
elseif type == :CS
149
149
state_value_references = UInt32[value_references[var] for var in diffvars]
150
- state_and_output_value_references = vcat (
151
- state_value_references, output_value_references)
152
150
_functor = if Ver == 2
153
- FMI2CSFunctor (state_and_output_value_references,
154
- state_value_references, output_value_references)
151
+ FMI2CSFunctor (state_value_references, output_value_references)
155
152
else
156
153
FMI3CSFunctor (state_value_references, output_value_references)
157
154
end
@@ -351,9 +348,8 @@ function reset_instance!(wrapper::FMI3InstanceWrapper)
351
348
wrapper. instance = nothing
352
349
end
353
350
354
- struct FMI2MEFunctor{T}
355
- return_buffer:: Vector{T}
356
- output_value_references:: Vector{UInt32}
351
+ struct FMI2MEFunctor
352
+ output_value_references:: Vector{FMI.fmi2ValueReference}
357
353
end
358
354
359
355
@register_array_symbolic (fn:: FMI2MEFunctor )(
@@ -385,9 +381,8 @@ function (fn::FMI2MEFunctor)(wrapper::FMI2InstanceWrapper, states, inputs, param
385
381
return [states_buffer; outputs_buffer]
386
382
end
387
383
388
- struct FMI3MEFunctor{T}
389
- return_buffer:: Vector{T}
390
- output_value_references:: Vector{UInt32}
384
+ struct FMI3MEFunctor
385
+ output_value_references:: Vector{FMI.fmi3ValueReference}
391
386
end
392
387
393
388
@register_array_symbolic (fn:: FMI3MEFunctor )(
@@ -431,7 +426,6 @@ function fmiFinalize!(integrator, u, p, ctx)
431
426
end
432
427
433
428
struct FMI2CSFunctor
434
- state_and_output_value_references:: Vector{UInt32}
435
429
state_value_references:: Vector{UInt32}
436
430
output_value_references:: Vector{UInt32}
437
431
end
0 commit comments