# PyLith Development Plan, June 2019 ## Version 3.0.0beta3 (June 2019) * Prescribed slip for faults with buried edges [90%] * Clean up of examples [50%] * Other bugfixes ## Version 2.2.2 (July 2019) * Add ability to output residual field during nonlinear solve for debugging ![easy](images/easy.png) * Release bugfixes * Fix material deallocation memory issue. * Fix PETSc version test for tagged release. ## Version 3.0.0 (August 2019) * Multiphysics * Implement modular approach for specifying governing equations and computing residuals and Jacobians. ![expert](images/expert.png) [100%] * Incompressible elasticity via a pressure field ![intermediate](images/intermediate.png) [95%] * Higher order basis functions ![difficult](images/difficult.png) [100%] Allow user to select order of basis functions independent of the mesh (which defines the geometry). This permits higher resolution for a given mesh. * Switch to using PETSc time-stepping (TS) algorithms for quasi-static simulations. ![intermediate](images/intermediate.png) [100%] 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. * Modular approach for initial conditions ![intermediate](images/intermediate.png) [100%] * Testing via Method of Manufactured Solutions ![difficult](images/difficult.png) [80%] ## Version 3.1 (June, 2020) * Use PETSc time-stepping (TS) algorithms for dynamic simulations. ![intermediate](images/intermediate.png) [50%] * Improve fault formulation for spontaneous rupture ![expert](images/expert.png) [10%] Removes inner solve associated with updating Lagrange multipliers. This will significantly accelerate the nonlinear solve. * Convert to Python 3 ![difficult](images/difficult.png) * Reorganize output for time-dependent Green's functions and adjoints ![intermediate](images/intermediate.png) * Poroelasticity [15%] ![difficult](images/difficult.png) Contribution led by Josimar da Silva and Robert Walker. * Parallel mesh loading ![expert](images/expert.png) Requires creating cohesive cells in parallel. * Integration with libCEED for fast high order residual evaluation in dynamic simulations ![expert](images/expert.png) Contribution led by Jed Brown. ## Version 3.2 * Earthquake cycle modeling ![expert](images/expert.png) (dynamic → quasi-static, quasi-static → dynamic, complete cycle) * Reimplementation of small strain formulation ![intermediate](images/intermediate.png) * Moment tensor point sources [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 * Drucker-Prager bulk rheology with relaxation to yield surface ![intermediate](images/intermediate.png) * Create strain hardening/softening 2-D and 3-D Drucker-Prager elastoplastic models. ![intermediate](images/intermediate) * Elasticity + heat flow ![intermediate](images/intermediate.png) * Multilevel nonlinear solve ![expert](images/expert.png) * Radial basis functions for spatial databases ![difficult](images/difficult.png) * Adaptive mesh refinement ![expert](images/expert.png) * Adjoint for data assimilation ![difficult](images/difficult.png) * Combined prescribed slip / spontaneous rupture fault condition ![difficult](images/difficult.png) 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.