@@ -19,6 +19,7 @@ struct QSS{T} <: Integrator
1919 for i in 1 : qss. order- 1
2020 for (j, q₀) in enumerate (x₀)
2121 qss. q[j] = integrate (model. f[j](t₀, qss. q, p), q₀)
22+ println (qss. q[j])
2223 end
2324 end
2425 qss
@@ -35,8 +36,9 @@ function initial_values(qss::QSS, t::Float64)
3536 t₀ = t + Taylor1 (Float64, qss. order+ 0 )
3637 x₀ = Vector {Taylor1} ()
3738 for (i, f) in enumerate (qss. model. f)
38- push! (x₀, integrate (f (t₀, qss. q, qss. p), qss. q[i]. coeffs [1 ]))
39+ push! (x₀, integrate (f (t₀, qss. q, qss. p), qss. q[i][1 ]))
3940 end
41+ println (x₀)
4042 x₀
4143end
4244
@@ -47,6 +49,7 @@ function step(var::Variable, cont::Continuous, qss::QSS)
4749 t₀ = t + Taylor1 (Float64, qss. order+ 0 )
4850 x₀ = advance_time (var, t)
4951 update_quantized_state (qss, cont. vars, i, t)
52+ println (x₀)
5053 Δt = compute_next_time (var. x, max (qss. Δrel* x₀, qss. Δabs))
5154 schedule (var, cont, qss, Δt)
5255 for j in filter (j-> qss. model. deps[j,i], 1 : n)
@@ -57,20 +60,20 @@ function step(var::Variable, cont::Continuous, qss::QSS)
5760 advance_time (qss, k, t)
5861 end
5962 dep. x = integrate (qss. model. f[j](t₀, qss. q, qss. p), x₀)
60- Δt = recompute_next_time (qss, var . x, qss. q[j], max (qss. Δrel* x₀, qss. Δabs))
63+ Δt = recompute_next_time (qss, dep . x, qss. q[j], max (qss. Δrel* x₀, qss. Δabs))
6164 schedule (dep, cont, qss, Δt)
6265 end
6366end
6467
6568function advance_time (qss:: QSS , i:: Int , t:: Float64 )
6669 qss. q[i] = evaluate (qss. q[i], t - qss. t[i] + Taylor1 (qss. order+ 0 ))
6770 qss. t[i] = t
68- qss. q[i]. coeffs [1 ]
71+ qss. q[i][1 ]
6972end
7073
7174function update_quantized_state (qss:: QSS{non_stiff} , vars:: Vector{Variable} , i:: UInt , t:: Float64 )
7275 qss. q[i] = copy (vars[i]. x)
73- qss. q[i]. coeffs [end ] = 0.0
76+ qss. q[i][end ] = 0.0
7477 qss. t[i] = t
7578end
7679
@@ -82,7 +85,7 @@ function update_quantized_state(qss::QSS{stiff}, vars::Vector{Variable}, i::UInt
8285end
8386
8487function compute_next_time (x:: Taylor1 , Δq:: Float64 )
85- (abs (Δq/ x. coeffs [end ]))^ (1.0 / x. order)
88+ (abs (Δq/ x[end ]))^ (1.0 / x. order)
8689end
8790
8891function recompute_next_time (:: QSS{non_stiff} , x:: Taylor1 , q:: Taylor1 , Δq:: Float64 )
0 commit comments