goad-py 0.7.0__cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.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.
Potentially problematic release.
This version of goad-py might be problematic. Click here for more details.
- goad_py/__init__.py +51 -0
- goad_py/_goad_py.abi3.so +0 -0
- goad_py/convergence.py +830 -0
- goad_py/convergence_display.py +499 -0
- goad_py/goad_py.pyi +453 -0
- goad_py/phips_convergence.py +608 -0
- goad_py/unified_convergence.py +1327 -0
- goad_py-0.7.0.dist-info/METADATA +99 -0
- goad_py-0.7.0.dist-info/RECORD +10 -0
- goad_py-0.7.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: goad-py
|
|
3
|
+
Version: 0.7.0
|
|
4
|
+
Classifier: Development Status :: 4 - Beta
|
|
5
|
+
Classifier: Intended Audience :: Science/Research
|
|
6
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
7
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
8
|
+
Classifier: Programming Language :: Rust
|
|
9
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
10
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Requires-Dist: numpy>=1.20.0
|
|
19
|
+
Requires-Dist: toml>=0.10.0
|
|
20
|
+
Requires-Dist: rich>=13.0.0
|
|
21
|
+
Summary: Physical optics light scattering computation
|
|
22
|
+
Keywords: light-scattering,optics,simulation,scientific-computing,physics
|
|
23
|
+
Home-Page: https://github.com/hballington12/goad
|
|
24
|
+
Author-email: Harry Ballington <ballington@uni-wuppertal.de>
|
|
25
|
+
License: GPL-3.0
|
|
26
|
+
Requires-Python: >=3.8
|
|
27
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
28
|
+
Project-URL: Homepage, https://github.com/hballington12/goad
|
|
29
|
+
Project-URL: Documentation, https://docs.rs/goad/0.1.0/goad/index.html
|
|
30
|
+
Project-URL: Repository, https://github.com/hballington12/goad
|
|
31
|
+
Project-URL: Rust Crate, https://crates.io/crates/goad
|
|
32
|
+
|
|
33
|
+
# GOAD-PY
|
|
34
|
+
|
|
35
|
+
Python bindings for GOAD (Geometric Optics Approximation with Diffraction) - a physical optics light scattering computation library.
|
|
36
|
+
|
|
37
|
+
## Installation
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
pip install goad-py
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Quick Start
|
|
44
|
+
|
|
45
|
+
```python
|
|
46
|
+
import goad_py
|
|
47
|
+
|
|
48
|
+
# Create a problem with minimal setup
|
|
49
|
+
settings = goad_py.Settings("path/to/geometry.obj")
|
|
50
|
+
mp = goad_py.MultiProblem(settings)
|
|
51
|
+
mp.py_solve()
|
|
52
|
+
|
|
53
|
+
# Access scattering data
|
|
54
|
+
results = mp.results
|
|
55
|
+
print(f"Scattering cross-section: {results.scat_cross}")
|
|
56
|
+
print(f"Extinction cross-section: {results.ext_cross}")
|
|
57
|
+
print(f"Asymmetry parameter: {results.asymmetry}")
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Convergence Analysis
|
|
61
|
+
|
|
62
|
+
For statistical error estimation, use the convergence analysis functionality:
|
|
63
|
+
|
|
64
|
+
```python
|
|
65
|
+
from goad_py import Convergence, Convergable
|
|
66
|
+
|
|
67
|
+
# Set up convergence analysis
|
|
68
|
+
convergence = Convergence(
|
|
69
|
+
settings=goad_py.Settings(geom_path="path/to/geometry.obj"),
|
|
70
|
+
convergables=[
|
|
71
|
+
Convergable('asymmetry', 'absolute', 0.005), # absolute SEM < 0.005
|
|
72
|
+
Convergable('scatt', 'relative', 0.01), # relative SEM < 1%
|
|
73
|
+
],
|
|
74
|
+
batch_size=100
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
# Run until convergence
|
|
78
|
+
results = convergence.run()
|
|
79
|
+
print(f"Converged: {results.converged}")
|
|
80
|
+
print(f"Final values: {results.values}")
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Features
|
|
84
|
+
|
|
85
|
+
- Fast light scattering computations using physical optics
|
|
86
|
+
- Support for various 3D geometry formats
|
|
87
|
+
- Configurable wavelength, refractive index, and orientations
|
|
88
|
+
- Multi-orientation averaging capabilities
|
|
89
|
+
- Convergence analysis for statistical error estimation
|
|
90
|
+
- Efficient parallel computation with GIL release
|
|
91
|
+
|
|
92
|
+
## Documentation
|
|
93
|
+
|
|
94
|
+
- [Rust API Documentation](https://docs.rs/goad/0.1.0/goad/index.html)
|
|
95
|
+
- [GitHub Repository](https://github.com/hballington12/goad)
|
|
96
|
+
|
|
97
|
+
## License
|
|
98
|
+
|
|
99
|
+
GPL-3.0 License - see the LICENSE file in the main repository for details.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
goad_py-0.7.0.dist-info/METADATA,sha256=0_d3FTncDZ9MrOT3XWx-LpLlVW_kRzyVm8D3Bd2PH1Q,3266
|
|
2
|
+
goad_py-0.7.0.dist-info/WHEEL,sha256=cqfH6P_NujaeOc1olR46J5a7YgoxWJnrr5iZ1_DMqps,129
|
|
3
|
+
goad_py/__init__.py,sha256=iGJg-Oj9btk4I4GITkE7olNRm38uFRjENMJqXaDJmpM,1083
|
|
4
|
+
goad_py/_goad_py.abi3.so,sha256=LauIBxD05jiyclyP1bjhVdmD8AUMLZIUWm9xWzFis_E,2116304
|
|
5
|
+
goad_py/convergence.py,sha256=gbf8-uQTpCltCO3MrhVckobSP-uM2lxOiYocB6YSBTs,32682
|
|
6
|
+
goad_py/convergence_display.py,sha256=2V_kyARZ504-pJNjiWO-Zqd5S1z8leTJ-A86c4r382w,16672
|
|
7
|
+
goad_py/goad_py.pyi,sha256=7Y79-TV-NjEN8DWPEqSRGQ7alCrkylL6y1ZK8d6FYSg,14502
|
|
8
|
+
goad_py/phips_convergence.py,sha256=U_2r40lDza6FO0VDo-FD6KxaKjo9gDdVfm01StqYKMU,22765
|
|
9
|
+
goad_py/unified_convergence.py,sha256=3R4D_bVD-u-XbkaZ4R_BcVGZpwKoq8S0OZ-My-Nlxm0,49212
|
|
10
|
+
goad_py-0.7.0.dist-info/RECORD,,
|