goad-py


Namegoad-py JSON
Version 0.6.6 PyPI version JSON
download
home_pagehttps://github.com/hballington12/goad
SummaryPhysical optics light scattering computation
upload_time2025-11-06 12:35:12
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseGPL-3.0
keywords light-scattering optics simulation scientific-computing physics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # GOAD-PY

Python bindings for GOAD (Geometric Optics Approximation with Diffraction) - a physical optics light scattering computation library.

## Installation

```bash
pip install goad-py
```

## Quick Start

```python
import goad_py

# Create a problem with minimal setup
settings = goad_py.Settings("path/to/geometry.obj")
mp = goad_py.MultiProblem(settings)
mp.py_solve()

# Access scattering data
results = mp.results
print(f"Scattering cross-section: {results.scat_cross}")
print(f"Extinction cross-section: {results.ext_cross}")
print(f"Asymmetry parameter: {results.asymmetry}")
```

### Convergence Analysis

For statistical error estimation, use the convergence analysis functionality:

```python
from goad_py import Convergence, Convergable

# Set up convergence analysis
convergence = Convergence(
    settings=goad_py.Settings(geom_path="path/to/geometry.obj"),
    convergables=[
        Convergable('asymmetry', 'absolute', 0.005),  # absolute SEM < 0.005
        Convergable('scatt', 'relative', 0.01),       # relative SEM < 1%
    ],
    batch_size=100
)

# Run until convergence
results = convergence.run()
print(f"Converged: {results.converged}")
print(f"Final values: {results.values}")
```

## Features

- Fast light scattering computations using physical optics
- Support for various 3D geometry formats
- Configurable wavelength, refractive index, and orientations
- Multi-orientation averaging capabilities
- Convergence analysis for statistical error estimation
- Efficient parallel computation with GIL release

## Documentation

