
Brief description
The cda package implements the coupled-dipole approximation for electromagnetic scattering by sparse collections of subwavelength particles, with a particular focus on plasmonic nanoparticles in the visible regime. The interaction matrix, and the solution of the linear system of coupled-dipole equations are executed in C++ code for speed; convenient wrapper functions are provided at the R level to generate the particle clusters, calculate the extinction, scattering, and absorption of light by particles with linearly and circularly polarised light. Functions are also provided to calculate orientation-averaged circular dichroism, and display clusters of nanoparticles in three dimensions using OpenGL or povray.
Package installation
## Required dependencies
dependencies <- c("ggplot2", # plotting and data reshaping
"Rcpp", # R/C++ interface
"RcppArmadillo", # Rcpp interface with the Armadillo <1> linear algebra C++ library
"statmod", # provides Gauss-Legendre quadrature points for orientation-averaging
"rgl" # R interface to OpenGL for 3D visualisation
)
install.packages(dependencies)
install.packages("cda")
## load the package
library(cda)
## Two introductory documents
vignette(package = "cda")
## A few examples
demo(package = "cda")
## A number of figures reproduced from recent works in the literature
system(paste("open", system.file("publis","circular_dichroism.pdf",package="cda")))
## which can be copied from the publis/ directory
list.files(system.file("publis", package="cda"), recursive=TRUE)
Examples
demo(dimer_linear)
> library(cda)
> wvl <- seq(400,900)
> gold <- epsAu(wvl)
> onedimer <- function(d = 200){
+ clust <- makeRodChain(N=2, pitch=d*1e-3)
+ m <- linear_extinction_spectrum(clust, gold, n=1.5)
+ invisible(m)
+ }
> params <- data.frame(d=seq(200, 400, by=10))
> comparison <- mdply(params, onedimer)
> p <-
+ ggplot(data=comparison) +
+ geom_path(aes(wavelength, value, linetype=variable,
+ colour=d, group=interaction(d,variable))) +
+ labs(y=expression(sigma[ext]*" /"*mu*m^2),
+ x=expression(wavelength*" /"*mu*m),
+ colour = expression(d/nm), linetype=expression(polarisation))

demo(dimer_cd)
> library(cda)
> wvl <- seq(500,900)
> gold <- epsAu(wvl)
> onecluster <- function(handedness="right"){
+ test <- handedness == "right"
+ clust <- makeDimerCluster(d = 200e-3, phi=pi/4, right = test)
+ m <- circular_dichroism_spectrum(clust, gold, n=1.33, N=36)
+ invisible(m)
+ }
> params <- data.frame(handedness=c("right", "left"))
> comparison <- mdply(params, onecluster)
> p <- ggplot(comparison) + facet_grid(type~., scales="free") +
+ geom_hline(yintercept=0) +
+ geom_path(aes(energy, value, colour=handedness, linetype=variable,
+ group=interaction(handedness, variable))) +
+ labs(x="energy / eV", y=expression(sigma / mu*m^2))

References
-
B. Auguié, J.L. Alonso-Gómez, A. Guerrero-Martìnez, and L.M. Liz-Marzán. Fingers crossed: Optical activity of a chiral dimer of plasmonic nanorods. The Journal of Physical Chemistry Letters, 2(8):846–851, 2011.
-
A. Guerrero-Martìnez, J.L. Alonso-Gómez, B. Auguié, M. Cid, and L.M. Liz-Marzán. From individual to collective chirality in metal nanoparticles. Nano Today, in press, 2011.
-
A. Guerrero-Martìnez, B.Auguié, J.L. Alonso-Gómez, Z.Džolić, S. Gómez-Graña, M. Žinić, M.M. Cid, and L.M. Liz-Marzán. Intense optical activity from three-dimensional chiral ordering of plasmonic nanoantennas. Angewandte Chemie International Edition, 50(24):5499–5503, 2011.
-
B. Auguié, X.M. Bendaña, W.L. Barnes, and F.J. García de Abajo. Diffractive arrays of gold nanoparticles near an interface: Critical role of the substrate. Phys. Rev. B, 82(15):155447, Oct 2010.
-
B. Auguié and W.L. Barnes. Diffractive coupling in gold nanoparticle arrays and the effect of disorder. Opt. Lett., 34(4):401–403, Feb 2009.
-
B. Auguié and W.L. Barnes. Collective resonances in gold nanoparticle arrays. 101(14):143902, Sep 2008.