You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGES.md
+14-3Lines changed: 14 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,27 @@
1
1
See <https://github.com/geodynamics/pylith/commits/main> for the complete log of changes made to PyLith.
2
2
3
+
:::{note}
4
+
Starting with v3.0.0, we strictly follow the [semantic versioning guidelines](https://semver.org/).
5
+
The version numbers are in the form `MAJOR.MINOR.PATCH`, where major releases indicate changes to the public API (parameters), minor releases indicate new functionality that is backward compatible, and patch releases indicate backward compatible bug fixes.
6
+
:::
7
+
3
8
## Version 4.0.0
4
9
10
+
### Changes in user parameters
11
+
12
+
* Changed name of fault Lagrange multiplier field for solution component in Python from `lagrange_fault` to `lagrange_multiplier_fault` to match name of solution field in C++.
5
13
* Removed support for importing meshes from LaGriT.
6
-
* Add output of change in fault tractions for prescribed slip.
14
+
15
+
### Other changes
16
+
17
+
* Change in fault tractions are now included in the fault `data_fields` for prescribed slip.
18
+
* Fault and boundary orientation directions are now included in the `info_fields` for simulation output.
7
19
* State variables are now included in the default `data_fields` for simulation output.
8
20
* The default solver settings use the PETSc proper orthogonal decomposition (POD) methodology for initial guess of solutions to improve convergence.
9
-
* Changed name of fault Lagrange multiplier field for solution component in Python from `lagrange_fault` to `lagrange_multiplier_fault` to match name of solution field in C++.
10
21
* Add demonstration of `pylith_powerlaw_gendb` in Step 8 of `examples/reverse-2d`.
11
22
* Add demonstration of using poroelasticity with porosity as a state variable to `examples/magma-2d`.
12
23
* Switched from CppUnit to Catch2 as the C++ testing framework.
13
-
* Update to PETSc 3.19.5
24
+
* Update to PETSc 3.20.2
14
25
* Improve integration with VSCode for testing and debugging (see Developer Guide)
Copy file name to clipboardExpand all lines: docs/intro/development-plan.md
+28-23Lines changed: 28 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,48 +6,53 @@ Future implementation of features is guided by several target applications, incl
6
6
* Inversion of geodetic data for slow slip events, fault creep, and long-term fault slip rates.
7
7
* Quasistatic and dynamic modeling of fluids and faulting.
8
8
9
-
## Version 3.0.4 (September 2023)
9
+
:::{note}
10
+
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).
11
+
This can happen if realize that we should modify the parameters to improve maintainability or prepare for future changes.
12
+
:::
10
13
11
-
Updates for examples and documentation along with bugfixes.
14
+
## Version 4.0.0 (December 2023)
12
15
13
16
* Analytical function spatial database [100%]
14
17
* Use `pod` initial guess to improve convergence [100%]
15
-
* Dynamic prescribed slip with diagonal Jacobian for explicit part of IMEX formulation [75%]
16
-
* Output of fault tractions [75%]
17
-
* Update coordinates with solution [50%]
18
-
* Convert from CppUnit to Catch2 [40%]
18
+
* Output of fault tractions [100%]
19
+
* Output of boundary and fault orientation [100%]
20
+
* Convert from CppUnit to Catch2 [100%]
21
+
22
+
## Version 4.1.0 (March 2024)
23
+
24
+
* Output of fault rupture auxiliary subfields [0%]
25
+
* Dynamic prescribed slip with diagonal Jacobian for explicit part of IMEX formulation [75%]
The diagnostic information includes the outward normal direction (`normal_dir`) and the two tangential directions (`horizontal_tangential_dir` and `vertical_tangential_dir`).
43
+
The default basis order for discretizing these directions is 1, so these produce `vertex_fields` as opposed to `cell_fields` (basis order of 0).
Copy file name to clipboardExpand all lines: docs/user/physics/faults/index.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -68,7 +68,12 @@ The default value of [0, 0, 1] is appropriate for most 3D problems.
68
68
69
69
By default the output observers write both diagnostic information (for example, fault orientation directions) and the slip at each time step.
70
70
The fault coordinate system is shown in {numref}`fig:fault:slip:motions`.
71
-
The vectors in the fault coordinate system can be transformed to the global coordinate system using the direction vectors in the diagnostic output.
71
+
The vectors in the fault coordinate system can be transformed to the global coordinate system using the direction vectors in the diagnostic output ({ref}`sec-user-output-observers`).
72
+
73
+
:::{important}
74
+
The normal direction is chosen based on how the cells are split to create cohesive cells.
75
+
If the normal direction contains a positive z component, then the directions conform to traditional seismologic conventions (along strike and up dip); however, if the normal direction contains a negative z component, then the directions correspond to along strike and down dip directions.
Copy file name to clipboardExpand all lines: docs/user/physics/faults/prescribed-slip.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -284,3 +284,18 @@ The slip and slip initiation times are specified using spatial databases, so the
284
284
:::{seealso}
285
285
See [`KinSrcTimeHistory` Component](../components/faults/../../../components/faults/KinSrcTimeHistory.md) for the Pyre properties and facilities and configuration examples.
286
286
:::
287
+
288
+
## Output
289
+
290
+
The derived subfield available for prescribed slip is the change in tractions on the fault surface.
291
+
292
+
:::{tip}
293
+
To compute the change in tractions on a locked fault, prescribe zero slip on the fault.
294
+
:::
295
+
296
+
```{table} Derived subfields that are available for output for prescribed slip.
Copy file name to clipboardExpand all lines: docs/user/physics/faults/slip-impulses.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,3 +25,14 @@ Impulses will be applied at any point on the fault with a slip component greater
25
25
:class: seealso
26
26
See [`FaultCohesiveImpulses` Component](../../components/faults/FaultCohesiveImpulses.md) for the Pyre properties and facilities and configuration examples.
27
27
:::
28
+
29
+
## Output
30
+
31
+
The derived subfield available for Green's functions is the change in tractions on the fault surface.
32
+
33
+
```{table} Derived subfields that are available for output for Green's functions.
Copy file name to clipboardExpand all lines: docs/user/problems/output.md
+23-1Lines changed: 23 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,8 +36,9 @@ The monitor calculates the percent completed based on the number of steps (e.g.,
36
36
## Observers
37
37
38
38
Observer objects manage transferring the solution and state variables to other objects, including output and external software.
39
-
Currently, PyLith only includes observers for output.
39
+
Currently, the only type of observers implemented in PyLith are ones that produce output.
40
40
41
+
(sec-user-output-observers)=
41
42
### Output Observers
42
43
43
44
PyLith currently supports output to HDF5/Xdmf and VTK files, which can be imported directly into a number of visualization tools, such as ParaView, Visit, and MayaVi.
@@ -55,6 +56,27 @@ Fields with a basis order of 0 are kept at a basis order of 0 when output.
55
56
Fields with a basis order of 1 or more can be output with a basis order of 0 or 1.
56
57
:::
57
58
59
+
The output observers produce files with either diagnostic information (`info` files) or solution and state variable information (`data` files).
60
+
The default behavior is the files include all available information.
61
+
The `info` files include the auxiliary subfields at the beginning of the simulation along with surface orientation information for faults and boundary conditions.
62
+
The `data` files include all solution subfields, state variables, and derived fields (fields computed from the solution, such as Cauchy stress and strain).
63
+
64
+
For boundary conditions the orientation information is provided in terms of x, y, and z components of the unit vectors for the surface normal and tangential directions.
65
+
In 3D the "vertical" tangential direction is the cross product of the surface normal and horizontal tangential direction; it is in the +z direction for a vertical boundary.
66
+
In the case of the horizontal boundary, the horizontal tangential direction is in the +x direction and the "vertical" tangential direction is in the +y direction.
67
+
For a fault surface the horizontal tangential direction generally corresponds to the along-strike direction and the "vertical" tangential direction generally corresponds to the up-dip direction; the exception is a 2D simulation for a vertical cross-section in which the "horizontal" tangential direction corresponds to the dip direction.
68
+
69
+
The orientation information is useful for transforming from components written in terms of a surface (for example, left lateral, reverse, and opening fault tractions), into the model coordinate system (for example, the global Cartesian coordinate system).
70
+
Given unit vector components $n_x$, $n_y$, $n_z$ (normal direction), $h_x$, $h_y$, $h_z$ (horizontal tangential direction or along-strike direction), and $v_x$, $v_y$, $v_z$ (vertical tangential direction or up-dip direction), we can transform a vector in the boundary (or fault) coordinate system ($a_n$, $a_h$, $a_v$) into the global coordinate system using
71
+
72
+
\begin{align}
73
+
a_x &= a_n n_x + a_h h_x + a_v v_x \\
74
+
a_y &= a_n n_y + a_h h_y + a_v v_y \\
75
+
a_z &= a_n n_z + a_h h_z + a_v v_z
76
+
\end{align}
77
+
78
+
This transformation is useful for plotting fault tractions and slip in 3D visualization tools such as ParaView that require vectors in the model coordinate system.
0 commit comments