GWB philosophy#
Setting up complex 2D models of geodynamic settings has in the past been hard but feasible. With the advance and the widespread availability of ever more powerful computers to the geodynamic community, detailed regional 3D problems are now within computational range. Although successful attempts have been published, such model setups often have one or many of the following issues:
Code is not readable (even hard for their developers)
Code/initial conditions is/are not modifiable (even hard for their developers)
Code is not extendable
Code is not portable or reproducible in other codes
Code is not shareable which makes everyone reinvent the wheel
The Geodynamic World Builder (GWB) is designed to solve these problems.
To solve these problems, the GWB is built with both a code and a user philosophy in mind. The code philosophy is designed to solve the extendibility, portability and shareability issues and the user philosophy is designed to solve the readability and modifiability issues.
GWB Code Philosophy#
The code philosophy is built around the following points:
A single text-based input file
Code, language and platform independent
Supports Linux, OSX and Windows
Can interface with C++, C, FORTRAN and Python
Up-to-date manual and code documentation
Safe to use in parallel codes
Readable and extensible (modular) codes
Strict version numbering to ensure reproducible results
Following these points will help to create a clean, portable, extendable code with reproducible results. This is of course not everything needed to reach such results. For example, having integration and unit tests with high code coverage and automatic code indentation are important to keep the GWB in a healthy state.
GWB User Philosophy#
The user philosophy is built around the following points:
Tectonic features can be parameterized by lines and area
These features implicitly define a volume
To which a model can be assigned describing
temperature
composition (a label for a material)
Crystal Preferred Orientation
etc.
Parameterized by a human readable JSON file
The main idea behind these points is to design the GWB so that users can easily create complex parameterized initial conditions for their geodynamic setting. How this works should become more clear when reading the rest of the manual.