Generalised self-consistent and automated domain discretisation for multi-scale geophysical models.
LibShingle: a computational research software library providing a high-level abstraction to spatial discretisation, or mesh generation, for domains containing complex, fractal-like boundaries that characterise those in numerical simulations of geophysical dynamics. This is accompanied by a compact, shareable and necessarily complete description of the domain discretisation.
Geophysical model domains typically contain irregular, complex fractal-like boundaries and physical processes that act over a wide range of scales. Constructing geographically constrained boundary-conforming spatial discretisations of these domains with flexible use of anisotropic, fully unstructured meshes is a challenge. The problem contains a wide range of scales and a relatively large, heterogeneous constraint parameter space. Approaches are commonly ad hoc, model or application specific and insufficiently described. Development of new spatial domains is frequently time-consuming, hard to repeat, error prone and difficult to ensure consistent due to the significant human input required. As a consequence, it is difficult to reproduce simulations, ensure a provenance in model data handling and initialisation, and a challenge to conduct model intercomparisons rigorously. Moreover, for flexible unstructured meshes, there is additionally a greater potential for inconsistencies in model initialisation and forcing parameters. This library introduces a consistent approach to unstructured mesh generation for geophysical models, that is automated, quick-to-draft and repeat, and provides a rigorous and robust approach that is consistent to the source data throughout. The approach is enabling further new research in complex multi-scale domains, difficult or not possible to achieve with existing methods.
Further details are provided in the library source and Shingle project manual.
For further information and updates, please contact the lead author Dr Adam S. Candy at firstname.lastname@example.org.
View the project on GitHub: shingleproject/Shingle.
A selection of geophysical domains where Shingle has been applied to describe and generate geophysical domain spatial discretisation.
Includes a selection of examples, from a relatively straight-forward high-level GUI-driven interaction accessible to modellers new to mesh generation, to complex low-level development communicating with the LibShingle library. Python interaction is used within the source, in generating documentation and in example Jupyter notebooks.
A verification test engine is continuously run in response to source code changes, some of which is tested under Travis.
An earlier version of the library Shingle 1.0 is available at: https://github.com/shingleproject/Shingle1.0, with details on the Shingle1.0 webpage.
This project is maintained by Dr Adam S. Candy.