@@ -128,7 +128,7 @@ function MTK.FMIComponent(::Val{Ver}; fmu = nothing, tolerance = 1e-6,
128128
129129 if type == :ME
130130 FunctorT = Ver == 2 ? FMI2MEFunctor : FMI3MEFunctor
131- _functor = FunctorT (zeros (buffer_length), output_value_references)
131+ _functor = FunctorT (output_value_references)
132132 @parameters (functor:: (typeof(_functor) ))(.. )[1 : buffer_length] = _functor
133133 call_expr = functor (
134134 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,
147147 push! (states, __mtk_internal_u)
148148 elseif type == :CS
149149 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)
152150 _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)
155152 else
156153 FMI3CSFunctor (state_value_references, output_value_references)
157154 end
@@ -351,9 +348,8 @@ function reset_instance!(wrapper::FMI3InstanceWrapper)
351348 wrapper. instance = nothing
352349end
353350
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}
357353end
358354
359355@register_array_symbolic (fn:: FMI2MEFunctor )(
@@ -385,9 +381,8 @@ function (fn::FMI2MEFunctor)(wrapper::FMI2InstanceWrapper, states, inputs, param
385381 return [states_buffer; outputs_buffer]
386382end
387383
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}
391386end
392387
393388@register_array_symbolic (fn:: FMI3MEFunctor )(
@@ -431,7 +426,6 @@ function fmiFinalize!(integrator, u, p, ctx)
431426end
432427
433428struct FMI2CSFunctor
434- state_and_output_value_references:: Vector{UInt32}
435429 state_value_references:: Vector{UInt32}
436430 output_value_references:: Vector{UInt32}
437431end
0 commit comments