Skip to content

Commit

Permalink
Merge branch 'main' into spatially_variable_ridges
Browse files Browse the repository at this point in the history
  • Loading branch information
danieldouglas92 authored Feb 15, 2024
2 parents b7a7727 + 260c854 commit 4977551
Show file tree
Hide file tree
Showing 127 changed files with 3,229 additions and 12,882 deletions.
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,5 @@ bin/
lib/
Testing/
doc/doxygen/
doc/manual/html/
doc/manual/pdf/
*.xcf
tests/unit_tests/approval_tests/received/*
7 changes: 4 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
## [Unreleased]
### Added
- Added an option to use the plate model as the reference model for the mass conserving temperature of the slab. \[Haoyuan Li; 2024-02-02; [#471](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/471)
- Added an option to use the plate model as the reference model for the mass conserving temperature of the slab. \[Haoyuan Li; 2024-02-02; [#471](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/471)\]
- Added a cookbook for making a transform fault and using this model in ASPECT. \[Juliane Dannberg; 2024-02-14; [#563](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/563)\]
- Added an option to use the plate model as the reference model for the mass conserving temperature of the slab. \[Haoyuan Li; 2024-02-02; [#471](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/471)
- Added a cookbook for making a transform fault and using this model in ASPECT. \[Juliane Dannberg; 2024-02-14; [#563](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/563)
- Add an option for spatially dependent spreading rates for mid-oceanic ridges. \[Daniel Douglas; 2024-02-15; [#571](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/571)]
- Added a system which allows users to tag features. The tag index can then be written out throught the gwb-dat program. \[Menno Fraters and Timo Heister; 2024-02-15; [[#598](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/598)]\]

### Changed
- Unified the directories `cookbooks/` and `doc/sphinx/user_manual/cookbooks`. All information about cookbooks including the documentation is now bundled in the top-level `cookbooks/` directory. \[Rene Gassmoeller; 2024-02-14; [#558](github.com/GeodynamicWorldBuilder/WorldBuilder/pull/558)\]
- Deleted the deprecated Latex manual. Use the new sphinx documentation instead, which can be build into a .pdf file as well. \[Rene Gassmoeller; 2024-02-14; [#595](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/595)
- Relocated the code that is used to calculate spreading center quantities like distance from the ridge, and spreading rate. Currently the spreading rate is just a constant value, but this will be changed in a follow up pull request. \[Daniel Douglas; 2024-02-14; [#590](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/590)

### Fixed
- Fixed an issue where the ridge feature in spherical geometries for both the half space cooling and plate cooling models gave a discontinuous spreading center when crossing longitudes at intervals of 90 degrees. \[Daniel Douglas; 2024-01-22; [#520](github.com/GeodynamicWorldBuilder/WorldBuilder/pull/520),[#518](github.com/GeodynamicWorldBuilder/WorldBuilder/issues/518)\]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# output variables
grid_type = cartesian
dim = 3
compositions = 0

# domain of the grid
x_min = 0e3
x_max = 250e3
y_min = 0e3
y_max = 100e3
z_min = 0
z_max = 100e3

# grid properties
n_cell_x = 500
n_cell_y = 200
n_cell_z = 200
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"version": "0.6",
"surface temperature":273.15,
"potential mantle temperature":1573.15,
"thermal expansion coefficient":0,
"thermal diffusivity":1.06060606e-6,
"features":
[
{
"model":"oceanic plate",
"name":"oceanic plate A",
"coordinates":[[-1e3,-1e3],[251e3,-1e3],[251e3,101e3],[-1e3,101e3]],
"temperature models":
[
{
"model":"half space model",
"max depth":100e3,
"spreading velocity":0.03,
"top temperature":273.15,
"ridge coordinates":[[[200e3,-1e3],[200e3,50e3]],[[50e3,50e3],[50e3,101e3]]]
}
]
}
]
}
122 changes: 122 additions & 0 deletions cookbooks/3d_cartesian_transform_fault/doc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
(part:user_manual:chap:cookbooks:sec:3d_cartesian_transform_fault)=
Mid-ocean ridge with a transform fault
=========================

The goal of this tutorial is to learn how to set up a model of a mid-ocean ridge with a transform fault, reproducing the setup of Behn et al., 2007: Thermal structure of oceanic transform faults. In addition, this tutorial shows how the created Geodynamic World Builder file can be used as initial condition for the geodynamic modeling code ASPECT. The corresponding cookbook for setting up the ASPECT model can be found [here](https://aspect-documentation.readthedocs.io/en/latest/user/cookbooks/cookbooks/transform_fault_behn_2007/doc/transform_fault_behn_2007.html).

The first step is to prescribe some global parameters for the GWB. This is important because we use the half-space cooling model to compute the temperature distribution within the oceanic plates, and this model uses the thermal diffusivity. In addition, the GWB needs to know what the adiabatic gradient is to compute the correct temperature, and we need to specify the surface and mantle temperature to be consistent with the study we want to reproduce.

Specifically, we here want to set the `surface temperature` to 0 degrees Celsius (273.25 K) and the `potential mantle temperature` to 1300 degrees Celsius (1573.25 K) as in Behn et al., 2007. Since that study does not include adiabatic heating, we need to set the `thermal expansion coefficient` to zero. To reproduce the temperature profile shown in Figure 2 in Behn et al. (2007), we set the `thermal diffusivity` to 1.06060606e-6 m<sup>2</sup>/s (which corresponds to a thermal conductivity of 3.5 W/m/K assuming that the density is 3300 kg/m<sup>3</sup> and the specific keat is 1000 J/kg/K). Note that we need to make sure that these properties are consistent between the Geodynamic World Builder input file and the input file of the geodynamic modeling code that we are using this file as an initial condition for, in this case ASPECT.

::::::{tab-set}

:::::{tab-item} Global parameters
:sync: Partial

```{literalinclude} ../3d_cartesian_transform_fault.wb
:language: json
:lineno-start: 3
:lines: 3-6
```
::::{grid} 2
:::{grid-item-card} 3d_cartesian_transform_fault.wb
:link: ../3d_cartesian_transform_fault.wb
:::
:::{grid-item-card} 3d_cartesian_transform_fault.grid
:link: ../3d_cartesian_transform_fault.grid
:::
::::
:::::

:::::{tab-item} Full file
:sync: Full


```{literalinclude} ../3d_cartesian_transform_fault.wb
:language: json
:lineno-start: 1
:emphasize-lines: 3-6
```

::::{grid} 2
:::{grid-item-card} 3d_cartesian_transform_fault.wb
:link: ../3d_cartesian_transform_fault.wb
:::
:::{grid-item-card} 3d_cartesian_transform_fault.grid
:link: ../3d_cartesian_transform_fault.grid
:::
::::
:::::

::::::


As the next step, we prescribe the geometry and other properties of the oceanic plate. To do this, we create a feature of type `oceanic plate`, which we call `oceanic plate A`. We specify the `coordinates` where this plate should be present in the model. In this case, we want the whole model domain to be within the plate, so we choose coordinates that span the whole model domain, starting with the x=0 and y=0 corner and then going counterclockwise (increasing the x coordinate first) to all other corners at the surface.

In addition to the location, we also need to specify the temperature distribution within the plate.
To be able to do this, we need to provide the following information to the model: `model`, `ridge coordinates`, `spreading velocity` and `max depth`. Please see {ref}`open_features_items_oneOf_4_temperature-models_items_oneOf_2` for more info.
Here, we use a half-space cooling model (using the material properties we have already prescribed globally) as the temperature model. The full spreading rate is 6 cm/yr, so we need to prescribe a spreading velocity of 0.03 m/yr for the oceanic plate feature since the [spreading velocity](open_features_items_oneOf_4_temperature-models_items_oneOf_2_spreading-velocity) describes how fast the plate moves away from the ridge.
We also set the [top temperature](open_features_items_oneOf_4_temperature-models_items_oneOf_2_top-temperature) to 0 degrees Celsius (273.25 K), determining the temperature we use as the surface temperature in the half-space cooling model. Finally, we need to specify the coordinates of the mid-ocean ridge segments. Both segments are parallel to the y-axis, with the first segment being located at x=200 km, going from y=-1 km to y=50 km, and the second located at x=50 km going from y=50 km to y=101 km.


::::::{tab-set}

:::::{tab-item} Thermal structure
:sync: Partial

```{literalinclude} ../3d_cartesian_transform_fault.wb
:language: json
:lineno-start: 7
:lines: 7-24
:emphasize-lines: 4-14
```
::::{grid} 2
:::{grid-item-card} 3d_cartesian_transform_fault.wb
:link: ../3d_cartesian_transform_fault.wb
:::
:::{grid-item-card} 3d_cartesian_transform_fault.grid
:link: ../3d_cartesian_transform_fault.grid
:::
::::
:::::

:::::{tab-item} Full file
:sync: Full


```{literalinclude} ../3d_cartesian_transform_fault.wb
:language: json
:lineno-start: 1
:emphasize-lines: 10-20
```

::::{grid} 2
:::{grid-item-card} 3d_cartesian_transform_fault.wb
:link: ../3d_cartesian_transform_fault.wb
:::
:::{grid-item-card} 3d_cartesian_transform_fault.grid
:link: ../3d_cartesian_transform_fault.grid
:::
::::
:::::

::::::


The figures below show the resulting thermal structure of the model.

```{figure} ./temperature_profile.png
:name: transform_profile
:alt: Transform fault temperature profile.
:align: center
Temperature profile at the center of the transform fault. Output from the Geodynamic World Builder (orange dashed line) plotted on top of Figure 2a of Behn et al., 2007, showing good agreement with the half-space cooling model from that study.
```

```{figure} ./temperature_distribution.png
:name: transform_temperature
:alt: Transform fault temperature distribution.
:align: center
Transform fault geometry and temperature distribution.
```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions cookbooks/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ This section contains self-contained cookbooks on how to design different geodyn
: hidden:
3d_cartesian_rift/doc/README
3d_cartesian_transform_fault/doc/README
```
10 changes: 2 additions & 8 deletions doc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,6 @@ if(WB_BUILD_DOCUMENTATION)

add_custom_target(manual
COMMAND
${CMAKE_COMMAND} -E copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/sphinx/_static/ ${CMAKE_CURRENT_BINARY_DIR}/sphinx/_static/ &&
${SPHINX_EXECUTABLE} -b html -c ${CMAKE_CURRENT_BINARY_DIR}/sphinx -v
${SPHINX_SOURCE} ${SPHINX_BUILD} &&
${SPHINX_EXECUTABLE} -b latex -c ${CMAKE_CURRENT_BINARY_DIR}/sphinx -v
${SPHINX_SOURCE} ${SPHINX_BUILD} && cd ${SPHINX_BUILD} && make
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/sphinx
COMMENT "Generating documentation with Sphinx")
${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target manual_html)

endif()
110 changes: 0 additions & 110 deletions doc/manual/bibliography.bib

This file was deleted.

Loading

0 comments on commit 4977551

Please sign in to comment.