There are several flags that can be passed which will rebuild PySTE from source using various optimisations. The flags are:
--config-setting="cmake.define.NCTRL_FIXED_SIZES=RANGE"
Defines the strategy used to compile evolvers with a fixed number of controls. The options are:
OFF: There will only be evolvers with a dynamic number of controls.
SINGLE: There will only be a single evolver with a fixed number of controls specified by --config-setting="cmake.define.NCTRL=...".
RANGE (default option): There will be evolvers with a fixed number of controls in the range [1,MAX_NCTRL] where MAX_NCTRL can be set with --config-setting="cmake.define.MAX_NCTRL=..."
POWER: The evolvers with a fixed number of controls will have a number of controls given by powers in the range [1,MAX_POWER_NCTRL] of the base BASE_NCTRL where MAX_POWER_NCTRL can be set with --config-setting="cmake.define.MAX_POWER_NCTRL=..." and BASE_NCTRL with --config-setting="cmake.define.BASE_NCTRL=..."
--config-setting="cmake.define.NCTRL=1"
The number of controls when using --config-setting="cmake.define.NCTRL_FIXED_SIZES=SINGLE". A positive integer, by default 1.
--config-setting="cmake.define.MAX_NCTRL=14"
The maximum number of controls when using --config-setting="cmake.define.NCTRL_FIXED_SIZES=RANGE". A positive integer, by default 14.
--config-setting="cmake.define.MAX_POWER_NCTRL=3"
The maximum power when using --config-setting="cmake.define.NCTRL_FIXED_SIZES=POWER". A positive integer, by default 3.
--config-setting="cmake.define.BASE_NCTRL=2"
The base of the powers when using --config-setting="cmake.define.NCTRL_FIXED_SIZES=POWER". A positive integer, by default 2.
--config-setting="cmake.define.DIM_FIXED_SIZES=RANGE"
Defines the strategy used to compile evolvers with a fixed vector space dimension. The options are:
OFF: There will only be evolvers with a dynamic vector space dimension.
SINGLE: There will only be a single evolver with a fixed vector space dimension specified by --config-setting="cmake.define.DIM=...".
RANGE (default option): There will be evolvers with a fixed vector space dimension in the range [1,MAX_DIM] where MAX_DIM can be set with --config-setting="cmake.define.MAX_DIM=..."
POWER: The evolvers with a fixed vector space dimension will have a vector space dimension given by powers in the range [1,MAX_POWER_DIM] of the base BASE_DIM where MAX_POWER_DIM can be set with --config-setting="cmake.define.MAX_POWER_DIM=..." and BASE_DIM with --config-setting="cmake.define.BASE_DIM=..."
--config-setting="cmake.define.DIM=2"
The vector space dimension when using --config-setting="cmake.define.DIM_FIXED_SIZES=SINGLE". A positive integer, by default 2.
--config-setting="cmake.define.MAX_DIM=16"
The maximum vector space dimension when using --config-setting="cmake.define.DIM_FIXED_SIZES=RANGE". A positive integer, by default 16.
--config-setting="cmake.define.MAX_POWER_DIM=4"
The maximum power when using --config-setting="cmake.define.DIM_FIXED_SIZES=POWER". A positive integer, by default 4.
--config-setting="cmake.define.BASE_DIM=2"
The base of the powers when using --config-setting="cmake.define.DIM_FIXED_SIZES=POWER". A positive integer, by default 2.
will build PySTE from source and optimises evolvers at compile time with 2 control Hamiltonians acting on a vector space of dimensions 2, 4, and 8. Increasing the number of optimised evolvers increases the compile time. The --no-binary py-ste flag instructs pip to build py-ste from source and the following py-ste instructs pip that py-ste is one of the packages to collect (indeed the only package). The --no-cache-dir flag ensures that a cached .whl file is not used instead and the package is actually built from source. Finally, the --verbose flag allows the progress of the build to be seen. This is useful as the builds can often take a long time.
Note building from source requires approximately 16GB of RAM.
Cloning the repository
PySTE uses git submodules and so should be cloned with the flag --recurse-submodules as follows:
Christopher K. Long, Crispin H. W. Barnes, and Normann Mertig. PySTE, (Zenodo, 2025–2026), DOI: 10.5281/zenodo.17116431.
BibTeX
@software{long_2025_17393488, author = {Long, Christopher K. and Barnes, Crispin H. W. and Mertig, Normann}, title = {PySTE}, license = {Apache-2.0}, publisher = {Zenodo}, doi = {10.5281/zenodo.17116431}, url = {https://doi.org/10.5281/zenodo.17116431}, swhid = {swh:1:dir:3b56737f50e5a3fb539199daf2725196a630ddc0 ;origin=https://doi.org/10.5281/zenodo.17116431;vi sit=swh:1:snp:42910d2cf314911d681e3e8c736621fa4232 94ce;anchor=swh:1:rel:36a18efe0d29b7382405e8b9e095 d13b22083112;path=Christopher-K-Long-PySTE-3e79a04 },}
This website does not use cookies. If you allow it, your settings, such as the theme, and the earlier versions of the site that you view are kept in your browser's local storage on this device, and are not sent anywhere. Some of its pages also include content, such as posts, videos and images, that is loaded from Bluesky, GitHub, GitLab, LinkedIn, Read the Docs, Software Heritage, X, YouTube and Zenodo. Loading them connects your browser to those services, which may set cookies and log your visit. Unless you allow it, a text version or a link is shown instead. More in the privacy policy.
Bluesky
GitHub
GitLab
LinkedIn
Read the Docs
Software Heritage
X
YouTube
Zenodo
Until local storage is allowed, nothing is kept on this device: settings and these choices only last until the page is reloaded or closed, and earlier versions of the site are unavailable. "Decline all" keeps only a record of your choices, so that you are not asked again. Each kind of local storage can be allowed on its own under "Breakdown".
Allow local storage
Privacy choices (kept so that you are not asked again)