You are here: Home / Groups / Short-Term Crustal Dynamics / Wiki / Work Plans / 2016 Nov PyLith Dev Plans
18.220.106.241
  • Discoverability Visible
  • Join Policy Invite Only
  • Created 05 Jan 2021

Work Plans /

2016 Nov PyLith Dev Plans

PyLith Development Plans, Nov 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)

– Multiphysics {{expert.png}} 30%
  • Implement modular approach for specifying governing equations and computing residuals and Jacobians. {{expert.png}}
  • Incompressible elasticity via a pressure field {{intermediate.png}} 20%
  • Poroelasticity {{difficult.png}} 5%
– Higher order basis functions {{difficult.png}} 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.
– Switch to using PETSc time-stepping (TS) algorithms. {{intermediate.png}} 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.
– Improve fault formulation for spontaneous rupture {{intermediate.png}} 10%
  • Removes inner solve associated with updating Lagrange multipliers. This will significantly accelerate the nonlinear solve.
– Allow full specification of the initial conditions (solution and state variables) {{intermediate.png}} 0%
– Update user manual
  • Convert from LyX to LaTeX for ease of maintenance and editing. {{easy.png}} 0%
  • Reorganize for multiphysics implementation. {{intermediate.png}} 5%
  • Reorganize examples. {{intermediate.png}} 0%
    • 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)

– GUI interface for specifying simulation parameters {{difficult.png}}
– Add additional multiphysics implementations and rheologies
  • Drucker-Prager bulk rheology with relaxation to yield surface {{intermediate.png}}
  • Elasticity + heat flow {{difficult.png}}
– Reorganize output for time-dependent Green’s functions and adjoints {{intermediate.png}}
– Multilevel nonlinear solve {{expert.png}}
– Radial basis functions for spatial databases {{intermediate.png}}
– Convert to Python 3 and Pyre 1.0.

Version 4.0 (TBD)

– Earthquake cycle modeling {{difficult.png}}
  • Same mesh for dynamic and quasi-static parts (dynamic -> quasi-static, quasi-static -> dynamic, complete cycle)
– Create strain hardening/softening 2-D and 3-D Drucker-Prager elastoplastic models. {{intermediate.png}}
– Moment tensor point sources via equivalent body forces {{difficult.png}} 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

– Earthquake Cycle Modeling
  • Different meshes for dynamic and quasi-static parts {{expert.png}}
    • 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.
– Data assimilation
  • Use flexibility of multiphysics implementation to support inclusion of data assimilation {{expert.png}}

Minor features

– Begin implementation of data assimilation capabilities via adjoint equation. – Combined prescribed slip / spontaneous rupture fault condition {{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.
– Use threading to accelerate integrations on multi-core machines. {{difficult.png}}

difficulty rating system

intermediate.png intermediate difficult.png difficult expert.png expert

based on the ski trail rating system

Created on , Last modified on