Status | Features | Download | Documentation | Contact |

LMie (Linearized Mie) computes the scattering properties for polydisperse homogeneous spherical particles using Mie theory. What sets LMie apart from the many other Mie implementations available is that in addition to the typical scattering quantities LMie has the option to analytically generate derivatives of these quantities with respect to the input parameters. This makes LMie convenient for sensitivity studies and remote sensing retrievals of particle properties. LMie is also parallelized over the size distribution integration with OpenMP for shared memory systems such as multi-core workstations and with MPI for clusters. LMie is coded in C while C/C++ and Fortran 77/90 interfaces are available. LMie is free and open source software and is licensed under the GNU General Public License.

**April 4, 2020**

Version 0.91 is available for download with an updated build system.

The following is a list of some LMie's more interesting features:

- Supports 6 different particle size distributions including power law, modified power law, gamma, modified gamma, log normal, and modified bimodal log normal.
- Outputs include the extinction, scattering, and backscattering cross sections; asymmetry parameter, elements of the normalized scattering matrix, and coefficients for the expansion of the scattering matrix in either generalized spherical functions or Legendre functions. In addition to these quantities LMie outputs several quantities related to the numerical integration of the size distribution including the effective radius and effective variance.
- Along with the outputs listed above LMie is capable of optionally generating analytic derivatives of the outputs with respect to the inputs. Derivatives can be calculated with either forward accumulation (tangent linear), while implementation of backward accumulation (adjoint of the tangent linear) is in progress. Any number of derivatives may be calculated in a single call.
- LMie is thread safe, i.e. multiple instances of LMie can be called safely in shared memory multi-processor environments.
- LMie is also parallelized over the size distribution integration with OpenMP for shared memory systems such as multi-core workstations and with MPI for clusters.
- LMie is coded in C while C/C++ and Fortran 77/90 interfaces are available.
- LMie has been tested extensively against the Fortran 77 code spher.f developed at NASA GISS [1].

The source code can be downloaded for Linux/Unix/MacOS as lmie-0.91.tar.gz or for Windows as lmie-0.91.zip.

Alternatively, the LMie git repository may also be accesed on github.

See the user manual for documentation on how to compile the library and link it to your programs.

The LMie manual can be read online as an HTML document or may be downloaded as a PDF. Alternatively, the LMie distribution comes with both the HTML and PDF forms of this documentation in the "doc/" subdirectory.

The "examples/" subdirectory contains a simple example program that calls LMie and uses some of its basic features. A example exist for each of the language interfaces supported.

For bugs, comments, or suggestions please email Greg: greg.mcgarragh@colostate.edu.

Bug reports are greatly appreciated! If you would like to report a bug please include sample code that reproduces the bug, along with the inputs and expected outputs.