-
Notifications
You must be signed in to change notification settings - Fork 65
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
Adding dmm config and modulation to sequence #564
Conversation
* Add `DetuningMap.get_qubit_weight_map()` * Define `_DMMSchedule.get_samples()` * Extract DMMSamples from a Sequence * Creating the `Traps` class * Eliminating the effects of the SLM mask * Use COORD_PRECISION in comparison * `Traps.coords` -> `Traps.sorted_coords` * Subclass `Traps` in `WeightMap` * Preserve effects of SLM mask in XY mode * Explicitly ask for labels in DetuningMap.draw() * Including slug in WeightMap * UTs for DetuningMap * Isort * Specialize pulse validation in DMM * Revamp test_dmm UTs * Formatting * Add support for legacy serializer
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 still have to review the changes in Sequence
by already have some comments
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.
Things are a bit confusing with this latest commit
I think this is a good idea. Instead of manually searching for the first pulse, we can call |
I can look into this, don't waste too much time on it |
The off-diagonal terms appear precisely because we changed the Rabi frequency of the first pulse. Makes sense, since now the only unmasked atom ( |
Ookay "atom3" is the only atom feeling something because "atom1" is masked, so "atom0", "atom2" and "atom3" can feel something but due to state preparation error "atom0" and "atom_2" are not present (hence don't feel anything), is that right ? |
Yup, that's it :) |
…into add_dmm_sequence
* Support for DMM channel serialization * WIP: Prepare for incoming updates to JSON schema * Add descr sequence, _config_detuning_map * Finishing UTs, fixing typos * de-/serializing det maps, adding schema, slug * Dev tests * Fixing doc --------- Co-authored-by: a_corni <[email protected]>
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.
Here's a review of the changes before the merge of #568, clearly nothing stands out
…into add_dmm_sequence
… config_det_map as an operation (#576) * Add slug description * Handle DMM & parametrized/switch_device/MapReg * Modifying schema, fixing type * Moving to a store decoration * Storing config_det_map * Taking into account review comments * Delete seq_tools * Testing MappableRegister, strict conversion * Replace modulate_det_map by add_dmm_detuning
* adding dmm, draw to DetuningMap * Testing avoiding circular import * Refactoring to avoid circular imports * Fix broken UTs * Import sorting * Fixing plot DetuningMap * Serialization/Deserialization of DMM in device * Fixing typos * Testing DMM and DetuningMap * Fixing typo * adding xfails, fixing type * Remove DMM from devices and finish UTs * Take into account review comments * Add annotations * Error in Global and Local * Defining _DMMSchedule * Fixing nits * Fixing typo * Creating DMM notebook, modif SLM notebook * Taking into account review comments * Fixing type * Fix labels in reg_drawer, draw det_maps in seq * Fixing doc build, add draw_detuning_maps to docs * Separating register/det_maps drawing from channels * introducing get_qubit_data * Add drawing of quantities per qubit * Fixing for local pulses * Adding bounds to label * Drawing legend for local targetting * FIX sampling rate, QutipEmulator * Updating figures * Updating SLM Mask & local addressability notebook * Adding explanation text * Fixing type * Replace modulate_det_map by add_dmm_detuning * Replace modulate_det_map for add_dmm_detuning * Fixing tests * Revert changes to Bayesian optimization notebook * Fixing docs * clearing outputs * Deleting scaling in favor extending to draw reg * Placing legend in lower part of drawing * Updating figures * Relaunching bayesian optimisation * Taking into account review comments * Printing sequence with DMM * Adding subscript and indent * Defining __str__ for DMM --------- Co-authored-by: HGSilveri <[email protected]>
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
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.
🎉 🎉 🎉
Main changes: e0943d9 Override `optimal_detuning_off` on stored calls (#588) 3e40319 Deprecate legacy serializer + Improve error messages (#585) 9e05982 Adding register_is_from_calibrated_layout and is_calibrated_layout to Device (#586) c08dfa8 Adding dmm config and modulation to sequence (#564) 5270944 Clarify the Conventions in Pulser (#573) 2315989 Give access to all EOM block parameters and allow for phase drift correction (#566) d5ac020 Adding DetuningMap, DMM (#539) f56a19f Remove expired deprecations in pulser-pasqal
In #565:
Traps
to defineRegisterLayout
andWeightMap
.Sequence
.In #576:
slug
indefine_detuning_map
ofRegister
,MappableRegister
,RegisterLayout
Here:
config_det_map
(impossible to declare a DMM usingdeclare_channel
config_slm_mask
:add_dmm_detuning
: Add the waveform of the detuning to a DMM. Same as usingadd
to add a Pulse zero amplitude and negative detuning to a DMM. If the DMM is configured as an SLM Mask, this is only possible if a Pulse has been defined on a Global channel before.In #576:
config_slm_mask
.In #568 and #576:
In #565, we develop a Special handling of samples from a DMM channel:
DMMSamples
subclass ofChannelSamples
, that stores theDetuningMap
and the qubits of the register.In #569: