qojulia / QuantumOptics.jl

Library for the numerical simulation of closed as well as open quantum systems.
http://qojulia.org
Other
528 stars 104 forks source link

Split up QuantumOptics by DiffEq dependencies #417

Open amilsted opened 3 hours ago

amilsted commented 3 hours ago

OrdinaryDiffEq.jl is now a meta-package that pulls in a bunch of smaller packages, like OrdinaryDiffEqCore, OrdinaryDiffEqLowOrderRK. This splitting was done so that users of OrdinaryDiffEq can pick and choose what they need, avoiding precompilation overhead for unused code.

We could take advantage of this is QuantumOptics.jl, but currently we depend on StochasticDiffEq, which is not split up and pulls in all of OrdinaryDiffEq.

How about we split QuantumOptics.jl and make it a meta-package that pulls in new component packages QuantumOpticsTimeEvolution, QuantumOpticsStochastic, and QuantumOpticsSteadyState?

QuantumOpticsTimeEvolution could have its dependencies trimmed to only pull in the OrdinaryDiffEqCore and OrdinaryDiffEqLowOrderRK components of OrdinaryDiffEq.

This way users who e.g. only want to do Schrödinger and Master evolution can have a much lighter precompile load.

Thoughts? @Krastanov @david-pl @apkille

Krastanov commented 3 hours ago

I am all in favor of this, it would be pretty useful for me. Regrettably, I can not volunteer time to perform that change near term myself.

apkille commented 1 hour ago

@amilsted I am in favor as well. My bandwidth is a little low for the next couple of months due to other projects. I'd be happy to help contribute to this effort around the end of the year if no one else can.