|
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