Skip to content
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

krylov methods #364

Open
AshtonSBradley opened this issue Jun 15, 2023 · 5 comments
Open

krylov methods #364

AshtonSBradley opened this issue Jun 15, 2023 · 5 comments

Comments

@AshtonSBradley
Copy link

AshtonSBradley commented Jun 15, 2023

Is there a way to use Krylov methods with QuantumOptics.jl, or a plan to support in future?

https://github.com/Jutho/KrylovKit.jl is excellent with specific methods for exponential operators

Alternately, some of the solvers in DifferentialEquations.jl allow Krylov methods in the linear solve step, and also has IMEX methods with exponential operators, which might be a more direct pathway.

@Krastanov
Copy link
Collaborator

There would certainly be interest in having these implemented, and the maintainers would be eager to help, but the current maintainers probably do not have the bandwidth to do it themselves (we are all working on this as a volunteer job that occasionally helps our actual research work). If you or someone working with you wants to give it a go, please submit a PR (even a very draft unfinished one) and we will help with polishing it and merging it.

@Krastanov
Copy link
Collaborator

These two issues should also probably be kept in sync with this:

@Krastanov
Copy link
Collaborator

Alexander did a bunch of work on this issue in #367

There are a few more places where we can pursue this, and maybe fully excise Arpack from this library (as long as KrylovKit is indeed always faster).

@Krastanov
Copy link
Collaborator

Hi, @aravindh-krishnamoorthy ! That sounds wonderful. Check out #367 - it is a good example of how to provide better defaults for various computational methods, that one specifically looking into the diagonalization tooling.

Places where similar work could be helpful are the steady-state solvers and matrix exponentiation:

The difference between QuantumOptics.jl and QuantumOpticsBase.jl is that the former contains various simulation of dynamics tools, while the base package defines the fundamental datastructure and various linear algebra operations between them.

@aravindh-krishnamoorthy
Copy link

aravindh-krishnamoorthy commented Dec 15, 2023

@Krastanov Perfect! Thank you very much for the pointers. I'll get started!

  • A developer documentation page that actually explains these choices and what is available in the ecosystem and having benchmarks would be invaluable!

Perhaps this is the most logical first step as this gives me an idea how the existing solutions are implemented. Once I'm done, I'll start with the KrylovKit support for functions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants