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.