StanShock is a quasi-1D gas dynamics solver designed to model shock tube experiments and, more recently, scramjet engines. It is currently under heavy development to bring in new capabilities and modernize the infrastructure, and should thus be considered unstable until further notice.
StanShock has been tested using python 3.9 and 3.13. It is recommended to install the requirements into a virtual environment such as that provided by conda. With conda one can create and activate a new virtual environment named stanshock for Python 3.13 using:
conda create --name stanshock python=3.13
conda activate stanshock
Alternatively, you can create and activate a local virtual environment with:
python3 -m venv .venv
source ./.venv/bin/activate
Finally, install StanShock and its dependencies from source with:
pip install .
To manually build the documentation locally using Sphinx, first install the optional dependencies with:
pip install .[docs]
To build the documentation statically and view in Firefox, execute:
sphinx-build --keep-going -n -T -b=html docs docs/_build/html
firefox docs/_build/html/index.html
Or to serve the documentation, pip install sphinx-autobuild and execute:
sphinx-autobuild --open-browser -n -T -b=html docs docs/_build/html
Which will automatically rebuild the documentation when changes to documented files are detected.
To cite StanShock, please refer the following article:
@article{stanshock2020,
Author = {Grogan, K. and Ihme, M.},
Title = {StanShock: a gas-dynamic model for shock tube simulations with non-ideal effects and chemical kinetics},
Journal = {Shock Waves},
Year = {2020},
Volume = {30},
Number = {4},
Pages = {425--438},
Doi = {10.1007/s00193-019-00935-x},
}
To contribute to StanShock, see CONTRIBUTING.md.