-
Notifications
You must be signed in to change notification settings - Fork 358
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
Fix channel value bug and revamp pulse sim testing #811
Conversation
…folder to just de in anticipation of further additions, added test files for DE_Methods and type_utils
…eferences so that tests pass again, and updated test_type_utils.py to import from the right place
…n tests pass, but the noisy mc solver routines hang
…the integrate routine
…object apart into model pieces, ode_options, etc
… to have a separate file
…nger used with the move away from cython
… solvers have different expected defaults even of the same name, may need to move default handling directly into each DE_Method
…or DE_Methods and for pulse simulator
…ions, and contains an instance of DE_Options
0b9eeb8
to
37d85ad
Compare
f578f19
to
1d5aa68
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've been trying to run this tutorial 8_pulse_simulator_duffing_model and the solver raises some warnings ("UserWarning: qiskit_zvode: Excess work done on this call. (Perhaps wrong MF.)") and then raises an exception: (ODE method exited with status: -1). Do I have to change something in the tutorial?
Yes good catch - I had noticed this but it slipped my mind. I was able to get the notebook to work by using the DE method
I'm not totally sure what is going on with One simple option for now is to just change the default solver to |
Looking at the zvode documentation, the
I'm not sure but Edit: I just tried increasing Further Edit: The cross-resonance simulation may be a good place to do simulation speed tests. After eliminating the
with no discernible difference between the outputs. Also worth noting is that the speed of This last speed discrepancy makes me want to switch for now to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Just increased value of |
Summary
Closes #803 , and restructures the integration tests of the pulse simulator to attempt to be more systematic.
This PR builds on PR #784 , so review should wait for that to be merged.Details and comments
Changes
chan_value
function innumeric_integrator.cpp
has been modified to have both complex exponentials have positive sign, and return only the real part of the computed value.pulse_controller
: added'method'
as a valid de option, and added the ability to set initial state.test_pulse_simulator.py
test file has been revamped; it was necessary to change all tests after fixingchan_value
, and this was a good opportunity to make things more rigorous.pulse_sim_independent.py
, which contains simulation routines for some "standard" models, and besides using theDE_Methods.py
file, is totally independent of the pulse simulator. Most of the tests intest_pulse_simulator.py
now contain comparison of the results of the de solving with these independent simulations.pulse_sim_independent.py
take very little code and are meant to be fairly simple, and as such it is much easier to verify their correctness as compared to the full process of the pulse simulator itself.Notes
chan_value
has resulted in a notable slow down to the pulse simulator. I'm not totally sure why, but perhaps the corrected DEs are more challenging to solve.Status
Still need to clean things up (comments, linting, etc)