Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update gwb to v1.0.0 #6012

Merged
merged 3 commits into from
Aug 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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} v1.0.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},
}
17 changes: 9 additions & 8 deletions contrib/world_builder/CMakeLists.txt
Original file line number Diff line number Diff line change
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
8 changes: 5 additions & 3 deletions contrib/world_builder/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ For more information see the [GWB site](https://geodynamicworldbuilder.github.io

## Frequently Asked Questions (FAQ)
### What are the minimum requirements to compile the library and tools?
For GWB version 0.6.0 only a C++14 compiler and CMake version higher than 2.8.12 are required to compile the library tools. Note that for some optional features (such as certain wrappers and unity build) a higher version of CMake and other dependencies may be needed (e.g., a Fortran compiler to compile the Fortran wrapper).
Currently, GWB requires only a C++14 compiler and CMake version higher than 2.8.12 to compile the library tools. Note that for some optional features (such as certain wrappers and unity build) a higher version of CMake and other dependencies may be needed (e.g., a Fortran compiler to compile the Fortran wrapper).
### What do I do when I have a question or want to request a feature?
If you have a question about the code and you can not find the answer easily in the documentation or the question is not already raised as an [issue](https://github.com/GeodynamicWorldBuilder/WorldBuilder/issues), please let us know by opening an [issue on github](https://github.com/GeodynamicWorldBuilder/WorldBuilder/issues/new). This is also the preferred method for asking for new features for GWB.

Expand All @@ -36,11 +36,13 @@ Feel free to join!
### How to cite?
The developers of the Geodynamic World Builder request that you cite the following publication:

Fraters, M., Billen, M., Gassmöller, R., Saxena, A., Heister, T., Li, H., Douglas, D., Dannberg J., Bangerth W. and Wang, Y.: The Geodynamic World Builder: A planetary structure creator for the geosciences, Journal of Open Source Software, [https://doi.org/10.21105/joss.06671](https://doi.org/10.21105/joss.06671), 2024.

Fraters, M., Thieulot, C., van den Berg, A., and Spakman, W.: The Geodynamic World Builder: a solution for complex initial conditions in numerical modelling, Solid Earth, [https://doi.org/10.5194/se-10-1785-2019](https://doi.org/10.5194/se-10-1785-2019), 2019.

And cite the specific version of the software used. Version 0.6.0 can be cited as:
And cite the specific version of the software used. The current release can be cited as:

Menno Fraters and others. 2024, March 8. The Geodynamic World Builder v0.6.0. Zenodo. [https://doi.org/10.5281/zenodo.10794862](https://doi.org/10.5281/zenodo.10794862).
Menno Fraters and others. August 2024. The Geodynamic World Builder v1.0.0. Zenodo. [https://doi.org/10.5281/zenodo.13352667](https://doi.org/10.5281/zenodo.13352667).

### How can I follow the progress of this project?
There are multiple ways in which you can follow this project:
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