Skip to content

Commit 8ad6e85

Browse files
build: use pendulum as workload to precompile index reduction
1 parent e8a0e1e commit 8ad6e85

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

lib/ModelingToolkitBase/src/precompile.jl

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ PrecompileTools.@compile_workload begin
1212
x ^ 5
1313
6 ^ x
1414
x - y
15+
x * x * q[1]
1516
-y
1617
2y
1718
z = 2
@@ -81,11 +82,22 @@ PrecompileTools.@compile_workload begin
8182
q[1]
8283
q'q
8384
using ModelingToolkitBase
84-
@variables x(ModelingToolkitBase.t_nounits) y(ModelingToolkitBase.t_nounits)
85-
isequal(ModelingToolkitBase.D_nounits.x, ModelingToolkitBase.t_nounits)
85+
@parameters g
86+
@variables x(ModelingToolkitBase.t_nounits)
87+
@variables y(ModelingToolkitBase.t_nounits) [state_priority = 10]
88+
@variables λ(ModelingToolkitBase.t_nounits)
89+
eqs = [
90+
ModelingToolkitBase.D_nounits(ModelingToolkitBase.D_nounits(x)) ~ λ * x
91+
ModelingToolkitBase.D_nounits(ModelingToolkitBase.D_nounits(y)) ~ λ * y - g
92+
x^2 + y^2 ~ 1
93+
]
94+
dvs = Num[x, y, λ]
95+
ps = Num[g]
8696
ics = Dict{SymbolicT, SymbolicT}()
87-
ics[x] = 2.3
88-
sys = System([ModelingToolkitBase.D_nounits(x) ~ x * y, y ~ 2x], ModelingToolkitBase.t_nounits, [x, y], Num[]; initial_conditions = ics, guesses = ics, name = :sys)
97+
ics[y] = -1.0
98+
ics[ModelingToolkitBase.D_nounits(x)] = 0.5
99+
isequal(ModelingToolkitBase.D_nounits.x, ModelingToolkitBase.t_nounits)
100+
sys = System(eqs, ModelingToolkitBase.t_nounits, dvs, ps; initial_conditions = ics, guesses = ics, name = :sys)
89101
complete(sys)
90102
@static if @isdefined(ModelingToolkit)
91103
TearingState(sys)

0 commit comments

Comments
 (0)