|
7 | 7 | integ.uprev = integ.u
|
8 | 8 | uprev = integ.u
|
9 | 9 | @unpack a21, a31, a32, a41, a42, a43, a51, a52, a53, a54, a61, a62, a63, a64, a65,
|
10 |
| - C21, C31, C32, C41, C42, C43, C51, C52, C53, C54, C61, C62, C63, C64, C65, C71, C72, C73, C74, C75, C76, |
| 10 | + C21, C31, C32, C41, C42, C43, C51, C52, C53, C54, C61, |
| 11 | + C62, C63, C64, C65, C71, C72, C73, C74, C75, C76, |
11 | 12 | C81, C82, C83, C84, C85, C86, C87, γ, d1, d2, d3, d4, d5, c2, c3, c4, c5 = integ.tab
|
12 | 13 |
|
13 | 14 | integ.tprev = t
|
|
77 | 78 | dtgamma = dt * γ
|
78 | 79 |
|
79 | 80 | # Starting
|
80 |
| - W = J - I * inv(dtgamma) |
| 81 | + mass_matrix = f.mass_matrix |
| 82 | + W = mass_matrix / dtgamma - J |
81 | 83 | du = f(uprev, p, t)
|
82 | 84 |
|
83 | 85 | # Step 1
|
|
147 | 149 | end
|
148 | 150 |
|
149 | 151 | @inline function step!(integ::GPUARodas5PI{false, S, T}, ts, us) where {T, S}
|
150 |
| - beta1, beta2, qmax, qmin, gamma, qoldinit, _ = build_adaptive_controller_cache( |
| 152 | + beta1, beta2, qmax, qmin, gamma, qoldinit, |
| 153 | + _ = build_adaptive_controller_cache( |
151 | 154 | integ.alg,
|
152 | 155 | T)
|
153 | 156 |
|
|
166 | 169 | reltol = integ.reltol
|
167 | 170 |
|
168 | 171 | @unpack a21, a31, a32, a41, a42, a43, a51, a52, a53, a54, a61, a62, a63, a64, a65,
|
169 |
| - C21, C31, C32, C41, C42, C43, C51, C52, C53, C54, C61, C62, C63, C64, C65, C71, C72, C73, C74, C75, C76, |
| 172 | + C21, C31, C32, C41, C42, C43, C51, C52, C53, C54, C61, |
| 173 | + C62, C63, C64, C65, C71, C72, C73, C74, C75, C76, |
170 | 174 | C81, C82, C83, C84, C85, C86, C87, γ, d1, d2, d3, d4, d5, c2, c3, c4, c5 = integ.tab
|
171 | 175 |
|
172 | 176 | # Jacobian
|
|
226 | 230 | dtgamma = dt * γ
|
227 | 231 |
|
228 | 232 | # Starting
|
229 |
| - W = J - I * inv(dtgamma) |
| 233 | + mass_matrix = f.mass_matrix |
| 234 | + W = mass_matrix / dtgamma - J |
230 | 235 | du = f(uprev, p, t)
|
231 | 236 |
|
232 | 237 | # Step 1
|
|
0 commit comments