-
Notifications
You must be signed in to change notification settings - Fork 36
Description
This is a continues some discussion from #28. Most reactors in RMS can be formulated in a sparse format, but have dense columns and rows for the thermodynamic variables (volume, temperature, etc.). By using dense Reverse Mode automatic differentiation with ReverseDiff, Tracker or Zygote we should be able evaluate the dense rows of the jacobian and then use SparseDiffTools and Sparse Forward Mode Auto Diff to evaluate the rest of the jacobian. This should be much faster than finite differences or typical automatic differentiation and the improvement should scale with mechanism size. There was some discussion of an automatic tool for this: JuliaDiff/SparseDiffTools.jl#112, but it should be relatively easy to implement ourselves without that. Need to resolve #54 mostly first.