-
Notifications
You must be signed in to change notification settings - Fork 45
Closed
Description
- @pkj-m is doing graph coloring methods, so methods that will give a coloring given a sparsity pattern. Sparsity patterns will be passed just by passing a sparse matrix itself, since that's essentially as concise as you can make that information.
- Graph coloring algorithms will output a
colorvec
of integers, where each integer gives a valid direction for integration.colorvec=[1,1,2,2,3]
for example is 3 directional derivatives, and when differentiation is done that builds the compressed Jacobian. - @pkj-m will build the tooling for getting the sparse Jacobian from the compressed Jacobian (which is simply finding the non-zero column in the row, since you shouldn't overlap non-zeros. Then there are approximate colorings...)
- @huanglangwen you can make overloads for types like
BandedMatrix
(since there's an easy analytical solution to those colorings), and then make DiffEqDiffTools and ForwardDiff specialize on color vectors. - @huanglangwen with the help of @YingboMa make sure that these are usable from the stiff ODE solvers by specifying
jac_prototype
and a new arg for a color vector (so it doesn't have to be recomputed each time). - @shashi is doing a Cassette-based automatic sparsity detection which will look at the function AST and return a sparse matrix for the Jacobian/Hessian.
- @HarrisonGrodin we need to make sure that
sparse
on a ModelingToolkit matrix of variables with a lot of zeros actually returns a sparse matrix, and maybe specialize the computation to make it cheaper if we know beforehand that we don't need to differentiate some things? That would be our analytical solution sparse Jacobian generator. - @shashi and maybe a new hire will get this all integrated with Zygote.
jgoldfar and pkj-m
Metadata
Metadata
Assignees
Labels
No labels