Description Usage Arguments Details Value Note References See Also Examples
Functions to calculate the total scattering structure function given a matrix in which each row represents the position of an atom or to simulate it in the SAS region using particle lattice and size parameters.
1 2 3 4 5 6 7 | calcTotalScatt(nanop, dQ=.01, minQ=0.771, maxQ=35, type="neutron",
scatterFactor=NA, scatterLength=NA, sigma=NA, n=0,
delta=0, kind="fastHist", dr = 0.001, del = 0.01, eps=1e-3)
IqSAS(Q, Rcore=NA, Rpart, latticep, latticepShell=NA,
scatterLength, N1, N2=NA, pDimer=0, sym, symShell=NA)
IqSASP(Q, shell=NA, Rpart, latticep, latticepShell=NA,
scatterLength, N1, N2=NA, pDimer=0, sym, symShell=NA, rsigma)
|
nanop |
numeric matrix in which each row gives the coordinates of an atomic position in the nanoparticle. If nanop is not an object returned by |
dQ |
numeric indicating the desired step size in Q. |
minQ |
numeric indicating the minimum value of Q for which the function should be evaluated. |
maxQ |
numeric indicating the maximum value of Q for which the function should be evaluated. |
type |
character indicating type of scattering. Either "X-ray" or "neutron". |
scatterFactor |
list containing X-ray scattering factor parameters; see details. If |
scatterLength |
in |
sigma |
numeric vector which, if not |
n, delta |
numerics describing the correlation parameters n and δ for thermal atomic displacements; see details. |
kind |
character, can be set to "exact", "fast", "fast_av" or "fastHist". If "exact" the Debye sum is calculated as is, that can be relatively time-consuming. If "fast", "fast_av" or "fastHist" then the pseudogrid approach (Cervellino et al., 2006) is used. If "fastHist" the histogram bin approach is used to calculate interatomic distances and their multiplicities. Option "fast_av" should be used if |
dr |
numeric. If |
del |
numeric. If |
eps |
numeric. If kind="fast" or "fast_av" describes the step size ε for interatomic distances. |
Q |
numeric vector, contains grid points on which the total scattering structure function should be evaluated. |
N1, N2 |
numerics indicating number of atoms within the unit cell in the particle core and shell. |
Rcore |
numeric which, if not |
Rpart |
numeric indicating the radius of the nanoparticle |
latticep, latticepShell |
numeric vectors indicating the lattice parameter(s) for the core (shell); see |
pDimer |
numeric indicating probability of atom to form a cluster with its neighbour. |
sym, symShell |
characters describing the structure to be used; see |
shell |
numeric indicating shell thickness for the core/shell particle. For polydisperse particles shell is supposed to be of constant thickness. |
rsigma |
numeric indicating standard deviation in the log normal distribution of the particle (core) radius. |
The X-ray scattering factor is approximated by the function
f(s)=a_1 * exp(-b_1 s) + a_2 * exp(-b_2 s) + a_3 * exp(-b_3 s) + a_4 * exp(-b_4 s) + c
where s = (\frac{Q}{4π})^2. The constants in the function are possible to specify as arguments. In that case scatterFactor
parameter should contain vectors a1
, b1
, a2
, b2
, a3
, b3
, a4
, b4
, a5
, b5
and c
. Their default values correspond to the values for Au and Pd atoms.
The correlated atomic displacement parameter for the atoms μ and ν is calculated as
σ^2_{μ, ν} = (σ^2_{μ} + σ^2_{ν} ) [ 1 - \frac{δ}{r^n}].
calcTotalScatt
: list with elements
Q |
numeric vector of values at which the function was evaluated, |
gQ |
numeric vector of function values. |
IqSAS
and IqSASP
: numeric vector of function values.
IqSASP function calculates total scattering function for the polydisperse uniform particles and polydisperse core/shell particles with constant shell thickness.
Cervellino A, Giannini C, Guagliardi A. (2006): On the efficient evaluation of Fourier patterns for nanoparticles and clusters. J. Comput. Chem. 27, 995–1008.
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 | ## simulate particle
Au <- createAtom("Cu")
Au$name <- "Au"
Pd <- createAtom("Cu")
Pd$name <- "Pd"
part <- simPart(list(Au), atomsShell=list(Pd), r=10, rcore=8)
gQ <- calcTotalScatt(part, type="neutron", sigma=c(.08, .012),
kind="fast", del=5e-4)
plot(gQ$Q, gQ$gQ, type="l")
## "fast_av" option to calculate scattering function
## for the array of polydisperse particles:
Zn <- createAtom("Zn")
S <- createAtom("S")
part <- simPart(atoms=list(Zn, S), r=c(8, 10, 11.2, 13.4, 14),
sym="hcp", latticep=c(4.3, 7.02))
gQ <- calcTotalScatt(part, type="neutron", sigma=c(.08, .012),
kind="fast_av")
plot(gQ$Q, gQ$gQ, type="l")
## total scattering function in small-angle region using
## parametric model:
Q=seq(0.001, 0.771, 0.005)
gQSAS <- IqSAS(Q=Q, Rpart=26, latticep=c(3.21, 5.21),
scatterLength=7.1, N1=2, sym="hcp")
plot(Q, log(abs(gQSAS)), type="l")
## total scattering function for polydisperse sample with
## lognormal distribution
gQSAS2 <- IqSASP(Q=Q, shell=2.8, Rpart=11.2, latticep=c(4.08),
latticepShell=3.89, N1=4, N2=4, scatterLength=c(7.1, 8.3),
sym="fcc", symShell="fcc", rsigma=1.1)
plot(Q, log(abs(gQSAS2)), type="l")
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.