Package 'mie'

Title: Mie scattering
Description: Numerical implementation of Mie scattering theory for light scattering by spherical particles.
Authors: Baptiste Auguie [aut, cre]
Maintainer: Baptiste Auguie <[email protected]>
License: Mozilla Public License Version 2.0
Version: 1.0
Built: 2024-10-30 03:45:50 UTC
Source: https://github.com/nano-optics/mie

Help Index


Mie theory

Description

Scattering of light by a spherical object

Author(s)

baptiste Auguie [email protected]

References

Etchegoin, P. Le Ru, E., Principles of Surface-Enhanced Raman Spectroscopy, Elsevier, Amsterdam (2009). L. Novotny, E. Hecht, Principles of Nano-optics Cambridge University Press, 2006

See Also

Other user: mie_approximation(), mie_bh(), mie_ml(), mie()


average_Mloc

Description

Average Mloc

Usage

average_Mloc(wavelength, epsilon, radius, medium = 1, n_max = 10)

Arguments

wavelength

real vector

epsilon

complex vector

radius

scalar

medium

scalar, refractive index of surrounding medium

n_max

truncation order

Details

Enhancement factor averaged over the surface

Value

data.frame with wavelength and Mloc

Author(s)

Baptiste Auguie


efficiencies

Description

Efficiencies

Usage

efficiencies(x, GD, mode = c("EM", "Magnetic", "Electric"), order = NULL)

Arguments

x

real vector, size parameter

GD

list with Gamma, Delta, A, B

mode

type of mode

order

order of multipoles

Details

Calculates the far-field efficiencies for plane-wave illumination

Value

matrix of Qext, Qsca, Qabs

Author(s)

Baptiste Auguie


mie

Description

Far-field cross-sections

Usage

mie(
  wavelength,
  epsilon,
  radius,
  medium = 1,
  n_max = ceiling(2 + max(x) + 4 * max(x)^(1/3)),
  efficiency = FALSE,
  mode = c("EM", "Magnetic", "Electric"),
  order = Inf
)

Arguments

wavelength

real vector

epsilon

complex vector

radius

scalar

medium

scalar, refractive index of surrounding medium

n_max

truncation order

efficiency

logical, scale by geometrical cross-sections

mode

type of mode

order

order of multipoles

Details

Homogeneous sphere illuminated by a plane wave

Value

data.frame

Author(s)

Baptiste Auguie

See Also

Other user: mie-package, mie_approximation(), mie_bh(), mie_ml()

Examples

gold <- epsAu(seq(400, 800))
cross_sections <- with(gold, mie(wavelength, epsilon, radius=50, medium=1.33, efficiency=FALSE))
matplot(cross_sections$wavelength, cross_sections[, -1], type="l", lty=1,
        xlab=expression(lambda/mu*m), ylab=expression(sigma/mu*m^2))
legend("topright", names(cross_sections)[-1], col=1:3, lty=1)

mie_approximation

Description

Analytical approximation

Usage

mie_approximation(
  radius,
  wavelength,
  epsilon,
  medium = 1.33,
  order = Inf,
  efficiency = FALSE,
  ...
)

Arguments

radius

scalar

wavelength

real vector

epsilon

complex vector

medium

scalar, refractive index of surrounding medium

order

truncation order

efficiency

logical, scale by geometrical cross-sections (unused)

...

unused

Details

Sphere illuminated by a plane wave

Value

data.frame

Author(s)

Baptiste Auguie

See Also

Other user: mie-package, mie_bh(), mie_ml(), mie()


mie_bh

Description

Far-field cross-sections

Usage

mie_bh(
  wavelength,
  epsilon.core,
  epsilon.coating = medium^2,
  radius,
  thickness = 0,
  medium = 1,
  lmax = ceiling(2 + max(y) + 4 * max(y)^(1/3)),
  efficiency = TRUE
)

Arguments

wavelength

real vector

epsilon.core

complex vector

epsilon.coating

complex vector

radius

scalar

thickness

scalar

medium

