Skip to content

Commit 783faaa

Browse files
Merge pull request #804 from baagaard-usgs/docs-update-devplan
Update development plan
2 parents b5805a5 + 9a917e3 commit 783faaa

File tree

6 files changed

+3330
-19
lines changed

6 files changed

+3330
-19
lines changed

developer/pdf_to_svg.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,16 @@
99

1010
filename_pdf = sys.argv[1]
1111
doc = pymupdf.open(filename_pdf) # open a document
12-
page = doc[0]
12+
for i_page, page in enumerate(doc):
1313

14-
filename_svg = filename_pdf.replace(".pdf", ".svg")
15-
with open(filename_svg, "w", encoding="utf-8") as svg_out:
16-
svg_out.write(page.get_svg_image())
14+
if len(doc) > 1:
15+
filename_single = filename_pdf.replace(".pdf", f"-{i_page}.pdf")
16+
single_pdf = pymupdf.open()
17+
single_pdf.insert_pdf(doc, from_page=i_page, to_page=i_page)
18+
print(f"Writing {filename_single}...")
19+
single_pdf.save(filename_single)
20+
21+
filename_svg = filename_pdf.replace(".pdf", ".svg") if len(doc) == 1 else filename_pdf.replace(".pdf", f"-{i_page}.svg")
22+
with open(filename_svg, "w", encoding="utf-8") as svg_out:
23+
print(f"Writing {filename_svg}...")
24+
svg_out.write(page.get_svg_image())

docs/intro/development-plan.md

Lines changed: 39 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,48 +6,75 @@ Future implementation of features is guided by several target applications, incl
66
* Inversion of geodetic data for slow slip events, fault creep, and long-term fault slip rates.
77
* Quasistatic and dynamic modeling of fluids and faulting.
88

9+
We also strive to find the correct balance between adding new features and improving the code internals, performance, and maintainability.
10+
Short-term priorities focus on reimplementing features in version 2.2 that have not yet been migrated to the current formulations for governing equations and discretization.
11+
12+
:::{figure-md} fig:development:plan
13+
<img src="figs/development-1.*" alt="Diagram of development priorities." width="100%"/>
14+
15+
PyLith development priorities by category.
16+
Information to the right of each feature indicates difficulty (colored icon), the relative amount of effort (lower left), and an estimate of how much is completed (lower right percentage).
17+
The arrows indicate the order in which some features must be implemented.
18+
:::
19+
20+
## Anticipated Releases
21+
922
:::{note}
1023
Because we strictly follow the [semantic versioning guidelines](https://semver.org/), a minor release may get promoted to a major releases if we make changes to the public API (parameters).
1124
This can happen if realize that we should modify the parameters to improve maintainability or prepare for future changes.
1225
:::
1326

14-
## Version 5.0.0 (October 2024)
27+
## Version 4.3 (April 2025)
28+
29+
* Specify boundary conditions using faces instead of vertices ![expert](images/intermediate.png) [75%]
30+
* Parallel mesh loading ![expert](images/expert.png) [85%]
31+
32+
## Version 4.4 (June 2025)
33+
34+
* Dynamic prescribed slip with diagonal Jacobian for explicit part of IMEX formulation ![expert](images/expert.png) [80%]
35+
* Add `examples/barwaves-2d` ![expert](images/expert.png) [25%]
36+
* Better preconditioner for incompressible elasticity ![expert](images/expert.png) [80%]
37+
38+
## Version 4.5 (October 2025)
39+
40+
* Spontaneous rupture for quasistatic and dynamic simulations ![expert](images/expert.png) [30%]
41+
42+
43+
## Version 5.0 (June 2026)
1544

16-
* Better preconditioners ![expert](images/expert.png) [67%]
17-
* incompressible elasticity [5%]
18-
* Parallel mesh loading ![expert](images/expert.png) [15%]
1945
* Convert from SWIG to pybind11 ![intermediate](images/intermediate.png) [0%]
2046
* Add support for GeoModelGrids implementation of spatial databases for 3D seismic velocity models. ![intermediate](images/intermediate.png) [0%]
47+
* Update to current version of Pyre ![difficult](images/difficult.png)
48+
* Migrate examples to Jupyter notebooks ![intermediate](images/intermediate.png)
2149
* Update VTK output to use `vtu` files rather than legacy `vtk` files ![easy](images/easy.png) [0%]
2250
* Improve robustness of HDF5 output by opening/closing at each time step ![easy](images/easy.png)[0%]
2351

24-
## Version 6.0.0 (TBD)
52+
## Version 6.0 (TBD)
2553

2654
* Output of fault rupture auxiliary subfields ![intermediate](images/intermediate.png) [0%]
2755
* Improve creation of auxiliary, diagnostic, and derived fields.
28-
* Dynamic prescribed slip with diagonal Jacobian for explicit part of IMEX formulation ![expert](images/expert.png) [75%]
29-
* Update to current version of Pyre ![difficult](images/difficult.png)
3056
* Reimplement Drucker-Prager elastoplastic bulk rheology ![intermediate](images/intermediate.png) [0%]
3157

3258
## Version 7.0.0 (TBD)
3359

34-
* Add `examples/barwaves-2d` ![expert](images/expert.png) [15%]
35-
* Migrate examples to Jupyter notebooks ![intermediate](images/intermediate.png)
36-
* Spontaneous rupture for quasistatic and dynamic simulations ![expert](images/expert.png) [20%]
3760
* Dirichlet boundary conditions with constraints on normal and tangential components. ![difficult](images/difficult.png) [0%]
3861
* Integration with libCEED for fast high order residual evaluation ![expert](images/expert.png)\
3962
* Add ability to output residual field during nonlinear solve for debugging ![easy](images/easy.png) [0%]
4063

4164
## Features for Future Releases
4265

66+
These features are not yet assigned to a release.
67+
They may be added to the planned releases based upon further discussion and contributions from the community.
68+
69+
* Adaptive mesh refinement ![expert](images/expert.png)
70+
* Faults with poroelastic properties ![expert]{images/expert.png} [80%]
4371
* More flexible specification of time-dependent boundary conditions. ![difficult](images/difficult.png) [0%]
4472
* Elasticity with self-gravitation ![intermediate](images/intermediate.png) [0%]
4573
* Coupling of problems with compatible meshes ![difficult](images/difficult.png) [10%]\
4674
Implement "injectors" for solution and state variables.
4775
* Reimplementation of small strain formulation for elasticity ![difficult](images/difficult.png) [20%]
48-
* Moment tensor point sources [5%]\
76+
* Moment tensor point sources [60%]\
4977
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.
50-
* Adaptive mesh refinement ![expert](images/expert.png)
5178
* Line/point fluid sources in poroelasticity ![expert](images/expert.png) [20%]
5279
* Consolidate HDF5 output into a single file ![difficult](images/difficult.png)
5380
* Drucker-Prager bulk rheology with relaxation to yield surface ![intermediate](images/intermediate.png)

docs/intro/figs/development-1.pdf

125 KB
Binary file not shown.

0 commit comments

Comments
 (0)