master
typeII_quasisolitons
Tools for simulations of type II quasisoliton wavepackets in the repulsive Lieb-Liniger model.
Compilation notes
The C++ standard used in the current codebase is C++-23. In particular, C++ modules are used.
These instructions apply to the following executables:
- typeII_quasisolitons_compute_par (produces .states and .[operator] files)
- typeII_quasisolitons_rhoxt_par (produces .x, .t and .rhoxt files)
- typeII_quasisolitons_amplitudes_[uniform, staggered, IDeltax] (produce .amplitudes file for specified protocol)
All executables make use of Abacus version 2.
Compilation with g++23
This assumes that Abacus has been compiled with g++ (version 15 or above)
Ensure to add a symbolic link the gcm cache from the main abacus repo:
ln -fs [your Abacus build directory]/gcm.cache gcm.cache
[your g++ compiler] [executable].cc -o [executable].out -std=c++23 -fmodules -O3 -L[your Abacus build directory]/lib -labacus-2.0.0
Compilation with clang (version 21 or above)
This assumes that Abacus has been compiled with clang++.
clang++-21 [executable].cc -o [executable].out -std=c++23 -stdlib=libc++ --gcc-toolchain=[local toolchain, e.g. /usr/local/gcc-15.2.0] -fprebuilt-module-path=[local Abacus compiled objects, e.g. /home/[yourname]/abacus/obj/ -O3 -L[local Abacus library location, e.g. /home/[yourname]/abacus/lib -labacus-2.0.0
Languages
C++
90.9%
Python
9.1%