Skip to content

Commit

Permalink
Adress comments Rene
Browse files Browse the repository at this point in the history
  • Loading branch information
MFraters committed Mar 8, 2024
1 parent 05cedeb commit 0bf25c1
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions doc/JOSS/1.0/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,13 @@ bibliography: paper.bib

# Summary

Many Earth science applications require the discretization, parameterization and/or visualization of complex geological features in a 3D geometry in global or regional settings. A prime example are geodynamic models, which have to make assumptions about the Earth's thermal and chemical structure and the geometry of different features such as plates, subducted slabs, or mantle plumes. This structure is needed in instantaneous models, as model initial conditions, or to test different hypotheses and compare model predictions to observations. Other example applications are the creation of an Earth velocity structure for seismic forward modeling and hypothesis-testing, or the visualization of tectonic features in structural geology.
Many Earth science applications require the discretization, parameterization and/or visualization of complex geological features in a 3D geometry in global or regional settings. A prime example are geodynamic models, which have to make assumptions about the Earth's thermal and chemical structure and the geometry of different features such as plates, subducted slabs, or mantle plumes. This structure is needed in instantaneous models, as model initial conditions, or to test different hypotheses and compare model predictions to observations. Other examples are the creation of an Earth velocity structure for seismic forward modeling and hypothesis-testing, or the visualization of tectonic features in structural geology.

The Geodynamic World Builder (GWB) has been designed to make the creation of complex parameterized models significantly easier. It can also be used to design simple synthetic models and it supports the use of several types of datasets to set up models. Besides setting up initial conditions for geodynamic models, the GWB can also be used to make detailed 3D visualizations of geologic, tectonic and geodynamic settings.
The Geodynamic World Builder (GWB) has been designed to make the creation of complex parameterized models significantly easier. It can also be used to design simple synthetic models and it supports the use of several types of datasets to set up models. Besides setting up initial conditions for geodynamic models, the GWB can also visualize complex 3D geologic, tectonic and geodynamic settings.

# Statement of need

The increased availability of computational resources, infrastructure and new numerical methods over the last decades has allowed for the creation of complex numerical models that closely resemble specific locations on the Earth using a 3D geometry and a high resolution. However, the related increase in complexity has also made setting up these more detailed regional or global models exceedingly difficult, especially in three dimensions. Furthermore, investigating the model dynamics often requires testing different scenarios involving variations in model geometry, thermal or chemical structure, or other model assumptions. This highlights the need for changing the model setup in a way that is easy, efficient, and robust. Although successful studies have been published, such model setups often have one or many of the following disadvantages:
The increased availability of computational resources, infrastructure and new numerical methods over the last decades has allowed for the creation of complex numerical models that closely resemble specific locations on the Earth using a 3D geometry and a high resolution. However, the related increase in complexity has also made setting up these more detailed regional or global models exceedingly difficult, especially in three dimensions. Furthermore, investigating the model dynamics often requires testing different scenarios involving variations in model geometry, thermal or chemical structure, or other model assumptions. This highlights the need for a way to change the model setup that is easy, efficient, and robust. Although successful studies have been published, such model setups often have one or many of the following disadvantages:

1. The configuration is not human-readable.
2. The software is not easily modifiable and extendable.
Expand All @@ -70,35 +70,35 @@ The increased availability of computational resources, infrastructure and new nu

These issues lead to a number of problems with the reproducibility and reliability of modeling studies, which threaten to undermine the predictive power and usefulness of modeling results. The GWB has been designed to address these challenges, by creating human readable, parameterized, portable, reproducible, and shareable geodynamic model setups. Critically, the GWB comes with its own programs to visualize the constructed model through applications like Paraview. Creating the models requires no programming knowledge. Therefore, the GWB can be easily used to visualize tectonic and geodynamic settings for publications, teaching, and public outreach.

![A workflow diagram for how to go from a world builder file to visualizing the model. Note that the input files for the specific programs themselves are omitted.](workflow_diagram.png)
![A workflow diagram for how a world builder file can be used to create and visualize a geodynamic model. Note that the input files for the intermediate programs are omitted.](workflow_diagram.png)

