Releases: GeodynamicWorldBuilder/WorldBuilder
Release version: 1.0.0 (Festive)
After a bit more than six years after the first commit and more than five and a half years after the first release (0.1.0), I am happy to announce the first stable release of the Geodynamic World Builder: version 1.0.0. We now have 15 people who have contributed by making commits to the repository, and I would like to thank them and all the other contributors who helped with this release in various ways! This release was mostly meant to test and fix anything that may have come up in the JOSS review, and the original idea for the release name would be Fixes. A lot of these fixes were made by Lorraine Hwang (@ljhwang) in the documentation. Also, both Rene Gassmoeller (@gassmoeller) and Timo Heister (@tjhei) have been helping a lot with reviewing pull requests in this and the last release. That has all been greatly appreciated, thanks! I would of course also like to thank the JOSS editor Hauke Schulz (@observingClouds) and the reviewers Thomas Knudsen (@busstoptaktik) and Chris Green (@cpgr) for their reviews and help with the paper.
Besides fixes, there were also a few significant new features in this release, so that name didn't seem appropriate anymore. Given that this is the 1.0 release of the World Builder, Festive seemed a better name for this release!
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. [Daniel Douglas; 2024-08-20; #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]
Changed
- In the "mass conserving" model, change the name of the entry "plate velocity" to "spreading velocity" [Haoyuan Li; 2024-03-11; #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, #744]
The release is available from
https://github.com/GeodynamicWorldBuilder/WorldBuilder/releases/tag/v1.0.0
When using this code, please cite:
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, 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, 2019.
And cite the specific version of the software used. This release can be cited as:
Menno Fraters and others. August 2024. The Geodynamic World Builder v1.0.0. Zenodo. https://doi.org/10.5281/zenodo.13352667.
Bibtex entries for these these publications can be found in the CITATIONS file.
Beta release version: 0.6.0 (Emerging)
I am happy to announce the release of version 0.6.0 of the Geodynamic World Builder. We now have 15 people who have contributed through making commits to the repository, and I would like to thank them and all the other contributors who helped with this release in various ways! This release adds the plume feature, which allows you to construct plumes with a complex parameterized shape. Furthermore, spreading ridges can now have variable spreading rates in space and the groundwork has been laid for variable spreading rates in time! The gwb-grid
program also has received some significant upgrades. A new tag output has been created, which is now outputted by gwb-grid
, but it can also be used to filter out cells based on the tag. The documentation also has been steadily improved again. New entries have been added to the Basic Starter Tutorial for the plume feature and the mass conserving slab temperature plugin. Several detailed cookbooks and developer documentation have been added as well.
The name of the release 'emerging' has to do with that is planned to be the last beta release before GWB 1.0.0!
Change log for version 0.6.0 (Emerging) of the Geodynamic World Builder
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]
- Added an option to apply a spline in the mass conserving temperature of the slab. [Haoyuan Li; 2024-02-27; #659]
- Added a cookbook tutorial for a simple subduction model in 2D Chunk geometry. [Magali Billen; 2024-02-16; #535]
- Added a cookbook tutorial for a simple subduction model in 2D Cartesian geometry. [Magali Billen; 2024-02-14; #535]
- 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]
- Added a cookbook for making a transform fault and using this model in ASPECT. [Juliane Dannberg; 2024-02-14; #563]
- Added a system which allows users to tag features. The tag index can then be written out through the gwb-dat program. [Menno Fraters and Timo Heister; 2024-02-15; [#598]]
- Added variable spreading for mid oceanic ridges. [Daniel Douglas; 2024-02-16; #617]
- Added a new plume feature. This feature also includes a temperature model that allows it to interpolate temperature from the center to the margin of the plume using a Gaussian function. [Juliane Dannberg; 2024-02-15; [#620], #657]
- VSCode JSON improvements. VSCode now automatically recognizes .wb files as JSON with comments files (when the WorldBuilder project is opened). VSCode also loads the schema file to provide errors and autocompletion [Timo Heister; 2024-02-16; #578]
- gwb-grid new output formats. Two optional additional output formats ar10.5281/zenodo.7998525e now supported:
--filtered
, to remove background cells, and--by-tag
, to create separate output files for each tag/feature type. [Timo Heister; 2024-02-16; #585 #639] - gwb-grid improvements. This application now uses multiple threads by default, shows a more helpful help screen, and shows version information [Timo Heister; 2024-02-13; #587 #550]
- Added a
--resolution-limit
option to gwb-grid to limit the resolution specified in the .grid file. [Menno Fraters; 2024-02-16; #653] - Added a
random
composition in thecontinental plate
feature that allows the user to specify a random compositional value to a given compositional field. [Arushi Saxena; Menno Fraters; 2024-02-26; #651]
Changed
- Unified the directories
cookbooks/
anddoc/sphinx/user_manual/cookbooks
. All information about cookbooks including the documentation is now bundled in the top-levelcookbooks/
directory. [Rene Gassmoeller; 2024-02-14; #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]
- 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]
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,#518]
- In some cases the bezier curve closest_point_on_curve_segment function would include a half circle around the end point(s) as part of a slab/fault. [Menno Fraters, reported by Daniel Douglas;2023-12-07; #522 and #523]
- In some cases the fault feature would not recognize points as inside the fault if they were exactly on the fault line. This is fixed now. [Rene Gassmoeller; 2024-02-16; #640]
- The input name for the annulus was misspelled as
anullus
. This is now fixed. [Menno Fraters and Juliane Dannberg; 2024-02-22; #539 and #666] - Fixed bug in distance_point_from_curved_planes function. It was not setting the depth_reference_surface variable, leaving it NaN, when it the check point is exactly on a trench/fault point. [Menno Fraters; 2024-02-26; #677]
The release is available from
https://github.com/GeodynamicWorldBuilder/WorldBuilder/releases/tag/v0.6.0
When using this code, please cite:
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, 2019.
And cite the specific version of the software used. Version 0.6.0 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.
Bibtex entries for these these publications can be found in the CITATIONS
file.
Beta release version: 0.5.0 (Docs)
I am happy to announce the release of version 0.5.0 of the Geodynamic World Builder. We now have 12 people who have contributed through making commits to the repository, and I would like to thank them and all the other contributors who helped with this release in various ways! Besides a lot of cleaning and refactoring of the code, extending testing and documentation, the most notable new features of this release is the variable min and max depth of area features. This allows for much more complex layers and thicknesses within the area features. Furthermore continuous benchmarking and testing with some very large scale models has been added and some major performance improvements have been achieved (more to come).
The name of the release 'Docs' has to do with the large focus on rebuilding all the documentation from scratch. We put a lot of emphasis on improving the documentation, since it is very important for projects to be useful. The new manual is a html sphinx based manual (gwb.readthedocs.io), and is a lot more usable than the pdf manual. All the important information has been ported and a new basic starter tutorial has been made as a starting point for new users (the picture above is what they learn to make in that tutorial). There are still a lot of new sections planned to improve the manual for both new and experienced users and developers!
Change log for version 0.5.0 (Docs) of the Geodynamic World Builder
Added
- The World Builder Visualizer can now compress vtu files with zlib and output in binary through the vtu11 library. ASCII output is still available. [Menno Fraters; 2021-06-26; #282]
- The option to use a half space cooling model for the temperature of an oceanic plate has been added to the oceanic plate feature. [Magali Billen; 2021-07-15; #317]
- Information about the depth of the reference surface in the PointDistanceFromCurvedPlanes structure. [Menno Fraters; 2021-07-20; #320]
- The option for a smooth slab temperature structure that conserves mass with distance along the slab surface. [Magali Billen; 2021-07-28; #323]
- The option for a temperature model for an oceanic plate with a constant age using the plate model. [Haoyuan Li; 2021-10-29; #344]
- The cmake targets to easily switch between debug and release mode [Menno Fraters; 2021-10-31; #361]
- A new depth method for the spherical coordinate system called begin at end segment. This adds the spherical correction to the end of the segment instead of the beginning, resulting in a smoother transition between segments. [Menno Fraters; 2021-11-06; #364, #365]
- A new input parameter and accociated 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 and #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]
- 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]
- 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]
- 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 and #396]
- The option to the WordBuilderApp to input 3D spherical coordinates [Menno Fraters; 2022-03-26; #396]
- An equal operator (operator==) for the point class, which compares two points with an espilon. [Menno Fraters; 2022-03-26; #396]
- New gravity plugin system with a uniform gravity plugin where the gravity magnitude can be set from the input file. This how replaces the gravity input provided through the interface. The interface itself will be updated in a future pull request, where the gravity norm parameter will be removed. [Menno Fraters; 2022-03-27; #370]
- ApprovalTest have been added to the unit tests. [Menno Fraters; 2022-04-09; #401]
- Added a cmake target to update the reference test results called
update_test_references
. [Menno Fraters; 2022-04-12; #404] - Added a new multi property query interface called properties to the world. This allows to ask for different properties at the same time, which significantly improve performance. Internally all other interface now use this properties function to reduce complexity. [Menno Fraters; 2022-04-18; #409 and #410]
- Added a new compositional model for fault models such that ensures a smooth transition of compositional value from the fault trace until a particular user-determined distance. This feature can be helpful for model that uses composition of fault to compute other material properties, e.g., viscosity. [Arushi Saxena; 2022-05-19; #356
- Added an interface to compute the distance of a query point to a feature's plane. For example, the distance of a point to a subducting slab could be duely computed. This interface simply calls the previously implemented interfaces of the feature objects and wrap them up. Thus it only takes variables like coordinates and depth in the model and could be called from ASPECT directly.
[Haoyuan Li; 2022-12-23; #453 - Added tester options to allow running the tester with gdb and/or valgrind. Also setup a github action which automatically runs gdb and valgrind when running the tester. [Menno Fraters; 2023-01-26; #466]
- Added some tips and tricks in the doc/sphinx/developer_manual/contributing_to_the_code/tips_and_tricks.md file. [Haoyuan Li; 2023-02-09; #472]
- Added operation options
add
,subtract
andreplace defined only
to the the composition plugins [Menno Fraters; 2023-02-17; #474] - Added a new compositional model for subducting slab models such that ensures a smooth transition of compositional value from one part of a compositional layer to the other side of the layer. This is based on Arushi Saxena's fault composition plugin with the same name (#356) [Menno Fraters; 2023-02-18; #477]
- If World Builder is configured with MPI it now reads input files on a single process and distributes them via MPI to other processes to reduce I/O load. This can be extended in the future to other input files. [Rene Gassmoeller; 2023-04-13; #480]
- Added a new html manual based on Sphinx, including a new tutorial which was designed from scratch to get new users up to speed quickly. It also contains a much structure to add cookbooks, developer and other documentation in the future. [Menno Fraters; 2023-05-31; #379, #379 the related pull request mentioned in that issue.]
Changed
- The World Builder Visualizer will now use zlib compression for vtu files by default. If zlib is not available binary output will be used. [Menno Fraters; 2021-06-26; #282]
- The return argument type of the distance_point_from_curved_planes function has been converted from a map to a struct, requiring a change in the plugin interfaces for 'fault_models' and 'subducting_plate_models', but significantly increasing the speed of the function and all functions that access its returned values. [Rene Gassm...
Beta release version: 0.4.0 (Cascadia)
I am happy to announce the release of version 0.4.0 of the Geodynamic World Builder. Besides a lot of cleaning an refactoring of the code, extending testing and documentation, the most notable new features of this release is the new continuous slab. This allows for much more smooth and realistic slabs to be made. Furthermore continuous benchmarking has been added and some major performance improvements have been achieved (more to come).
The code name Cascadia comes from the Cascadia subduction zone. It is a fitting name, because a project to investigate the Cascadia subduction zone has driven much of the development of version 0.4.0 (and there is more to come) and we can show a beautiful work in progress setup of Cascadia generated through the world builder Visualizer and visualized with Paraview. Enjoy!
Change log for version 0.4.0 (Cascadia) of the Geodynamic World Builder
Added
- Added basic unity build. [Menno Fraters; 2020-08-15; #206]
- Allow to chose interpolation type per feature. [Menno Fraters; 2021-04-23; #224]
- Added a benchmarks and let them automatically run by the github actions. A summary of the results are automatically posted on the github pages. [Menno Fraters; 2021-05-22; #238]
- Added an option to not build the unit tests. [Menno Fraters; 2021-05-22; #238]
- Added an option for Continuous Monotone Spline interpolation. This is useful for faults and slabs which need to be continuous and smooth. [Menno Fraters; 2021-05-24; #130,#237]
Changed
- Change minimum chame version fom 2.8.12 to 2.8.13. [Menno Fraters; 2020-11-16; #215]
- Change minimum xcode version to 11. [Menno Fraters; 2020-12-10; #217]
- Change changelog style to markdown based on Keep a Changelog. [Menno Fraters; 2021-05-01; #230,#231]
- Changed the underlying function which determines when you are inside a slab or a fault. This may slightly change the result, but the new result is more realistic I think. [Menno Fraters; 2021-05-01; #229]
- The Vizualizer now uses compressed output by default. This decreases the file size and increases perforamnce. [Menno Fraters; 2021-05-22; #239]
- The Vizualizer buffers output before it writes it to a file. This increases performance. [Menno Fraters; 2021-05-22; #239]
- In the fault temperature model linear, the entiry top temperature is changed to center temperature and the entry bottom temperature is changed to side temperature, since this represents the actual sides more accurately. [Menno Fraters; 2021-07-09; #260]
- A large overhoal of the distance_point_from_curved_planes function improving the accuracy in spherical coordinates. This may slighty change the results, but it should be an improvement both in accuracy and performance. Also makes available a coordinate system independent distrance function and some fast trigonometric functions. [Menno Fraters; 2021-06-11; #255]
Fixed
- Fixed namespaces, adding
WorldBuilder::
where needed. [Timo Heister; 2020-08-10; #205] - Fixed bug in linear temperature models in several features when using a top/center temperature which computes the background (-1). [Menno Fraters; 2021-06-22; #273]
The release is available from
https://github.com/GeodynamicWorldBuilder/WorldBuilder/releases/tag/v0.4.0
When using this code, please cite:
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, 2019.
And cite the specific version of the software used. Version 0.4.0 can be cited as:
Menno Fraters and others. 2021, June 22. The Geodynamic World Builder v0.4.0. Zenodo. https://doi.org/10.5281/zenodo.5014808.
Bibtex entries for these these publications can be found in the CITATIONS
file.
Beta release version: 0.3.0
I am happy to announce the release of version 0.3.0 of the Geodynamic World Builder. Besides a lot of cleaning an refactoring of the code, extending testing and documentation, the major features of this release are the new python interface and an experimental grains plugin system. The grain plugin system can return grain sizes and rotation matrices. The grains plugin system doesn't have a lot a plugins currently and is mainly meant for developers who want to implement and test out the new interface.
The world builder also does not require a Fortran compiler to be present or need an OpenMP library, making installation easier.
The release is available from
https://github.com/GeodynamicWorldBuilder/WorldBuilder/releases/tag/v0.3.0
When using this code, please cite:
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, 2019.
And cite the specific version of the software used. Version 0.3.0 can be cited as:
Menno Fraters and others. 2019, October 23. The Geodynamic World Builder v0.2.0. Zenodo. https://doi.org/10.5281/zenodo.3900603.
Bibtex entries for these these publications can be found in the CITATIONS
file.
Beta release version: 0.2.0
This release of the Geodynamic World Builder is a large step forward from the beta version 0.1.0. Both from the developer and user perspective a lot has changed. For users there is a new input file structure which allows more advanced compositioning of tectonic features. For developers, the code has become a lot more modular.
The release is available from
https://github.com/GeodynamicWorldBuilder/WorldBuilder/releases/tag/v0.2.0
When using this code, please cite:
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 Discuss., https://doi.org/10.5194/se-2019-24, 2019.
And cite the specific version of the software used. Version 0.2.0 can be cited as:
Menno Fraters and others. 2019, October 23. The Geodynamic World Builder v0.2.0. Zenodo. https://doi.org/10.5281/zenodo.3517132.
Bibtex entries for these these publications can be found in the CITATIONS
file.
Beta release version: 0.1.0
This code will be superseded by code which has been changed so much, that the structure in incomparable and the user input incompatible with this version. But because this version is actually actively being used, and the code is not incorrect, this will become a separate beta version of the code. This will also allow for patches specifically for this version in the future if needed.