California Institute of Technology

Explosion Dynamics Laboratory

Shock and Detonation Toolbox - 2021 Version

About the SD Toolbox The Shock & Detonation Toolbox is an open-source software library that enables the solution of standard problems for gas-phase explosions using realistic thermochemistry and detailed chemical kinetics. The SD Toolbox uses the Cantera software package and is implemented as routines that can be called from either MATLAB or Python. A set of demonstration programs and a library of contemporary reaction mechanisms and thermodynamic data are provided.

The SD Toolbox includes numerical routines for the computation of:
  • CJ detonation speed and post-detonation state
  • Postshock gas state for frozen composition
  • Postshock gas state for equilibrium composition
  • Frozen and equilibrium Hugoniot curves
  • Oblique shock waves, shock-expansion solutions
  • Shock tube and shock tunnel performance
  • Constant-volume explosion structure
  • ZND detonation structure
  • Effective activation energies and chemical time scales from detailed reaction mechanisms
  • Creating and modifying thermodynamic databases.

All Files (ZIP) (updated 11-Feb-2023)
Installation instructions (PDF)

If you have installed a version prior to Feb 4, 2021, please remove your old ToolBox, install new files and update your applications as needed by referring to the changes in the demo programs. The basic routines should work as in previous editions but some of the utilities have been enhanced and there are minor but important corrections as well as changes in arguments to the higher level functionality. As always, the documentation is a work in progress and out of date. When in doubt,look in the demo files or headers to the toolbox routines to start debugging, email me if you need more clues or are stumped. I'll try to sort it out.

Chemical Reactions and Thermodynamics
  • (PDF) Quick reference to SDT functions and demonstration programs (updated 3-31-2019)
  • SDT tutorial given at Cantera Workshop, March 24, 2019. Available as a Jupyter notebook (zip) or a (PDF).
  • (PDF) Hints and tips on convergence issues (updated 9-23-2021)
  • (PDF) SDToolbox: Numerical Solution Methods for Shock and Detonation Jump Conditions Contributors: Browne, S. T. and Ziegler, J. L. and Bitter, N. P. and Schmidt, B. E. and Lawson, J. and Shepherd, J. E.. GALCIT Report FM2018.001, California Institute of Technology, Pasadena, CA, Most recent version is Jan 10, 2023. - This is a "perpetual draft" report containing both the theoretical background and information on the algorithms. This is a hypertext document with links to the scripts that are used to generate the results for example problems. Errors and corrections should be brought to the attention of Joe Shepherd.

Release Notes The 2018 version was the third update of the SDT since 2007 and was compatible with Cantera 2.3 and 2.4, Python 3.5 and 3.6 and Matlab R2017b and R2018a. Although the toolbox interfaces are mostly compatible with earlier versions, the underlying routines have been restructured and the demonstration programs rewritten. Plotting and error control are now more flexible and additional demonstration programs have been added. Both Matlab and Python versions of all demonstration programs are now available, in particular shock and detonation structure programs are available as Python scripts. The Python and Matlab code structures have been made as similar as possible. The chemical reaction mechanisms and thermodynamic databases have been updated to reference contemporary reaction data sets. Joel Lawson wrote new and re-wrote old routines and demonstration programs, developing much of the new Python code and checking the consistency of Matlab and Python scripts.

Feb 4 2021 is an incremental update over 2018. The MATLAB ToolBox routines have all been updated and tested but the documentation and some descriptions in the demo files are out of date. The most recent version has been tested with Cantera 2.4 and 2.5, MATLAB 2020, and Python 3.7. The python version is essentially identical to the 2018 version, there have been a number of minor but important changes to the MATLAB version. The documentation report is in a continuous state of revision with aspiration of a new version in early summer.

September 23, 2021 Incremental update that fixes a few bugs, notably convergence issues (see the Hints and Tips document) and the demo_ZND_CJ_cell programs have been removed as these have significant issues.

February 11, 2023. Incremental update to include .yaml format files, links to webpages and zip files. Link to draft documentation added.

The use of the Toolbox programs are subject to the following license agreement. If you publish results using the Toolbox, please acknowledge with a citation to this webpage and/or the appropriate report. Thank you.

Copyright © 1993-2023 by California Institute of Technology, Joseph E. Shepherd