-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Try out DifferentiationInterface for sparse autodiff? #109
Comments
Thanks for pinging me - basically this is already on my bucket list. However, sparsity detection in the moment is a side track in VoronoiFVM, as the general approach is to apply AD (ForwardDiff to be exact) locally, resulting in local A bit of handwaving philosophy behind this is that discretized PDEs have a repeating spatial structure. In that sense their sparsity pattern is not entirely generic (though with multispecies/multiphysics this is hard to condense into some structure) Global sparsity detection seems to kind of ignores this fact. Sparsity detection in VoronoiFVM.jl is used for a "generic operator" (which is for weird models) and for derivatives of solution functionals (for impedance/small signal analysis). In the moment, my main focus for the package is multithreaded assembly. |
I see, you might be interested in the following works then, which also exploit repeated structure for differentiation:
There isn't any theoretical obstacle, but I don't think performance would be great, because sparsity detection routines make lots of allocations that may hamper parallelism |
Hi @j-fu!
As of this morning's release, DifferentiationInterface is starting to look like a solid replacement for SparseDiffTools in the realm of sparse Jacobians and Hessians. Would you be interested in trying it out?
You can check out the tutorial to get a feel for the interface.
The text was updated successfully, but these errors were encountered: