This repository contains the numerical simulation code for the research paper "Subsystem Information Capacity in Random Circuits and Hamiltonian Dynamics" by Yu-Qin Chen, Shuo Liu, and Shi-Xin Zhang.
The simulation code is organized into three main directories within src/
, corresponding to the different physical models and computational libraries used in the paper.
src/
├── circuit_cliffordjl/
│ ├── mipt_floquet.jl # Random Clifford Floquet circuits (Localization)
│ ├── mipt.jl # Random Clifford circuits with measurements (MIPT)
│ └── ruc_global_encoding.jl # Random Clifford circuits with global encoding
│
├── freefermion_tc/
│ └── ssh_model.py # Free-fermion SSH model
│
└── intfermion_quspin/
└── aa_model.py # Interacting Aubry-André model (MBL)
You will need to install dependencies for both Python and Julia to run all simulations.
Th free fermion part is supported by TensorCircuit-NG.
Install the required Python packages using pip
:
pip install numpy scipy tensorcircuit-ng quspin
-
Start a Julia REPL by typing
julia
in your terminal. -
Enter the package manager by pressing
]
. -
Add the necessary package:
pkg> add QuantumClifford pkg> add NPZ
Each script is designed to be run from the command line. The parameters for each simulation are defined within the scripts themselves which can be further customized.
- Navigate to the directory:
cd src/freefermion_tc/
- Run the Python script:
python ssh_model.py
- The script will perform the simulation and save the resulting subsystem entropy data to a
.npy
file.
- Navigate to the directory:
cd src/circuit_cliffordjl/
- Run the Julia script:
julia mipt.jl
- This will execute the simulation for random circuits with measurements.
If you use this code in your research, please cite the original paper:
@article{chen2024subsystem,
author = {Yu-Qin Chen and Shuo Liu and Shi-Xin Zhang},
doi = {10.22331/q-2025-06-24-1783},
issn = {2521-327X},
journal = {Quantum},
month = {6},
pages = {1783},
title = {Subsystem Information Capacity in Random Circuits and Hamiltonian Dynamics},
volume = {9},
year = {2025}
}