# 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](https://en.cppreference.com/cpp/language/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