Skip to content

Commit 268667f

Browse files
Merge pull request #2985 from SebastianM-C/smc/la_ext
make LabelledArrays an extension
2 parents a556e80 + 2e4fa26 commit 268667f

File tree

4 files changed

+23
-16
lines changed

4 files changed

+23
-16
lines changed

Project.toml

+4-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
2929
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
3030
JuliaFormatter = "98e50ef6-434e-11e9-1051-2b60c6c9e899"
3131
JumpProcesses = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5"
32-
LabelledArrays = "2ee39098-c373-598a-b85f-a56591580800"
3332
Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316"
3433
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
3534
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
@@ -60,11 +59,13 @@ Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
6059
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
6160
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
6261
DeepDiffs = "ab62b9b5-e342-54a8-a765-a90f495de1a6"
62+
LabelledArrays = "2ee39098-c373-598a-b85f-a56591580800"
6363

6464
[extensions]
6565
MTKBifurcationKitExt = "BifurcationKit"
6666
MTKChainRulesCoreExt = "ChainRulesCore"
6767
MTKDeepDiffsExt = "DeepDiffs"
68+
MTKLabelledArraysExt = "LabelledArrays"
6869

6970
[compat]
7071
AbstractTrees = "0.3, 0.4"
@@ -134,6 +135,7 @@ ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
134135
Ipopt = "b6b21f68-93f8-5de0-b562-5493be1d77c9"
135136
Ipopt_jll = "9cc047cb-c261-5740-88fc-0cf96f7bdcc7"
136137
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
138+
LabelledArrays = "2ee39098-c373-598a-b85f-a56591580800"
137139
ModelingToolkitStandardLibrary = "16a59e39-deab-5bd0-87e4-056b12336739"
138140
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
139141
Optimization = "7f7a1694-90dd-40f0-9382-eb1efda571ba"
@@ -153,4 +155,4 @@ Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4"
153155
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
154156

155157
[targets]
156-
test = ["AmplNLWriter", "BenchmarkTools", "ControlSystemsBase", "DelayDiffEq", "NonlinearSolve", "ForwardDiff", "Ipopt", "Ipopt_jll", "ModelingToolkitStandardLibrary", "Optimization", "OptimizationOptimJL", "OptimizationMOI", "OrdinaryDiffEq", "Random", "ReferenceTests", "SafeTestsets", "StableRNGs", "Statistics", "SteadyStateDiffEq", "Test", "StochasticDiffEq", "Sundials", "StochasticDelayDiffEq", "Pkg", "JET"]
158+
test = ["AmplNLWriter", "BenchmarkTools", "ControlSystemsBase", "DelayDiffEq", "NonlinearSolve", "ForwardDiff", "Ipopt", "Ipopt_jll", "ModelingToolkitStandardLibrary", "Optimization", "OptimizationOptimJL", "OptimizationMOI", "OrdinaryDiffEq", "Random", "ReferenceTests", "SafeTestsets", "StableRNGs", "Statistics", "SteadyStateDiffEq", "Test", "StochasticDiffEq", "Sundials", "StochasticDelayDiffEq", "Pkg", "JET", "LabelledArrays"]

ext/MTKLabelledArraysExt.jl

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
module MTKLabelledArraysExt
2+
3+
using ModelingToolkit, LabelledArrays
4+
5+
function ModelingToolkit.define_vars(u::Union{SLArray, LArray}, t)
6+
[_defvar(x)(t) for x in LabelledArrays.symnames(typeof(u))]
7+
end
8+
9+
function ModelingToolkit.define_params(p::Union{SLArray, LArray}, names = nothing)
10+
if names === nothing
11+
[toparam(variable(x)) for x in LabelledArrays.symnames(typeof(p))]
12+
else
13+
varnames_length_check(p, names)
14+
[toparam(variable(names[i])) for i in eachindex(p)]
15+
end
16+
end
17+
18+
end

src/ModelingToolkit.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import OrderedCollections
2525
using DiffEqNoiseProcess: DiffEqNoiseProcess, WienerProcess
2626

2727
using SymbolicIndexingInterface
28-
using LinearAlgebra, SparseArrays, LabelledArrays
28+
using LinearAlgebra, SparseArrays
2929
using InteractiveUtils
3030
using JumpProcesses
3131
using DataStructures

src/systems/diffeqs/modelingtoolkitize.jl

-13
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,6 @@ function define_vars(u, t)
109109
[_defvaridx(:x, i)(t) for i in eachindex(u)]
110110
end
111111

112-
function define_vars(u::Union{SLArray, LArray}, t)
113-
[_defvar(x)(t) for x in LabelledArrays.symnames(typeof(u))]
114-
end
115-
116112
function define_vars(u::NTuple{<:Number}, t)
117113
tuple((_defvaridx(:x, i)(ModelingToolkit.value(t)) for i in eachindex(u))...)
118114
end
@@ -184,15 +180,6 @@ function define_params(p::AbstractDict, names = nothing)
184180
end
185181
end
186182

187-
function define_params(p::Union{SLArray, LArray}, names = nothing)
188-
if names === nothing
189-
[toparam(variable(x)) for x in LabelledArrays.symnames(typeof(p))]
190-
else
191-
varnames_length_check(p, names)
192-
[toparam(variable(names[i])) for i in eachindex(p)]
193-
end
194-
end
195-
196183
function define_params(p::Tuple, names = nothing)
197184
if names === nothing
198185
tuple((toparam(variable(, i)) for i in eachindex(p))...)

0 commit comments

Comments
 (0)