Recent Releases of miepython

miepython -

3.0.2 5/25/2025)

  • update version in both __init__.py and pyproject.toml

3.0.1 (5/25/2025)

  • fix JIT regression (thanks @avgeiss)
  • clarify polarization in docstrings
  • improve README.rst
  • fix git branches
  • rename mie.miescalar to mie.singlesphere
  • rename smallmiesphere to small_sphere
  • rename smallconductingmie to smallconductingsphere
  • rationalize importing of jit and non-jit code
  • add testjitspeed.py and testnojitspeed.py

- Python
Published by scottprahl 9 months ago

miepython - Restored JIT functionality

3.0.1 (5/25/2025)

  • fix JIT regression (thanks @avgeiss)
  • clarify polarization in docstrings
  • improve README.rst
  • fix git branches
  • rename mie.miescalar to mie.singlesphere
  • rename smallmiesphere to small_sphere
  • rename smallconductingmie to smallconductingsphere
  • rationalize importing of jit and non-jit code
  • add testjitspeed.py and testnojitspeed.py

- Python
Published by scottprahl 9 months ago

miepython - New, saner, api

This version improves the api: mie.efficiencies() instead of mie.ez_mie() to find the Mie efficiencies. The source code has been refactored so there is less redundancy between jitted and non-jitted code. Other changes include

  • breaking api changes
  • use core.py to cleanly separate jit and non-jit code
  • new function to calculate mie coefficients inside sphere
  • new function to calculate E-fields near and far from sphere (only validated in far-field)
  • new rayleigh.py
  • new vsh.py to calculate vector spherical harmonics
  • new util.py for printing complex numbers
  • new bessel.py for complete spherical bessel function support
  • new monte_carlo.py to isolate Monte Carlo routines
  • use black for python formatting
  • update all notebooks to use new api
  • add more tests

- Python
Published by scottprahl 11 months ago

miepython - Add ability to get multipole information

2.5.5 (12/1/2024)

  • add ability to get individual multipole intensities
  • add 12_multipoles.ipynb as documentation
  • improve github workflows

- Python
Published by scottprahl about 1 year ago

miepython - Better documentation for normalization options

Spring cleaning. Fixed a bunch of packaging details and improved the README.rst page.

Info about normalization options is available. For example, help(miepython.i_per) will now tell you

``` i_per(m, x, mu, norm='albedo') Return the scattered intensity in a plane normal to the incident light.

This is the scattered intensity in a plane that is perpendicular to the
field of the incident plane wave. The intensity is normalized such
that the integral of the unpolarized intensity over 4π steradians
is equal to the single scattering albedo.

The normalization is controlled by `norm` and should be one of
['albedo', 'one', '4pi', 'qext', 'qsca', 'bohren', or 'wiscombe']
The normalization describes the integral of the scattering phase
function over all 4𝜋 steradians.

Args:
    m: the complex index of refraction of the sphere
    x: the size parameter of the sphere
    mu: the angles, cos(theta), to calculate intensities
    norm: (optional) string describing scattering function normalization

Returns:
    The intensity at each angle in the array mu.  Units [1/sr]

```

2.5.4 (5/7/2024)

  • document normalization in docstrings
  • add version and year to CITATION.cff
  • remove 'v' from version numbers
  • add github script and workflow to auto-update CITATION.cff
  • add conda badge to readme
  • clean up README.rst
  • use svg images
  • use a single tests/test_mie for jit and non-jit tests
  • support ruff
  • test python versions 3.7 to 3.12
  • fix badges
  • remove unused functions
  • fix zenodo link

Full Changelog: https://github.com/scottprahl/miepython/compare/v2.5.3...2.5.4

- Python
Published by scottprahl almost 2 years ago

miepython - More conda packaging nonsense

v2.5.3 (8/5/2023)

  • conda-forge fails because test files are not included

v2.5.0 (8/4/2023)

  • fix scattering function for very small spheres

v2.4.0 (6/10/2023)

  • add miephasematrix() to calculate scattering (Mueller) matrix

- Python
Published by scottprahl over 2 years ago

miepython - Fix for small spheres

v2.5.0 (8/4/2023)

  • fix scattering function for very small spheres (x=0.00064)

v2.4.0 (6/10/2023)

  • add miephasematrix() to calculate scattering (Mueller) matrix

- Python
Published by scottprahl over 2 years ago

miepython - Add scattering (Mueller) matrix

v2.4.0 (6/10/2023)

  • add miephasematrix() to calculate scattering (Mueller) matrix

v2.3.2

  • fix typo in README.rst that prevented pypi upload
  • add CITATION.cff to base level of miepython repository

v2.3.1

  • add DOI for citation purposes

- Python
Published by scottprahl over 2 years ago

miepython - Citable Release

v2.3.2

  • No code changes, but fixing metadata and adding CITATION.cff

v2.3.1

  • Using Zenodo to create archives that are citable. Zenodo is stored safely in CERN’s Data Center and operated by CERN. In any case, this creates a Digital Object Identifier (DOI) that is citable and trackable.

  • No code changes in this release.

- Python
Published by scottprahl almost 3 years ago

miepython - User selectable phase function normalization

