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.
View the project on GitHub: shingleproject/Shingle.
- Candy A.S. and Pietrzak J.D. (2017) Shingle 2.0: generalising self-consistent and automated domain discretisation for multi-scale geophysical models, see also arXiv:1703.08504, Geosci. Model Dev., in press.
- Candy A.S. (2017) A consistent approach to unstructured mesh generation for geophysical models, project pages: shingleproject.org, In Review.
Example geophysical domains
A selection of geophysical domains where Shingle has been applied to describe and generate geophysical domain spatial discretisation.
- Introduce a consistent approach to the generation of boundary representation to arbitrary geoid bounds.
- A user-friendly, accessible and extensible framework for model-independent geophysical domain mesh generation.
- An intuitive, hierarchical formal grammar to fully describe and share the full heterogeneous set of constraints for the spatial discretisation of geophysical model domains.
- Natural language basis for describing geophysical domain features.
- Self-consistent, scalable, automated and efficient mesh prototyping.
- Platform for iterative development that is repeatable, reproducible with a provenance history of generation.
- Enabling rigorous unstructured mesh generation in general, for a wide range of geophysical applications, in a process that is automated, quick-to-draft and repeat, rigorous and robust, and consistent to the source data throughout.
Verification test engine
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.