Table of Contents

Hierarchy and Composite Systems

Hierarchy in scqubits refers to building composite systems from individual qubits. The HilbertSpace class combines multiple qubit objects and adds interactions.

from scqubits import Transmon, Fluxonium, HilbertSpace, InteractionTerm
 
# Create qubits
q1 = Transmon(EJ=15.0, EC=0.3, ncut=30, label='q1')
q2 = Transmon(EJ=15.0, EC=0.3, ncut=30, label='q2')
q3 = Fluxonium(EJ=12.0, EC=2.5, EL=0.5, ncut=30, label='q3')
 
# Create Hilbert space
hilbert = HilbertSpace([q1, q2, q3])
 
# Add interactions
g12 = 0.01  # Qubit 1-2 coupling
g23 = 0.005 # Qubit 2-3 coupling
 
hilbert.add_interaction(
    InteractionTerm(g=g12, op1=q1.n_operator(), op2=q2.n_operator())
)
hilbert.add_interaction(
    InteractionTerm(g=g23, op1=q2.n_operator(), op2=q3.n_operator())
)
 
# Get full Hamiltonian
H_total = hilbert.hamiltonian()
evals = H_total.eigenenergies()

Multi-Qubit Design

With hierarchy, you design:

  1. Individual qubits and their parameters
  2. Coupling topology (which qubits interact)
  3. Interaction strengths

This compositional approach scales to 3–5 qubits easily. For larger systems, use approximations or specialized simulators.

scqubits automates the tensor product of Hilbert spaces, making composite system analysis practical.