[CIG-ALL] PyLith 1.4.0

Brad Aagaard baagaard at usgs.gov
Wed Jul 1 16:53:14 PDT 2009


I am pleased to announce the release of PyLith 1.4.0, a finite-element
code designed to solve dynamic elastic problems and quasi-static
viscoelastic problems in tectonic deformation.

This release adds several new features to PyLith, including (1) a
Power-law nonlinear bulk rheology, (2) integration with PETSc
nonlinear solvers, (3) automatic nondimensionalization of all
parameters, (4) parsing of units in spatial database files, (5) a
common time-dependent formulation for Dirichlet, Neumann, and point
force boundary conditions, (6) pylithinfo, a diagnostic utility that
dumps the current hierarchy of PyLith parameters to a file, and (7)
replacement of Pyrex/Pyrexembed with SWIG. Nondimensionalization of
the problem restores the symmetry of the Jacobian matrix, which
significantly reduces memory use. We encourage all users of previous
PyLith releases to switch to this latest release.

You can download the source code and binaries from

     http://geodynamics.org/cig/software/packages/short/pylith

Detailed installation instructions are in the User Manual with example
installation procedures for a few platforms in the bundled doc/install
directory.


RELEASE NOTES

   * Power-law viscoelastic bulk rheology

     Added a 3-D power-law viscoelastic bulk rheology. Integration with
     the PETSc SNES solver permits use of this nonlinear bulk
     constitutive relation. The nonlinear solver should be used
     whenever a problem contains a power-law viscoelastic rheology.

   * Automatic nondimensionalization of parameters

     All internal calculations use nondimensional values to permit
     application across a broad range of spatial and temporal scales.
     All parameters are nondimensionalized during initialization and
     output values are dimensonalized, so that the use only deals with
     dimensioned values. The units in spatial database files are now
     parsed to provide support for units across all PyLith
     parameters. The nondimensionalization of values eliminates the
     need to condition the system for kinematic earthquake sources and
     restores the symmetry of the sparse system matrix, which
     significantly reduces memory use.

   * Time-dependent boundary conditions

     Created a common time-dependent formulation for Dirichlet,
     Neumann, and point force boundary conditions. The formulation
     allows specification of a spatially variable initial value,
     spatially variable constant rate of change with a spatially
     variable start time, and/or a spatially variable amplitude
     modulated by a user-specified time history with a spatially
     variable start time. Previously, only Dirichlet boundary
     conditions could have a temporal variation, which was limited to a
     spatially variable rate of change with a spatially uniform start
     time.

   * pylithinfo

     This diagnostic utility dumps all PyLith parameters for a given
     simulation to a text file. The text file uses indentation to show
     the hierarchy of components in the simulation. The --verbose flag
     adds the description of the parameter and the location where its
     value is set by the user.

   * SWIG for calling C++ from Python

     Replaced use of Pyrex/Pyrexembed with SWIG for calling C++ from
     Python. This greatly simplifies the process of creating a Python
     module that allows interacting with C++ from Python.

  * Bug fixes

   - Fixed distribution of mesh across processors for multiple
     faults. Cases where some processors did not have vertices on a
     fault generated an error during distribution.

======================================================================
MIGRATING FROM VERSION 1.3 TO 1.4
======================================================================

A number of changes to the code require updating old parameter
settings for use with version 1.4.

(1) The mesh "importer" is now called "reader".

(2) The spatial database facility for a material, "db", is separated
into a "db_properties" and a "db_initial_state". The initial stress
and strain tensors are specified using the "db_initial_stress" and
"db_initial_strain" facilities. The names of some of the spatial
database values for physical properties for viscoelastic properties
have changed.

(3) The code is now intelligent enough to determine the dimensions of
the quadrature required (e.g., Quadrature2D and Quadrature2Din3D,
etc). Setting the quadrature to the object for a given spatial
dimension and cell dimension is no longer allowed because it is done
automatically.

(4) The names of the output filters have changed and include suffixes
Mesh or SubMesh to indicate that they operate on a mesh or submesh
(e.g., CellFilterAvg is now CellFilterAvgMesh or
CellFilterAvgSubMesh). This is related to the use of C++ templates.

(5) The DirichletPoints boundary condition has been renamed to
DirichletBC.

(6) The procedure for enabling certain features no longer involves
setting a "use" property to True. Instead, the features are enabled
when the user sets the component to a facility. This applies to
gravity, initial stresses, initial strains, and initial state
variables, and time-dependent boundary conditions (Dirichlet, Neumann,
and point force).

(7) Nondimensionalization of the problem eliminates the need to
condition the fault constraints. The "mat_db" facility was removed.

(8) The Dirichlet and Neumann boundary conditions now follow a more
general time dependence. The names of the facilities and the names of
the values in the spatial databases are, in most cases, different.

(9) The FixedDOFDB has been renamed to ZeroDispDB in order to better
reflect the type of spatial database.



More information about the CIG-ALL mailing list