CTH Release Information

CTH is influenced greatly by its predecessor codes, CHARTD, a one-dimensional hydrocode written by Sam Thompson in 1972 and CSQ, also written by Sam in 1975. Development on CTH started in the late 1980’s and continues to the present day. CTH was modified to run on massively parallel computers in 1992-1993 and was enhanced with parallel adaptive mesh refinement in 1998-2000. CTH versions prior to 7.0 were given descriptive names that typically included the month and year of the distribution.

Distribution Policy

CTH is undergoing continual development at Sandia (where it can be accessed and tested by friendly test analysts). New external release intervals are spaced at greater intervals to support thorough testing and licensing reviews etc (typically about once every year with hotfixes being available throughout that period as they become available).

Distribution Philosophies 

  • Only the most current released version of the code is distributed for new and upgrade requests
    • Product activations for older versions may occur but outside of this past versions are not directly supported
  • Sandia does not guarantee that builds will function on every operating system.
    • Binaries are available for Linux, MacOS and Windows 10 (Through WSL)
  • Source is not distributed without special review and management approval.



(July, 2020)

  • New or Improved models
    • Granular P-Alpha model
      • P-Alpha now has a mechanism for modeling soil-like porous materials (rather than ductile)
  • Bug Fixes and Enhancements
    • Aplert Wavelet image comparisons replace existing limited CTH test capabilities
    • Compiler support updated to Intel 19 and gcc 8
    • Tstop=0 bugfix that would cause crash corrected
    • Minimum zone calculation checks implemented
    • Tet-Surface improvements
    • TLN MAX(*,0) robustness fix
    • Spyplt triangulation bug
    • Bug fixes to support Zapotec coupling
    • Correction of legacy block number limit based on incorrect memory usage calculation to allow calculations with greater than 2 billion cells
    • Numerous code improvements, clean up, re-organization, extern statement removal
    • Implementation of true V&V test suite
    • Completely rebuilt radiograph functionality supporting 1, 2 and 3D datasets
  • New Features
    • Velocity gradient improvement
      • Angular momentum is now preserved within a calculation
    • Direct Computed Tomography (CT) insertion
      • Directly insert DICOM and BITMAP voxel data into CTH calculations
    • Diatom+ default change
      • Vigorous Diatom testing has shown that UDS+, PRISM+ and PYRAMID+ are far more accurate than legacy methods. These have now been set to the default UDS, PRISM and PYRAMID commands.
    • stop_now flag on by default
      • Still supporting BATCH and INTERACTIVE
    • ColorMap expansion (see Spymaster Manual)
      • A color blind friendly (with better saturation and contrast) has been set as the default
      • 18+ new predefined colormaps, including the entire Paraview palette, have been added
    • Standard diagnostic outputs
      • CTH now generates JSON formatted status outputs that can be used to track and diagnosis error states in calculations (and allow for parametric processers such as Dakota & SAW to relaunch failed runs)
    • StopTracer Expansion (see Spymaster Manual)
      • Saves simulation time with an arbitrary number of tracers (and variables) that stop a calculation precisely when an analyst desires.
    • Fragment based discards (see Spymaster Manual)
      • Remove arbitrary material from cells based on fragment mass and any other cell or material variable. This method does not suffer from surrounding cell volume fraction fills, and the removal of “noise”/small particles, speeds up large AMR calculations by 6+ times
    • Fragment image auto-bounds (see Spymaster Manual)
      • Never place Spyplt outputs where they are not wanted. Fragments can now be used to automatically set the bounding box for image renders to exactly where the analyst wants to observe.
    • Overhauled Training
      • The CTH training program has been completely overhauled to include practical use/example based training and now includes training for HPC slurm based scheduling and the SAW IDE with realtime diatom visualization.
    • EOS_data and VP_data stubs for EOS pedigree
      • A new format has been added to the comments section of the EOS and VP data files that will allow analysts to discover the pedigree of material models they are using in calculations.
    • Graceful shutdown on Spymaster
      • No longer blindly launch a remote job only to find that an input error in Spyplt caused no outputs to generate (despite CTH running and eating cycles).
    • Default AMR stop behavior set (rather than global unrefine)
      • Prevent global unrefinement from unintentionally reducing the fidelity of a calculation without an analyst’s express approval to do so.


(September, 2018)

  • New or Improved models
    • Two-Step Arrhenius Burn (TSARB)
    • SWANSON visoelastic-hypereleastic material model
    • Tillotson (TLN) library expansion and tensile behavior improvements
    • Any Mie-Grüneisen EOS (AMEOS)
    • Multistate CREST reactive burn model
    • HCJ model updates
  • Bug Fixes and Enhancements
    • MINLBB – minimum number of AMR blocks for load balancing
    • Reduced STL file storage size through shared rtree (on select systems)
    • ExodusII read function improvements
    • Tracer regions bug fixes and now returns XYZ of max/min
    • Tet Surface bug fixes and expanded output capabilities
  • New Features
    • SRATE – EPDATA flag allows reporting of volumetric and deviatoric strain rates
    • TGRADED – Diatom allows file specified grading of initial temperature


