Recent Releases of pylith
pylith - PyLith v4.2.1
Some features present in v2.2.2, such as spontaneous rupture and finite strain, have not yet been implemented in the new multiphysics formulation used in v3.0.0 and later.
Changed
- Update PETSc to v3.23.5
- Use the VTU (XML) format for VTK files instead of the legacy ASCII format (required for PETSc v3.23.5).
Added
- Improved documentation for
pylith_eqinfoand illustrate use inexamples/strikdslip-2d,examples/crustal-strikeslip-2d, andexamples/crustal-strikeslip-3d. - Improved the organization of the governing equations section and added documentation for poroelasticity with prescribed fault slip, including governing equations and default PETSc solver settings. Also added a full-scale test.
Fixed
- Account for processes without cells in initial condition patch when verifying configuration.
- Avoid divide by zero for
KinSrcRampwhen final slip is zero. - Remove
solid_bulk_modulusas a spatial database field for poroelasticity; compute it from the other fields. - Fixed typos in setting up gravity with poroelasticity.
- Update default solver settings for poroelasticity and faults.
- Fix pythia import in
pylith_eqinfo.
Known issues
- The new default preconditioner for simulations using elasticity and faults can cause convergence issues when running in parallel in which fault faces lie on the boundaries between processors. The workaround is to use the previous preconditioner provided in
share/settings/solver_fault_fieldsplit.cfg. - The default PETSc options provide a computationally expensive preconditioner when solving incompressible elasticity problems. We expect to have a more optimal preconditioner in v5.0.0.
Contributors
- Brad Aagaard ORCID iD 0000-0002-8795-9833
- Matthew Knepley ORCID iD 0000-0002-2292-0735
- Charles Williams ORCID iD 0000-0001-7435-9196
- C++
Published by baagaard-usgs 10 months ago
pylith - PyLith v4.2.0
Changed
- Updated
examples/strikeslip-2dSteps 4-7 to use a more realistic slip distribution and mesh refinement in output. - Updated to PETSc 3.22.0
- Switch CI from Azure Pipelines to GitHub Actions.
Added
- Default filenames for progress monitor and parameters file are set from the simulation name like the other output files.
- Consistency check for material properties and scales used in nondimensionalization (currently just the shear modulus).
- Added section to User Guide on troubleshooting solver issues.
- Added section to User Guide on how to run PyLith binary offline.
- Allow output on a finer resolution mesh than used in the simulation to facilitate accurate representation of fields with a basis order of 2 or greater.
Fixed
- Fixed 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. This bug fix was not in version 4.1.3.
- Updated autoconf numpy macros for compatibility with location of include files in numpy version 2.x.
- Account for some processes not having points in boundary condition in TimeDependentAuxiliaryFactory::updateAuxiliaryField().
Known issues
- The new default preconditioner for simulations using elasticity and faults can cause convergence issues when running in parallel in which fault faces lie on the boundaries between processors. The workaround is to use the previous preconditioner provided in
share/settings/solver_fault_fieldsplit.cfg. - The default PETSc options provide a computationally expensive preconditioner when solving incompressible elasticity problems. We expect to have a more optimal preconditioner in the next release.
Contributors
- Brad Aagaard ORCID iD 0000-0002-8795-9833
- Matthew Knepley ORCID iD 0000-0002-2292-0735
- Charles Williams ORCID iD 0000-0001-7435-9196
- C++
Published by baagaard-usgs over 1 year ago
pylith - PyLith v4.1.3
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-3din source and binary packages. - Fix typos in documentation and update Components section of User Guide (sync with code).
- C++
Published by baagaard-usgs almost 2 years ago
pylith - PyLith v4.1.2
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.
- C++
Published by baagaard-usgs about 2 years ago
pylith - PyLith v4.1.1
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.
- C++
Published by baagaard-usgs about 2 years ago
pylith - PyLith v4.1.0
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_vizutility for plotting PyLith results. - Updated
examples/strikeslip-2dandexamples/reverse-2dto demonstrate use of uniform refinement and higher ordder 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-3dSteps 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()).
Known issues
- The new default preconditioner for simulations using elasticity and faults can cause convergence issues when running in parallel in which fault faces lie on the boundaries between processors. The workaround is to use the previous preconditioner provided in
share/settings/solver_fault_fieldsplit.cfg. - The default PETSc options provide a computationally expensive preconditioner when solving incompressible elasticity problems. We expect to have a more optimal preconditioner in the next release.
Contributors
- Brad Aagaard ORCIID iD 0000-0002-8795-9833
- Matthew Knepley ORCIID iD 0000-0002-2292-0735
- Charles Williams ORCIID iD 0000-0001-7435-9196
- Daniel Douglas ORCIID iD 0000-0002-7871-018X
- Evan Marschall ORCIID iD 0009-0003-0916-6656
- Zechao Zhuo ORCIID iD 0000-0002-8163-5731
- C++
Published by baagaard-usgs about 2 years ago
pylith - PyLith v4.0.0
Changes in user parameters
- Changed name of fault Lagrange multiplier field for solution component in Python from
lagrange_faulttolagrange_multiplier_faultto 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_fieldsfor prescribed slip. - Fault and boundary orientation directions are now included in the
info_fieldsfor simulation output. - State variables are now included in the default
data_fieldsfor 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_gendbin Step 8 ofexamples/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.
- C++
Published by baagaard-usgs over 2 years ago
pylith - PyLith v3.0.3
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
OutputSolnPointsfailed 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
gmforkerprocess 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.
- C++
Published by baagaard-usgs over 3 years ago
pylith - PyLith v3.0.2
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
vizdirectory missing fromexamples/subduction-2din 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.
- Add
- Documentation
- Add discussion of translating boundary value problem information to parameter settings. Add more code blocks to manual.
- Add discussion of
examples/troubleshooting-2dto 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.
- C++
Published by baagaard-usgs almost 4 years ago
pylith - PyLith 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-3dsteps 1-4 (included in the manual) - Added
examples/troubleshooting-2d(included in the PyLith v3.0 tutorials but not yet added to the manual)
- Added
- 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.
- C++
Published by baagaard-usgs about 4 years ago
pylith - PyLith v3.0.0
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 (
idsetting is obsolete). - Use
descriptionfor descriptive labels andlabelandlabel_valuefor tagging entities. PyLith's use oflabelandlabel_valuenow 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
- C++
Published by baagaard-usgs about 4 years ago
pylith - PyLith v2.2.2
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 toresidual.h5. To generate the associated.xdmffile runpylith_genxdmd -f residual.h5.Updated to PETSc 3.10.2
- C++
Published by baagaard-usgs almost 7 years ago
pylith - PyLith v3.0.0beta2
- Through-going faults work!
- Fix for h5py/six for Linux binary.
- C++
Published by baagaard-usgs about 7 years ago
pylith - PyLith v2.2.1
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.
- C++
Published by baagaard-usgs almost 9 years ago
pylith - PyLith v2.2.1rc1
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.
- C++
Published by baagaard-usgs almost 9 years ago
pylith - PyLith v2.2.0
Added a browser-based parameter viewer for interactive viewing of all PyLith parameters and version information. See Section 4.10 PyLith Parameter Viewer of the PyLith user manual.
Adjusted packaging of the binary distributions so that they can be used to extend PyLith and/or integrate other code with PyLith.
Converted the user manual from Lyx to LaTeX and added syntax highlighting of parameter and spatial database files. Fixed several typos.
Fixed bug that sometimes resulted in an inconsistent fault orientation when running in parallel. The bug appears to have been introduced in v2.0.
Fixed two bugs in output of solution at points that sometimes happened in parallel simulations. The errors include:
- The order of the station names does not match the order of the points. The point data is written in parallel by process order, so the points for process 0 are written first, then those for process 1, etc. This often results in reordering of the points. The station names were written in the original order.
- The output values for some points are incorrect. The wrong cells were being used in the interpolation.
Updated PETSc to v3.7.5.
- C++
Published by baagaard-usgs about 9 years ago
pylith - PyLith v2.1.4
- Added --version command line argument to display version information for PyLith and its dependencies.
- Improved information displayed with the --help command line argument.
- Added --include-citations command line argument to display publications to cite when publishing results from computations using PyLith. General PyLith references are also displayed with the --version command line argument.
- Allow use of NetCDF versions greater than 4.1.3. Switch from using C++ API to C API.
- Fixed bug in Pythia associated with validation of parameters being done before help could be displayed.
- Fixed typos in manual for gravity and point forces.
- Added integration with Travis for automated testing.
- C++
Published by baagaard-usgs over 9 years ago
pylith - PyLith v2.1.3
Release Notes v2.1.3
- Add generate_statedb.py and postseismic.pvsm files missing from examples/2d/gravity.
- Update handling of fault intersection when creating boundary condition nodesets in examples/meshing/surface_nurbs/subduction.
- Fixes to Darwin binary package.
- Fix linking of netCDF4 Python module.
- Fix linking and executable mode permissions for Python scripts in binary by using nemesis so relative links are valid.
- C++
Published by baagaard almost 10 years ago
pylith - PyLith v2.1.2
Release Notes
- Bugfixes for finite-strain formulation.
- Added output of the Cauchy stresses (cauchy_stress). The second Pioloa-Kirchoff stresses are output via the stress field.
- Material properties and state variables were not retrieved properly when updating state variables.
- Bugfixes for setting initial stress and state variables for viscoelastic materials. The deviatoric stress state is carried forward using the state variables, so the initial deviatoric stress should not be considered when computing the stresses.
- Created new examples showing how to use gravity, initial stress, and finite-strain in 2-D (examples/2d/gravity).
- Reintroduced check (that had been inadvertently removed in v2.x) for ambiguous description of fault surface based on groups of vertices defining faces of cells.
- Flush the output of the progress monitor so progress reports are updated promptly.
- Updates to the user manual.
- Added section on the debugging examples covered in recent tutorials.
- Added tables describing the spatial database values for each material.
- Included a more complete discussion of the finite-strain formulation.
- PETSc
- Updated to PETSc v3.7.2 (knepley/pylith branch).
- Fixed Trilinos/ML configuration and code so that it can be built without a Fortran compiler.
- C++
Published by baagaard about 10 years ago
pylith - PyLith v2.1.0
This release provides a few new small features and bugfixes.
Migrating from v2.0 to v2.1
The points file for OutputSolnPoints must now contain station names as the first column.
Release Notes
- Station names are required for output at arbitrary points (OutputSolnPoints) and are included in a /stations dataset in HDF5 files.
- A progress monitor will update a text file with the progress of a simulation (time in the time stepping loop or the number of impulses completed) and given an estimate of when the simulation will be completed.
- Bug fixes
- A few bugs related to creating cohesive cells for fault intersections have been fixed. Faults can now meet at T intersections provided the buried edges of the faults are clamped. In other words, the fault ending at the T intersection has a clamped edge along the intersection. The fault ending at the intersection must also come AFTER the through-going fault in the list of fault interfaces.
- There have been two major bug fixes for Drucker-Prager plasticity, for both DruckerPrager3D and DruckerPragerPlaneStrain. The first fix was a missing initial pressure term for the plastic multiplier in the Drucker-Prager formulation. This affects plasticity calculations when initial stresses are used. The error has been corrected in the code, the manual, and the unit tests. The second bug was an incorrect test for tensile yield that could cause PyLith to exit with an error when plastic yield had not actually occurred. The error would only occur when the allowtensileyield flag was set to False. This bug has been fixed in the code, and the new test is also described in the manual. This should prevent problems that previously existed when allowtensileyield was set to False (as it should be for most quasi-static problems).
- Fixed bug in DataWriterHDF5Ext associated with multiple processes writing information to the HDF5 file. With external datasets the HDF5 file is limited to metadata and is maintained by process 0.
- A two-dimensional gravity example has been added, based on the tutorial from the June, 2014 workshop at Stanford University. The tutorial itself is in examples/2d/gravity, and a new section has also been added to the manual describing the example.
- Fixed inconsistent fault orientation when running in parallel for 2-D domains.
- C++
Published by baagaard over 11 years ago
pylith - PyLith v2.0.3
This release provides several small updates for (1) improved CUBIT/Trelis compatibility, (2) building with recent versions of automake, and (3) additional examples from the 2014 Crustal Deformation Modeling Workshop tutorials.
No changes are needed in .cfg files to switch from v2.0.0 to v2.0.3.
Binaries are available from the links below. Detailed installation instructions for the binary packages are in the User Manual.
Migrating from version 1.9 to 2.0
Changes to various C++ objects permitted simplifying the specification of a number of components. The map below indicates the name changes.
CellFilterAvgMesh -> CellFilterAvg
DataWriterVTKMesh -> DataWriterVTK
DataWriterVTKSubMesh -> DataWriterVTK
DataWriterVTKSubSubMesh -> DataWriterVTK
DataWriterHDF5Mesh -> DataWriterHDF5
DataWriterHDF5SubMesh -> DataWriterHDF5
DataWriterHDF5SubSubMesh -> DataWriterHDF5
DataWriterHDF5ExtMesh -> DataWriterHDF5Ext
DataWriterHDF5ExtSubMesh -> DataWriterHDF5Ext
DataWriterHDF5ExtSubSubMesh -> DataWriterHDF5Ext
Running the script:
bash $PYLITH_DIR/doc/developer/update_1.9to2.0.sh
will update all .cfg files in the current directory and all subdirectories with the new names (you will need to replace $PYLITH_DIR with the directory containing the PyLith source code).
PyLith allows use of the Chaco and ParMetis/Metis partitioners. The name of the ParMetis/Metis partitioner was changed from "parmetis" to "metis".
[pylithapp.mesh_generator]
distributor.partitioner = metis
Buried edges of faults are handled differently in v2.0. A separate nodeset/pset should be created and contain the vertices on the buried edges of the fault. See the Section 6.4.2 of the PyLith manual for more information.
Release Notes
Version 2.0.3
- Bug fixes
- Updated autotools files (Makefile.am, configure.ac) for compatibility with recent versions of automake (up to and including v1.14.1).
Version 2.0.2
- Bug fixes
- Fixed linking issue in Darwin binary distribution, primarily affecting systems with OS X 10.7 and 10.8.
- Improved example journal files for CUBIT/Trelis to improve compability (examples/meshing/surface_nurbs/dem).
- Updated more journal in examples so that APREPRO lines have a leading '$' instead of a '#' to differentiate from comments.
- Added examples/debugging files from Crustal Deformation Modeling workshop debugging tutorial.
Version 2.0.1
- Bug fixes
- Improved example journal files for CUBIT/Trelis to improve compability. All journal files should work with CUBIT 14.1 and Trelis 15.0.
- Created examples of IDless journal files in examples/2d/greensfns. These files should work with all recent versions of CUBIT and Trelis.
- Switched journal APREPRO lines to have leading '$' instead of '#' to differentiate from comments.
- C++
Published by baagaard almost 12 years ago
pylith -
This release fixes some issues with CUBIT/Trelis compatibility in example journal files.
No changes are needed in .cfg files to switch from v2.0.0 to v2.0.1.
Binaries are available from the links below. Detailed installation instructions for the binary packages are in the User Manual.
Migrating from version 1.9 to 2.0
Changes to various C++ objects permitted simplifying the specification of a number of components. The map below indicates the name changes.
CellFilterAvgMesh -> CellFilterAvg
DataWriterVTKMesh -> DataWriterVTK
DataWriterVTKSubMesh -> DataWriterVTK
DataWriterVTKSubSubMesh -> DataWriterVTK
DataWriterHDF5Mesh -> DataWriterHDF5
DataWriterHDF5SubMesh -> DataWriterHDF5
DataWriterHDF5SubSubMesh -> DataWriterHDF5
DataWriterHDF5ExtMesh -> DataWriterHDF5Ext
DataWriterHDF5ExtSubMesh -> DataWriterHDF5Ext
DataWriterHDF5ExtSubSubMesh -> DataWriterHDF5Ext
Running the script:
bash $PYLITH_DIR/doc/developer/update_1.9to2.0.sh
will update all .cfg files in the current directory and all subdirectories with the new names (you will need to replace $PYLITH_DIR with the directory containing the PyLith source code).
PyLith allows use of the Chaco and ParMetis/Metis partitioners. The name of the ParMetis/Metis partitioner was changed from "parmetis" to "metis".
[pylithapp.mesh_generator]
distributor.partitioner = metis
Buried edges of faults are handled differently in v2.0. A separate nodeset/pset should be created and contain the vertices on the buried edges of the fault. See the Section 6.4.2 of the PyLith manual for more information.
Release Notes - PyLith v2.0.1
- Added example (examples/2d/gravity) for viscoelastic deformation in 2-D with gravitational body forces and small strain formulation.
- Bug fixes
- Improved example journal files for CUBIT/Trelis to improve compability. All journal files should work with CUBIT 14.1 and Trelis 15.0.
- Created examples of IDless journal files in examples/2d/greensfns. These files should work with all recent versions of CUBIT and Trelis.
- Switched journal APREPRO lines to have leading '$' instead of '#' to differentiate from comments.
- C++
Published by baagaard almost 12 years ago
pylith - PyLith v2.0.0
This release fixes several bugs in PyLith v1.9.0 and contains major under-the-hood improvements. We strongly recommend all users of previous PyLith releases switch to this latest release.
A few small changes are needed in .cfg files to switch from v1.9.0 to v2.0.0.
Binaries are available from the links below. Detailed installation instructions for the binary packages are in the User Manual. Use the PyLith Installer to install from source. Detailed building instructions for a few platforms in the INSTALL file bundled with the PyLith Installer.
Migrating from version 1.9 to 2.0
Changes to various C++ objects permitted simplifying the specification of a number of components. The map below indicates the name changes.
CellFilterAvgMesh -> CellFilterAvg
DataWriterVTKMesh -> DataWriterVTK
DataWriterVTKSubMesh -> DataWriterVTK
DataWriterVTKSubSubMesh -> DataWriterVTK
DataWriterHDF5Mesh -> DataWriterHDF5
DataWriterHDF5SubMesh -> DataWriterHDF5
DataWriterHDF5SubSubMesh -> DataWriterHDF5
DataWriterHDF5ExtMesh -> DataWriterHDF5Ext
DataWriterHDF5ExtSubMesh -> DataWriterHDF5Ext
DataWriterHDF5ExtSubSubMesh -> DataWriterHDF5Ext
Running the script:
bash $PYLITH_DIR/doc/developer/update_1.9to2.0.sh
will update all .cfg files in the current directory and all subdirectories with the new names (you will need to replace $PYLITH_DIR with the directory containing the PyLith source code).
PyLith allows use of the Chaco and ParMetis/Metis partitioners. The name of the ParMetis/Metis partitioner was changed from "parmetis" to "metis".
[pylithapp.mesh_generator]
distributor.partitioner = metis
Buried edges of faults are handled differently in v2.0. A separate nodeset/pset should be created and contain the vertices on the buried edges of the fault. See the Section 6.4.2 of the PyLith manual for more information.
Release Notes - PyLith v2.0.0
- Replaced C++ Sieve implementation of finite-element data structures with C DMPlex implementation.
DMPlex provides a simpler, more efficient implementation of the finite-element data structures that conforms to the PETSc data management (DM) interface. This provides tighter integration with the rest of PETSc. Additionally, this rewrite of the data structures results in a more efficient memory layout, resulting in better performance. - Improved treatment of buried fault edges, so that the slip naturally tapers to zero along the buried edges.
An additional nodeset/pset is used to designate the buried edges of a fault. This allows the cohesive cells to be inserted up to the edge of the fault without splitting the mesh at the fault edge. The slip will naturally taper to zero at along the buried edges as a result of how the cohesive cells are created - Switched from using Subversion to Git for version control.
The source code repository changed from a CIG maintained Subversion repository to a Git repository at Github.com. The URL for the Git repository is https://github.com/geodynamics/pylith. The installer has been updated accordingly. - Added ability to recursively refine a mesh.
Global uniform refinement can now be done recursively. Each refinement reduces the vertex spacing by a factor of two. Using more than one level of refinement should be done carefully as the mesh quality will generally deteriorate with more levels of refinement. - Directories for output are created as necessary.
Directories where output files are written will be created if necessary. Previously, the directories would not be created, so that opening the output files in a nonexistent directory would generate an error. - Improved error messages.
Error messages originating in PETSc will include a stack trace that includes both PyLith and PETSc code. Previously, only the PETSc code was included. This provides significantly more information for debugging. - Improved CUBIT example for mesh sizing functions.
Based on experimentation with CUBIT 14.0, 14.1, and Trelis 15.0, we have improved the CUBIT mesh sizing examples (examples/meshing/cubit_cellsize). We were able to simplify the journal files and use fewer CUBIT commands. The new procedure also eliminates some CUBIT warnings. - Several small improvements to various sections of the manual based on feedback and questions from users. - Added more information about the workflow involved in using PyLith. - Added a discussion of how to set scales for nondimensionalization. - Added a discussion of how the stable time step is computed for the various materials. - Updated and expanded the discussion of using initial state variables. - Bug fixes - Fixed two MPI related bugs in computing Green's functions in parallel. The number of impulses corresponded to only those on process 0. - Corrected computation of fault tractions (Lagrange multipliers) on process boundaries for prescribed slip with explicit time stepping. - Fixed bug when reading in list of output points with just one point. - Adjusted autoconf Python setup macro to remove temporary sysconfig.pyc file. - Added check to make sure degree of freedom specified in Dirichlet BC is consistent with spatial dimension of problem. - Corrected two typos in the manual related to fault opening and tractions in examples/3d/hex8/step20 and updating to the use of cell.dimension for the quadrature scheme with tets. - Fixed stable time step computed for power-law viscoelastic rheology to match manual.
- C++
Published by baagaard about 12 years ago
pylith - PyLith v1.9.0
This release fixes several bugs in PyLith v1.8.0. We strongly recommend all users of previous PyLith releases switch to this latest release.
No changes are needed in .cfg files to switch from v1.8.0 to v1.9.0. Version 1.9.0 does includes some changes to the friction and material model interfaces, so extensions do require changes. See the templates for details.
The binaries below are suitable for use on single core/processor computers as well as multi-core or multi-processor computers. They can only be used on a single compute node of a cluster. Detailed installation instructions for the binary packages are in the User Manual. Users wanting to run PyLith on multiple compute nodes of a cluster must build from source. Use the PyLith Installer to install from source. Detailed building instructions for a few platforms in the INSTALL file bundled with the PyLith Installer.
RELEASE NOTES - PyLith v1.9.0 - New features - Added Newton-Raphson algorithm for spontaneous rupture simulations with explicit-stepping.
Enforcing the friction criterion in a spontaneous rupture simulation with explicit time-stepping now uses a Newton-Raphson algorithm to find the correct traction increment. This provides a more stable numerical solution and eliminates oscillatory behavior when using rate-state friction.
Added SCEC spontaneous rupture benchmark TPV102 to the benchmark repository. PyLith produces results very similar to several other finite-element codes.
- Bug fixes
- Fixed two MPI related bugs in computing Green's functions in parallel. The number of impulses corresponded to only those on process 0 and the output of the impulses for vertices on processor boundaries was inconsistent.
- Corrected computation of fault tractions (Lagrange multipliers) on process boundaries for prescribed slip with explicit time stepping.
- Fixed bug when reading in list of output points with just one point.
- Adjusted autoconf Python setup macro to remove temporary sysconfig.pyc file.
- Added check to make sure degree of freedom specified in Dirichlet BC is consistent with spatial dimension of problem.
- Corrected two typos in the manual related to fault opening and tractions in examples/3d/hex8/step20 and updating to the use of cell.dimension for the quadrature scheme with tetrahedral cells.
- C++
Published by baagaard about 12 years ago