You are here: Home / Resources / Software: Download / PyLith / About

PyLith

By Brad Aagaard (primary-developer)1, Charles A. Williams (primary-developer)2, Matthew Knepley (primary-developer)3

1. United States Geological Survey 2. GNS Science 3. University of Buffalo

Published on

Description


PyLith is a finite-element code for dynamic and quasistatic simulations of crustal deformation, primarily earthquakes and volcanoes.

Binary packages are available for macOS and Linux. Detailed installation instructions for the binary packages are in the PyLith manual. Use the PyLith Installer to install from source. We also offer a Docker image (see the PyLith Install Manual for instructions) for development or running PyLith within a portable, virtual Linux environment. Windows 10 users should install the Windows Subsystem for Linux and use the Linux x86_64 binary.

Release Notes

PyLith 3.0 includes major changes to the underlying finite-element formulation and implementation in order to support a more flexible specification of the governing equations and higher order basis functions. These changes affect how simulations are defined. Parameter files for previous versions will need to be updated; the changes are too complex for a simple translation table. Some features present in v2.2.2, such as spontaneous rupture and finite strain, have not yet been implemented in the new formulation.

Features

  • Multiphysics
    • Elasticity for linear isotropic materials and linear Maxwell, generalized Maxwell, and power law viscoelastic models
    • Incompressible elasticity for linear isotropic materials
    • Prescribed slip for quasistatic and dynamic simulations
  • Higher order basis functions
    Allow user to select order of basis functions independent of the mesh (which defines the geometry). This permits higher resolution for a given mesh.
  • Switch to using PETSc time-stepping (TS) algorithms
    Replace simple Python-based time-stepping implementations with PETSc time-stepping algorithms that provide support for higher order discretization in time and real adaptive time stepping.
  • Static Green's functions with user-specified discretization of fault slip impulses
  • Import finite-element meshes from Cubit (Exodus II), Gmsh, and LaGriT
  • Modular approach for initial conditions
  • Output of subfields with user-defined basis order
  • Simulation metadata with command line utility for searching metadata
  • Convert to Python 3
  • Convert LaTeX documentation to Sphinx + MyST
  • Testing with the Method of Manufactured Solutions
  • New suite of examples, including examples using incompressible elasticity and poroelasticity
  • Automatically assign label value for fault cohesive cells (id setting is obsolete).
  • Use description for descriptive labels and label and label_value for tagging entities. PyLith's use oflabel and label_value now corresponds to PETSc labels and label values.

Deprecated features

  • We plan to discontinue support for reading LaGriT mesh files in version 3.2. Gmsh provides an open-source alternative with a graphical user interface.

Contributors

  • Brad Aagaard
  • Matthew Knepley
  • Charles Williams
  • Robert Walker
  • Chris Mills
  • Shengduo Liu
  • Thea Ragon
  • Alex Berne
  • Jed Brown
  • Rey Koki
  • Kali Allison
  • Lorraine Hwang

Download v3.0.1

This is a bug fix release with no new features or changes to the user interface.

  • Bug fixes
    • Fix lots of small bugs related to running in parallel
    • Fix several discrepancies among the code, examples, and manual
  • Examples
    • Added `examples/subduction-3d` steps 1-4 (included in the manual
    • Added `examples/troubleshooting-2d` (included in the PyLith v3.0 tutorials but not yet added to the manual
  • Documentation
    • Added instructions for how to remove Apple quarantine attributes
    • Fix LaTeX build of documentation (now available online)
    • Improved instructions on how to run ParaView Python scripts when starting ParaView from a shortcut
    • Added notes indicating steps of examples are not yet updated for v3.0
    • Fix lots of typos

Binary Packages

Source Code

If you need to build PyLith from source, we strongly recommand that you use the PyLith Installer utility to configure and build the PyLith code and its dependencies. If you use the installer you do not need to download the PyLith and PETSc tarballs; the installer will download them automatically.

Sponsored by

Current PyLith development is supported by the CIG, and internal GNS Science www.gns.cri.nz and U.S. Geological Survey www.usgs.gov funding. Pyre development was funded by the Department of Energy’s www.doe.gov/engine/content.do Advanced Simulation and Computing program and the National Science Foundation’s Information Technology Research (ITR) program.

This material is based upon work supported by the National Science Foundation under Grants No. 0313238, 0745391, 1150901, and EAR-1550901. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Tags