User Tools

Site Tools


software:pylith:plans:2014

This is an old revision of the document!


PyLith Development Plans, Feb 2014

Priorities for PyLith software development, such as new features and enhancements. This a draft for community comment (Feb 20, 2014).

Version 2.0 (by end of Feb 2014)

  1. Replace C++ Sieve implementation of finite-element data structures with C DMPlex implementation. expert [99%]
    • 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.
  2. Switch from using Subversion to Git for version control.
  3. Add ability to recursively refine a mesh.

Version 2.1 (by Jun 2014)

  1. Improve fault formulation for spontaneous rupture [10%]
    • Removes inner solve associated with updating Lagrange multipliers. This will significantly accelerate the nonlinear solve.
  2. 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.
  3. Reorganize top-level code to conform to layout needed for multiphysics [0%]
    • Setup modular approach for specifying governing equations and computing residuals and Jacobians.
  4. 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.
  5. Reorganize top-level code to allow different startup cases [0%]
    • Elastic prestep
    • User-specified initial solution and state-variables
    • Checkpoint?

Version 2.2 (Summer/Fall 2014)

  1. Multiphysics
    1. Incompressible elasticity via a pressure field
    2. Elasticity + heat flow
    3. Elasticity + fluid flow

Version 2.3 (Spring 2015)

  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 organization 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/2014.1392939444.txt.gz · Last modified: 2014/02/20 23:37 by baagaard