I have a system of PDEs describing atmospheric chemistry and transport. I use finite-differences to make my system of PDEs into a system of ~10,000 ODEs. I then integrate the ODEs forward in time with the CVODE BDF method (from Sundials). For my current discretization of my PDEs, the jacobian is banded (band width = ~200), so I have been using CVODE's direct banded solver.
However, I'd like to couple additional PDEs to my system, which will cause my jacobian to no longer be banded. Of the options below, what is likely the best way to dealing with this new system of equations, which no longer has a banded jacobian.
- Use GMRES to do the linear solves, with the CVODE BDF method
- Try to work out the sparsity pattern of my new jacobian, and use a direct linear solver for that sparsity pattern (again sticking with the CVODE BDF method)
- Use a split implicit/explicit ODE solver, like ARKODE, instead of CVODE BDF. The new equations I'm adding are not stiff ODEs. It seems like I should be able to solve my stiff ODEs with the implicit method and a direct banded matrix solver, and my new non-stiff ODEs with an explicit method (no jacobian required).
Thanks for any feedback.