Coupled-dipole simulations for electromagnetic scattering of light by sub-wavelength particles in arbitrary 3-dimensional configurations. Scattering and absorption spectra are simulated by inversion of the interaction matrix, or by an order-of-scattering approximation scheme. High-level functions are provided to simulate spectra with varying angles of incidence, as well as with full angular averaging.
Coupled-dipole simulations for electromagnetic scattering of light by sub-wavelength particles in arbitrary 3-dimensional configurations. Scattering and absorption spectra are simulated by inversion of the interaction matrix, or by an order-of-scattering approximation scheme. High-level functions are provided to simulate spectra with varying angles of incidence, as well as with full angular averaging.
DOCUMENTATION
INTERNAL CHANGES
rewritten core functions, simplified interface
the theory is now more accurately described and properly implemented
USER-LEVEL CHANGES
clusters are now defined with column-major conventions
new clusters and functions for dye layers (but no core yet)
INTERNAL CHANGES
use symmetry to calculate only half of the off-diagonal interaction matrix blocks
tweak LinkingTo Rcpp for CRAN
INTERNAL CHANGES
complete rewrite of the internal functions to clean up and optimise the passing of parameters
cross-sections are now calculated for multiple incident angles at once
corrected a missing factor of 1/sqrt2 in dispersion calculation with circular polarisation
Rcpp::function tweaks to please c++11 and clang for CRAN release
more complete internal tests based on testthat (see inst/tests)
(non-exported) standalone R version of the core CDA functions for testing and debugging
USER VISIBLE CHANGES:
dispersion_spectrum now calculates extinction, absorption and scattering
the linear system is now always solved with a (multiple) right-hand side (incident fields), the option to invert the matrix has been removed. It was slower in most cases anyway
linear_extinction_spectrum no longer exists. Use the more versatile dispersion_spectrum instead
demos updated to reflect the internal changes
USER VISIBLE CHANGES:
QMC angular averaging gains an 'iterative' routine, adding new integration points until specified accuracy is reached
a 'cheap' (fast) version of angular averaging is added, only using 3 angles but providing in most cases a good estimate of full averaging
BUG FIX:
CRAN update
submitting more complete copyright information at the request of CRAN maintainers, to explicitly state the copyright of LAPACK routine src/zgels.f
INTERNAL CHANGES:
INTERNAL CHANGES:
fixed polarisation and orientation issues in dispersion calculations
cleaned up internal code
started using testthat for consistency checks in future releases
USER VISIBLE CHANGES:
function names have changed to be more consistent
all dimensions are now in nanometres
updated the licence to GPL3 + LICENCE file
DOCUMENTATION:
new examples under inst/wiki formatted for knitr+markdown and updating the github wiki
cleaning up demos, examples and vignettes
link to github + wiki as the source of documentation
INTERNAL CHANGES:
explicit export of functions
theme_minimal adapted for ggplot2
NEW FUNCTIONALITY:
USER-VISIBLE CHANGES:
ENHANCEMENTS:
Choice of three methods for angular averaging: regular grid, Gauss Legendre Quadrature, Quasi-Monte Carlo (default). N now refers to the number of integration points (GL may use a slightly higher number of points, rounded as ceiling[sqrt(N)]).
added tests/ subdirectory, featuring numerical tests of consistency.
BUG FIXES:
Initial CRAN release.