# 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. ```python 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.