Skip to content

Releases: geodynamics/pylith

PyLith v4.0.0

15 Dec 03:29
be40cc8
Compare
Choose a tag to compare

DOI

Changes in user parameters

  • Changed name of fault Lagrange multiplier field for solution component in Python from lagrange_fault to lagrange_multiplier_fault to match name of solution field in C++ and output.
  • Removed support for importing meshes from LaGriT.

Other changes

  • Change in fault tractions are now included in the fault data_fields for prescribed slip.
  • Fault and boundary orientation directions are now included in the info_fields for simulation output.
  • State variables are now included in the default data_fields for simulation output.
  • The default solver settings use the PETSc proper orthogonal decomposition (POD) methodology for initial guess of solutions to improve convergence.
  • Add demonstration of pylith_powerlaw_gendb in Step 8 of examples/reverse-2d.
  • Add demonstration of using poroelasticity with porosity as a state variable to examples/magma-2d.
  • Switched from CppUnit to Catch2 for the C++ testing framework.
  • Improve integration with VSCode for testing and debugging (see Developer Guide).
  • Bug fixes
    • Fix errors in KinSrcTimeHistory.py
    • Fix creation of PETSc label for edges when importing Gmsh files. This fixes creation of faults with buried edges for 3D meshes imported from Gmsh.
    • Add containers for solution fields for poroelasticity with faults.
  • Update PETSc to version 3.20.2.
  • Update Python requirement to version 3.8 or later.
  • Update Pyre requirement to version 1.1.0 or later.
  • Update SpatialData requirement to version 3.1.0 or later.

Binary packages

  • Update to Python 3.10.10, MPICH 4.1.1, OpenMPI 4.1.5, OpenSL 3.1.0, libffi 3.4.4, curl 8.0.1, CMake 3.26.2, PCRE 10.42, SWIG 4.1.1, Catch2 3.3.2, Sqlite 3410200, libtiff
    4.5.0, Proj 9.2.0, HDF5 1.14.0, and NetCDF 4.9.2.

Known issues

  • The default PETSc options provide a computationally expensive preconditioner when solving incompressible elasticity problems in parallel. We expect to have a more optima
    l preconditioner in the next release.

PyLith v3.0.3

14 Oct 17:19
e6c52cd
Compare
Choose a tag to compare

DOI

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

  • Fixed duplicate integration of fault terms if a fault had one material on one side and multiple materials on the other side.
  • Fixed bugs related to running in parallel.
    • Creating constraints on buried fault edges failed for some mesh distribution cases.
    • Green's function problems did not manage fault impulses on multiple processes.
    • Creating a point mesh for OutputSolnPoints failed when running in parallel.
    • PetscSF inconsistencies generated errors at various times when running in parallel.
  • Update to PETSc 3.18.0.

Note: We now use PETSc routines to write the HDF5 files. As a result, there is one change to the layout: topology/cells is now viz/topology/cells.
The corresponding Xdmf files reflect this change.

Binary packages

  • Update to Python 3.10.6.
  • Use gmforker process manager with MPICH to avoid localhost name issues.

Known issues

The rate of convergence of the linear solver for large models (millions of cells) with large fault surfaces (most of the domain) is slow when running in parallel. We are working on finding better preconditioner settings.

PyLith v3.0.2

24 Aug 16:44
ae1f8f1
Compare
Choose a tag to compare

DOI

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

  • Add check of PyLith version against version requirements specified in metadata of parameter files.
  • Update defaults to better match most use cases.
    • Use nonlinear solver.
    • Basis order is 1 for solution fields.
    • Basis order is 0 for Cauchy stress and strain.
    • Use ML algebraic multigrid preconditioner (from Trilinos) instead of GAMG preconditioner for more robust solves. This is a temporary change until we find better GAMG settings.
  • Update PETSc to v3.17.3.
  • Remove obsolete LaTeX documentation.
  • Bug fixes
    • Add viz directory missing from examples/subduction-2d in source distribution.
    • Project output fields using correct PETSc routine (DMProjectFieldLabel()). Fixes memory access bugs in both serial and parallel.
    • Fix build warnings.
    • Fix reordering that causes errors when importing Gmsh files.
  • Documentation
    • Add discussion of translating boundary value problem information to parameter settings. Add more code blocks to manual.
    • Add discussion of examples/troubleshooting-2d to manual.

Binary packages

  • Added PyQT5 Python module for interactive plotting with matplotlib.
  • Update PyLith Parameter Viewer to v2.0.1 (fix errors in packaging).

Known issues

  • The default PETSc options provide a computationally expensive preconditioner when solving incompressible elasticity problems in parallel. We expect to have a more optimal preconditioner in the next release.
  • You may still encounter a few bugs when running in parallel; they appear to cases with specific partitioning of the mesh in relation to one or more faults.

