This repository contains the code for the implementation of my Master's Thesis supervised by Prof. Dr. Vasilis Niarchos.
Bellow I outline which files are needed to replicate the results I got for the bootstraps I showcased in the text.
These are the files one would need to recreate the results I present in the thesis for the zero temperature cases.
Mathematica implementation of the harmonic oscillator bootstrap at T=0.
Constructs and simplifies the Hankel moment matrix, solves the SDP, and exports results to JSON.
Reads exported JSON data and generates plots.
Python implementation of the T=0 anharmonic oscillator bootstrap using sympy, cvxpy, and
SDPA-Multiprecision through the Python wrapper sdpa-multiprecision. Note that to use cvxpy with SDPA-Multiprecision one would have to build the sdpa-multiprecision from source and link against the SDPA-Multiprecision libraries. The specifics are outlined here.
Solves the SDP and exports results.
A sister file, zero-temperature_harmonic_oscillator.nb, contains the same implementation in a Mathematica notebook.
Loads output data and produces plots.
These are the files needed to replicate my results for the thermal bootstrap.
Mathematica code generating operator bases, Schwinger–Dyson relations, moment matrices, and Gauss–Radau quadrature data.
Exports all matrices and parameters to JSON for the thermal SDP. Works with any 1 dimensional hamiltonian modulo constants which would have to be taken care of by hand. The following files depend on
the user having exported the appropriate files using this notebook.
Core Python module that:
- Converts exported matrices into CVXPY expressions
- Constructs and solves the thermal SDP
- Performs temperature scans
- Exports results to HDF5
The solver used has to be hardcoded in this header file. Includes numerical diagonalization for anharmonic thermal energy comparison.
Runs the thermal SDP for the harmonic oscillator (upper and lower bounds). I used the CLARABEL solver for the harmonic oscillator which comes out of the box with cvxpy. I didn't tweak any parameters.
Runs the thermal SDP for the quartic oscillator (upper and lower bounds). I used the 'SDPA-Multiprecision` solver through the wrapper as outlined above. I didn't tweak any parameters.
Plots harmonic thermal bootstrap results from HDF5 output.
Plots quartic thermal bootstrap results and compares with numerical thermal energy.
Contains psdhermitian.py which is a headerfile I was working on that I didn't end up using and is not fully finished. I made it for treating Hermitian SDPs symbolically in code and have the ability to directly export them in a format that the SDPA-GMP solver can read from the terminal. I include it because someone might find it useful. Instrumental to understanding how to interface with the solver directly is the [manual for the SDPA solvers]{https://usermanual.wiki/Document/sdpa711manual20080618.114778884.pdf}.
This folders include the json files from the matrix_maker.nb that contain the exported matrices and the HDF5 files that are outputed from the corresponding python bootstrap file. This, last mentioned files are the ones I used to make the plots.
If you stumbled upon this repository and need help using this code feel free to contact me either through GitHub or at pripkand@protonmail.com