scalar, refractive index of surrounding medium

lmax

truncation order (unused)

efficiency

logical, scale by geometrical cross-sections

Details

Coated sphere illuminated by a plane wave

Value

data.frame

Author(s)

Baptiste Auguie

See Also

Other user: mie-package, mie_approximation(), mie_ml(), mie()

Examples

gold <- epsAu(seq(400, 800))
coated <- with(gold, mie_bh(wavelength, epsilon, radius=50, medium=1.33, 
efficiency=FALSE))
bare <- with(gold, mie(wavelength, epsilon, radius=50, medium=1.33, 
efficiency=FALSE))
matplot(coated$wavelength, coated[, -1], type="l", lty=1,
        xlab=expression(lambda/nm), ylab=expression(sigma/nm^2))
matlines(bare$wavelength, bare[, -1], type="l", lty=2)
legend("topright", c(names(coated)[-1], "bare"), col=1:3, lty=c(1,1,1,2))

mie_ml

Description

Far-field cross-sections

Usage

mie_ml(
  wavelength,
  epsilon,
  radii,
  n_max = 10,
  efficiency = FALSE,
  mode = c("EM", "Magnetic", "Electric"),
  order = Inf
)

Arguments

wavelength

real vector

epsilon

list of dielectric functions, from inner to outer medium

radii

concentric radii of each interface, from smaller to larger

n_max

truncation order

efficiency

logical, scale by geometrical cross-sections

mode

type of mode

order

order of multipoles

Details

Multilayered sphere illuminated by a plane wave

Value

data.frame

Author(s)

Baptiste Auguie

See Also

Other user: mie-package, mie_approximation(), mie_bh(), mie()

Examples

library(dielectric)
library(mie)
gold <- epsAg(seq(300, 800))
a <- 30
b <- 34
c <- 35

bare <- mie(gold$wavelength, gold$epsilon, radius=a, medium=1.33, efficiency=FALSE)

leps <- list(gold$epsilon, 1.33^2, 1.5^2, 1.33^2)
# leps <- list(1.5^2, gold$epsilon,  1.33^2)
la <- list(a,b,c)
coated <- mie_ml(gold$wavelength, leps, radii=la, efficiency=FALSE)

matplot(bare$wavelength, bare[, -1], type="l", lty=1,
        xlab=expression(lambda/mu*m), ylab=expression(sigma/mu*m^2))
matlines(coated$wavelength, coated[, -1],  type="l",  lty=2)

legend("topright", c(names(bare)[-1], "coated"), col=1:3, lty=c(1,1,1,2))

psi

Description

Riccati-Bessel function psi and its derivative

Usage

psi(rho, n_max)

Arguments

rho

complex vector, argument

n_max

integer, maximum order

Details

Obtained from BesselJ, converted to spherical Bessel, and scaled

Value

a list with psi_n and psi'_n

Author(s)

Baptiste Auguie


susceptibilities

Description

Generalised susceptibility for multilayer Mie theory

Usage

susceptibilities(ls, lx, n_max)

Arguments

ls

list of relative refractive index

lx

list of size parameters

n_max

integer, maximum order

Details

Corresponds to the usual coefficients a_n, b_n, c_n, d_n

Value

list with Gamma, Delta, A, B

Author(s)

Baptiste Auguie


susceptibility

Description

Generalised susceptibility for the Mie theory

Usage

susceptibility(s, x, n_max)

Arguments

s

complex vector, relative refractive index

x

real vector, size parameter

n_max

integer, maximum order

Details

Corresponds to the usual coefficients a_n, b_n, c_n, d_n

Value

list with Gamma, Delta, A, B

Author(s)

Baptiste Auguie


xi

Description

Riccati-Bessel function xi and its derivative

Usage

xi(rho, n_max)

Arguments

rho

complex vector, argument

n_max

integer, maximum order

Details

Obtained from BesselH (Hankel function), converted to spherical Hankel, and scaled

Value

a list with psi_n and psi'_n

Author(s)

Baptiste Auguie