boundsoneigenstatethermalization
https://github.com/ss961214/boundsoneigenstatethermalization
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.0%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: SS961214
- License: mit
- Language: Cuda
- Default Branch: main
- Size: 158 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 2
Metadata Files
README.md
BoundsOnEigenstateThermalization 
The DOI above is for the most recent version of the release on Zenodo. Earlier versions are available there as well. To cite this code without mentioning the version, please use https://doi.org/10.5281/zenodo.14707989. This will always redirect you to the latest release.
Prerequisites
Instructions
Building the Docker image
This code provides a Dockerfile that can be used to build the environment where the code runs.
In the repository root directory (where the Dockerfile is located), execute the following commands:
shell
docker build . --tag mbodyeth:latest
This will create a container image that contains all the necessary dependencies required to compile and run the code.
Running a Docker container
Once you have builded the container image, you will then need to run a container from the image.
To access the code from inside the container and the numerical results from outside the container, the repository root directory should be mounted to the container.
You can run a container with the root directory mounted by executing the following command in the repository root directory:
shell
docker run --rm -it --runtime=nvidia --gpus all --mount type=bind,src=./,dst=/root/work -u $(id -u $USER):$(id -g $USER) mbodyeth:latest zsh
Once the container is successfully run, you will get inside it.
Compiling and running codes to obtain the numerical data
The commands required to compile and run the code are provided in the shell script named "main.sh", which is located in the repository root directory.
shell
chmod u+x main.sh && ./main.sh
Since the computations for large system sizes require much time, the input parameters are restricted to relativelly small sizes.
You can modify the parameters "NMin", "NMax", "mMin", "mMax" to calculate for large system sizes and many-body operators.
Raw numerical data
If you run "main.sh", the code generates the numerical data for the squared seminorm of the difference between energy eigenstates and the mirocanonical ensemble, i.e.,
math
\left( \left|\left| |E_{\alpha}\rangle\!\langle E_{\alpha}| - \rho^{(\mathrm{mc})}_{\delta E}(E_{\alpha}) \right|\right|_{2}^{(\mathcal{A}^{[0,m]}) } \right)^2 = \displaystyle\sum_{\mu=1}^{\mathrm{dim}\, \mathcal{A}^{[0,m]}} \left| \mathrm{tr}\, \Lambda_{\mu}^{\dagger} \left( |E_{\alpha}\rangle\!\langle E_{\alpha}| - \rho^{(\mathrm{mc})}_{\delta E}(E_{\alpha}) \right) \right|^2,
where $|E{\alpha}\rangle$ is an energy eigenstate, $\rho{\delta E}^{(\mathrm{mc})}(E)$ is the microcanonical density operator in an energy shell centered at energy $E$ with width $2\delta E$, and ${\Lambda{\mu}}{\mu}$ is an orthonormal basis of the m-body operator space $\mathcal{A}^{[0,m]}$. The bounds $\Lambda{2}^{[0,m]}$ on the (diagonal) ETH measure can be obtained by taking the maximum of the seminorms within an energy window where one tests the ETH. It bounds the ETH measure $\Lambda{1}^{[0,m]}$ as $\Lambda{2}^{[0,m]} \leq \Lambda{1}^{[0,m]} \leq \sqrt{D}\, \Lambda_{2}^{[0,m]}$, where $D$ is the dimension of the Hilbert space.
In spin systems, the $m$-body operator space $\mathcal{A}^{[0,m]}$ can be decomposed into the direct sum of the exactly m-body operator spaces
math
\mathcal{A}^{(m)} := \mathrm{span}\left\{ \sigma_{x_{1}}^{(p_{1})} \cdots \sigma_{x_{m}}^{(p_{1})} \mid 1\leq x_{1} < x_{2} < \cdots < x_{m} \leq L,\ \forall p_{1} = 1,2,3 \right\},
where $\sigma{x}^{(p)} \ (p=1,2,3)$ is the Pauli operator acting on site $x$.
Therefore, the code calculates the squared seminorm for $\mathcal{A}^{(m)}$ instead of $\mathcal{A}^{[0,m]}$, i.e.,
```math
\left( \left|\left| |E{\alpha}\rangle!\langle E{\alpha}| - \rho^{(\mathrm{mc})}{\delta E}(E{\alpha}) \right|\right|{2}^{(\mathcal{A}^{(m)}) } \right)^2 = \displaystyle\sum{\mu=1}^{\mathrm{dim}\, \mathcal{A}^{(m)}} \left| \mathrm{tr}\, \Lambda{\mu}^{\dagger} \left( |E{\alpha}\rangle!\langle E{\alpha}| - \rho^{(\mathrm{mc})}{\delta E}(E{\alpha}) \right) \right|^2.
```
For generic systems with local and few-body interactions, the resulting files are named like "./results/mBodyETH/PBCTI/<Ensemble>/SampleNo<M>/SystemSizeL<L>N<N>/mBodyquasiETHmeasureSqdE<shellWidthParam>.txt". Here, the parameter values are as follows: - <Ensemble>: ShortRangeSpin, ShortRangeBoson$\ell$local$k$body, ShortRangeFermion$\ell$local$k$body - <M>: The identifier of the sample Hamiltonian - <L>: The number of lattice sites in a 1D chain - <N>: Particle number (This is ommitted for spin systems for which we always have $L=N$.) - <shellWidthParam>: The parameter with which the width of the microcanonical shell is given by $\delta E = (\mathit{shellWidthParam})/L$.
The columns of the output files correspond to the parameter $m$, which ranges from $m=1$ to $m=N$, and the rows correspond to the energy eigenvalue $E_{\alpha}$.
Owner
- Name: Shoki Sugimoto
- Login: SS961214
- Kind: user
- Repositories: 1
- Profile: https://github.com/SS961214
Citation (CITATION.cff)
cff-version: 1.1.0
message: "Cite as"
authors:
- family-names: Sugimoto
given-names: Shoki
orcid: https://orcid.org/0000-0002-5874-928X
affiliation: "Department of Applied Physics, School of Engineering, The University of Tokyo"
website: https://sites.google.com/view/shokisugimoto/
title: "Code for Bounds on Eigenstate Thermalization"
doi: 10.5281/zenodo.14707989
GitHub Events
Total
- Release event: 1
- Push event: 4
- Public event: 1
- Create event: 1
Last Year
- Release event: 1
- Push event: 4
- Public event: 1
- Create event: 1
Dependencies
- docker.io/intel/oneapi-basekit 2024.2.0-1-devel-ubuntu22.04 build
- docker.io/nvidia/cuda 12.5.0-devel-ubuntu22.04 build