Skip to content

Commit af335f7

Browse files
Depend on SymbolicIndexingInterface, formatting
- SymbolicIndexingInterface.jl is registered, and contains all the interface methods previously defined in RecursiveArrayTools - SymbolicIndexingInterface is imported and not `using` so unexported `states` and `parameters` functions shouldn't need to unnecessarily overload the interface
1 parent a114199 commit af335f7

File tree

7 files changed

+26
-27
lines changed

7 files changed

+26
-27
lines changed

Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ SimpleNonlinearSolve = "727e6d20-b764-4bd8-a329-72de5adea6c7"
4040
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
4141
SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
4242
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
43+
SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5"
4344
SymbolicUtils = "d1185830-fcd6-423d-90d6-eec64667417b"
4445
Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7"
4546
UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed"
@@ -76,6 +77,7 @@ Setfield = "0.7, 0.8, 1"
7677
SimpleNonlinearSolve = "0.1.0"
7778
SpecialFunctions = "0.7, 0.8, 0.9, 0.10, 1.0, 2"
7879
StaticArrays = "0.10, 0.11, 0.12, 1.0"
80+
SymbolicIndexingInterface = "0.1"
7981
SymbolicUtils = "0.19"
8082
Symbolics = "4.9"
8183
UnPack = "0.1, 1.0"

src/ModelingToolkit.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,8 @@ import FunctionWrappersWrappers
3333
RuntimeGeneratedFunctions.init(@__MODULE__)
3434

3535
using RecursiveArrayTools
36-
export independent_variables, states, parameters
37-
# using RecursiveArrayTools
3836

37+
import SymbolicIndexingInterface
3938
import SymbolicUtils
4039
import SymbolicUtils: istree, arguments, operation, similarterm, promote_symtype,
4140
Symbolic, Term, Add, Mul, Pow, Sym, FnType,

src/systems/abstractsystem.jl

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ function independent_variable(sys::AbstractSystem)
148148
end
149149

150150
#Treat the result as a vector of symbols always
151-
function RecursiveArrayTools.independent_variables(sys::AbstractSystem)
151+
function SymbolicIndexingInterface.independent_variables(sys::AbstractSystem)
152152
systype = typeof(sys)
153153
@warn "Please declare ($systype) as a subtype of `AbstractTimeDependentSystem`, `AbstractTimeIndependentSystem` or `AbstractMultivariateSystem`."
154154
if isdefined(sys, :iv)
@@ -160,11 +160,11 @@ function RecursiveArrayTools.independent_variables(sys::AbstractSystem)
160160
end
161161
end
162162

163-
function RecursiveArrayTools.independent_variables(sys::AbstractTimeDependentSystem)
163+
function SymbolicIndexingInterface.independent_variables(sys::AbstractTimeDependentSystem)
164164
[getfield(sys, :iv)]
165165
end
166-
RecursiveArrayTools.independent_variables(sys::AbstractTimeIndependentSystem) = []
167-
function RecursiveArrayTools.independent_variables(sys::AbstractMultivariateSystem)
166+
SymbolicIndexingInterface.independent_variables(sys::AbstractTimeIndependentSystem) = []
167+
function SymbolicIndexingInterface.independent_variables(sys::AbstractMultivariateSystem)
168168
getfield(sys, :ivs)
169169
end
170170

@@ -466,15 +466,15 @@ function namespace_expr(O, sys, n = nameof(sys))
466466
end
467467
end
468468

469-
function RecursiveArrayTools.states(sys::AbstractSystem)
469+
function SymbolicIndexingInterface.states(sys::AbstractSystem)
470470
sts = get_states(sys)
471471
systems = get_systems(sys)
472472
unique(isempty(systems) ?
473473
sts :
474474
[sts; reduce(vcat, namespace_variables.(systems))])
475475
end
476476

477-
function RecursiveArrayTools.parameters(sys::AbstractSystem)
477+
function SymbolicIndexingInterface.parameters(sys::AbstractSystem)
478478
ps = get_ps(sys)
479479
systems = get_systems(sys)
480480
unique(isempty(systems) ? ps : [ps; reduce(vcat, namespace_parameters.(systems))])
@@ -509,10 +509,10 @@ function defaults(sys::AbstractSystem)
509509
isempty(systems) ? defs : mapfoldr(namespace_defaults, merge, systems; init = defs)
510510
end
511511

