[CIG-ALL] PyLith v2.0.0 released
Brad Aagaard
baagaard at usgs.gov
Fri Jun 6 08:39:45 PDT 2014
Greetings,
I am pleased to announce the release of PyLith 2.0.0, a finite-element
code designed to solve dynamic elastic problems and quasi-static
viscoelastic problems in tectonic deformation.
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.
You can download the source code and binaries from
http://geodynamics.org/cig/software/packages/short/pylith
Detailed installation instructions for the binary packages are in the
User Manual with detailed building instructions for a few platforms in
the INSTALL file bundled with the PyLith Installer utility.
======================================================================
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.
More information about the CIG-ALL
mailing list