18.216.53.7
  • Discoverability Visible
  • Join Policy Invite Only
  • Created 05 Jan 2021

2016 PyLith Dev Plans

Version 4
by (unknown)
Version 5
by (unknown)

Deletions or items before changed

Additions or items after changed

1 == !PyLith Development Plans, Jun 2016 ==
2
3 Priorities for !PyLith software development, such as new features and enhancements. This a draft for community comment (Jun 24, 2016).
4
5 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.
6
7 Current development is slower than in the past because Brad Aagaard (who is not funded by CIG) is unable to devote as much time to !PyLith development due to a substantial increase of other obligations.
8
9 === Version 3.0 (Spring 2017) ===
10
11 # Multiphysics [[Image(expert.png, 40px)]] 15%
12 * Setup modular approach for specifying governing equations and computing residuals and Jacobians. [[Image(expert.png, 40px)]]
13 * Incompressible elasticity via a pressure field [[Image(intermediate.png, 25px)]]
14 * Elasticity + heat flow [[Image(difficult.png, 25px)]]
15 * Poroelasticity [[Image(difficult.png, 25px)]]
16 # Higher order basis functions [[Image(difficult.png, 25px)]] 20%
17 * Allow user to select order of basis functions independent of the mesh (which defines the geometry). This permits higher resolution for a given mesh.
18 # Switch to using PETSc time-stepping (TS) algorithms. [[Image(intermediate.png, 25px)]] 25%
19 * 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.
20 # Improve fault formulation for spontaneous rupture [[Image(intermediate.png, 25px)]] 10%
21 * Removes inner solve associated with updating Lagrange multipliers. This will significantly accelerate the nonlinear solve.
22 # Add Drucker-Prager with relaxation to yield surface bulk rheology [[Image(intermediate.png, 25px)]] 0%
23
24 === Version 3.1 (late 2017) ===
25
26 # Reorganize top-level code to allow different startup cases [[Image(intermediate.png, 25px)]] 0%
27 * Elastic prestep
28 * User-specified initial solution
29 * Checkpoint via special spatial database?
30 * Reorganization for time-dependent Green's functions and adjoints
31 # Multilevel nonlinear solve
32 # Radial basis functions for spatial databases [[Image(intermediate.png, 25px)]] 0%
33
34 === Version 4.0 (TBD) ===
35
36 # Earthquake cycle modeling [[Image(difficult.png, 25px)]]
37 * Same mesh for dynamic and quasi-static parts (dynamic -> quasi-static, quasi-static -> dynamic, complete cycle)
38 # Create strain hardening/softening 2-D and 3-D Drucker-Prager elastoplastic models.[[Image(intermediate.png, 25px)]]
39 # Moment tensor point sources via equivalent body forces [[Image(difficult.png, 25px)]] 5%
40 * 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.
41
42 === Features for Future Releases ===
43
44 ==== Major features ====
45 # Earthquake Cycle Modeling
46 * Different meshes for dynamic and quasi-static parts [[Image(expert.png, 40px)]]
47 * 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.
48 # Data assimilation
49 * Use flexibility of multiphysics implementation to support inclusion of data assimilation [[Image(expert.png, 40px)]]
50
51 ==== Minor features ====
52 # GUI interface for specifying parameters [[Image(difficult.png, 25px)]] 25%
53 # Begin implementation of data assimilation capabilities via adjoint equation.
54 # Combined prescribed slip / spontaneous rupture fault condition [[Image(difficult.png, 25px)]]
55 * 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.
56 -
# Use threading to accelerate integrations on multi-core machines. [[Image(difficult.png, 25px)]]
+
# Use threading to accelerate integrations on multi-core machines. [[Image(difficult.png, 25px)]]
57 +
----
58 +
==== difficulty rating system ====
59 +
60 +
||[[Image(intermediate.png, 25px)]] intermediate
61 +
62 +
||[[Image(difficult.png, 25px)]] difficult
63 +
64 +
||[[Image(expert.png, 40px)]] expert
65 +
66 +
||
67 +
68 +
''based on the ski trail rating system''