(August, 2017)

  • New Models
    • HEP-Hybrid Elastic Plastic Geo Model
    • ARLG- Army Research Laboratory Glass Model
  • Bug Fixes and Enhancements
    • Parallel consistency improved
    • Diatom parsing improvements
    • Exodus solution export and import options improvements
    • MCM bug fixes and memory footprint reduction
    • Plastic strain-rate variable bug fix that affects MTS and PTW
  • Code maintenance tasks
    • Build support for Trinity added
    • Discard on volume fraction with set-able limit in neighboring cells
    • Improvements for Windows 10
  • New Features
    • AMR CPU-based load balancing (beta)
    • RANVAR advection of Weibull failure strain distribution
    • Detonation geometry in diatom
    • Tracer time on and vector fix options
    • Diatom Bezier curve option added
    • 2D slicing of 3D STL’s
    • New BLINT algorithm incorporated
    • Diatom PLY file format option added


(June, 2016)

  • New Models
    • XHVRB reactive flow model added
  • Bug Fixes and Enhancements
    • Diatom STL insertion and diagnostics
    • Diatom pointwise volume fraction algorithm added
    • Diatom parsing improvements to diagnose input errors
    • AMR level zero load balancing added
    • Exodus export and import options added
    • Composite model bug fixes
    • SWRI glass model bug fixes
    • Distributed activation energy for ARB added
  • Code maintenance tasks
    • Spymaster Uber plotting updates
    • Build system upgraded for Fortran90 dependencies and parallel building
    • Build support for Trinity added
    • Discard on volume fraction with settable limit in neighboring cells
    • Support for Windows 10
  • New Features
    • Spymaster radiograph command generalized to allow arbitrary orientation
    • Fragmentation identification added
    • New color maps


(June, 2015)

  • New Models
    • Ignition and growth beta version with pressure-temperature equilibrium
    • MMP3 option added cutoff limit setting
    • SWRIG model improvements
  • Bug Fixes
    • Diatom STL data checking/conversion
    • Diatom library name space issues
    • Diatom consistency for PI definition
    • Diatom parsing improvements to diagnose incorrect input
  • Improvements
    • Equation of state interface updated
    • CTHGEN removed
    • JWL database updated for consistency
    • JWL data checking updated
    • Memory footprint reduction
    • Spymaster memory tracking added
    • Memory diagnostics improved
    • Spymaster Uber plotting updates
  • New Features
    • Aprepro, algebraic preprocessor added
    • QSAVE saves artificial viscosity magnitude only
  • General
    • Improved binaries for MacOSX


(October, 2014)

  • New Models
    • SWRIG
    • Nonlinear Elastic Orthotropic Model
    • AVAVE model for polymers (A. V. Amirkhizi Viscoelastic)
    • EBSC (Enthalpy Based Shock Compression)
    • Initial Multistate Model
    • BDL – Brittle Damage with Localization
  • Bug Fixes
    • Material Models:
      • PTW, Tiger, ANEOS, UMAT, Mooney Rivlin, PMOD
    • Spymaster:
      • User variables, Exodus solution export, ImageFormat, mpeg2encode
    • Material sound speeds
    • Fixes and improvements for gfortran, Apple/Mac and PGI builds
    • Extrema variables
  • Improvements
    • MCM strain based damage surface added
    • Rigid algorithm improvements and new flag for pullback treatment added
    • CTH changes for improved Fortissimo performance and robustness
    • Diatom expressions: { }s
    • MMP0 is default even if no MMP option selected
    • MIX=3 is default
    • Tiger changes and improvements
  • New Features
    • Added separate material energy and deviator options
    • Uber Plotting – improved Spymaster interface (two beta capabilities)
    • A fixed velocity option for Diatom tracers
    • MMP3: user definable threshold option added
    • Million+ core support and OpenMP directives added


(February, 2013)

  • New Models
    • Mooney-Rivlin
    • HyperT: Transverse-Isotropic hyperelasticity
    • PTW: Preston-Tonks-Wallace
    • AMM – Aluminum Mixture Model
  • Bug Fixes
    • Material Models: Tillotson; Baer-Nunziato Multiphase; MCM
    • Diatom: STL insertion
    • Spymaster: AutoScaleMap; Missing pixels in Contour2D; Units Scaling in 1-D plots; Plot2DMats
    • Grind Time Statistics
  • New Features
    • ANEOS: save options for entropy, phase, ionization; P-alpha porosity model added; new materials added
    • Diatom: improvements to cylinder insertion accuracy
    • New Spymaster Features: new capability for +/- logarithmic color maps; DataOut option for TecPlot and general parallel DataOut capability; New DX, DY, DZ database variables (to aid in construction of user gradient based variables)


