Skip to content

Commit e66fb2a

Browse files
committed
refactor: add support for arbitrary args in the interpolation constructor
also use the standard MTK time
1 parent f00328d commit e66fb2a

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/Blocks/sources.jl

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -739,22 +739,23 @@ function Symbolics.derivative(::typeof(apply_interpolation), args::NTuple{2, Any
739739
end
740740

741741
@register_symbolic build_interpolation(
742-
interpolation_type::UnionAll, u::AbstractArray, x::AbstractArray)
743-
build_interpolation(interpolation_type, u, x) = interpolation_type(u, x)
742+
interpolation_type::UnionAll, u::AbstractArray, x::AbstractArray, args::Tuple)
743+
build_interpolation(interpolation_type, u, x, args) = interpolation_type(u, x, args...)
744744

745-
function ParametrizedInterpolation(interp_type::T, u, x, t = t; name) where {T}
745+
function ParametrizedInterpolation(interp_type::T, u, x, args...; name) where {T}
746746
@parameters data[1:length(x)] = u
747747
@parameters ts[1:length(x)] = x
748-
@parameters interpolation_type::T=interp_type [tunable = false]
748+
@parameters interpolation_type::T=interp_type [tunable = false] interpolation_args::Tuple=args [tunable = false]
749749
@parameters interpolator::interp_type
750750

751751
@named output = RealOutput()
752752

753753
eqs = [output.u ~ apply_interpolation(interpolator, t)]
754754

755-
ODESystem(eqs, t, [], [u, x, interpolation_type, interpolator];
755+
ODESystem(eqs, t, [], [u, x, interpolation_type, interpolator, interpolation_args];
756756
parameter_dependencies = [
757-
interpolator => build_interpolation(interpolation_type, u, x)
757+
interpolator => build_interpolation(
758+
interpolation_type, u, x, interpolation_args)
758759
],
759760
systems = [output],
760761
name)

0 commit comments

Comments
 (0)