-
Notifications
You must be signed in to change notification settings - Fork 6
Add QuBase.jl and QuDynamics.jl as Dependencies #14
base: master
Are you sure you want to change the base?
Conversation
@Roger-luo the time dependence is already being supported in QuDynamics. Though it is not in the latest master you could pull this PR and also this wiki article and play around. Do let me know if it looks good ! :) I will start going through this PR soon ... sorry for the delay |
@amitjamadagni I looked up the time dependence PR, and I think I may not need the universal time dependence solver, as I need to offer tweakable routine in the implementation. I modified my own type of propagator and other types under QuDynamics.jl. Since it would make the code neater, I tried to separate this part into a single package here and use it as a dependency in QuCmp.jl. The separated package about AQC is here: AdiaComput.jl. I use And I wonder if it will be better to split the current code to some small packages as dependency like JuMP.jl do. And QuCmp.jl could provide a interface introduce in my GSOC propsal as 2nd floor of this project. @i2000s |
@Roger-luo Questions regarding the structure of packages could require some insights on the theory part. I don't feel @amitjamadagni has the necessary knowledge to really sort it out clearly. If you can ask @Yongjianhan to write a review or have a chat on your PRs in terms of his theoretical insights, that would be helpful. You may have made things too complicated without a thorough discussion. In fact, I guess everyone is waiting for @Yongjianhan's theory review for your PRs as he has promised originally for the GSoC project. Otherwise, it's hard for people not working in your field to take responsibilities on your codes. I guess you may have access to @Yongjianhan's github account, but please don't comment using his account. It's not good for his reputation in this way. Sorry, I haven't finished my notes for the discussions with JuliaQuantum people due to other duties. I'll turn back hopefully soon. |
@Roger-luo : In general I think it is a good idea to first implement and try out a new propagator in a separate package. If it turns out to be of general interest one can include it in the main repo (QuDynamics in this case). You should be careful though not to use fields of types too much as those internals might change. I think we should provide accessor methods for those fields and if the methods are missing please open an issue. Also if you think additional functionality might be useful (like I only had a brief look into your repo, but I found that you had to duplicate a lot of code from QuDynamics (in AQCShrodingerEq.jl). This is certainly something we should discuss, because it might indicate a design problem on our side. |
@acroy Great you are watching in! Thanks! |
@acroy I thought QuDynamcis.jl aims to
But simulating AQC need to modify the time line, since different operations may need to be inserted during the evolution. I guess I use the same design as QuDynamics.jl do, but the further use of this design will be used for inserting other routines like cooling. There is an example: cooling-assist This needs to insert a cooling procedure during the evolution, which is neither dynamical equation nor propagator in solving a Shrodinger equation. I duplicate code from QuDynamics.jl to realize storing a state and evolution percentage |
@i2000s I do not have access of Prof. Han's account, he actually receives our github discussion through email. :-) I'll ask him for review report recently, but he is not in the campus at present. I'll meet Prof. Han on 27th. The algorithm implemented here stays the same, I guess people could still give me suggestions on the structure design. And thanks for watching this. And will there still be an annual meeting? Let me know if you need to ask for Prof. Han's availability. :-) |
This might be something one could possibly achieve by introducing callbacks?
Subtyping |
I rewrite Adiabatic QC simulator by define a simple time-domain solver from QuDynamics.jl. It looks cleaner than previous implementation...
I tested the performance, much better than previous implementation. But a little bit slower than GPU accelerated computing. I'll add this part later.
Will there be any time-domain solver for QuDynamcis.jl in the future? Or maybe considering add some APIs for modified
operator
function in QuDynamics.jl? @amitjamadagni