Skip to content

Commit

Permalink
Merge pull request #11 from danieldouglas92/add_draft_JOSS_paper
Browse files Browse the repository at this point in the history
Daniels Comments
  • Loading branch information
MFraters authored Mar 8, 2024
2 parents db44497 + d83262d commit 05cedeb
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions doc/JOSS/1.0/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,28 +55,28 @@ bibliography: paper.bib

# Summary

Many Earth science applications require the discretization, parametrization 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 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.

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.

# 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 location 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 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:

1. The configuration is not human-readable.
2. The software is not easily modifiable and extendable.
3. The model setup is not portable to other computing systems or reproducible in other software frameworks.
4. The model setup is not shareable with other users.

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. As a side benefit, 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.
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 worksflow diagram for how to go from a world builder file to visualing the model. Note that the input files for the specific programs themselves are omitted.](workflow_diagram.png)
![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)

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 modelling. The GWB was designed to be a more general planetary structure creator, using the methods shown below.
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.

# Methods

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

## GWB Coding Priniples
The GWB's software architecture is built around the following principles:
Expand All @@ -89,13 +89,13 @@ The GWB's software architecture is built around the following principles:
4. Readable and extensible (modular) codes
5. Strict version numbering to ensure reproducible results

These principles are implemented in an object-oriented C++ code with the mentioned interfaces to other porgramingn languages. All part a user might want to modify are implemented as plugin systems using interface classes that decouple individual modules and allow 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. 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.

## 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 setting.
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.

## Example
Below we show an example input file for a Cartesian model with a subducting plate.
Expand All @@ -116,9 +116,9 @@ Below we show an example input file for a Cartesian model with a subducting plat
}
```

Combining several of these features and changing the `coordinate system` to `spherical` can create the model setup shown in Figure 1: A plate subducting beneath an overriding ocean and a rising plume impinging on the base of the lithosphere between a mid-ocean ridge and a passive margin. The resulting input file is just 85 lines of GWB input formatted in the same way as in the example input file above.
Combining several of these features and changing the `coordinate system` to `spherical` can create the model setup shown in Figure 2: A plate subducting beneath an oceanic plate and a rising plume impinging on the base of the lithosphere between a mid-ocean ridge and a passive margin. The resulting input file is just 85 lines of GWB input formatted in the same way as in the example input file above.

![A schematic example of what can be built with 85 lines of a GWB input file formatted in the same way as in the example input file shown above. This includes a slab with variable dip and thickness along depth and trench subducting under an oceanic plate on the right side of the ridge, a passive continental margin, with layers with variable thickness with it, on the left and a mantle plume in the center. The temperature of the continent is linear, the oceanic plates are defined by a half-space cooling model, the slab temperature is defined by a mass conversing temperature model and the plume adds heat based on a Gaussian around the center.\label{fig:example}](../../sphinx/_static/images/user_manual/basic_starter_tutorial/BST_19.png)
![A schematic example of what can be built with 85 lines of a GWB input file formatted in the same way as in the example input file shown above. This includes a slab with variable dip and thickness along strike and down dip subducting under an oceanic plate on the right side of the ridge, as well as a passive continental margin with layers of variable on the left side of the ridge, and a mantle plume beneath the ridge. The temperature of the continent is linear, the oceanic plates are defined by a half-space cooling model, the slab temperature is defined by a mass conversing temperature model and the plume adds heat based on a Gaussian around the center.\label{fig:example}](../../sphinx/_static/images/user_manual/basic_starter_tutorial/BST_19.png)


# Acknowledgements
Expand Down

0 comments on commit 05cedeb

Please sign in to comment.