fix GPU compat of BrownFullBasicInit
This PR adds a simple (mutating) DAE as a testcase for GPU compat. Mainly fixes BrownInit for mutating DAEs with mass matrix and cu arrays.
Not tested:
- sparse
jac_prototypedoes not work, fails in rosenbrock init because of https://github.com/SciML/LinearSolve.jl/issues/827#issuecomment-3557910671 - non-mutating still not working. I tried to fix it but it seems more complicated. But I guess most people using GPUs will use the mutating version anyway.
EDIT: the spares jacobian additionaly fails because
https://github.com/SciML/OrdinaryDiffEq.jl/blob/e038be10946378a35915fceeb73d6d98d7fe5745/lib/OrdinaryDiffEqNonlinearSolve/src/initialize_dae.jl#L387-L390
does not work for sparse cuda matrices (this type of indexing is not implemented).
Checklist
- [X] Appropriate tests were added
- [X] Any code changes were done in a way that does not break public API
- [ ] All documentation related to code changes were updated
- [ ] The new code follows the contributor guidelines, in particular the SciML Style Guide and COLPRAC.
- [ ] Any new documentation only uses public API
Hm the new testcase fails in CI https://buildkite.com/julialang/ordinarydiffeq-dot-jl/builds/8192/steps/canvas?sid=019aa1ce-b926-4ba0-82a1-f53ccbd76d9c#019aa1ce-b96d-4508-be39-37f7bed45b39/495-1319
weird, can't reproduce this locally, there the fix works
Rebased version created at #2941 with resolved merge conflicts and added sources for the new test dependencies (OrdinaryDiffEqNonlinearSolve and OrdinaryDiffEqRosenbrock) to ensure proper package resolution.