Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/johnaparker/miepy
Python module to solve Maxwell's equations for a cluster of particles using the generalized multiparticle Mie theory (GMMT)
https://github.com/johnaparker/miepy
electrodynamics light physics python scattering t-matrix
Last synced: about 1 month ago
JSON representation
Python module to solve Maxwell's equations for a cluster of particles using the generalized multiparticle Mie theory (GMMT)
- Host: GitHub
- URL: https://github.com/johnaparker/miepy
- Owner: johnaparker
- License: gpl-3.0
- Created: 2019-01-13T23:52:03.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-08-16T06:06:31.000Z (over 2 years ago)
- Last Synced: 2024-04-27T02:27:16.591Z (9 months ago)
- Topics: electrodynamics, light, physics, python, scattering, t-matrix
- Language: Fortran
- Homepage:
- Size: 3.53 MB
- Stars: 32
- Watchers: 5
- Forks: 15
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
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 particlesUsage
--------------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
```shell
pip install numpy
```
Then install MiePy
```shell
pip install miepy
```
MiePy is also available via Conda
```shell
conda install -c japarker miepy
```Install from source
--------------
To build MiePy from source, first install the required dependencies:+ [CMake](https://cmake.org/install/) (C++ build system)
+ [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page) (C++ linear algebra library)
+ [GNU Scientific Library (GSL)](https://www.gnu.org/software/gsl/)
+ GCC and GFORTRAN
+ Python 3 and pipThen, install MiePy using pip
```shell
pip install miepy --no-binary
```To build the latest development version, clone MiePy and its submodules:
```shell
git clone https://github.com/johnaparker/miepy.git miepy --recurse-submodules && cd miepy
```
and install MiePy using pip
```shell
pip install .
```
Optionally, run the tests to verify correctness:
```shell
pytest tests
```License
--------------
MiePy is licensed under the terms of the GPLv3 license.