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.

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.1392929690.txt.gz · Last modified: 2014/02/20 20:54 by baagaard