512-
RecursiveArrayTools.states(sys::AbstractSystem, v) = renamespace(sys, v)
513-
RecursiveArrayTools.parameters(sys::AbstractSystem, v) = toparam(states(sys, v))
512+
states(sys::AbstractSystem, v) = renamespace(sys, v)
513+
parameters(sys::AbstractSystem, v) = toparam(states(sys, v))
514514
for f in [:states, :parameters]
515-
@eval function RecursiveArrayTools.$f(sys::AbstractSystem, vs::AbstractArray)
515+
@eval function $f(sys::AbstractSystem, vs::AbstractArray)
516516
map(v -> $f(sys, v), vs)
517517
end
518518
end
@@ -578,20 +578,20 @@ function time_varying_as_func(x, sys::AbstractTimeDependentSystem)
578578
return x
579579
end
580580

581-
RecursiveArrayTools.is_indep_sym(sys::AbstractSystem, sym) = isequal(sym, get_iv(sys))
581+
SymbolicIndexingInterface.is_indep_sym(sys::AbstractSystem, sym) = isequal(sym, get_iv(sys))
582582

583-
function RecursiveArrayTools.state_sym_to_index(sys::AbstractSystem, sym)
584-
findfirst(isequal(sym), states(sys))
583+
function SymbolicIndexingInterface.state_sym_to_index(sys::AbstractSystem, sym)
584+
findfirst(isequal(sym), SymbolicIndexingInterface.states(sys))
585585
end
586-
function RecursiveArrayTools.is_state_sym(sys::AbstractSystem, sym)
587-
!isnothing(RecursiveArrayTools.state_sym_to_index(sys, sym))
586+
function SymbolicIndexingInterface.is_state_sym(sys::AbstractSystem, sym)
587+
!isnothing(SymbolicIndexingInterface.state_sym_to_index(sys, sym))
588588
end
589589

590-
function RecursiveArrayTools.param_sym_to_index(sys::AbstractSystem, sym)
591-
findfirst(isequal(sym), parameters(sys))
590+
function SymbolicIndexingInterface.param_sym_to_index(sys::AbstractSystem, sym)
591+
findfirst(isequal(sym), SymbolicIndexingInterface.parameters(sys))
592592
end
593-
function RecursiveArrayTools.is_param_sym(sys::AbstractSystem, sym)
594-
!isnothing(RecursiveArrayTools.param_sym_to_index(sys, sym))
593+
function SymbolicIndexingInterface.is_param_sym(sys::AbstractSystem, sym)
594+
!isnothing(SymbolicIndexingInterface.param_sym_to_index(sys, sym))
595595
end
596596

597597
struct AbstractSysToExpr

src/systems/callbacks.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ FunctionalAffect(; f, sts, pars, ctx = nothing) = FunctionalAffect(f, sts, pars,
3535

3636
func(f::FunctionalAffect) = f.f
3737
context(a::FunctionalAffect) = a.ctx
38-
RecursiveArrayTools.parameters(a::FunctionalAffect) = a.pars
38+
parameters(a::FunctionalAffect) = a.pars
3939
parameters_syms(a::FunctionalAffect) = a.pars_syms
40-
RecursiveArrayTools.states(a::FunctionalAffect) = a.sts
40+
states(a::FunctionalAffect) = a.sts
4141
states_syms(a::FunctionalAffect) = a.sts_syms
4242

4343
function Base.:(==)(a1::FunctionalAffect, a2::FunctionalAffect)

src/systems/connectors.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ function Base.:(==)(l1::ConnectionElement, l2::ConnectionElement)
161161
nameof(l1.sys) == nameof(l2.sys) && isequal(l1.v, l2.v) && l1.isouter == l2.isouter
162162
end
163163
namespaced_var(l::ConnectionElement) = states(l, l.v)
164-
RecursiveArrayTools.states(l::ConnectionElement, v) = states(copy(l.sys), v)
164+
states(l::ConnectionElement, v) = states(copy(l.sys), v)
165165

166166
struct ConnectionSet
167167
set::Vector{ConnectionElement} # namespace.sys, var, isouter

src/systems/diffeqs/sdesystem.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -520,8 +520,7 @@ function SDEFunctionExpr{iip}(sys::SDESystem, dvs = states(sys),
520520
tgrad = tgrad,
521521
Wfact = Wfact,
522522
Wfact_t = Wfact_t,
523-
mass_matrix = M,
524-
)
523+
mass_matrix = M)
525524
end
526525
!linenumbers ? striplines(ex) : ex
527526
end

src/systems/nonlinear/nonlinearsystem.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,7 @@ function NonlinearFunctionExpr{iip}(sys::NonlinearSystem, dvs = states(sys),
297297
jac = $_jac
298298
NonlinearFunction{$iip}(f,
299299
jac = jac,
300-
jac_prototype = $jp_expr,
301-
)
300+
jac_prototype = $jp_expr)
302301
end
303302
!linenumbers ? striplines(ex) : ex
304303
end

0 commit comments

Comments
 (0)