(February, 2012)

  • Increased number of materials to 98.
  • Material sound speed added as option to database (for gen-less calculations only).
    • Discard can be based on material sound speed.
    • Improved diagnostics (e.g. DTMIN reports).
  • New Material Models
    • Kayenta.
    • Mulliken-Boyce.
    • Mie-Grüneisen-Guggenheim-Barnes (MGGB) EOS.
    • Tillotson EOS with cavitation.
  • Volume fraction discard now only occurs for "isolated" volume fractions.
  • Multiple spheres DIATOM shape option (useful in mesoscale simulations).
  • SPTime command (combination of SaveTime and PlotTime) added to Spymaster.
  • Parallel read of exodus files added to solution import capability.
  • AMR indicator MAXL can use negative integer (e.g. maxl -2) to refer to "two levels below maximum refinement level".
  • DIATOM bug fix when using graded extra variables.
  • Bug fix for benign treatment of ANEOS warning messages.
  • Fixed handling of cell temperature during AMR refinement/unrefinement and at AMR block boundaries.
  • Improvements to HELLO command operation and other bug fixes for Windows executables.
  • Spymaster bug fixes and many new features (see Spymaster manual). Some highlights:
    • Rotated 2-D plots (see RotateZ command).
    • New default material colors and improvements to DrawMatLegend command.
    • New MatVisible command to make it easier to turn on material plotting.
    • Ability to use Greek characters and symbols from the default font table.
    • Added default italics and bold fonts.
    • Larger default image size (1024×768).
    • XBMirror defaults to ON for 2DC plots.
    • New ImageS, ImageUS, ImageNS, ImageMS commands for creating images named by time rather than cycle.
    • Added Paint3DMats, Paint2DMat, Paint2DMats commands.


(August, 2011)

  • Added total material volume (VTOT) to Spymaster hscth output.
  • AMR bug fix for "difference" and "gradient" indicators at sound speed absorbing (1) boundaries.
  • SMYRA bug fix to prevent unphysical motion of material flecks with volume fraction less than 2.5E10-6
  • Spymaster bug fixes and additional features.
  • Bug fix to heat conduction time step calculation in 1-D and 2-D.
  • R2DP bug fix to prevent small sliver of void along the axis of symmetry.
  • Diatom STL insertion bug fixes and improvements.
  • Added Diatom parameter LILVF – the volume fraction used internally at the lowest iteration level (default is 0.5…sometimes 1.0 will give better results for some shapes).
  • Fixed a restart bug for MCM and MCMPLAS models.
  • Bug fixes for Diatom expressions ({}s).
  • Self gravity performance improvements.


(January, 2011)

  • Improved Material Interface
  • New total energy conservation option
  • Increased number of materials (from 20 to 50)
  • New GUI installer for Windows, Linux, Mac
  • New Parallel MPI Windows capability
  • New DEFAULT_CTH_SYSTEM environment variable (for builds)
  • Various Spymaster improvements and bug fixes
  • Added image compare feature to benchmarking capability
  • Added Exodus output option to Spymaster
  • Zero velocity bug fix at true mesh boundaries
  • Bug fix for empty or corrupt history files
  • Added simple stop tracer capability
  • Added QSAVE keyword to CONTROL
  • Added BFK parameters for seven concretes
  • Added simple validation (comparison to experimental data) capability to benchmarks
  • Bug fix for AMR use of VMAG in indicators
  • Fixed various bugs and warnings detected by Cray compilers


(December, 2009)

  • ANEOS improvements and bug fixes completed. Melosh treatment of diatomic and triatomic molecules added. New SiO2 model parameters provided in EOS_data.
  • Graded p-alpha implemented.
  • Many Spymaster bug fixes and improvements (e.g. line thickness bug, bug fix for labeling of English units).
  • BCAT bug fixes for CJ and Hugoniot state calculations.
  • BLINT improvements for AMR.


(February, 2009)

  • New 1-D AMR capability
  • Improvements for 20,000+ processor runs
  • Added linear interpolation backup to SESAME EOS routines
  • Automatic units conversion capability added to Spymaster
  • Improvements to octh file readability
  • Bounding box information added to DIATOM diagnostics
  • New LMAT performance improving capability
  • New directional composite capability
  • Implemented SWRI foam model
  • Implemented CDAR-K model
  • Bug fix in MIG ANEOS model and several new geological materials added.
  • Many Spymaster bug fixes and improvements
  • Bug fixes for the self gravity capability
  • Shell coupling support added for CTH/Presto


