Skip to main content

Shingle

Build Status Python2 PyPI DOI

Generalised self-consistent and automated domain discretisation for multi-scale geophysical models.

Shingle

Shingle is a generalised and accessible framework for model-independent and self-consistent geophysical domain discretisation, which accurately conform to fractal-like bounds and at varyingly resolved spatial scales. The full heterogeneous set of constraints are necessarily completely described by an extensible, hierarchical formal grammar with an intuitive natural language basis for geophysical domain features to achieve robust reproduction and consistent model intercomparisons.

LibShingle: 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.

Outline web page: http://shingleproject.org

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 contact@shingleproject.org and see related research pages at http://candylab.org.

Example geophysical domains

A selection of geophysical domains where Shingle has been applied to describe and generate geophysical domain spatial discretisation.

Shingle examples

Objectives

  1. Introduce a consistent approach to the generation of boundary representation to arbitrary geoid bounds.
  2. A user-friendly, accessible and extensible framework for model-independent geophysical domain mesh generation.
  3. An intuitive, hierarchical formal grammar to fully describe and share the full heterogeneous set of constraints for the spatial discretisation of geophysical model domains.
  4. Natural language basis for describing geophysical domain features.
  5. Self-consistent, scalable, automated and efficient mesh prototyping.
  6. Platform for iterative development that is repeatable, reproducible with a provenance history of generation.
  7. 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 http://travis-ci.org/shingleproject/Shingle.

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.

Metadata

Release files for shingle 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for shingle 2.2.0
File Size Uploaded Provenance
shingle-2.2.0.tar.gz 132.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for shingle 2.2.0
File Interpreter ABI Platform
shingle-2.2.0-cp27-cp27m-macosx_10_13_x86_64.whl CPython 2.7 CPython 2.7 pymalloc macOS 10.13+ x86-64 Details

Total release size: 345.4 kB

Release files / shingle-2.2.0.tar.gz

Download URL shingle-2.2.0.tar.gz
Size 132.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3ac4135d6410e66313349647e0c38fede771b650cfa35d4dc0cea420bf1db36c
BLAKE2b-256 checksum
How to use checksums
6357217a922055e4376d5e0979ee4c22071292acac2cc2b713992ac1ef3181cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / shingle-2.2.0-cp27-cp27m-macosx_10_13_x86_64.whl

Download URL shingle-2.2.0-cp27-cp27m-macosx_10_13_x86_64.whl
Size 213.3 kB
Tags CPython 2.7 CPython 2.7 pymalloc macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
e08ae01805fecc5e3677db2d27306de9cc7b02e7f0a8626f2bfe957a08ee6808
BLAKE2b-256 checksum
How to use checksums
a7eae6e3ffc94562af3f70b9d29c2dd1189c39e719a328ede82385b168ee8260
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for shingle 2.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page