The GWB has been already been used in several published studies, examples include @Saxena_Dannberg_etal_2023, @Gea_Negredo_etal_2023, @Sandiford_Craig_timothy_2023 and @vanderWiel_Hinsbergen_etal_2024. Other tools to solve this problem have emerged at around the same time as the first GWB release (@Fraters_Thieulot_etal_2019). Examples include GeomIO (@Bauville_Baumann_2019 and @Spang_Baumann_2022), which uses an approach based on vector graphics, Easy (https://easyinit.readthedocs.io/), which uses a more generic function-based approach, UWGeodynamics (@Beucher_Moresi_etal_2019), which is specifically designed for Underworld (@Moresi_Dufour_2002) and GemPy (@Varga_Schaaf_2019 and @Schaaf_Varga_2021), which is designed for structural modeling. The GWB was designed to be a more general planetary structure creator, using the methods shown below.
The GWB has been used in several published studies to model global fault patterns, plume, and plate dynamics (@Saxena_Dannberg_etal_2023, @Gea_Negredo_etal_2023, @Sandiford_Craig_timothy_2023 and @vanderWiel_Hinsbergen_etal_2024). Other tools to solve this problem have emerged at around the same time as the first GWB release (@Fraters_Thieulot_etal_2019). Examples include GeomIO (@Bauville_Baumann_2019 and @Spang_Baumann_2022), which uses an approach based on vector graphics, Easy (https://easyinit.readthedocs.io/), which uses a more generic function-based approach, UWGeodynamics (@Beucher_Moresi_etal_2019), which is specifically designed for Underworld (@Moresi_Dufour_2002) and GemPy (@Varga_Schaaf_2019 and @Schaaf_Varga_2021), which is designed for structural modeling. The GWB was designed to be a more general planetary structure creator, using the methods shown below.

# Methods

To address the challenges outlined in the previous section, the Geodynamic World Builder implements specific code and world parameterization principles.

## GWB Coding Priniples
## GWB Code Principles
The GWB's software architecture is built around the following principles:

1. A single text-based input file
2. Code, language and platform independent
2. Code, language and platform independence
1. Support for **Linux**, **macOS** and **Windows**
2. Official interfaces for **C++**, **C**, **FORTRAN** and **Python**
3. Safe parallel execution
4. Readable and extensible (modular) codes
4. Readable and extensible software modules
5. Strict version numbering to ensure reproducible results

These principles are implemented in an object-oriented C++ code with the aforementioned interfaces to other programming languages. All parts a user might want to modify are implemented as plugin systems using interface classes that decouple individual modules and allow the user to easily extend the code with new features. Following these principles is the first step to create a clean, portable, extendable code with reproducible results. In addition, the GWB includes an automated extensive test suite with benchmarks, integration, and unit tests with high code coverage, memory checking, automatic code indentation, and a spell checker to keep the GWB in a healthy state.
These principles are implemented in an object-oriented C++ code with the aforementioned interfaces to other programming languages. All parts a user might want to modify are implemented as plugin systems using interface classes that decouple individual modules and allow the user to easily extend the code with new features. In addition, the GWB includes an automated extensive test suite with benchmarks, integration, and unit tests with high code coverage, memory checking, automatic code indentation, and a spell checker to keep the GWB in a healthy state.

## GWB World Parameterization Principles

The GWB's world parameterization principles are built around the idea that a complex model region can be split into individual tectonic features. These tectonic features can be parameterized by defining their location and geometry in terms of points, lines or areas in a map view. For example, a continental plate can be represented as an area on a map, and the GWB user defines this area. A fault is a linear feature on a map, so the user can define the fault trace as a line at the surface. Users can also provide additional information for a feature, such as a spatially variable thickness or dip angle. The GWB then uses these parameters to create the 3D geometry of the feature, defining its volume. Furthermore, users can attach one or many models to those volumes to define additional properties such as thermal or chemical structure. These can be very simple models, such as a uniform temperature distribution, or follow a more complex distribution, such as a half space cooling model, or a McKenzie model [@McKenzie_1970] or mass conserving [@Billen_Fraters_AGU_2023] slab temperature model.

All these parameterizations are bundled in a single input file, which is human readable, writeable, and editable. The main idea behind this design of the GWB is that users can easily create, modify and visualize complex parameterized geodynamic or tectonic settings.
All these tectonic features are bundled in a single input file, which is human readable, writeable, and editable. The main idea behind this design of the GWB is that users can easily create, modify and visualize complex parameterized geodynamic or tectonic settings.

## Example
Below we show an example input file for a Cartesian model with a subducting plate.
Below we show an example input file for a Cartesian model that contains a single feature, namely a subducting plate.

```json
{
Expand All @@ -123,7 +123,7 @@ Combining several of these features and changing the `coordinate system` to `sph

# Acknowledgements

We would like to acknowledge all other contributors to the project, especially Lorraine Hwang, Becky Fildes and John Naliboff for their advice and support for this project throughout the years. We would also like to acknowledge NSF for their funding and support through grants EAR-1620618 (CPO), OCE-1948902 (Cascadia), EAR-0949446 (CIG), EAR-1550901 (CIG) and EAR-1925677 (FRES).
We would like to acknowledge all other contributors to the project, especially Lorraine Hwang, Rebecca Fildes and John Naliboff for their advice and support for this project throughout the years. We would also like to acknowledge NSF for their funding and support through grants EAR-1620618, OCE-1948902, EAR-0949446, EAR-1550901, EAR-1925677, and EAR-2149126.

# References

Expand Down

0 comments on commit 0bf25c1

Please sign in to comment.