(December, 2007)

  • Bug fix for AMR blocks with fewer than 8 zones in the Z direction.
  • Bug fix for BCAT on AMD 64-bit processors.
  • Two-way coupling support with Presto provided.
  • New Amix model added.
  • New moving rigid material option implemented.
  • Improvements to the Weibul distribution model.
  • Added corrections for ambiguous keywords in MTS, Tepla and CDAR_K.
  • New exclude material option for indicators.
  • Bug fixes for negative residual volume checks.
  • Improvements to backup restart handling.
  • Bug fix for Silling’s Shearband Model.
  • New backup auto-restart capability.
  • Increased maximum Spymaster image size to 8192×8192 from 4096×4096.
  • Added run-time option for large sesame tables.
  • New MIG ANEOS model added to replace the old ANEOS interface – predefined ANEOS materials provided in EOS_data.
  • Upgraded Mesa graphics library (for Spymaster) to version 3.2.1 (from 3.0).
  • Improved CPU timer resolution.
  • Bug fix for XCELL option to allow initialization of user-defined extra variables from DIATOM.
  • Numerous Spymaster bug fixes and improvements.


(April, 2007)

  • Change to F90 for memory management to move away from deprecated Cray Pointers – allowing up to 16 GB memory allocation on 64-bit platforms.
  • Unlimited tracers are now allowed.
  • Momentum remap improvements to prevent large fictitious velocities.
  • Windows spcth file format now supports >2GB file sizes.
  • Windows 64-bit version distributed and supported. However, 2GB restart file limit under Windows is still a known issue.
  • Linux binary distributions for 32- and 64-bit using unified executables optimized for Intel and AMD chips. Intel MPI runtime package is provided so turnkey cluster computing with CTH can be realized.
  • New Diatom options for exact UDS-based shape options.
  • New Diatom capability to import binary Exodus files.
  • Improvements to the RIGID algorithm to support code coupling.
  • Support for G95 compiles under Linux provided.
  • New user variable option provided for Spymaster.
  • New Warning/Bad EOSMAP options in CTH control section to allow more user control over acceptance/denial of bad thermodynamic states.
  • New Zerilli-Armstrong Modified model incorporated (from ARL).
  • Improvements to Tepla and Weibul Distribution models implemented.
  • New AMR capability to allow construction of Indicators using material state variables.
  • Increased allowed number of AMR indicators to 100 (from 20).
  • AMR parent block balancing implemented.
  • New parallel tree-based self-gravity option implemented.


(December, 2005)

  • Robustness improvements for the geo-effective stress model.
  • Diatom changes: bug fixes for the ogive shape option, performance improvements when many packages are used, new parallelepiped, parallelogram and triangle shape options.
  • AMR changes: refinement bug fix for calculation of cell pressure, bug fix for DeltaT indicator option, bug fixes for boundary conditions 0.1, 1.0 and 2.1.
  • Spymaster changes: new spcth file format to support >2 GB file sizes, new DataOut capability for ascii dump of spatial data, block edges can now be plotted on fixed planes, bug fix to prevent tic labels from sometimes extending past the  edge of the graph…and many others…
  • Bug fix for 2.1 and 3.0 boundary conditions at the Bottom Z boundary.
  • Performance improvements: eliminated EOS calls in ghost cells, removed unnecessary code for AMR and parallel calculations.
  • Improvements to octh file readability
  • Improved mmp3 option (mmp0 is still the recommended option, however)
  • Bug fixes and other improvements to prevent instability and non-physical states: improved calculation of stable time step in cells that contain void, improved CKVOL coding to remove imbalance that could lead to unphysical particle velocities, EOSMAP coding to prevent the use of materials with zero sound speed (an error condition returning from the EOS).
  • New Weibull distribution option added to Johnson-Cook Fracture and Grady-Kipp fracture models.
  • New documentation: cth71.pdf and spy21.pdf
  • Pressure Shear Damage (PSDam) model introduced to represent materials exhibiting pressure-dependent strength properties that include different strengths in isotropic tension and compression, shear-induced dilatation, strain hardening, strain-rate dependency, and porosity-dependent strength.


(April, 2005)

  • Document version (7.0) and CTH version (7.0) are now identical.
  • Merged CTHGEN into CTH documentation (CTHGEN is deprecated).
  • Discard given new velocity-based discard and new upper pressure limit of 1e99 (upper pressure limit was previously 0).
  • Added Rajendran-Grove constitutive model.
  • Added MPCMOD and MPGMOD (Nonequilibrium Multiphase Mixture) options.
  • Added SPYHIS capability.
  • CTH distribution includes benchmark directory that can be used to verify a build.
  • Bug fixes and improvements for treatment of mixed cells, proper discard of velocity after material discard, treatment of p-alpha model behavior in the elastic regime, fracture behavior tracer migration in parallel calculations and treatment of mixed cells containing traditional EP materials.