LandauZener: Landau-Zener Charge Transfer Rates

Description Usage Arguments Details Value References See Also Examples

Description

Computes charge transfer (CT) rates using the semi-classic Landau-Zener expression obtained by combining transition state theory with the Landau-Zener treatment for non-adiabatic transitions (it includes an adiabatic correction to the Marcus expression):

k = κel * νn * Γn * exp( - β * ( ΔEa - Δ ) )

where κel and Γn are respectively the thermally averaged electronic transmission coefficient and nuclear tunneling factor. νn is the frequency of the effective vibrational mode assisting the reaction. ΔEa is the non-adiabatic activation energy (see activationFreeEnergy) and Δ is a correction factor relating ΔEa to the adiabatic activation energy (= ΔEa - Δ). (β = 1/kbT where kb is the Boltzmann constant and T the temperature).

The electronic transmission coefficient accounting for multiple crossings at the intersection region is given by:

κel = 2PLZ/(1+PLZ)

PLZ = 1 - exp(-2πγ)

2πγ = ( π^{3/2} * |J|^2 ) / ( h νn * √( λ kb T ) )

where PLZ is the Landau-Zener transition probability for a single surface crossing event, λ is the reorganization energy and J is the electronic coupling. The activation free energy and the adiabatic correction factor are given by:

ΔEa = (λ + ΔE0 + ΔEField)^2/(4λ)

Δ = |J| + (λ + ΔE0 + ΔEField)/2 - √( ( λ+ΔE0+ΔEField )^2/4 + |J|^2 )

The parameter 2 π γ determines the adiabaticity of the reaction. If 2 π γ << 1 the reaction is non-adiabatic and the Landau-Zener becomes the Marcus expression. In the opposite limit 2 π γ >> 1 the ET is adiabatic and PLZ and κel approach unity. Then, the rate expression is the same as for standard chemical reactions in the classical transition state approximation:

kad = νn*exp(-β (ΔEa - Δ))

Usage

1
2
3
4
5
6
7
LandauZener(J, lambda, nuN, dE0 = 0, dEField = 0, temp = 300, gammaN = 1)

electronicTransmissionCoefficient(J, lambda, nuN, temp = 300)

LandauZenerProbability(J, lambda, nuN, temp = 300)

adiabaticCorrection(J, lambda, dE0 = 0, dEField = 0)

Arguments

J

a scalar, a vector, a matrix or an array containing the electronic couplings (in eV) used to calculate the CT rates.

lambda

a scalar, a vector, a matrix or an array containing the total reorganization energies (in eV) used to calculate the CT rates.

nuN

a scalar giving the frequency of the effective vibrational mode assisting the CT process (in eV) used to calculate the CT rates.

dE0

a scalar, a vector, a matrix or an array containing the site energy differences (in eV) used to calculate the CT rates. By default self-exchange reactions are considered (dE0=0).

dEField

a scalar, a vector, a matrix or an array containing an additional contribution to the site energy differences due to an external electric field (in eV). By default no electric field is applied (dEField=0).

temp

a scalar giving the temperature (in Kelvin) at which to evalute the CT rates. By default CT rates are evaluated at room temperature (temp=300).

gammaN

a scalar giving the nuclear tunneling factor. By default the transition is assumed to occur without any tunneling effect (gammaN=1).

Details

The arguments of these function can be scalars, vectors, matrices or arrays. Mixing scalar values with vectors, matrices or arrays is allowed but in all other cases the arguments must have the same dimensions and lengths. Using matrices or arrays is useful to compute simultaneously several charge transfer rates for different pairs of molecules, structures ...

Value

Depending on the dimension of the objects passed to the function a scalar, a vector, a matrix or an array containing the Landau-Zener CT rates (in s-1) is returned.

References

H. Oberhofer and J. Blumberger, Physical Chemistry Chemical Physics, 14, 13846–13852, 2012

B. S. Brunschwig, J. Logan, M. D. Newton and N. Sutin, Journal of the American Chemical Society, 102, 5798, 1980

M. D. Newton and N. Sutin, Annual Review of Physical Chemistry, 35, 437, 1984

M. D. Newton, Chemical Reviews, 91, 767, 1991.

A. Nitzan, Chemical Dynamics in Condensed Phases, Oxford University Press, 2006

See Also

energyConversion, dEField, activationFreeEnergy, Marcus, MarcusLevichJortner, KMC

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
## Produce a map of the decimal logarithm of the Marcus,
## Marcus-Levich-Jortner and Landau-Zener rate expressions for:
nuN <- 1445 # effective vibrational mode wavenumber in cm-1
lambdaI <- 0.14  # internal reorganization energy in eV
lambdaS <- 36E-3 # external reorganization energy in eV

N  <- 301
J  <- seq( 0  , 65,length.out=N)*1E-3 # eV
dE <- seq(-0.5,0.5,length.out=N)      # eV
G  <- expand.grid(J, dE)
J  <- G[,1]
dE <- G[,2]

kMLJ    <- MarcusLevichJortner(
           J = J, lambdaI = lambdaI, lambdaS = lambdaS,
           hBarW = centimeterMinusOne2electronVolt(nuN), dE0 = dE)
kMarcus <- Marcus(
           J = J, lambda = lambdaI+lambdaS, dE0 = dE)
kLZ     <- LandauZener(
           J = J, lambda = lambdaI+lambdaS,
           nuN = centimeterMinusOne2Hertz(nuN), dE0 = dE)

kMLJ    <- matrix(kMLJ   , nrow = N, ncol = N)
kMarcus <- matrix(kMarcus, nrow = N, ncol = N)
kLZ     <- matrix(kLZ    , nrow = N, ncol = N)

addAxis <- function(bottom = TRUE, left = FALSE, above = FALSE, right = FALSE){
  useless <- lapply(1:4,axis, labels=FALSE)
  if(bottom) axis(1, labels = TRUE)
  if(left  ) axis(2, labels = TRUE)
  if(above ) axis(3, labels = TRUE)
  if(right ) axis(4, labels = TRUE)
  if(bottom) mtext(side=1,line=1.2, text=expression( abs(J)/eV), cex=par("cex"))
  if(left  ) mtext(side=2,line=1.2, text=expression(Delta*E/eV), cex=par("cex"))
  if(right ) mtext(side=4,line=1.2, text=expression(Delta*E/eV), cex=par("cex"))
  box()
}

layout(matrix(1:3, ncol=3))
par(cex=2, lwd=1.5, pty="s", mgp=c(1.1,0.1,0), tck=0.02, mar=rep(0.7,4), oma=rep(2,4))
contour(unique(J), unique(dE), log10(kMLJ   ),
        zlim = c(1,15), levels = -15:15, xaxt="n", yaxt="n", labcex=3)
addAxis(TRUE, TRUE, FALSE, FALSE)
title("Marcus-Levich-Jortner", line=1)
contour(unique(J), unique(dE), log10(kMarcus),
        zlim = c(1,15), levels = -15:15, xaxt="n", yaxt="n", labcex=3)
addAxis(TRUE, FALSE, FALSE, FALSE)
title("Marcus", line=1)
contour(unique(J), unique(dE), log10(kLZ    ),
        zlim = c(1,15), levels = -15:15, xaxt="n", yaxt="n", labcex=3)
addAxis(TRUE, FALSE, FALSE, TRUE)
title("Landau-Zener", line=1)

Example output

Loading required package: parallel

ChargeTransport documentation built on May 2, 2019, 9:24 a.m.