信息来源: GitHub – geodynamics/pylith at v4.1.3
- Quasi-static (implicit) and dynamic (explicit) time-stepping
- Cell types include triangles, quadrilaterals, hexahedra, and tetrahedra
- Linear elastic, linear and generalized Maxwell viscoelastic, power-law viscoelastic, and Drucker-Prager elastoplastic materials
- Infinitesimal and small strain elasticity formulations
- Fault interfaces using cohesive cells
- Prescribed slip with multiple, potentially overlapping earthquake ruptures and aseismic creep
- Spontaneous slip with slip-weakening friction and Dieterich rate- and state-friction fault constitutive models
- Time-dependent Dirichlet (displacement/velocity) boundary conditions
- Time-dependent Neumann (traction) boundary conditions
- Time-dependent point forces
- Absorbing boundary conditions
- Gravitational body forces
- VTK and HDF5/Xdmf output of solution, fault information, and state variables
- Templates for adding your own bulk rheologies, fault constitutive models, and interfacing with a custom seismic velocity model.
- User-friendly computation of static 3-D Green’s functions
Version 4.1.3 (2024/07/31)
- Added
- Expanded the section of the manual discussing mesh generation with Cubit and Gmsh. Added a list of useful functions in the Cubit and Gmsh Python interfaces.
- Added a test to verify Gmsh files with entities that are not embedded generate errors when read via
MeshIOPetsc
. - Expanded section of manual discussing installation on Windows Subsystem for Linux, including components needed to run GUI applications (Gmsh and
pylith_viz
). - Add Gmsh Python script and corresponding mesh in
examples/magma-2d
.
- Fixed
- Added output of fault traction change when computing static Green’s functions.
- Turn on PETSc HDF5 collective input and output by default. This resolves errors when using HDF5 1.14 on NFS filesystems.
- Include all necessary files from
examples/subduction-3d
in source and binary packages. - Fix typos in documentation and update Components section of User Guide (sync with code).
Version 4.1.2 (2024/06/12)
- Fixed
- Fix inconsistency in normal direction on fault surfaces. Orientation was correct but direction was flipped at some locations. This affected local slip direction and the resulting deformation close to the fault.
Contributors
- Brad Aagaard {w=16px}0000-0002-8795-9833
- Matthew Knepley {w=16px}0000-0002-2292-0735
- Charles Williams {w=16px}0000-0001-7435-9196
- Grant Block {w=16px}0009-0003-3402-0923
Version 4.1.1 (2024/06/09)
- Fixed
- Improved setup of variable block Jacobian preconditioner used for elasticity with faults to reduce runtime.
- Fix several typos and update a few diagrams in the documentation.
Version 4.1.0 (2024/06/05)
- Changed
- Improved the default preconditioners for poroelasticity for improved scalability.
- Improved the default preconditioners for elasticity with faults for improved scalability.
- Replaced use of Cubit journal files with Cubit Python scripts for several examples, and use the skeleton sizing function to increase cell size with distance from the fault.
- Removed ParaView Python scripts (replaced by
pylith_viz
)
- Added
- New 2D and 3D crustal strike-slip faults examples based on the 2019 Ridgecrest earthquake.
- New 2D subduction zone outer-rise faulting example examining poroelastic response to bending stresses.
- New
pylith_viz
utility for plotting PyLith results. - Updated
examples/strikeslip-2d
andexamples/reverse-2d
to demonstrate use of uniform refinement and higher order discretizations to improve resolution of solution. - Documentation
- Developer Guide: Added description of the process for adding event logging and evaluating performance, including performance logging.
- Developer Guide: Added checklist for what is needed when contributing examples.
- Fixed
- Updated
examples/subduction-3d
Steps 6, 7, and 8 to work with PyLith v3+. - Fix performance bottleneck when reading Gmsh files.
- Remove extra (wrong) kernels for poroelasticity when using state variables.
- Update Python unit tests setup for compatibility with the current unittest API (use
load_tests()
).
- Updated
Contributors
- Brad Aagaard {w=16px}0000-0002-8795-9833
- Matthew Knepley {w=16px}0000-0002-2292-0735
- Charles Williams {w=16px}0000-0001-7435-9196
- Daniel Douglas {w=16px}0000-0002-7871-018X
- Evan Marschall {w=16px}0009-0003-0916-6656
- Zechao Zhuo {w=16px}0000-0002-8163-5731
Version 4.0.0 (2023/12/14)
- User parameters
- Changed name of fault Lagrange multiplier field for solution component in Python from
lagrange_fault
tolagrange_multiplier_fault
to match name of solution field in C++. - Removed support for importing meshes from LaGriT.
- Changed name of fault Lagrange multiplier field for solution component in Python from
- Added
- 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 ofexamples/reverse-2d
. - Add demonstration of using poroelasticity with porosity as a state variable to
examples/magma-2d
. - Improve integration with VSCode for testing and debugging (see Developer Guide)
- Change in fault tractions are now included in the fault
- Changed
- Switched from CppUnit to Catch2 for the C++ testing framework.
- 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.
- Fixed
- 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.
Contributors
- Brad Aagaard {w=16px}0000-0002-8795-9833
- Matthew Knepley {w=16px}0000-0002-2292-0735
- Charles Williams {w=16px}0000-0001-7435-9196
- Grant Block {w=16px}0009-0003-3402-0923
- Daniel Douglas {w=16px}0000-0002-7871-018X
- Lorraine Hwang {w=16px}0000-0002-1021-3101
- Rezgar Shakeri {w=16px}0000-0003-4790-7016
- Robert Walker {w=16px}0000-0001-7856-1949