Commit ff724e9
get_differential_vars: check Diagonal.diag, not the full matrix (#3922)
all(!iszero, mm) visits every (i, j) pair, including scalar getindex
on the underlying diagonal vector. For a GPU-backed diagonal mass
matrix (Diagonal{Float64, <:CuVector}), that's disallowed and throws
on every DAE init, which is why every case in test/gpu/dae_tests.jl
fails regardless of solver or jac_prototype. Diagonal structurally
guarantees off-diagonal zeros, so check mm.diag directly.
Also wires up show_errors(results) in the GPU DAE test entry point,
which was defined but never called, so a real failure prints its
actual exception instead of just a status glyph.1 parent 4e1a434 commit ff724e9
3 files changed
Lines changed: 31 additions & 0 deletions
File tree
- lib/OrdinaryDiffEqCore
- src
- test
- test/gpu
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
213 | 213 | | |
214 | 214 | | |
215 | 215 | | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
216 | 224 | | |
217 | 225 | | |
218 | 226 | | |
| |||
Lines changed: 18 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
458 | 458 | | |
459 | 459 | | |
460 | 460 | | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
461 | 466 | | |
462 | 467 | | |
463 | 468 | | |
| |||
0 commit comments