Welcome to qupulse’s documentation!¶
qupulse
is a python package to write, manage and playback arbitrarily nested quantum control pulses. This documentation contains concept explanations, jupyter notebook examples and the automatically generated API reference. The API reference does not cover parts of qupulse that are explicitly considered an implementation detail like qupulse._program
.
You are encouraged to read the concept explanations and interactively explore the linked examples. To do this you can install qupulse via python -m pip install -e git+https://github.com/qutech/qupulse.git#egg=qupulse[default]
which will clone the qupulse into ./src/qupulse
. You can find the examples in doc/source/examples
and open them with jupyter, Spyder or another IDE of your choice.
There is a learners guide available to help with an efficient exploration of qupulse’s features.
Contents:
- 1. Concepts
- 2. Examples
- 2.1. Modelling a Simple TablePulseTemplate
- 2.2. Modelling an Advanced TablePulseTemplate
- 2.3. Modelling Pulses Using Functions And Expressions
- 2.4. The PointPulseTemplate
- 2.5. Combining Pulse Templates
- 2.5.1. SequencePulseTemplate: Putting Pulses in a Sequence
- 2.5.2. RepetitionPulseTemplate: Repeating a Pulse
- 2.5.3. ForLoopPulseTemplate: Repeat a Pulse with a Varying Loop Parameter
- 2.5.4. AtomicMultiChannelPulseTemplate: Run Pulses in Parallel on Different Channels
- 2.5.5. Combining Combined Pulses
- 2.6. The ConstantPulseTemplate: Efficient constant voltage description.
- 2.7. Multi-Channel Pulses
- 2.8. Combining Templates:
AtomicMultiChannelPulseTemplate
- 2.9. Mapping with the MappingPulseTemplate
- 2.10. Abstract Pulse Template
- 2.11. Arithmetic with Pulse Templates
- 2.12. ParallelConstantChannelPulseTemplate
- 2.13. Reversing a Pulse Template
- 2.14. Storing Pulse Templates:
PulseStorage
and Serialization - 2.15. Definition of Measurements
- 2.16. Constraining Parameters
- 2.17. Snake Charge Scan
- 2.18. Free Induction Decay - A Real Use Case
- 2.19. Gate Configuration - A Full Use Case
- 2.20. Dynamic Nuclear Polarisation/Changing repetition count during runtime
- 2.21. Instantiating Pulses: Obtaining Pulse Instances From Pulse Templates
- 3. qupulse
- 3.1. qupulse.comparable
- 3.2. qupulse.expressions
- 3.3. qupulse.hardware
- 3.4. qupulse.parameter_scope
- 3.5. qupulse.plotting
- 3.6. qupulse.program
- 3.7. qupulse.pulses
- 3.7.1. qupulse.pulses.abstract_pulse_template
- 3.7.2. qupulse.pulses.arithmetic_pulse_template
- 3.7.3. qupulse.pulses.constant_pulse_template
- 3.7.4. qupulse.pulses.function_pulse_template
- 3.7.5. qupulse.pulses.interpolation
- 3.7.6. qupulse.pulses.loop_pulse_template
- 3.7.7. qupulse.pulses.mapping_pulse_template
- 3.7.8. qupulse.pulses.measurement
- 3.7.9. qupulse.pulses.multi_channel_pulse_template
- 3.7.10. qupulse.pulses.parameters
- 3.7.11. qupulse.pulses.plotting
- 3.7.12. qupulse.pulses.point_pulse_template
- 3.7.13. qupulse.pulses.pulse_template
- 3.7.14. qupulse.pulses.pulse_template_parameter_mapping
- 3.7.15. qupulse.pulses.range
- 3.7.16. qupulse.pulses.repetition_pulse_template
- 3.7.17. qupulse.pulses.sequence_pulse_template
- 3.7.18. qupulse.pulses.table_pulse_template
- 3.7.19. qupulse.pulses.time_reversal_pulse_template
- 3.8. qupulse.serialization
- 3.9. qupulse.utils
- 4. Learners Guide - writing pulses with qupulse
qupulse API Documentation¶
|
A Quantum compUting PULse parametrization and SEquencing framework. |