One of the pain points of working with Mie scattering functions is figuring out exactly how the phase function is normalized. miepython defaults to normalizing the integral of the phase function over all directions to equal the albedo. This version now allows one to normalize to a range of common numbers:

  • albedo : single scattering albedo
  • one : unity
  • 4pi : since there are 4π steradians in a sphere
  • qsca : the scattering efficiency
  • qext : the extinction efficiency
  • bohren : 4π x² Qsca
  • wiscombe : π x² Qsca

The normalization is done by specifying a different normalization

intensity = miepython.i_unpolarized(m, x, mu, norm='wiscombe')

See the normalization docs on https://miepython.readthedocs.io/en/latest/03a_normalization.html for details

- Python
Published by scottprahl over 3 years ago

miepython -

v2.2.3 (1/26/2022)

  • update _mie_An_Bn in miepython_nojit
  • store data in module so github testing passes
  • fix build of API documentation on readthedocs
  • only test python 3.9 because importlib.resources is used to store data
  • python 3.9 is only needed for a few of the jupyter notebooks

v2.2.2 (1/25/2022)

  • modify _mie_An_Bn to allocate and return An and Bn

v2.2.1 (9/5/2021)

  • create pure python packages

- Python
Published by scottprahl about 4 years ago

miepython - Minor update, better packaging, docs

v2.2.2 (1/25/2022)

  • modify mieAn_Bn to allocate and return An and Bn
  • fix minor packaging issue
  • explicitly define encoding when opening files
  • explicitly use .readthedocs.yaml to build docs
  • use rtd theme for docs
  • add docs/requirements
  • restrict Jinja2 to 2.11.3 in docs/requirements

v2.2.1 (9/5/2021)

  • create pure python packages
  • include wheel file
  • package as python3 only

- Python
Published by scottprahl about 4 years ago

miepython - Pure Python Release

miepython has always been pure python, but the packaging did not reflect that.

v2.2.1 (9/5/2021)

  • create pure python packages
  • include wheel file
  • package as python3 only

2.1.0 (05/22/21)

  • fix case when scalar angle used with mieS1S2()
  • add pypi badge
  • fix notebook testing
  • thanks to @zmoon for the following changes:
  • add requirements-dev.txt
  • add example script testing
  • add workflow testing
  • fix Au/Ag error
  • fix examples that use refractiveindex.info
  • add testing badge

2.0.1 (04/25/21)

  • fix packaging mistake

2.0.0 (04/25/21)

  • use numba for 10-700X speed improvement
  • thanks to @jbecca and @pscicluna for their help
  • add performance notebook
  • add automated notebook checking
  • test more code

- Python
Published by scottprahl over 4 years ago

miepython - Huge speed increase

2.0.1 (04/25/21)

  • fix merge error

2.0.0 (04/25/21)

  • use numba for 10-700X speed improvement
  • thanks to @jbecca and @pscicluna for their help
  • add performance notebook
  • add automated notebook checking
  • test more code

- Python
Published by scottprahl almost 5 years ago

miepython - Huge speed increase using numba

2.0.0 (04/25/21)

  • use numba for 10-700X speed improvement
  • thanks to @jbecca and @pscicluna for their help
  • add performance notebook
  • add automated notebook checking
  • test more code

- Python
Published by scottprahl almost 5 years ago

miepython - Doc updates

No code changes. Just minor documentation changes

  • add badges (colab, github, readthedocs, license)
  • change theme for documentation
  • avoid installing sphinx
  • fix restructured text errors
  • advise everywhere to pip install --user miepython to avoid permission problems

- Python
Published by scottprahl almost 5 years ago

miepython - Add ez functions

Add two new functions * ez_mie(m, d, lambda0) * ez_intensities(m, d, lambda0, mu)

Minor documentation fixes * fix formatting * fix api autodoc * specify newer pythons * better install instructions

- Python
Published by scottprahl about 5 years ago

miepython - miepython with updated documentation

Packaging and documentation update. No code changes.

  • Updated all the docstrings for functions
  • Updated all the Jupyter notebooks
  • Use sphinx to create docs
  • Docs now hosted on https://miepython.readthedocs.io
  • Pruned files installed by pip

- Python
Published by scottprahl almost 6 years ago

miepython - Latest Stable Release

This version includes fixes for large spheres (added in v1.2.0) and for small spheres with size parameters less than 0.06. These changes are accompanied by significantly more validation tests for large and small sizes, as well as new tests for the backscattering efficiency.

- Python
Published by scottprahl about 7 years ago

miepython -

This release adds a couple of convenience functions, add new documentation, and improves packaging.

Convenience routines Ipar, Iper, and I_unpolarized make it so that I don't have to look up how S1 and S2 are exactly defined.

This release also hides internal (private) routines so that your namespace does not get polluted.

Finally, two new documentation notebooks have been added. The first attempts to clarify angular scattering. The second starts to relate the Mie scattering to Rayleigh scattering.

- Python
Published by scottprahl almost 8 years ago

miepython - 1.0.0

First version with documentation. The docs are in the form of Jupyter notebooks.

- Python
Published by scottprahl over 8 years ago

miepython - 0.4.2

- Python
Published by scottprahl over 8 years ago

miepython - 0.4.0

- Python
Published by scottprahl over 8 years ago

miepython - First working release

Fixed init.py to actually import the functions

- Python
Published by scottprahl over 8 years ago

miepython -

Initial release

- Python
Published by scottprahl over 8 years ago