- Version 3
- by (unknown)
- Version 4
- by (unknown)
Deletions or items before changed
Additions or items after changed
1 | == !PyLith Development Plans, Feb 2014 == | |||
---|---|---|---|---|
2 | Priorities for !PyLith software development, such as new features and enhancements. This a draft for community comment (Feb 20, 2014). | |||
3 | ||||
4 | 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. | |||
5 | ||||
6 | === Version 2.0 (early March 2014) === | |||
7 | Status: We have almost everything working. We are in the process of fixing a few bugs related to creating cohesive cells and running in parallel. | |||
8 | ||||
9 | # Replace C++ Sieve implementation of finite-element data structures with C DMPlex implementation. [[Image(expert.png, 40px)]] 99% | |||
10 | * 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. | |||
11 | # Switch from using Subversion to Git for version control. [[Image(done.png, 25px)]] | |||
12 | # Add ability to recursively refine a mesh. [[Image(done.png, 25px)]] | |||
13 | === Version 2.1 (by Jun 2014) === | |||
14 | This is the version that will be available for use at the June 2014 workshop. We are behind schedule for getting multiphysics done by then, and because this is a fixed deadline, we will probably aim to get some additional less ambitious features completed. Allowing different startup cases could slip to version 2.2. | |||
15 | ||||
16 | # Improve fault formulation for spontaneous rupture [[Image(intermediate.png, 25px)]] 10% | |||
17 | * Removes inner solve associated with updating Lagrange multipliers. This will significantly accelerate the nonlinear solve. | |||
18 | # Higher order basis functions [[Image(expert.png, 40px)]] 0% | |||
19 | * Allow user to select order of basis functions independent of the mesh (which defines the geometry). This permits higher resolution for a given mesh. | |||
20 | # Reorganize top-level code to conform to layout needed for multiphysics [[Image(difficult.png, 25px)]] 0% | |||
21 | * Setup modular approach for specifying governing equations and computing residuals and Jacobians. | |||
22 | # Reorganize top-level code to allow different startup cases [[Image(intermediate.png, 25px)]] 0% | |||
23 | * Elastic prestep | |||
24 | * User-specified initial solution | |||
25 | * Checkpoint via special spatial database? | |||
26 | # Radial basis functions for spatial databases [[Image(intermediate.png, 25px)]] 0% | |||
27 | # Improved handling of buried fault edges [[Image(intermediate.png, 25px)]] 25% | |||
28 | === Version 2.2 (Summer/Fall 2014) === | |||
29 | # Multiphysics | |||
30 | * Incompressible elasticity via a pressure field [[Image(difficult.png, 25px)]] | |||
31 | * Elasticity + heat flow [[Image(difficult.png, 25px)]] | |||
32 | * Elasticity + fluid flow [[Image(difficult.png, 25px)]] | |||
33 | # GUI interface for specifying parameters | |||
34 | # Switch to using PETSc time-stepping (TS) algorithms. [[Image(intermediate.png, 25px)]] 0% | |||
35 | * 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. | |||
36 | # Multilevel nonlinear solve | |||
37 | === Version 2.3 (Spring 2015) === | |||
38 | # Earthquake cycle modeling [[Image(difficult.png, 25px)]] | |||
39 | * Same mesh for dynamic and quasi-static parts (dynamic → quasi-static, quasi-static → dynamic, complete cycle) | |||
40 | # Create strain hardening/softening 2-D and 3-D Drucker-Prager elastoplastic models. [[Image(intermediate.png, 25px)]] | |||
41 | # Moment tensor point sources via equivalent body forces [[Image(difficult.png, 25px)]] 5% | |||
42 | * 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. | |||
43 | === Features for Future Releases === | |||
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 organization to support inclusion of data assimilation [[Image(expert.png, 40px)]] | |||
50 | ==== Minor features ==== | |||
51 | # Use KD tree search algorithm to allow output of time histories at an arbitrary location [[Image(difficult.png, 25px)]] | |||
52 | # Combined prescribed slip / spontaneous rupture fault condition [[Image(difficult.png, 25px)]] | |||
53 | * 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. | |||
54 | - | # 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)]]
|
55 | + | |||
56 | + | |||
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 | + | ||[[Image(done.png, 25px)]] done ||
|
||
67 | + | |||
68 | + | ''based on the ski trail rating system'' |