Closed mducle closed 6 years ago
@mducle Should we just use the temperature from the sample logs, or should we allow the user to enter a temperature value?
Let's use the temperature from the logs if it exists - I think that nxspe
files don't save this information, but nxs
files do - and if it doesn't then have a pop-up dialog ask for the sample temperature.
@mducle Is this right:
chi''(Q,E) magnetic = chi''(Q,E) / 291
(with different units on the axis?)
Or do I also need to multiply by the square of the bohr magneton?
Yes. That's right. This is to ensure that the numbers out are still around unity rather than being of the order of 10^(-40).
There should be an option to display the intensity (colour) of slices as the dynamical susceptibility
chi''(Q,E)
instead of the scattering functionS(Q,E)
. The two are related by the fluctuation-dissipation theorem, which is given here as:for neutron energy loss (positive energy transfer), where the thermal population factor
1/<n+1>
is(1 - exp(-|E|/(kB.T)))
. For neutron energy gain (negative energy transfer), insteadshould be used where
1/<n>=(exp(|E|/(kB.T))-1)
[note the positive sign in the exponent and also that the modulus of the energy should be used (because we are thinking in terms of the energy of the excited magnon or phonon quasiparticles and not the neutron's energy)]. E.g.S(Q,E)
is usually in units ofmilibarn/sr/meV/f.u.
(wheref.u.
is a formula unit of material studied). Since the other factors are dimensionless,chi''(Q,E)
in this case is also in the same units asS(Q,E)
. Although the stated use of this conversion is to compare with theoretical calculations in absolute units, this is almost only ever done for magnetic scattering (see below). For lattice dynamics, the calculations will need to be scaled by some factor to match thechi''(Q,E)
shown here, and rather the use of this conversion is mainly instead to remove the temperature dependence of the scattering (thermal population factor of the phonons). If the color axis is labelled, it should be labelled with(arb. units)
.For magnetic scattering, however, because there is a total magnetic cross-section which depends on the magnetic moment, this can be factored out, yielding a dynamical susceptibility in absolute units. These units are
mu_B^2/meV/sr/f.u.
. The conversion in this case is:where
<n+1/2+/-1/2>
is the factor<n+1>
or<n>
described above for the cases ofE>=0
orE<0
;u_B
is the Bohr magneton, and the quantity(gamma * r_e / 2)^2=(-0.54e-14 m)^2 = 291 milibarns
is the total neutron cross-section for a moment of one bohr magneton (notegamma=-3.826
is the nuclear gyromagnetic ratio andr_e=2.818e-15 m
is the classical electron radius).We keep the factor (uB^2) in the units, so the only change from the non-magnetic case is to divide the intensity further by 291 milibarns. The axis should now be labelled
\chi''(Q,E) |F(Q)|^2 (\mu_B meV^{-1} sr^{-1} f.u.^{-1}
.The conversion should be applied to the plotted slice only (can be done directly on the numpy array, or on the
MDHistoWorkspace
), but it needs access to the energy transfer information to calculate the thermal population factor.There should be a menu option
Intensity
with a set of radio options. The default isS(Q,E)
which means that the workspace should be plot as it is. This issue adds to other options:chi''(Q,E)
chi''(Q,E) magnetic
If the user selects one of these, unless the intensity data is already in this form,
mslice
should convert the intensity using the above relationships, and then modify the plot and the color axis label.