Skip to content

Release v3.0.0

Compare
Choose a tag to compare
@schuhmaj schuhmaj released this 22 Apr 13:03
· 45 commits to main since this release
cb34bbd

Key Changes

  • The accelerations are now multiplied by -1.0 to follow the geodesy and geophysics sign conventions

Important

This gravity model's output now obeys to the geodesy and geophysics sign conventions.
Hence, the potential $V$ for a polyhedron with a mass $m > 0$ is defined as positive.
Accordingly, the accelerations are defined as $\textbf{g} = + \nabla V$.
The sign of the acceleration output is inverted when compared to the older version, v2.1.0, and before
Have a look at I/O Explaination

Python Interface

  • The Polyhedron is now exposed to Python and enforces compliance with the gravity model preconditions about the vertex ordering. It is impossible to create an invalid Polyhedron if not explicitly specified via the __init__-method.

  • The evaluate and GravityEvaluable do not take a polyhedral_source & density anymore. They only take a Polyhedron as an input argument

  • The utility submodule was removed. This functionality is now grouped inside the Polyhedron class.

    • The read(filenames) to yield vertices and faces can be modeled by creating a Polyhedron from filenames and then effectively by accessing its vertcies and faces properties
    • The check_mesh is now effectively part of the construction of a Polyhedron. If you still require a dedicated check:
      1. Construct the Polyhedron with disabled checks (integrity_check=PolyhedronIntegrity.DISABLE)
      2. Call check_normal_orientation on the instance. It returns the majority plane unit normal orientation (INWARDS or OUTWARDS) and a set of face indices violating this orientation. So, e.g., all plane unit normals are pointing OUTWARDS except the normal at face's array index 1.
    • More details in the docs

Tip

Find more help in the updated Python Examples

C++ Library

  • The Polyhedron is now exposed to Python and enforces compliance with the gravity model preconditions about the vertex ordering. It is impossible to create an invalid Polyhedron if not explicitly specified via the constructor

  • The evaluate and GravityEvaluable do not take a polyhedral_source & density anymore. They only take a Polyhedron as an input argument

  • When using the C++ executable - The yaml configuration file parameter check_mesh defaults now to true and will repair the mesh if possible (so basically, true/ false <--> PolyhedronIntegrity::HEAL/ PolyhedronIntegrity::DISABLE)

Tip

Find more help in the updated C++ Examples

Details

Resolved Issues & Pull Requests

  • Paper writing by @gomezzz in #11
  • JOSS - PRE REVIEW Changes by @schuhmaj in #18
  • [JOSS Review] Fix Python syntax of minimal example by @santisoler in #20
  • [JOSS Review] Minor fix to example using GravityEvaluable by @santisoler in #23
  • [JOSS Review] Increase indentation of list in CONTRIBUTING.md by @santisoler in #25
  • [JOSS Review] Improve Python tests and unpin Numpy version by @santisoler in #26
  • Switch to GitHubPages by @schuhmaj in #35
  • [JOSS Review] Bits and Pieces - Version 2.2 by @schuhmaj in #31
  • Version 3 - Failsafe Polyhedral Gravity Modeling & Polyhedron Class by @schuhmaj in #36

New Contributors

Full Changelog: v2.1.0...v3.0.0