polyhedral-gravity 3.2.1rc1__cp311-cp311-macosx_10_13_x86_64.whl → 3.3rc2__cp311-cp311-macosx_10_13_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {polyhedral_gravity-3.2.1rc1.dist-info → polyhedral_gravity-3.3rc2.dist-info}/METADATA +56 -43
- polyhedral_gravity-3.3rc2.dist-info/RECORD +6 -0
- {polyhedral_gravity-3.2.1rc1.dist-info → polyhedral_gravity-3.3rc2.dist-info}/WHEEL +1 -1
- polyhedral_gravity.cpython-311-darwin.so +0 -0
- polyhedral_gravity-3.2.1rc1.dist-info/RECORD +0 -6
- {polyhedral_gravity-3.2.1rc1.dist-info → polyhedral_gravity-3.3rc2.dist-info/licenses}/LICENSE +0 -0
- {polyhedral_gravity-3.2.1rc1.dist-info → polyhedral_gravity-3.3rc2.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: polyhedral_gravity
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.3rc2
|
4
4
|
Summary: Package to compute full gravity tensor of a given constant density polyhedron for arbitrary points according to the geodetic convention
|
5
5
|
Author: Jonas Schuhmacher
|
6
6
|
Author-email: jonas.schuhmacher@tum.de
|
@@ -19,9 +19,19 @@ Classifier: Operating System :: MacOS
|
|
19
19
|
Classifier: Operating System :: POSIX :: Linux
|
20
20
|
Classifier: Intended Audience :: Science/Research
|
21
21
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
22
|
-
Requires-Python: >=3.
|
22
|
+
Requires-Python: >=3.8
|
23
23
|
Description-Content-Type: text/markdown
|
24
24
|
License-File: LICENSE
|
25
|
+
Dynamic: author
|
26
|
+
Dynamic: author-email
|
27
|
+
Dynamic: classifier
|
28
|
+
Dynamic: description
|
29
|
+
Dynamic: description-content-type
|
30
|
+
Dynamic: license
|
31
|
+
Dynamic: license-file
|
32
|
+
Dynamic: project-url
|
33
|
+
Dynamic: requires-python
|
34
|
+
Dynamic: summary
|
25
35
|
|
26
36
|
# polyhedral-gravity-model
|
27
37
|
|
@@ -95,20 +105,20 @@ The evaluation of the polyhedral gravity model requires the following parameters
|
|
95
105
|
| Polyhedral Mesh (either as vertices & faces or as polyhedral source files) |
|
96
106
|
| Constant Density $\rho$ |
|
97
107
|
|
98
|
-
The mesh and the
|
99
|
-
Have a look the documentation to view the [supported mesh files](https://esa.github.io/polyhedral-gravity-model/quickstart/supported_input.html).
|
108
|
+
The mesh and the constant density's unit must match.
|
109
|
+
Have a look at the documentation to view the [supported mesh files](https://esa.github.io/polyhedral-gravity-model/quickstart/supported_input.html).
|
100
110
|
|
101
111
|
### Output
|
102
112
|
|
103
113
|
The calculation outputs the following parameters for every Computation Point *P*.
|
104
114
|
The units of the respective output depend on the units of the input parameters (mesh and density)!
|
105
|
-
Hence, if e.g
|
115
|
+
Hence, if e.g., your mesh is in $km$, the density must match. Further, output units will be different accordingly.
|
106
116
|
|
107
|
-
| Name | Unit (if mesh in $[m]$ and $\rho$ in $[kg/m^3]$) |
|
108
|
-
|
109
|
-
| $V$ | $\frac{m^2}{s^2}$ or $\frac{J}{kg}$ | The potential or also called specific energy
|
110
|
-
| $V_x$, $V_y$, $V_z$ | $\frac{m}{s^2}$ | The gravitational
|
111
|
-
| $V_{xx}$, $V_{yy}$, $V_{zz}$, $V_{xy}$, $V_{xz}$, $V_{yz}$ | $\frac{1}{s^2}$ | The spatial rate of change of the gravitational
|
117
|
+
| Name | Unit (if mesh in $[m]$ and $\rho$ in $[kg/m^3]$) | Comment |
|
118
|
+
|:----------------------------------------------------------:|:------------------------------------------------:|:----------------------------------------------------------------:|
|
119
|
+
| $V$ | $\frac{m^2}{s^2}$ or $\frac{J}{kg}$ | The potential or also called specific energy |
|
120
|
+
| $V_x$, $V_y$, $V_z$ | $\frac{m}{s^2}$ | The gravitational acceleration in the three cartesian directions |
|
121
|
+
| $V_{xx}$, $V_{yy}$, $V_{zz}$, $V_{xy}$, $V_{xz}$, $V_{yz}$ | $\frac{1}{s^2}$ | The spatial rate of change of the gravitational acceleration |
|
112
122
|
|
113
123
|
|
114
124
|
>[!NOTE]
|
@@ -124,7 +134,7 @@ around a cube:
|
|
124
134
|
|
125
135
|
```python
|
126
136
|
import numpy as np
|
127
|
-
from polyhedral_gravity import Polyhedron, GravityEvaluable, evaluate, PolyhedronIntegrity, NormalOrientation
|
137
|
+
from polyhedral_gravity import Polyhedron, GravityEvaluable, evaluate, PolyhedronIntegrity, NormalOrientation, MetricUnit
|
128
138
|
|
129
139
|
# We define the cube as a polyhedron with 8 vertices and 12 triangular faces
|
130
140
|
# The polyhedron's normals point outwards (see below for checking this)
|
@@ -167,7 +177,7 @@ potential, acceleration, tensor = evaluate(
|
|
167
177
|
The more advanced way is to use the `GravityEvaluable` class. It caches the
|
168
178
|
internal data structure and properties which can be reused for multiple
|
169
179
|
evaluations. This is especially useful if you want to compute the gravity
|
170
|
-
for multiple computation points
|
180
|
+
for multiple computation points but don't know the "future points" in advance.
|
171
181
|
|
172
182
|
```python
|
173
183
|
evaluable = GravityEvaluable(polyhedron=cube_polyhedron) # stores intermediate computation steps
|
@@ -188,21 +198,24 @@ This property is - by default - checked when constructing the `Polyhedron`! So,
|
|
188
198
|
is impossible if not **explicitly** disabled to create an invalid `Polyhedron`.
|
189
199
|
You can disable/ enable this setting via the optional `integrity_check` flag and can even
|
190
200
|
automatically repair the ordering via `HEAL`.
|
191
|
-
If you are confident that your mesh is defined correctly (e.g
|
201
|
+
If you are confident that your mesh is defined correctly (e.g., checked once with the integrity check)
|
192
202
|
you can disable this check (via `DISABLE`) to avoid the additional runtime overhead of the check.
|
203
|
+
Also, you can set the metric unit of the mesh and the density.
|
204
|
+
This also influences the output unit. E.g., Density in $kg/m^3$, Mesh in $m$, then the potential is given in $m^2/s^2$.
|
193
205
|
|
194
206
|
```python
|
195
207
|
cube_polyhedron = Polyhedron(
|
196
|
-
polyhedral_source=(cube_vertices, cube_faces),
|
197
|
-
density=cube_density,
|
208
|
+
polyhedral_source=(cube_vertices, cube_faces),# coordinates in m (default), km, or unitless
|
209
|
+
density=cube_density, # kg/m^3 (default) or kg/km^3 or unitless
|
198
210
|
normal_orientation=NormalOrientation.INWARDS, # OUTWARDS (default) or INWARDS
|
199
211
|
integrity_check=PolyhedronIntegrity.VERIFY, # VERIFY (default), DISABLE or HEAL
|
212
|
+
metric_unit=MetricUnit.METER, # METER (default), KILOMETER, UNITLESS
|
200
213
|
)
|
201
214
|
```
|
202
215
|
|
203
216
|
> [!TIP]
|
204
217
|
> More examples and plots are depicted in the
|
205
|
-
[jupyter notebook](script/polyhedral-gravity.ipynb).
|
218
|
+
[jupyter notebook](script/polyhedral-gravity.ipynb) and the [second jupyter notebook](script/Kleopatra.ipynb)
|
206
219
|
|
207
220
|
|
208
221
|
### Minimal C++ Example
|
@@ -267,8 +280,8 @@ As a second option, you can also install the python interface with pip from [PyP
|
|
267
280
|
pip install polyhedral-gravity
|
268
281
|
```
|
269
282
|
|
270
|
-
Binaries for the most common platforms are available on PyPI including
|
271
|
-
Windows, Linux and macOS. For macOS and Linux, binaries for
|
283
|
+
Binaries for the most common platforms are available on PyPI, including
|
284
|
+
Windows, Linux, and macOS. For macOS and Linux, binaries for
|
272
285
|
`x86_64` and `aarch64` are provided.
|
273
286
|
In case `pip` uses the source distribution, please make sure that
|
274
287
|
you have a C++17 capable compiler and CMake installed.
|
@@ -276,9 +289,9 @@ you have a C++17 capable compiler and CMake installed.
|
|
276
289
|
### From source
|
277
290
|
|
278
291
|
The project uses the following dependencies,
|
279
|
-
all of them are **automatically** set
|
292
|
+
all of them are **automatically** set up via CMake:
|
280
293
|
|
281
|
-
- GoogleTest (1.
|
294
|
+
- GoogleTest (1.15.2 or compatible), only required for testing
|
282
295
|
- spdlog (1.13.0 or compatible), required for logging
|
283
296
|
- tetgen (1.6 or compatible), required for I/O
|
284
297
|
- yaml-cpp (0.8.0 or compatible), required for I/O
|
@@ -286,7 +299,7 @@ all of them are **automatically** set-up via CMake:
|
|
286
299
|
- xsimd (11.1.0 or compatible), required for vectorization of the `atan(..)`
|
287
300
|
- pybind11 (2.12.0 or compatible), required for the Python interface, but not the C++ standalone
|
288
301
|
|
289
|
-
The module will be
|
302
|
+
The module will be built using a C++17 capable compiler,
|
290
303
|
CMake. Just execute the following command in
|
291
304
|
the repository root folder:
|
292
305
|
|
@@ -304,7 +317,7 @@ export POLYHEDRAL_GRAVITY_PARALLELIZATION="TBB"
|
|
304
317
|
pip install .
|
305
318
|
```
|
306
319
|
|
307
|
-
(Optional: For a faster build you can install all dependencies available
|
320
|
+
(Optional: For a faster build, you can install all dependencies available
|
308
321
|
for your system in your local python environment. That way, they
|
309
322
|
won't be fetched from GitHub.)
|
310
323
|
|
@@ -312,7 +325,7 @@ won't be fetched from GitHub.)
|
|
312
325
|
|
313
326
|
### Building the C++ Library & Executable
|
314
327
|
|
315
|
-
The program is
|
328
|
+
The program is built by using CMake. So first make sure that you installed
|
316
329
|
CMake and then follow these steps:
|
317
330
|
|
318
331
|
```bash
|
@@ -324,17 +337,16 @@ cmake --build .
|
|
324
337
|
|
325
338
|
The following options are available:
|
326
339
|
|
327
|
-
|
|
328
|
-
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
| BUILD_POLYHEDRAL_PYTHON_INTERFACE (`ON`) | Build the Python interface |
|
340
|
+
| Name (Default) | Options |
|
341
|
+
|-------------------------------------------------------------:|:--------------------------------------------------------------------------------------------|
|
342
|
+
| POLYHEDRAL_GRAVITY_PARALLELIZATION (`CPP`) | `CPP` = Serial Execution / `OMP` or `TBB` = Parallel Execution with OpenMP or Intel\'s TBB |
|
343
|
+
| POLYHEDRAL_GRAVITY_LOGGING_LEVEL (`INFO`) | `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`, `CRITICAL`, `OFF` |
|
344
|
+
| BUILD_POLYHEDRAL_GRAVITY_DOCS (`OFF`) | Build this documentation |
|
345
|
+
| BUILD_POLYHEDRAL_GRAVITY_TESTS (`ON`) | Build the Tests |
|
346
|
+
| BUILD_POLYHEDRAL_GRAVITY_PYTHON_INTERFACE (`ON`) | Build the Python interface |
|
335
347
|
|
336
348
|
During testing POLYHEDRAL_GRAVITY_PARALLELIZATION=`TBB` has been the most performant.
|
337
|
-
It is further not
|
349
|
+
It is further not recommended to change the POLYHEDRAL_GRAVITY_LOGGING_LEVEL to something else than `INFO=2`.
|
338
350
|
|
339
351
|
The recommended CMake settings using the `TBB` backend would look like this:
|
340
352
|
|
@@ -361,23 +373,24 @@ It is required to specify the source-files of the polyhedron's mesh (more info
|
|
361
373
|
about the supported file in the [documentation](https://esa.github.io/polyhedral-gravity-model/quickstart/supported_input.html)), the density
|
362
374
|
of the polyhedron, and the wished computation points where the
|
363
375
|
gravity tensor shall be computed.
|
364
|
-
Further one must specify the name of the .csv output file.
|
376
|
+
Further, one must specify the name of the .csv output file.
|
365
377
|
|
366
378
|
````yaml
|
367
379
|
---
|
368
380
|
gravityModel:
|
369
381
|
input:
|
370
|
-
polyhedron:
|
382
|
+
polyhedron: # polyhedron source-file(s)
|
371
383
|
- "../example-config/data/tsoulis.node" # .node contains the vertices
|
372
384
|
- "../example-config/data/tsoulis.face" # .face contains the triangular faces
|
373
|
-
density: 2670.0 # constant density, units must match with the mesh (see section below)
|
374
|
-
|
385
|
+
density: 2670.0 # constant density, units must match with the mesh (see a section below)
|
386
|
+
# Depends on metric_unit: 'km' -> kg/km^3, 'm' -> kg/m^3, 'unitless' -> 'unitless'
|
387
|
+
points: # Location of the computation point(s) P
|
375
388
|
- [ 0, 0, 0 ] # Here it is situated at the origin
|
376
|
-
check_mesh: true # Fully optional, enables mesh autodetect+repair of
|
389
|
+
check_mesh: true # Fully optional, enables mesh autodetect+repair of
|
377
390
|
# the polyhedron's vertex ordering (not given: true)
|
391
|
+
metric_unit: m # Unit of mesh: One of 'm', 'km' or 'unitless' (not given: 'm')
|
378
392
|
output:
|
379
|
-
filename: "gravity_result.csv" # The name of the output file
|
380
|
-
|
393
|
+
filename: "gravity_result.csv" # The name of the output file
|
381
394
|
````
|
382
395
|
|
383
396
|
#### Output
|
@@ -388,8 +401,8 @@ computation point *P*.
|
|
388
401
|
|
389
402
|
## Testing
|
390
403
|
|
391
|
-
The project uses GoogleTest for testing.
|
392
|
-
tests just execute the following command in the build directory:
|
404
|
+
The project uses GoogleTest for testing.
|
405
|
+
In order to execute those tests, just execute the following command in the build directory:
|
393
406
|
|
394
407
|
```bash
|
395
408
|
ctest
|
@@ -404,5 +417,5 @@ pytest
|
|
404
417
|
## Contributing
|
405
418
|
|
406
419
|
We are happy to accept contributions to the project in the form of
|
407
|
-
suggestions, bug reports and pull requests. Please have a look at
|
420
|
+
suggestions, bug reports, and pull requests. Please have a look at
|
408
421
|
the [contributing guidelines](CONTRIBUTING.md) for more information.
|
@@ -0,0 +1,6 @@
|
|
1
|
+
polyhedral_gravity.cpython-311-darwin.so,sha256=7eHBOP7botKJLXQWikdL1ZwSqR5xI2zmd6PgjIDHEP0,1698392
|
2
|
+
polyhedral_gravity-3.3rc2.dist-info/RECORD,,
|
3
|
+
polyhedral_gravity-3.3rc2.dist-info/WHEEL,sha256=jHS1Xfq7aacgt9O8rvXJ4-z0jW3R6mnaQAdfzsLvGbw,111
|
4
|
+
polyhedral_gravity-3.3rc2.dist-info/top_level.txt,sha256=bIf9hErNs1GV27AnQWoRTE2j0lRmjhrKI1z-_MTR4Nk,19
|
5
|
+
polyhedral_gravity-3.3rc2.dist-info/METADATA,sha256=GsJhF9JKcQLz7jweg6cvtA2duUX0u5whfJC1ymfvp7U,18531
|
6
|
+
polyhedral_gravity-3.3rc2.dist-info/licenses/LICENSE,sha256=ZJuIRhVUKcE6znMu3JzQKChvng_3yKh9v3v1MtHspHw,36310
|
Binary file
|
@@ -1,6 +0,0 @@
|
|
1
|
-
polyhedral_gravity.cpython-311-darwin.so,sha256=DC46l1d7mxgz7IOOoiY5NWQyShhQZ-qDm-SwumBgyeE,1666704
|
2
|
-
polyhedral_gravity-3.2.1rc1.dist-info/RECORD,,
|
3
|
-
polyhedral_gravity-3.2.1rc1.dist-info/LICENSE,sha256=ZJuIRhVUKcE6znMu3JzQKChvng_3yKh9v3v1MtHspHw,36310
|
4
|
-
polyhedral_gravity-3.2.1rc1.dist-info/WHEEL,sha256=TE2tBv8Vrcr9e1U_GDR01qJXgIIL7ptTlfQ3H-bPoz0,111
|
5
|
-
polyhedral_gravity-3.2.1rc1.dist-info/top_level.txt,sha256=bIf9hErNs1GV27AnQWoRTE2j0lRmjhrKI1z-_MTR4Nk,19
|
6
|
-
polyhedral_gravity-3.2.1rc1.dist-info/METADATA,sha256=2UQrLcu8ht3_-BeGagOMFqGitL06hb3aiWZ3ZOsZwpU,17537
|
{polyhedral_gravity-3.2.1rc1.dist-info → polyhedral_gravity-3.3rc2.dist-info/licenses}/LICENSE
RENAMED
File without changes
|
File without changes
|