Skip to content

model

chalmers_qubit.devices.sarimner.model

Classes:

Name Description
SarimnerModel

Initializes a new quantum system simulation configuration for the Sarimner model.

SarimnerModel

SarimnerModel(
    transmon_dict: dict,
    coupling_dict: Optional[dict] = None,
    dim: int = 3,
)

Bases: Model

Initializes a new quantum system simulation configuration for the Sarimner model.

This class sets up the essential parameters and structure needed for simulating a quantum system with specified transmon qubit characteristics and couplings. It initializes the internal state required for managing the system's dynamics, including drift and controls.

Parameters:

Name Type Description Default
transmon_dict dict

A dictionary containing the parameters for each transmon qubit. The keys are qubit identifiers, and the values are dictionaries with qubit properties (e.g., frequency, anharmonicity).

required
coupling_dict Optional[dict]

A dictionary specifying the couplings between qubits. If None, no couplings are considered.

None
dim int

The dimension of the Hilbert space for each qubit (default is 3 for qutrit).

3

Attributes:

Name Type Description
num_qubits int

The number of qubits in the system.

dims list of int

A list specifying the dimension of each qubit's Hilbert space.

params dict

A dictionary containing all system parameters, including transmon properties and couplings.

_drift list

Internal representation of the system's drift Hamiltonian.

_controls dict

Internal setup for system control Hamiltonians.

_noise list

An empty list initialized for potential future addition of noise models.

Methods:

Name Description
_parse_dict

Internal method to parse and validate input dictionaries.

_set_up_drift

Internal method to set up the drift Hamiltonian.

_set_up_controls

Internal method to set up the control Hamiltonians.

Notes
  • The transmon_dict should contain parameters for each qubit, such as frequency and anharmonicity.
  • The coupling_dict, if provided, should specify the coupling strengths between qubit pairs.
  • The model uses a fixed dimension (dim) for all qubits, defaulting to qutrit (3-level) systems.

get_all_drift

get_all_drift() -> List[Tuple[Qobj, List[int]]]

Get all the drift Hamiltonians.

Returns:

Name Type Description
drift_hamiltonian_list list

A list of drift Hamiltonians in the form of [(qobj, targets), ...].

get_control

get_control(label: Hashable) -> Tuple[Qobj, List[int]]

Get the control Hamiltonian corresponding to the label.

Parameters:

Name Type Description Default
label hashable object

A label that identifies the Hamiltonian.

required

Returns:

Name Type Description
control_hamiltonian tuple

The control Hamiltonian in the form of (qobj, targets).

get_control_labels

get_control_labels() -> List[Hashable]

Get a list of all available control Hamiltonians. Optional, required only when plotting the pulses or using the optimal control algorithm.

Returns:

Name Type Description
label_list list of hashable objects

A list of hashable objects each corresponds to an available control Hamiltonian.

get_control_latex

get_control_latex()

Get the labels for each Hamiltonian. It is used in the method :meth:.Processor.plot_pulses. It is a 2-d nested list, in the plot, a different color will be used for each sublist.

get_noise

get_noise() -> List[Noise]

Get a list of :obj:.Noise objects. Single qubit relaxation (T1, T2) are not included here. Optional method.

Returns:

Name Type Description
noise_list list

A list of :obj:.Noise.