polyhedral-gravity 3.2.1rc1__cp311-cp311-musllinux_1_2_x86_64.whl → 3.3rc2__cp311-cp311-musllinux_1_2_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 +45 -42
- polyhedral_gravity-3.3rc2.dist-info/RECORD +8 -0
- {polyhedral_gravity-3.2.1rc1.dist-info → polyhedral_gravity-3.3rc2.dist-info}/WHEEL +1 -1
- polyhedral_gravity.cpython-311-x86_64-linux-musl.so +0 -0
- polyhedral_gravity.libs/{libgcc_s-a3a07607.so.1 → libgcc_s-a0b57c20.so.1} +0 -0
- polyhedral_gravity.libs/{libstdc++-496613c0.so.6.0.32 → libstdc++-0d31ccbe.so.6.0.32} +0 -0
- polyhedral_gravity-3.2.1rc1.dist-info/RECORD +0 -8
- {polyhedral_gravity-3.2.1rc1.dist-info → polyhedral_gravity-3.3rc2.dist-info}/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
1
|
Metadata-Version: 2.1
|
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,7 +19,7 @@ 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
25
|
|
@@ -95,20 +95,20 @@ The evaluation of the polyhedral gravity model requires the following parameters
|
|
95
95
|
| Polyhedral Mesh (either as vertices & faces or as polyhedral source files) |
|
96
96
|
| Constant Density $\rho$ |
|
97
97
|
|
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).
|
98
|
+
The mesh and the constant density's unit must match.
|
99
|
+
Have a look at the documentation to view the [supported mesh files](https://esa.github.io/polyhedral-gravity-model/quickstart/supported_input.html).
|
100
100
|
|
101
101
|
### Output
|
102
102
|
|
103
103
|
The calculation outputs the following parameters for every Computation Point *P*.
|
104
104
|
The units of the respective output depend on the units of the input parameters (mesh and density)!
|
105
|
-
Hence, if e.g
|
105
|
+
Hence, if e.g., your mesh is in $km$, the density must match. Further, output units will be different accordingly.
|
106
106
|
|
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
|
107
|
+
| Name | Unit (if mesh in $[m]$ and $\rho$ in $[kg/m^3]$) | Comment |
|
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 acceleration in the three cartesian directions |
|
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 acceleration |
|
112
112
|
|
113
113
|
|
114
114
|
>[!NOTE]
|
@@ -124,7 +124,7 @@ around a cube:
|
|
124
124
|
|
125
125
|
```python
|
126
126
|
import numpy as np
|
127
|
-
from polyhedral_gravity import Polyhedron, GravityEvaluable, evaluate, PolyhedronIntegrity, NormalOrientation
|
127
|
+
from polyhedral_gravity import Polyhedron, GravityEvaluable, evaluate, PolyhedronIntegrity, NormalOrientation, MetricUnit
|
128
128
|
|
129
129
|
# We define the cube as a polyhedron with 8 vertices and 12 triangular faces
|
130
130
|
# The polyhedron's normals point outwards (see below for checking this)
|
@@ -167,7 +167,7 @@ potential, acceleration, tensor = evaluate(
|
|
167
167
|
The more advanced way is to use the `GravityEvaluable` class. It caches the
|
168
168
|
internal data structure and properties which can be reused for multiple
|
169
169
|
evaluations. This is especially useful if you want to compute the gravity
|
170
|
-
for multiple computation points
|
170
|
+
for multiple computation points but don't know the "future points" in advance.
|
171
171
|
|
172
172
|
```python
|
173
173
|
evaluable = GravityEvaluable(polyhedron=cube_polyhedron) # stores intermediate computation steps
|
@@ -188,21 +188,24 @@ This property is - by default - checked when constructing the `Polyhedron`! So,
|
|
188
188
|
is impossible if not **explicitly** disabled to create an invalid `Polyhedron`.
|
189
189
|
You can disable/ enable this setting via the optional `integrity_check` flag and can even
|
190
190
|
automatically repair the ordering via `HEAL`.
|
191
|
-
If you are confident that your mesh is defined correctly (e.g
|
191
|
+
If you are confident that your mesh is defined correctly (e.g., checked once with the integrity check)
|
192
192
|
you can disable this check (via `DISABLE`) to avoid the additional runtime overhead of the check.
|
193
|
+
Also, you can set the metric unit of the mesh and the density.
|
194
|
+
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
195
|
|
194
196
|
```python
|
195
197
|
cube_polyhedron = Polyhedron(
|
196
|
-
polyhedral_source=(cube_vertices, cube_faces),
|
197
|
-
density=cube_density,
|
198
|
+
polyhedral_source=(cube_vertices, cube_faces),# coordinates in m (default), km, or unitless
|
199
|
+
density=cube_density, # kg/m^3 (default) or kg/km^3 or unitless
|
198
200
|
normal_orientation=NormalOrientation.INWARDS, # OUTWARDS (default) or INWARDS
|
199
201
|
integrity_check=PolyhedronIntegrity.VERIFY, # VERIFY (default), DISABLE or HEAL
|
202
|
+
metric_unit=MetricUnit.METER, # METER (default), KILOMETER, UNITLESS
|
200
203
|
)
|
201
204
|
```
|
202
205
|
|
203
206
|
> [!TIP]
|
204
207
|
> More examples and plots are depicted in the
|
205
|
-
[jupyter notebook](script/polyhedral-gravity.ipynb).
|
208
|
+
[jupyter notebook](script/polyhedral-gravity.ipynb) and the [second jupyter notebook](script/Kleopatra.ipynb)
|
206
209
|
|
207
210
|
|
208
211
|
### Minimal C++ Example
|
@@ -267,8 +270,8 @@ As a second option, you can also install the python interface with pip from [PyP
|
|
267
270
|
pip install polyhedral-gravity
|
268
271
|
```
|
269
272
|
|
270
|
-
Binaries for the most common platforms are available on PyPI including
|
271
|
-
Windows, Linux and macOS. For macOS and Linux, binaries for
|
273
|
+
Binaries for the most common platforms are available on PyPI, including
|
274
|
+
Windows, Linux, and macOS. For macOS and Linux, binaries for
|
272
275
|
`x86_64` and `aarch64` are provided.
|
273
276
|
In case `pip` uses the source distribution, please make sure that
|
274
277
|
you have a C++17 capable compiler and CMake installed.
|
@@ -276,9 +279,9 @@ you have a C++17 capable compiler and CMake installed.
|
|
276
279
|
### From source
|
277
280
|
|
278
281
|
The project uses the following dependencies,
|
279
|
-
all of them are **automatically** set
|
282
|
+
all of them are **automatically** set up via CMake:
|
280
283
|
|
281
|
-
- GoogleTest (1.
|
284
|
+
- GoogleTest (1.15.2 or compatible), only required for testing
|
282
285
|
- spdlog (1.13.0 or compatible), required for logging
|
283
286
|
- tetgen (1.6 or compatible), required for I/O
|
284
287
|
- yaml-cpp (0.8.0 or compatible), required for I/O
|
@@ -286,7 +289,7 @@ all of them are **automatically** set-up via CMake:
|
|
286
289
|
- xsimd (11.1.0 or compatible), required for vectorization of the `atan(..)`
|
287
290
|
- pybind11 (2.12.0 or compatible), required for the Python interface, but not the C++ standalone
|
288
291
|
|
289
|
-
The module will be
|
292
|
+
The module will be built using a C++17 capable compiler,
|
290
293
|
CMake. Just execute the following command in
|
291
294
|
the repository root folder:
|
292
295
|
|
@@ -304,7 +307,7 @@ export POLYHEDRAL_GRAVITY_PARALLELIZATION="TBB"
|
|
304
307
|
pip install .
|
305
308
|
```
|
306
309
|
|
307
|
-
(Optional: For a faster build you can install all dependencies available
|
310
|
+
(Optional: For a faster build, you can install all dependencies available
|
308
311
|
for your system in your local python environment. That way, they
|
309
312
|
won't be fetched from GitHub.)
|
310
313
|
|
@@ -312,7 +315,7 @@ won't be fetched from GitHub.)
|
|
312
315
|
|
313
316
|
### Building the C++ Library & Executable
|
314
317
|
|
315
|
-
The program is
|
318
|
+
The program is built by using CMake. So first make sure that you installed
|
316
319
|
CMake and then follow these steps:
|
317
320
|
|
318
321
|
```bash
|
@@ -324,17 +327,16 @@ cmake --build .
|
|
324
327
|
|
325
328
|
The following options are available:
|
326
329
|
|
327
|
-
|
|
328
|
-
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
| BUILD_POLYHEDRAL_PYTHON_INTERFACE (`ON`) | Build the Python interface |
|
330
|
+
| Name (Default) | Options |
|
331
|
+
|-------------------------------------------------------------:|:--------------------------------------------------------------------------------------------|
|
332
|
+
| POLYHEDRAL_GRAVITY_PARALLELIZATION (`CPP`) | `CPP` = Serial Execution / `OMP` or `TBB` = Parallel Execution with OpenMP or Intel\'s TBB |
|
333
|
+
| POLYHEDRAL_GRAVITY_LOGGING_LEVEL (`INFO`) | `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`, `CRITICAL`, `OFF` |
|
334
|
+
| BUILD_POLYHEDRAL_GRAVITY_DOCS (`OFF`) | Build this documentation |
|
335
|
+
| BUILD_POLYHEDRAL_GRAVITY_TESTS (`ON`) | Build the Tests |
|
336
|
+
| BUILD_POLYHEDRAL_GRAVITY_PYTHON_INTERFACE (`ON`) | Build the Python interface |
|
335
337
|
|
336
338
|
During testing POLYHEDRAL_GRAVITY_PARALLELIZATION=`TBB` has been the most performant.
|
337
|
-
It is further not
|
339
|
+
It is further not recommended to change the POLYHEDRAL_GRAVITY_LOGGING_LEVEL to something else than `INFO=2`.
|
338
340
|
|
339
341
|
The recommended CMake settings using the `TBB` backend would look like this:
|
340
342
|
|
@@ -361,23 +363,24 @@ It is required to specify the source-files of the polyhedron's mesh (more info
|
|
361
363
|
about the supported file in the [documentation](https://esa.github.io/polyhedral-gravity-model/quickstart/supported_input.html)), the density
|
362
364
|
of the polyhedron, and the wished computation points where the
|
363
365
|
gravity tensor shall be computed.
|
364
|
-
Further one must specify the name of the .csv output file.
|
366
|
+
Further, one must specify the name of the .csv output file.
|
365
367
|
|
366
368
|
````yaml
|
367
369
|
---
|
368
370
|
gravityModel:
|
369
371
|
input:
|
370
|
-
polyhedron:
|
372
|
+
polyhedron: # polyhedron source-file(s)
|
371
373
|
- "../example-config/data/tsoulis.node" # .node contains the vertices
|
372
374
|
- "../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
|
-
|
375
|
+
density: 2670.0 # constant density, units must match with the mesh (see a section below)
|
376
|
+
# Depends on metric_unit: 'km' -> kg/km^3, 'm' -> kg/m^3, 'unitless' -> 'unitless'
|
377
|
+
points: # Location of the computation point(s) P
|
375
378
|
- [ 0, 0, 0 ] # Here it is situated at the origin
|
376
|
-
check_mesh: true # Fully optional, enables mesh autodetect+repair of
|
379
|
+
check_mesh: true # Fully optional, enables mesh autodetect+repair of
|
377
380
|
# the polyhedron's vertex ordering (not given: true)
|
381
|
+
metric_unit: m # Unit of mesh: One of 'm', 'km' or 'unitless' (not given: 'm')
|
378
382
|
output:
|
379
|
-
filename: "gravity_result.csv" # The name of the output file
|
380
|
-
|
383
|
+
filename: "gravity_result.csv" # The name of the output file
|
381
384
|
````
|
382
385
|
|
383
386
|
#### Output
|
@@ -388,8 +391,8 @@ computation point *P*.
|
|
388
391
|
|
389
392
|
## Testing
|
390
393
|
|
391
|
-
The project uses GoogleTest for testing.
|
392
|
-
tests just execute the following command in the build directory:
|
394
|
+
The project uses GoogleTest for testing.
|
395
|
+
In order to execute those tests, just execute the following command in the build directory:
|
393
396
|
|
394
397
|
```bash
|
395
398
|
ctest
|
@@ -404,5 +407,5 @@ pytest
|
|
404
407
|
## Contributing
|
405
408
|
|
406
409
|
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
|
410
|
+
suggestions, bug reports, and pull requests. Please have a look at
|
408
411
|
the [contributing guidelines](CONTRIBUTING.md) for more information.
|
@@ -0,0 +1,8 @@
|
|
1
|
+
polyhedral_gravity.cpython-311-x86_64-linux-musl.so,sha256=ODEsVXmWc_FMvOg2rWtjYyGq6lSFtIj8gYl-J9rukXQ,2160953
|
2
|
+
polyhedral_gravity-3.3rc2.dist-info/top_level.txt,sha256=bIf9hErNs1GV27AnQWoRTE2j0lRmjhrKI1z-_MTR4Nk,19
|
3
|
+
polyhedral_gravity-3.3rc2.dist-info/METADATA,sha256=zx4CS7VhqDlHjgxFsUNyqhZm04cLHPLcYEbEhUJSAJM,18316
|
4
|
+
polyhedral_gravity-3.3rc2.dist-info/LICENSE,sha256=ZJuIRhVUKcE6znMu3JzQKChvng_3yKh9v3v1MtHspHw,36310
|
5
|
+
polyhedral_gravity-3.3rc2.dist-info/RECORD,,
|
6
|
+
polyhedral_gravity-3.3rc2.dist-info/WHEEL,sha256=MQ29nCArLmrihs_AhYLz4TIaCgvATTq37oKgctZCPls,112
|
7
|
+
polyhedral_gravity.libs/libstdc++-0d31ccbe.so.6.0.32,sha256=QyUTnI2umnGgPmNJ-6F_BVIAJnq6-70cNoEWpma6EFQ,3494521
|
8
|
+
polyhedral_gravity.libs/libgcc_s-a0b57c20.so.1,sha256=XPAr2giQZFaQKDEig3i_sQM7zfbaGkuhwmZ9ryvu-Vk,148041
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,8 +0,0 @@
|
|
1
|
-
polyhedral_gravity.cpython-311-x86_64-linux-musl.so,sha256=X7KCivWFzVkYNdT31Gc4LKzAqhVp_Eamg52C7hCK6X8,2105201
|
2
|
-
polyhedral_gravity-3.2.1rc1.dist-info/LICENSE,sha256=ZJuIRhVUKcE6znMu3JzQKChvng_3yKh9v3v1MtHspHw,36310
|
3
|
-
polyhedral_gravity-3.2.1rc1.dist-info/METADATA,sha256=2UQrLcu8ht3_-BeGagOMFqGitL06hb3aiWZ3ZOsZwpU,17537
|
4
|
-
polyhedral_gravity-3.2.1rc1.dist-info/top_level.txt,sha256=bIf9hErNs1GV27AnQWoRTE2j0lRmjhrKI1z-_MTR4Nk,19
|
5
|
-
polyhedral_gravity-3.2.1rc1.dist-info/RECORD,,
|
6
|
-
polyhedral_gravity-3.2.1rc1.dist-info/WHEEL,sha256=RhaGuH6QTE7ENEuNoixxFzKXEt0KDbtlsTwJ21YePZI,112
|
7
|
-
polyhedral_gravity.libs/libgcc_s-a3a07607.so.1,sha256=5ptIUeAzZweNZrFehN0_Bb5B0FcJgux7NbAFoU8vwwo,148041
|
8
|
-
polyhedral_gravity.libs/libstdc++-496613c0.so.6.0.32,sha256=AwZhL5WFT99I2Q6vIxXOhW7qddfuOZ1xecxiP9QTVY4,3494361
|
File without changes
|
File without changes
|