Skip to content

Commit

Permalink
Update world builder to version v1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
MFraters committed Aug 21, 2024
1 parent 18bb8df commit 71b5d4f
Show file tree
Hide file tree
Showing 221 changed files with 8,600 additions and 1,334 deletions.
13 changes: 12 additions & 1 deletion contrib/world_builder/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,17 @@ Add new entries a the bottom of the current list in the subheading. Item format:

This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0]
### Added
- Added the ability to calculate the water content within the oceanic plate feature and the subducting plate feature. The implementation samples the temperature within the feature, calculates a lithostatic pressure, and determines the water content using parameterized phase diagrams for 4 different lithologies: sediment, mid ocean ridge basalt (MORB), gabbro, and peridotite from [Tian et al., 2019](https://doi.org/10.1029/2019GC008488). \[Daniel Douglas; 2024-08-20; [#661](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/661)\]
- Added a `random uniform distribution deflected` grains model for all features that allows an initial texture computed from a random uniform distribution of rotation matrices applied to a given orientation specified as a set of Euler angles or a rotation matrix. \[Yijun Wang; 2024-06-06; [#713](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/713)\]
### Changed
- In the "mass conserving" model, change the name of the entry "plate velocity" to "spreading velocity" \[Haoyuan Li; 2024-03-11; [#694](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/694)\]
- The Windows MinGW/CYGWIN install options are no longer supported. You are recommended to use Linux subsystems for Windows or the visual studio compiler instead on Windows. \[Menno Fraters; 2024-08-01; #[743](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/743), #[744](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/744)\]

### Fixed


## [0.6.0]
### Added
- Implemented the framework that will allow the mass conserving temperature model to account for the the movement of a spreading center through time. \[Daniel Douglas; Haoyuan Li; 2024-02-29; [#654](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/654)\]
Expand Down Expand Up @@ -50,7 +61,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- A new input parameter and associated functions which define the maximum depth of a model. This allows the world builder to create a complete picture of the world. \[Menno Fraters; 2021-11-08; [#367](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/367) and [#331](https://github.com/GeodynamicWorldBuilder/WorldBuilder/issues/331)\]
- A one of type which can create a JSON schema entry where one of several types can be chosen. \[Menno Fraters; 2022-03-26; [#396](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/396)\]
- A value at points type which can read in an array containing a value and a list of points from the input. \[Menno Fraters; 2022-03-26; [#396](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/396)\]
- A surface object which can take an array of value at points and create an interpolation through delaunay triangulation (with the delaunator library which was added) and a KD-Tree and barycentric linear interplation. \[Menno Fraters, KD-Tree with help of Oliver Kreylos; 2022-03-26; [#396](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/396)\]
- A surface object which can take an array of value at points and create an interpolation through delaunay triangulation (with the delaunator library which was added) and a KD-Tree and barycentric linear interpolation. \[Menno Fraters, KD-Tree with help of Oliver Kreylos; 2022-03-26; [#396](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/396)\]
- The option to make min and max depth into variable surfaces for all area features (continental plate, oceanic plate and mantle layer) and their temperature, composition and grain plugins. \[Menno Fraters; 2022-03-26; [#366](https://github.com/GeodynamicWorldBuilder/WorldBuilder/issues/366) and [#396](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/396)\]
- The option to the WordBuilderApp to input 3D spherical coordinates \[Menno Fraters; 2022-03-26; [#396](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/396)\]
- An equal operator (operator==) for the point class, which compares two points with an espilon. \[Menno Fraters; 2022-03-26; [#396](https://github.com/GeodynamicWorldBuilder/WorldBuilder/pull/396)\]
Expand Down
50 changes: 35 additions & 15 deletions contrib/world_builder/CITATION
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@

@article{GWB_2024_JOSS,
title = {The Geodynamic World Builder: A planetary structure creator for the geosciences},
author = {Fraters, M. and Billen, M., and Gassmöller, R. and Saxena, A. and Heister, T. and Li, H., and Douglas, D., and Dannberg J., and Bangerth W. and Wang, Y.},
doi = {10.21105/joss.06671},
url = {https://doi.org/10.21105/joss.06671},
year = {2024},
publisher = {The Open Journal},
pages = {6671},
journal = {Journal of Open Source Software}
}

@Article{se-10-1785-2019,
AUTHOR = {Fraters, M. and Thieulot, C. and van den Berg, A. and Spakman, W.},
TITLE = {The Geodynamic World Builder: a solution for complex initial conditions in numerical modeling},
Expand All @@ -10,14 +22,24 @@ URL = {https://se.copernicus.org/articles/10/1785/2019/},
DOI = {10.5194/se-10-1785-2019}
}

@misc{gwb-doi-v0.4.0,
title = {{The Geodynamic World Builder} v0.4.0 [software]},
@misc{gwb-doi-v1.0.0,
title = {{The Geodynamic World Builder} v0.6.0 [software]},
author = {Menno Fraters and
others},
month = jun,
year = 2021,
DOI = {10.5281/zenodo.5014808},
URL = {https://doi.org/10.5281/zenodo.5014808},
month = aug,
year = 2024,
DOI = {10.5281/zenodo.13352667},
URL = {https://doi.org/10.5281/zenodo.13352667},
}

@misc{gwb-doi-v0.6.0,
title = {{The Geodynamic World Builder} v0.6.0 [software]},
author = {Menno Fraters and
others},
month = mar,
year = 2024,
DOI = {10.5281/zenodo.10794862},
URL = {https://doi.org/10.5281/zenodo.10794862},
}

@misc{gwb-doi-v0.5.0,
Expand All @@ -30,14 +52,12 @@ DOI = {10.5194/se-10-1785-2019}
URL = {https://doi.org/10.5281/zenodo.7998525},
}

@misc{gwb-doi-v0.6.0,
title = {{The Geodynamic World Builder} v0.6.0 [software]},
@misc{gwb-doi-v0.4.0,
title = {{The Geodynamic World Builder} v0.4.0 [software]},
author = {Menno Fraters and
others},
month = mar,
year = 2024,
DOI = {10.5281/zenodo.10794862},
URL = {https://doi.org/10.5281/zenodo.10794862},
}


month = jun,
year = 2021,
DOI = {10.5281/zenodo.5014808},
URL = {https://doi.org/10.5281/zenodo.5014808},
}
19 changes: 10 additions & 9 deletions contrib/world_builder/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.13.4)
cmake_minimum_required(VERSION 2.8.12)

project(WorldBuilder C CXX)

Expand Down Expand Up @@ -107,7 +107,7 @@ else()
endif()

if(USE_MPI)
message(STATUS "Using MPI.")
message(STATUS "Using MPI found in: ${MPI_INCLUDE_PATH}")
include_directories(${MPI_INCLUDE_PATH})
else()
message(STATUS "Not using MPI.")
Expand Down Expand Up @@ -371,7 +371,7 @@ if (NOT MSVC AND NOT APPLE)
# cmake vesrion 3.12.0 introduces COMPILE_LANGUAGE:FORTRAN, otherwise this would be >=2.8.12
if(NOT ${CMAKE_VERSION} VERSION_LESS "3.9.0")
SET(WB_COMPILER_OPTIONS_PRIVATE -pedantic -Wall -Wextra
$<$<COMPILE_LANGUAGE:CXX>:-Wmost -Wconversion -Wunreachable-code -Wuninitialized -Wmissing-braces -Wunused-parameter -Wold-style-cast -Wshadow -Wfloat-equal -Wpointer-arith -Wwrite-strings
$<$<COMPILE_LANGUAGE:CXX>:-Wmost -Wunreachable-code -Wuninitialized -Wmissing-braces -Wunused-parameter -Wold-style-cast -Wshadow -Wfloat-equal -Wpointer-arith -Wwrite-strings
-Wsynth -Wsign-compare -Woverloaded-virtual -Wliteral-range -Wparentheses -Wunused-local-typedefs -Wcast-qual -fstrict-aliasing -Werror=uninitialized -Wundef
-Wcast-align -Wmissing-declarations -Wredundant-decls -Wdiv-by-zero -Wdisabled-optimization -Wswitch-default -Wunused>)

Expand All @@ -380,7 +380,7 @@ if (NOT MSVC AND NOT APPLE)
endif ()

else()
SET(WB_COMPILER_OPTIONS_PRIVATE "-pedantic -Wall -Wextra -Wmost -Wconversion -Wunreachable-code -Wuninitialized -Wmissing-braces -Wunused-parameter -Wold-style-cast -Wshadow -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wsynth -Wsign-compare -Woverloaded-virtual -Wliteral-range -Wparentheses -Wunused-local-typedefs -Wcast-qual -fstrict-aliasing -Werror=uninitialized -Wundef -Wcast-align -Wmissing-declarations -Wredundant-decls -Wdiv-by-zero -Wdisabled-optimization -Wswitch-default -Wunused")
SET(WB_COMPILER_OPTIONS_PRIVATE "-pedantic -Wall -Wextra -Wmost -Wunreachable-code -Wuninitialized -Wmissing-braces -Wunused-parameter -Wold-style-cast -Wshadow -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wsynth -Wsign-compare -Woverloaded-virtual -Wliteral-range -Wparentheses -Wunused-local-typedefs -Wcast-qual -fstrict-aliasing -Werror=uninitialized -Wundef -Wcast-align -Wmissing-declarations -Wredundant-decls -Wdiv-by-zero -Wdisabled-optimization -Wswitch-default -Wunused")

if (${FORCE_COLORED_OUTPUT})
SET(WB_COMPILER_OPTIONS_PRIVATE "-fcolor-diagnostics ${WB_COMPILER_OPTIONS_PRIVATE}")
Expand All @@ -396,15 +396,16 @@ if (NOT MSVC AND NOT APPLE)

# Preventing issues with older cmake compilers (<3.7) which do not support VERSION_GREATER_EQUAL
# cmake vesrion 3.12.0 introduces COMPILE_LANGUAGE:FORTRAN, otherwise this would be >=2.8.12
# -Warith-conversion was added in gcc 10, add back in when the minimum becomes gcc 10.
if(NOT ${CMAKE_VERSION} VERSION_LESS "3.9.0")
SET(WB_COMPILER_OPTIONS_PRIVATE -pedantic -Wall -Wextra $<$<COMPILE_LANGUAGE:CXX>:-Wunused-variable -Wmissing-braces -Wunused-parameter -Wpointer-arith -Wwrite-strings -Wsynth -Wsign-compare -Woverloaded-virtual -Wno-placement-new -Wno-literal-suffix -Wno-parentheses -Wno-unused-local-typedefs -Wcast-qual -fstrict-aliasing -Wmaybe-uninitialized -Werror=maybe-uninitialized -Wparentheses -Wfloat-equal -Wundef -Wcast-align -Wlogical-op -Wmissing-declarations -Wredundant-decls -Wdiv-by-zero -Wdisabled-optimization -Wswitch-default -Wno-unused>)
SET(WB_COMPILER_OPTIONS_PRIVATE -pedantic -Wall -Wextra $<$<COMPILE_LANGUAGE:CXX>:-Wunused-variable -Wold-style-cast -Wconversion -Wsign-conversion -Wmissing-braces -Wunused-parameter -Wpointer-arith -Wwrite-strings -Wsynth -Wsign-compare -Woverloaded-virtual -Wno-placement-new -Wno-literal-suffix -Wno-parentheses -Wno-unused-local-typedefs -Wcast-qual -fstrict-aliasing -Wmaybe-uninitialized -Werror=maybe-uninitialized -Wparentheses -Wfloat-equal -Wundef -Wcast-align -Wlogical-op -Wmissing-declarations -Wredundant-decls -Wdiv-by-zero -Wdisabled-optimization -Wswitch-default -Wno-unused>)

if (${FORCE_COLORED_OUTPUT})
SET(WB_COMPILER_OPTIONS_PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-fdiagnostics-color=always> ${WB_COMPILER_OPTIONS_PRIVATE})
SET(WB_COMPILER_OPTIONS_PRIVATE -fdiagnostics-color=always ${WB_COMPILER_OPTIONS_PRIVATE})
endif()

else()
SET(WB_COMPILER_OPTIONS_PRIVATE "-pedantic -Wall -Wextra -Wunused-variable -Wmissing-braces -Wunused-parameter -Wpointer-arith -Wwrite-strings -Wsynth -Wsign-compare -Woverloaded-virtual -Wno-placement-new -Wno-literal-suffix -Wno-parentheses -Wno-unused-local-typedefs -Wcast-qual -fstrict-aliasing -Wmaybe-uninitialized -Werror=maybe-uninitialized -Wparentheses -Wfloat-equal -Wundef -Wcast-align -Wlogical-op -Wmissing-declarations -Wredundant-decls -Wdiv-by-zero -Wdisabled-optimization -Wswitch-default -Wno-unused>")
SET(WB_COMPILER_OPTIONS_PRIVATE "-pedantic -Wall -Wextra -Wold-style-cast -Wconversion -Wsign-conversion -Wunused-variable -Wmissing-braces -Wunused-parameter -Wpointer-arith -Wwrite-strings -Wsynth -Wsign-compare -Woverloaded-virtual -Wno-placement-new -Wno-literal-suffix -Wno-parentheses -Wno-unused-local-typedefs -Wcast-qual -fstrict-aliasing -Wmaybe-uninitialized -Werror=maybe-uninitialized -Wparentheses -Wfloat-equal -Wundef -Wcast-align -Wlogical-op -Wmissing-declarations -Wredundant-decls -Wdiv-by-zero -Wdisabled-optimization -Wswitch-default -Wno-unused>")

if (${FORCE_COLORED_OUTPUT})
SET(WB_COMPILER_OPTIONS_PRIVATE "-fdiagnostics-color=always ${WB_COMPILER_OPTIONS_PRIVATE}")
Expand Down Expand Up @@ -496,7 +497,7 @@ else()
endif()

if(${USE_MPI})
target_link_libraries (${WB_TARGET} PUBLIC MPI::MPI_CXX)
target_link_libraries (${WB_TARGET} PUBLIC MPI::MPI_CXX MPI::MPI_C)
endif()

if(WB_ENABLE_APPS)
Expand All @@ -506,7 +507,7 @@ if(WB_ENABLE_APPS)
set(_libs ${_libs} ${ZLIB_LIBRARIES})
endif()
if (USE_MPI)
set(_mpi_dep "PUBLIC MPI::MPI_CXX")
set(_mpi_dep "PUBLIC MPI::MPI_CXX MPI::MPI_C")
else()
set(_mpi_dep "")
endif()
Expand Down
2 changes: 1 addition & 1 deletion contrib/world_builder/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.6.0
1.0.0
2 changes: 1 addition & 1 deletion contrib/world_builder/appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version: '0.6.0.{build}'
version: '1.0.0.{build}'

image: Visual Studio 2015

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.6",
"version": "1.0",
"cross section":[[0,0],[100,0]],
"features":
[
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.6",
"version": "1.0",
"cross section":[[0,0],[100,0]],
"features":
[
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.6",
"version": "1.0",
"cross section":[[0,0],[100,0]],
"features":
[
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.6",
"version": "1.0",
"coordinate system":{"model":"spherical", "depth method":"begin segment"},
"cross section":[[0,0],[10,0]],
"features":
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.6",
"version": "1.0",
"coordinate system":{"model":"spherical", "depth method":"begin segment"},
"cross section":[[0,0],[10,0]],
"features":
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.6",
"version": "1.0",
"potential mantle temperature":1500,
"thermal expansion coefficient":2.0e-5,
"maximum distance between coordinates":100000,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.6",
"version": "1.0",
"coordinate system":{"model":"cartesian"},
"features":
[
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.6",
"version": "1.0",
"features":
[
{"model":"oceanic plate", "name":"oceanic plate A", "coordinates":[[-1e3,-1e3],[2001e3,-1e3],[2001e3,1000e3],[-1e3,1000e3]],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.6",
"version": "1.0",
"surface temperature":273.15,
"potential mantle temperature":1573.15,
"thermal expansion coefficient":0,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.6",
"version": "1.0",
"coordinate system":{"model":"spherical", "depth method":"begin segment"},
"cross section":[[0,0],[10,0]],
"maximum distance between coordinates":0.01,
Expand Down
3 changes: 1 addition & 2 deletions contrib/world_builder/cookbooks/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,10 @@ This section contains self-contained cookbooks on how to design different geodyn


```{toctree}
: hidden:
:hidden:
3d_cartesian_rift/doc/README
3d_cartesian_transform_fault/doc/README
simple_subduction_2d_cartesian/doc/README
simple_subduction_2d_chunk/doc/README
```
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version":"0.6",
"version":"1.0",
"coordinate system":{"model":"cartesian"},
"cross section":[[0,0],[8000e3,0]],
"surface temperature":273, "potential mantle temperature":1573,
Expand Down Expand Up @@ -32,22 +32,23 @@
{"model":"subducting plate", "name":"Slab",
"coordinates":[[3500e3,-100e3],[3500e3,100e3]],
"dip point":[0,0],"max depth":1000e3,
"segments":[{"length":200e3,"thickness":[300e3],"top truncation":[-50e3],"angle":[0,30]},
{"length":100e3, "thickness":[300e3],"top truncation":[-50e3], "angle":[30,50]},
{"length":500e3, "thickness":[300e3],"top truncation":[-50e3], "angle":[50,50]},
{"length":300e3, "thickness":[300e3],"top truncation":[-50e3], "angle":[50,10]},
{"length":300e3, "thickness":[300e3],"top truncation":[-50e3], "angle":[10,10]}],
"composition models":[
"segments":[{"length":200e3,"thickness":[300e3],"top truncation":[-50e3],"angle":[0,30]},
{"length":100e3, "thickness":[300e3],"top truncation":[-50e3], "angle":[30,50]},
{"length":500e3, "thickness":[300e3],"top truncation":[-50e3], "angle":[50,50]},
{"length":300e3, "thickness":[300e3],"top truncation":[-50e3], "angle":[50,10]},
{"length":300e3, "thickness":[300e3],"top truncation":[-50e3], "angle":[10,10]}],
"composition models":[
{"model":"uniform", "compositions":[0], "max distance slab top":100e3}],
"temperature models":[{"model":"mass conserving",
"reference model name": "plate model",
"density":3300, "thermal conductivity":3.3,"adiabatic heating":false,
"plate velocity":0.03,
"ridge coordinates":[[[8000e3,-100e3],[8000e3,100e3]]],
"coupling depth":80e3,
"forearc cooling factor":20.0,
"taper distance":100e3,
"min distance slab top":-200e3, "max distance slab top":300e3}]
}
"temperature models":[{"model":"mass conserving",
"reference model name": "plate model",
"density":3300, "thermal conductivity":3.3,"adiabatic heating":false,
"spreading velocity":0.03,
"subducting velocity":0.03,
"ridge coordinates":[[[8000e3,-100e3],[8000e3,100e3]]],
"coupling depth":80e3,
"forearc cooling factor":20.0,
"taper distance":100e3,
"min distance slab top":-200e3, "max distance slab top":300e3}]
}
]
}
Loading

0 comments on commit 71b5d4f

Please sign in to comment.