- [Rust API Documentation](https://docs.rs/goad/0.1.0/goad/index.html)
- [GitHub Repository](https://github.com/hballington12/goad)

## License

GPL-3.0 License - see the LICENSE file in the main repository for details.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/hballington12/goad",
    "name": "goad-py",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "light-scattering, optics, simulation, scientific-computing, physics",
    "author": null,
    "author_email": "Harry Ballington <ballington@uni-wuppertal.de>",
    "download_url": "https://files.pythonhosted.org/packages/b4/ca/d384ea4353575f83618b42de043b6afc84fd71b325a02b8baedc3b9b17df/goad_py-0.6.6.tar.gz",
    "platform": null,
    "description": "# GOAD-PY\n\nPython bindings for GOAD (Geometric Optics Approximation with Diffraction) - a physical optics light scattering computation library.\n\n## Installation\n\n```bash\npip install goad-py\n```\n\n## Quick Start\n\n```python\nimport goad_py\n\n# Create a problem with minimal setup\nsettings = goad_py.Settings(\"path/to/geometry.obj\")\nmp = goad_py.MultiProblem(settings)\nmp.py_solve()\n\n# Access scattering data\nresults = mp.results\nprint(f\"Scattering cross-section: {results.scat_cross}\")\nprint(f\"Extinction cross-section: {results.ext_cross}\")\nprint(f\"Asymmetry parameter: {results.asymmetry}\")\n```\n\n### Convergence Analysis\n\nFor statistical error estimation, use the convergence analysis functionality:\n\n```python\nfrom goad_py import Convergence, Convergable\n\n# Set up convergence analysis\nconvergence = Convergence(\n    settings=goad_py.Settings(geom_path=\"path/to/geometry.obj\"),\n    convergables=[\n        Convergable('asymmetry', 'absolute', 0.005),  # absolute SEM < 0.005\n        Convergable('scatt', 'relative', 0.01),       # relative SEM < 1%\n    ],\n    batch_size=100\n)\n\n# Run until convergence\nresults = convergence.run()\nprint(f\"Converged: {results.converged}\")\nprint(f\"Final values: {results.values}\")\n```\n\n## Features\n\n- Fast light scattering computations using physical optics\n- Support for various 3D geometry formats\n- Configurable wavelength, refractive index, and orientations\n- Multi-orientation averaging capabilities\n- Convergence analysis for statistical error estimation\n- Efficient parallel computation with GIL release\n\n## Documentation\n\n- [Rust API Documentation](https://docs.rs/goad/0.1.0/goad/index.html)\n- [GitHub Repository](https://github.com/hballington12/goad)\n\n## License\n\nGPL-3.0 License - see the LICENSE file in the main repository for details.\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "Physical optics light scattering computation",
    "version": "0.6.6",
    "project_urls": {
        "Documentation": "https://docs.rs/goad/0.1.0/goad/index.html",
        "Homepage": "https://github.com/hballington12/goad",
        "Repository": "https://github.com/hballington12/goad",
        "Rust Crate": "https://crates.io/crates/goad"
    },
    "split_keywords": [
        "light-scattering",
        " optics",
        " simulation",
        " scientific-computing",
        " physics"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9ccf73b4abc85371adc2b9896f2c5f2765c1349376742a2a3e25d8658fa46509",
                "md5": "3dc3d06d229174a9857c870e3e17882d",
                "sha256": "90b8e66ed26b113a29a5181516699cfa00aa2a98ad307fca795abb461d11f543"
            },
            "downloads": -1,
            "filename": "goad_py-0.6.6-cp38-abi3-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3dc3d06d229174a9857c870e3e17882d",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1059472,
            "upload_time": "2025-11-06T12:34:57",
            "upload_time_iso_8601": "2025-11-06T12:34:57.652888Z",
            "url": "https://files.pythonhosted.org/packages/9c/cf/73b4abc85371adc2b9896f2c5f2765c1349376742a2a3e25d8658fa46509/goad_py-0.6.6-cp38-abi3-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a43ca2544e3390ca03835e8262bdf06c43ace227066449d2ed98a0e204f9602b",
                "md5": "3ec4d4591f02a78ce66d5b900407c687",
                "sha256": "5735783b93a230bdb73f386a8645b1868aa69c579db9f790b5a63f645fa3a1af"
            },
            "downloads": -1,
            "filename": "goad_py-0.6.6-cp38-abi3-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "3ec4d4591f02a78ce66d5b900407c687",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1022314,
            "upload_time": "2025-11-06T12:34:59",
            "upload_time_iso_8601": "2025-11-06T12:34:59.014949Z",
            "url": "https://files.pythonhosted.org/packages/a4/3c/a2544e3390ca03835e8262bdf06c43ace227066449d2ed98a0e204f9602b/goad_py-0.6.6-cp38-abi3-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b586eeb80bec3a26e7efff048937ea4ea54f3a90066a05274579b0b12dba55be",
                "md5": "a8d1d3f175d71207c0eeb133fa889360",
                "sha256": "ba6efce937ebf52a7548c9e7332a685952baed7d4241176e3e6550160a472f9f"
            },
            "downloads": -1,
            "filename": "goad_py-0.6.6-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "a8d1d3f175d71207c0eeb133fa889360",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1108364,
            "upload_time": "2025-11-06T12:35:00",
            "upload_time_iso_8601": "2025-11-06T12:35:00.203039Z",
            "url": "https://files.pythonhosted.org/packages/b5/86/eeb80bec3a26e7efff048937ea4ea54f3a90066a05274579b0b12dba55be/goad_py-0.6.6-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "49b5e81d09c2e68f9401cccec84d0b41d9af321ed217670fe9f35a134d32fd13",
                "md5": "7c5a7af68c606c6929374862d42bdbbc",
                "sha256": "3c032c870c86fea279d5d7edce8b0a4bfa7b6deba26e2376a006362939084d37"
            },
            "downloads": -1,
            "filename": "goad_py-0.6.6-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "7c5a7af68c606c6929374862d42bdbbc",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1201264,
            "upload_time": "2025-11-06T12:35:01",
            "upload_time_iso_8601": "2025-11-06T12:35:01.699171Z",
            "url": "https://files.pythonhosted.org/packages/49/b5/e81d09c2e68f9401cccec84d0b41d9af321ed217670fe9f35a134d32fd13/goad_py-0.6.6-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c1bda198f7beceaa760c4f001f93464216f569b45850d75c06118422b3ffce34",
                "md5": "0f0d1044f1faed62db1e27bc42c4d471",
                "sha256": "0abed23093a38e6c7ef76f474b22f118b293ba16e0c845d554f05d5996fc13c4"
            },
            "downloads": -1,
            "filename": "goad_py-0.6.6-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "0f0d1044f1faed62db1e27bc42c4d471",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1213240,
            "upload_time": "2025-11-06T12:35:02",
            "upload_time_iso_8601": "2025-11-06T12:35:02.941666Z",
            "url": "https://files.pythonhosted.org/packages/c1/bd/a198f7beceaa760c4f001f93464216f569b45850d75c06118422b3ffce34/goad_py-0.6.6-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "98d2f353c567b6aa5a8dc0f9dba571265cf0f2730c0891860449d3eed1346ac3",
                "md5": "b7fdb3321bc6521acccfb48b6318e3f9",
                "sha256": "4ed26e0fc4428375792ac4f0576f0ac79a634483cf4c6078b1b0a2eb8c68d809"
            },
            "downloads": -1,
            "filename": "goad_py-0.6.6-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b7fdb3321bc6521acccfb48b6318e3f9",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1132539,
            "upload_time": "2025-11-06T12:35:04",
            "upload_time_iso_8601": "2025-11-06T12:35:04.484746Z",
            "url": "https://files.pythonhosted.org/packages/98/d2/f353c567b6aa5a8dc0f9dba571265cf0f2730c0891860449d3eed1346ac3/goad_py-0.6.6-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "32ac42f27858a81fdb80f25d5ce42a4ba04371feebefdb3362ba697bd645fda8",
                "md5": "04b36d80d768bb2e46f9fe47a516e4e7",
                "sha256": "e4f17da37630d35e8c0feb4cebec53cc0907dd58aaaed607e0bec5c4893db3f7"
            },
            "downloads": -1,
            "filename": "goad_py-0.6.6-cp38-abi3-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "04b36d80d768bb2e46f9fe47a516e4e7",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 7201018,
            "upload_time": "2025-11-06T12:35:05",
            "upload_time_iso_8601": "2025-11-06T12:35:05.775351Z",
            "url": "https://files.pythonhosted.org/packages/32/ac/42f27858a81fdb80f25d5ce42a4ba04371feebefdb3362ba697bd645fda8/goad_py-0.6.6-cp38-abi3-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7f564469394be5a7e7f8cd8c1bd1f955265806ad8737137e82d273ea714a7a3f",
                "md5": "22c614e601a34559d7745d41f2e2ee4f",
                "sha256": "f882faf8b9348cd1236eed1953a02dce0f83ddd9c2398e8a74a54106822b21a8"
            },
            "downloads": -1,
            "filename": "goad_py-0.6.6-cp38-abi3-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "22c614e601a34559d7745d41f2e2ee4f",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 7354430,
            "upload_time": "2025-11-06T12:35:07",
            "upload_time_iso_8601": "2025-11-06T12:35:07.594385Z",
            "url": "https://files.pythonhosted.org/packages/7f/56/4469394be5a7e7f8cd8c1bd1f955265806ad8737137e82d273ea714a7a3f/goad_py-0.6.6-cp38-abi3-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a39865f95322f9d30a997bd3ed5bc649316f28f88c4be498da1e0a68caafce8e",
                "md5": "ce35db8cc0e5976c234ec93bed7b3f8d",
                "sha256": "1d24705ed77d2f303169f1f312461cdf5b55adc3e90dca0428f1ce253c032aa5"
            },
            "downloads": -1,
            "filename": "goad_py-0.6.6-cp38-abi3-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ce35db8cc0e5976c234ec93bed7b3f8d",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 7470213,
            "upload_time": "2025-11-06T12:35:09",
            "upload_time_iso_8601": "2025-11-06T12:35:09.076351Z",
            "url": "https://files.pythonhosted.org/packages/a3/98/65f95322f9d30a997bd3ed5bc649316f28f88c4be498da1e0a68caafce8e/goad_py-0.6.6-cp38-abi3-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8d5f7195f8a4e0e52b9dadcbbda305ae647ccea91e194bb687fa00a90c052e98",
                "md5": "5dc25dbba06ff4513032aa8f22797d2f",
                "sha256": "975be6b1594ae8decc553fbd0a50417d9c198c3e5c7464d659d2c28a2d6ff5bd"
            },
            "downloads": -1,
            "filename": "goad_py-0.6.6-cp38-abi3-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "5dc25dbba06ff4513032aa8f22797d2f",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1038779,
            "upload_time": "2025-11-06T12:35:11",
            "upload_time_iso_8601": "2025-11-06T12:35:11.009261Z",
            "url": "https://files.pythonhosted.org/packages/8d/5f/7195f8a4e0e52b9dadcbbda305ae647ccea91e194bb687fa00a90c052e98/goad_py-0.6.6-cp38-abi3-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b4cad384ea4353575f83618b42de043b6afc84fd71b325a02b8baedc3b9b17df",
                "md5": "57ec22a217b179baa6b9e82e2672c22c",
                "sha256": "38c2ea364a4abeb19e09b85ced2d5aea6d4afc6acf450c23c04f307477879ba1"
            },
            "downloads": -1,
            "filename": "goad_py-0.6.6.tar.gz",
            "has_sig": false,
            "md5_digest": "57ec22a217b179baa6b9e82e2672c22c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 2619508,
            "upload_time": "2025-11-06T12:35:12",
            "upload_time_iso_8601": "2025-11-06T12:35:12.286311Z",
            "url": "https://files.pythonhosted.org/packages/b4/ca/d384ea4353575f83618b42de043b6afc84fd71b325a02b8baedc3b9b17df/goad_py-0.6.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-06 12:35:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hballington12",
    "github_project": "goad",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "goad-py"
}
        
Elapsed time: 4.43396s