User Tools

Site Tools


PyLith Development Plans, Mar 2015

Priorities for PyLith software development, such as new features and enhancements. This a draft for community comment (Mar 6, 2015).

This plan attempts to balance meeting short-term objectives of delivering high priority, new features and meeting long-term objectives of extending the code to solve a broader range of scientific problems.

Current development has slowed because Brad Aagaard (who is not funded by CIG) is unable to devote much time to PyLith development as a result of a substantial increase of other obligations.

Version 2.2 (Jun 2015)

  1. Improve fault formulation for spontaneous rupture [10%]
    • Removes inner solve associated with updating Lagrange multipliers. This will significantly accelerate the nonlinear solve.
  2. Add viscoelastic Drucker-Prager bulk rheology

Version 2.3 (late 2015)

  1. Higher order basis functions [0%]
    • Allow user to select order of basis functions independent of the mesh (which defines the geometry). This permits higher resolution for a given mesh.
  2. Reorganize top-level code to conform to layout needed for multiphysics [0%]
    • Setup modular approach for specifying governing equations and computing residuals and Jacobians.
  3. Reorganize top-level code to allow different startup cases [0%]
    • Elastic prestep
    • User-specified initial solution
    • Checkpoint via special spatial database?
  4. Multilevel nonlinear solve
  5. Radial basis functions for spatial databases [0%]

Version 3.0 (Spring 2016)

  1. Multiphysics
    1. Incompressible elasticity via a pressure field
    2. Elasticity + heat flow
    3. Elasticity + fluid flow
  2. GUI interface for specifying parameters
  3. Switch to using PETSc time-stepping (TS) algorithms. [0%]
    • 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.
  4. Begin implementation of data assimilation capabilities via adjoint equation.

Version 3.1 (Fall 2016)

  1. Earthquake cycle modeling
    • Same mesh for dynamic and quasi-static parts (dynamic → quasi-static, quasi-static → dynamic, complete cycle)
  2. Create strain hardening/softening 2-D and 3-D Drucker-Prager elastoplastic models.
  3. Moment tensor point sources via equivalent body forces [5%]
    • Moment tensor point sources provide a mesh independent deformation source that is better suited for Green's function calculations than slip on a fault surface via cohesive cells.

Features for Future Releases

  • Major features
    1. Earthquake Cycle Modeling
      • Different meshes for dynamic and quasi-static parts
        • Requires interpolation of fields between different meshes/discretizations and may require extrapolation of solutions when quasi-static problems span a larger domain than the dynamic problems.
    2. Data assimilation
      • Use flexibility of multiphysics implementation to support inclusion of data assimilation
  • Minor features
    1. Use KD tree search algorithm to allow output of time histories at an arbitrary location
    2. Combined prescribed slip / spontaneous rupture fault condition
      • Use fault constitutive model to control slip on fault except during episodes of prescribed slip. Need some way to describe when to turn on/off prescribed slip.
    3. Use threading to accelerate integrations on multi-core machines.
software/pylith/plans/2015.txt · Last modified: 2015/03/06 16:25 by baagaard