goad-py


Namegoad-py JSON
Version 0.4.1 PyPI version JSON
download
home_pagehttps://github.com/hballington12/goad
SummaryPhysical optics light scattering computation
upload_time2025-07-10 14:43:51
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/3b/09/129b81e313b29a8ac6f09debf2ef84a495472e0fa1f7ba2a8257d289c89d/goad_py-0.4.1.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.4.1",
    "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": "a1ef0547e716a52d575bdddb2a9e2f1033b281d1f5f9795cf4ec4add1946b1d5",
                "md5": "e1124ca379be767fe51b96a6ea900a73",
                "sha256": "58ee6788b078e13a7cbb078ddf543c675ed0a30c1c6bc5518e5c524252676e1f"
            },
            "downloads": -1,
            "filename": "goad_py-0.4.1-cp38-abi3-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e1124ca379be767fe51b96a6ea900a73",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1006383,
            "upload_time": "2025-07-10T14:43:32",
            "upload_time_iso_8601": "2025-07-10T14:43:32.189356Z",
            "url": "https://files.pythonhosted.org/packages/a1/ef/0547e716a52d575bdddb2a9e2f1033b281d1f5f9795cf4ec4add1946b1d5/goad_py-0.4.1-cp38-abi3-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f3308dff8b0210f745cfb999a9f1340561238700b327d536a7912559433bd943",
                "md5": "a57914b1f56195cbe62341e76164d9d3",
                "sha256": "d579123f54fb7b58658bf28d683fff3ed92e3f421b242f8a6240d46adbf9c5d9"
            },
            "downloads": -1,
            "filename": "goad_py-0.4.1-cp38-abi3-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "a57914b1f56195cbe62341e76164d9d3",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 975989,
            "upload_time": "2025-07-10T14:43:34",
            "upload_time_iso_8601": "2025-07-10T14:43:34.336760Z",
            "url": "https://files.pythonhosted.org/packages/f3/30/8dff8b0210f745cfb999a9f1340561238700b327d536a7912559433bd943/goad_py-0.4.1-cp38-abi3-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "83cfc64024439241842a4a9f14938a0f3e613d0adf861a1d040cec78597a5fc3",
                "md5": "40177a46ac54ec2fc47fa061f1b87731",
                "sha256": "cd9226e407f6d4194d2db0391446734fac98bc6919f5032309bdd40054aab4dd"
            },
            "downloads": -1,
            "filename": "goad_py-0.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "40177a46ac54ec2fc47fa061f1b87731",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1054743,
            "upload_time": "2025-07-10T14:43:36",
            "upload_time_iso_8601": "2025-07-10T14:43:36.252174Z",
            "url": "https://files.pythonhosted.org/packages/83/cf/c64024439241842a4a9f14938a0f3e613d0adf861a1d040cec78597a5fc3/goad_py-0.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e44cf9e91e0463c1809651c56a1d5ccb8c4aa44e9c71db62b92bb2a7f4fdc48e",
                "md5": "59af01c0cfe6c6ede96f78e108e6d6f4",
                "sha256": "66363c8a9d4679cf064bd8eec061f770db13ee9e47b7abe38e02ecc900bbc8ec"
            },
            "downloads": -1,
            "filename": "goad_py-0.4.1-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "59af01c0cfe6c6ede96f78e108e6d6f4",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1146394,
            "upload_time": "2025-07-10T14:43:38",
            "upload_time_iso_8601": "2025-07-10T14:43:38.139425Z",
            "url": "https://files.pythonhosted.org/packages/e4/4c/f9e91e0463c1809651c56a1d5ccb8c4aa44e9c71db62b92bb2a7f4fdc48e/goad_py-0.4.1-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f6d00dc8d6df2d3c60779ba19dbe7f6f3b45531cd7fcb8fe2f0508e86ac2526c",
                "md5": "021e354475ddd9fe7902ce1138bc3ba3",
                "sha256": "5b2b829bc0ee83d64df5c1a6004cf77fb28a485ed6cc6b3c6dab181d67fad584"
            },
            "downloads": -1,
            "filename": "goad_py-0.4.1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "021e354475ddd9fe7902ce1138bc3ba3",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1159878,
            "upload_time": "2025-07-10T14:43:40",
            "upload_time_iso_8601": "2025-07-10T14:43:40.105291Z",
            "url": "https://files.pythonhosted.org/packages/f6/d0/0dc8d6df2d3c60779ba19dbe7f6f3b45531cd7fcb8fe2f0508e86ac2526c/goad_py-0.4.1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7d6e3e30d5de0515d524d1fee5e7ba04cf1ab4fd00a13b06d58054ad2a02e1ad",
                "md5": "e6c7df51f7143759039fcf32b2091119",
                "sha256": "8b89c39638a655e97c80f488bf003295b79f8446bbf8691b5cce695a1ac318ff"
            },
            "downloads": -1,
            "filename": "goad_py-0.4.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e6c7df51f7143759039fcf32b2091119",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1089094,
            "upload_time": "2025-07-10T14:43:42",
            "upload_time_iso_8601": "2025-07-10T14:43:42.040151Z",
            "url": "https://files.pythonhosted.org/packages/7d/6e/3e30d5de0515d524d1fee5e7ba04cf1ab4fd00a13b06d58054ad2a02e1ad/goad_py-0.4.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7a606831798294c32c57681ae8ad4744b2803854e44eca5d7b8ef2f34b33c714",
                "md5": "af7ba8ce720a1d27d6166dcd6a7fd54a",
                "sha256": "72ac7b09123ce24caa613565c8fdca6be2d4ea851b1e6e8144af4b66732f051f"
            },
            "downloads": -1,
            "filename": "goad_py-0.4.1-cp38-abi3-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "af7ba8ce720a1d27d6166dcd6a7fd54a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 7146022,
            "upload_time": "2025-07-10T14:43:43",
            "upload_time_iso_8601": "2025-07-10T14:43:43.875632Z",
            "url": "https://files.pythonhosted.org/packages/7a/60/6831798294c32c57681ae8ad4744b2803854e44eca5d7b8ef2f34b33c714/goad_py-0.4.1-cp38-abi3-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b268b04639ff573c341ee5159d6c109c29fd508093a0839a45866273a28bb5bd",
                "md5": "2d36c94f9d6dbffd622e381a77badc32",
                "sha256": "1b439faa357afc072b9bd0d7d041b4109d2652ee993d7a83dc04a046f00ca0b6"
            },
            "downloads": -1,
            "filename": "goad_py-0.4.1-cp38-abi3-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "2d36c94f9d6dbffd622e381a77badc32",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 7311762,
            "upload_time": "2025-07-10T14:43:46",
            "upload_time_iso_8601": "2025-07-10T14:43:46.087326Z",
            "url": "https://files.pythonhosted.org/packages/b2/68/b04639ff573c341ee5159d6c109c29fd508093a0839a45866273a28bb5bd/goad_py-0.4.1-cp38-abi3-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "16051e97995c19c5161fa67ed686cd1f9710cd3d55f2add5bf80127691d32745",
                "md5": "e0bedffc5468eee3ad84800d6565afe8",
                "sha256": "42f28ba032258d90a8df44e8ec0197f6ec0148ee79c7ef1bfc26abf47ca03d77"
            },
            "downloads": -1,
            "filename": "goad_py-0.4.1-cp38-abi3-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e0bedffc5468eee3ad84800d6565afe8",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 7433944,
            "upload_time": "2025-07-10T14:43:48",
            "upload_time_iso_8601": "2025-07-10T14:43:48.221519Z",
            "url": "https://files.pythonhosted.org/packages/16/05/1e97995c19c5161fa67ed686cd1f9710cd3d55f2add5bf80127691d32745/goad_py-0.4.1-cp38-abi3-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "edfc695173f1b6e389aa8e7244889f5d5a64b910a77f8f36cd63c0467add4fb6",
                "md5": "bb656f6d360f32969c43558552fcc4c1",
                "sha256": "1f7e2e701d23dfda0de5bdbe09658ad496cf888b300c0d854901ee42f4bd6d2a"
            },
            "downloads": -1,
            "filename": "goad_py-0.4.1-cp38-abi3-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "bb656f6d360f32969c43558552fcc4c1",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 985231,
            "upload_time": "2025-07-10T14:43:50",
            "upload_time_iso_8601": "2025-07-10T14:43:50.051189Z",
            "url": "https://files.pythonhosted.org/packages/ed/fc/695173f1b6e389aa8e7244889f5d5a64b910a77f8f36cd63c0467add4fb6/goad_py-0.4.1-cp38-abi3-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3b09129b81e313b29a8ac6f09debf2ef84a495472e0fa1f7ba2a8257d289c89d",
                "md5": "067b9761b78a0dcbaf81b6194d34b576",
                "sha256": "24648e16a4e87324d26f0127603d6d76be17b01149396caa3aa2df40a98ccc05"
            },
            "downloads": -1,
            "filename": "goad_py-0.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "067b9761b78a0dcbaf81b6194d34b576",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 1673763,
            "upload_time": "2025-07-10T14:43:51",
            "upload_time_iso_8601": "2025-07-10T14:43:51.667851Z",
            "url": "https://files.pythonhosted.org/packages/3b/09/129b81e313b29a8ac6f09debf2ef84a495472e0fa1f7ba2a8257d289c89d/goad_py-0.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-10 14:43:51",
    "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: 1.67124s