Skip to main content

Solve Maxwell's equations for a cluster of particles using the generalized multiparticle Mie theory (GMMT)

Project description

MiePy

MiePy is a Python module for the generalized multiparticle Mie theory (GMMT), also known as the aggregate T-matrix method. MiePy solves the electrodynamics of a collection of spherical or non-spherical scatterers with an arbitrary incident source.

Features

  • Non-spherical particles using the T-matrix formulation via the null-field method with discrete sources (NFM-DS). Includes cylinders, spheroids, ellipsoids, cubes and polygonal prisms
  • Arbitrary incident sources (plane waves, Gaussian beams, HG and LG beams, point dipoles)
  • Evaluation of cluster cross-sections and optical force and torque on individual particles
  • Periodic boundary conditions with various lattice types (square, hexagonal, etc.) and mirror and discrete rotational symmetries for faster calculations
  • Optional planar interface (substrate)
  • 3D scene visualization using the the VPython library
  • Image clusters using a simulated microscope
  • OpenMP parallelization for systems with larger numbers of particles

Usage

For examples and use cases, see examples folder.

For an overview of the theory, see docs folder.

Installation

If NumPy is not already installed, it must be installed prior to MiePy's installation

pip install numpy

Then install MiePy

pip install miepy

MiePy is also available via Conda

conda install -c japarker miepy

Install from source

To build MiePy from source, first install the required dependencies:

Then, install MiePy using pip

pip install miepy --no-binary

To build the latest development version, clone MiePy and its submodules:

git clone https://github.com/johnaparker/miepy.git miepy --recurse-submodules && cd miepy

and install MiePy using pip

pip install .

Optionally, run the tests to verify correctness:

pytest tests

License

MiePy is licensed under the terms of the GPLv3 license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

miepy-0.5.0.tar.gz (6.0 MB view details)

Uploaded Source

Built Distributions

miepy-0.5.0-cp38-cp38-manylinux2010_x86_64.whl (11.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

miepy-0.5.0-cp38-cp38-macosx_10_9_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

miepy-0.5.0-cp37-cp37m-manylinux2010_x86_64.whl (11.9 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

miepy-0.5.0-cp37-cp37m-macosx_10_6_intel.whl (9.3 MB view details)

Uploaded CPython 3.7m macOS 10.6+ intel

miepy-0.5.0-cp36-cp36m-manylinux2010_x86_64.whl (11.9 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

miepy-0.5.0-cp36-cp36m-macosx_10_6_intel.whl (9.3 MB view details)

Uploaded CPython 3.6m macOS 10.6+ intel

File details

Details for the file miepy-0.5.0.tar.gz.

File metadata

  • Download URL: miepy-0.5.0.tar.gz
  • Upload date:
  • Size: 6.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.8.2

File hashes

Hashes for miepy-0.5.0.tar.gz
Algorithm Hash digest
SHA256 df455f027c5fcc3fde5a5379a36852d3afd33196d5b8351ff20d6225e5277c6a
MD5 65e404b9a8e6c34f2e77852723e25509
BLAKE2b-256 bfc93da67b04e52f2abd1877a2ed4eed5eaa6b0b2b2f91547d9ef2d1d88f296f

See more details on using hashes here.

File details

Details for the file miepy-0.5.0-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: miepy-0.5.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 11.9 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.8.2

File hashes

Hashes for miepy-0.5.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a569d2bef6516787c42da920021bf2b31e95d1c702b65afcaebc883690e4eda2
MD5 42b1717c7b7fb01e5ff6b546627d956a
BLAKE2b-256 fd0048013b3d4994ad820f1e8fe9ba8a86f5e6c5f274e6f43017cd8ab071d1cd

See more details on using hashes here.

File details

Details for the file miepy-0.5.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: miepy-0.5.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 9.4 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.8.2

File hashes

Hashes for miepy-0.5.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5dde4a6db3c6ddb2ced7a6bd4cf9dcde71bfc3bc4ff3e10acca82bfa8e8d1204
MD5 7f356b431623dbf792ff7c422f1323d3
BLAKE2b-256 9975df8021f160ea084b3f94922b3efac31ab51aba19329ad2408e0890e653a7

See more details on using hashes here.

File details

Details for the file miepy-0.5.0-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: miepy-0.5.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 11.9 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.8.2

File hashes

Hashes for miepy-0.5.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 1a74831861ade28b339d7e9ecae09b9bea22d9718a72d805d9ee3a98209908bb
MD5 5d1ca8c2f78be273ed3221bd0649df0d
BLAKE2b-256 be7f7a6d9868fdbcae5d6da9ce01a008d8561c848d8963eae7cbbb4fdca58207

See more details on using hashes here.

File details

Details for the file miepy-0.5.0-cp37-cp37m-macosx_10_6_intel.whl.

File metadata

  • Download URL: miepy-0.5.0-cp37-cp37m-macosx_10_6_intel.whl
  • Upload date:
  • Size: 9.3 MB
  • Tags: CPython 3.7m, macOS 10.6+ intel
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.8.2

File hashes

Hashes for miepy-0.5.0-cp37-cp37m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 39bcdc24ec0db8c353bad1ccc6345500003878d8cefbb72a68602bdfcf0a26bb
MD5 13e8fe52913be3b7f85b98d46498a41c
BLAKE2b-256 be1f0a9cc36696f499a23c7d85d77ec709df47415a7d47d130225562b134251c

See more details on using hashes here.

File details

Details for the file miepy-0.5.0-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: miepy-0.5.0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 11.9 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.8.2

File hashes

Hashes for miepy-0.5.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4669ee0a79cd80e78bc40e4fff324cc1b340f0a6898c00b3ca624a25f7a8e325
MD5 4b4d74398776a00a27362c40d2c41f1d
BLAKE2b-256 14cf085d7180cb4b352456f81513310b945dd715b7066079f2d974648fd0b560

See more details on using hashes here.

File details

Details for the file miepy-0.5.0-cp36-cp36m-macosx_10_6_intel.whl.

File metadata

  • Download URL: miepy-0.5.0-cp36-cp36m-macosx_10_6_intel.whl
  • Upload date:
  • Size: 9.3 MB
  • Tags: CPython 3.6m, macOS 10.6+ intel
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.8.2

File hashes

Hashes for miepy-0.5.0-cp36-cp36m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 273c2cda9a71e79287596b85f54b5196167c09c14ad70cb822a7828868a7e4d6
MD5 31f04b9f1c3c662992130aa3912ee518
BLAKE2b-256 8d587b0c900ee34af926f102f59d5daabc6b49d5c7fadf25567aeff7a4ac07db

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page