User Tools

Site Tools


software:pylith:plans:2016-11

This is an old revision of the document!


PyLith Development Plans, Jun 2016

Priorities for PyLith software development, such as new features and enhancements. This a draft for community comment (Nov 7, 2016).

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.

Version 3.0 (Spring 2017)

  1. Multiphysics [30%]
    • Implement modular approach for specifying governing equations and computing residuals and Jacobians.
    • Incompressible elasticity via a pressure field [20%]
    • Poroelasticity [5%]
  2. Higher order basis functions [25%]
    • 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. Switch to using PETSc time-stepping (TS) algorithms. [25%]
    • 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. Improve fault formulation for spontaneous rupture [10%]
    • Removes inner solve associated with updating Lagrange multipliers. This will significantly accelerate the nonlinear solve.
  5. Allow full specification of the initial conditions (solution and state variables)
  6. Update user manual
    • Convert from LyX to LaTeX for ease of use.
    • Reorganize examples.
      • Focus on demonstrating the range of physics and features beginning with simple cases and building towards more complex cases.
      • Include ParaView Python scripts for plotting results.
      • Consider moving examples to Jupyter notebooks; export to PDF files for “print” documentation.

Version 3.1 (late 2017)

  1. GUI interface for specifying simulation parameters
  2. Add additional multiphysics implementations and rheologies
    • Drucker-Prager bulk rheology with relaxation to yield surface
    • Elasticity + heat flow
  3. Reorganize output for time-dependent Green's functions and adjoints
  4. Multilevel nonlinear solve
  5. Radial basis functions for spatial databases

Version 4.0 (TBD)

  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. GUI interface for specifying parameters [25%]
    2. Begin implementation of data assimilation capabilities via adjoint equation.
    3. 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.
    4. Use threading to accelerate integrations on multi-core machines.
software/pylith/plans/2016-11.1478542485.txt.gz · Last modified: 2016/11/07 18:14 by baagaard