3.5. qupulse.program

This package contains the means to construct a program from a pulse template.

A program is an un-parameterized multichannel time to voltage relation. They are constructed by sequencing playback commands which typically mean that an arbitrary waveform is played.

The arbitrary waveforms are defined in the waveforms module.

transformation contains useful transformations for waveforms which for example allow the construction of virtual channels, i.e. linear combinations of channels from a set of other channes.

loop contains the legacy program representation with is an aribtrariliy nested sequence/repetition structure of waveform playbacks.

linspace contains a more modern program representation to efficiently execute linearly spaced voltage sweeps even if interleaved with constant segments.

volatile contains the machinery to declare quickly changable program parameters. This functionality is stale and was not used by the library authors for a long term. It is very useful for dynamic nuclear polarization which is not used/required/possible with (purified) silicon samples.

Functions

default_program_builder()

This function returns an instance of the default program builder class LoopBuilder in the default configuration.

default_program_builder() ProgramBuilder[source]

This function returns an instance of the default program builder class LoopBuilder in the default configuration.

Returns:

A program builder instance.

Modules

linspace

loop

Program builder implementation that creates the legacy Loop.

protocol

Definition of the program builder protocol.

transformation

Transformations to be applied to sampled waveform data (offset/scale/virtual gates).

values

Runtime variable value implementations.

volatile

waveforms

This module contains all waveform classes