PyLith v3.0.1

19 Jun 21:52
d1b295e
Compare
Choose a tag to compare

DOI

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 at https://pylith.readthedocs.io)
    • 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

  • Updated PyLith Parameter Viewer (v2.0.0) for Python 3.

Known issues

  • The default PETSc options provide a computationally expensive preconditioner when solving incompressible elasticity problems in parallel. We expect to have a more optimal preconditioner in the next release.
  • You may still encounter a few bugs when running in parallel; they appear to cases with specific partitioning of the mesh in relation to one or more faults.

PyLith v3.0.0

09 Jun 05:37
658a959
Compare
Choose a tag to compare

DOI

Version 3.0.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.

Binary packages

The binary packages are 700 Mb and 1.1 Gb. We will be working to remove unnecessary files. One of the main reasons for the large size is that we include all of the geographic projection datum information used by the Proj library; we will test the feasibility of having the download these data files as a separate step.

Known issues

  • Running in parallel has a few minor bugs due to communication mismatches and over-aggressive error checking. We will be fixing these in the next week.
  • We will be updating the 3D subduction zone example (examples/subduction-3d) to v3.0.0 in the next week, including providing the input mesh file; in the meantime do not attempt to run this example.
  • We have included Gmsh in the binary packages. For Linux, there are additional libraries that must be installed for Gmsh to run; these are associated with the graphical user interface. Most Linux distributions include these in a default installation.

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

PyLith v2.2.2

02 Jul 16:26
9d1e656
Compare
Choose a tag to compare

DOI

  • Bug fixes

    • Fix several typos in the manual.

    • Fix order of deallocation of data members in ElasticMaterial to prevent a segmentation fault, thereby allowing error messages to be shown when throwing an exception.

    • Fix tests for MPI and PETSc version info for more use cases.

    • Ensure all Python script are executable and use nemesis is used instead of python for correct paths to modules on Darwin.

  • Added ability to write residual to an HDF5 file during solves. This is intended for debugging and is enabled at runtime using --journal.debug.formulation=1. The residual will be written to residual.h5. To generate the associated .xdmf file run pylith_genxdmd -f residual.h5.

  • Updated to PETSc 3.10.2

PyLith v3.0.0beta2

11 Jun 05:46
Compare
Choose a tag to compare
PyLith v3.0.0beta2 Pre-release
Pre-release
  • Through-going faults work!
  • Fix for h5py/six for Linux binary.

PyLith v3.0.0beta1

10 Jun 05:21
Compare
Choose a tag to compare
PyLith v3.0.0beta1 Pre-release
Pre-release
Tagged v3.0.0beta1

PyLith v2.2.1

06 Sep 20:29
Compare
Choose a tag to compare

DOI

  • Added new examples.

    • examples/3d/subduction: New suite of examples for a 3-D subduction zone. This intermediate level suite of examples illustrates a wide range of PyLith features for quasi-static simulations.

    • examples/2d/subduction: Added quasi-static spontaneous rupture earthquake cycle examples (Steps 5 and 6) for slip-weakening and rate- and state-friction.

    • These new examples make use of ParaView Python scripts to facilitate using ParaView with PyLith.

  • Improved the PyLith manual

    • Added diagram to guide users on which installation method best meets their needs.

    • Added instructions for how to use the Windows Subsystem for Linux to install the PyLith Linux binary on systems running Windows 10.

  • Fixed bug in generating Xdmf files for 2-D vector output. Converted Xdmf generator from C++ to Python for more robust generation of Xdmf files from Python scripts.

  • Updated spatialdata to v1.9.10. Improved error messages when reading SimpleDB and SimpleGridDB files.

  • Updated PyLith parameter viewer to v1.1.0. Application and documentation are now available on line at https://geodynamics.github.io/pylith_parameters. Small fix to insure hierarchy path listed matches the one for PyLith.

  • Updated PETSc to v3.7.6. See the PETSc documentation for a summary of all of the changes.

  • Switched to using CentOS 6.9 for Linux binary builds to insure compatibility with glibc 2.12 and later.

PyLith v2.2.1rc1

25 Jun 16:17
Compare
Choose a tag to compare
PyLith v2.2.1rc1 Pre-release
Pre-release

Release Candidate 1

  • Added new examples.

    • examples/3d/subduction: New suite of examples for a 3-D subduction zone.

    • examples/2d/subduction: Added spontaneous rupture examples for slip-weakening and rate- and state-friction.

  • Fixed bug in generating Xdmf files for 2-D vector output.

  • Updated PETSc to v3.7.6.