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()
With hierarchy, you design:
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.