Skip to content

Jumps in T-dependence of inelastic cross section #349

Description

@marquezj

With @dddijulio we came across an issue when plotting XS as a function of temperature. There are fluctuations in the scattering cross section that are bigger than the variation with temperature. This could be important for quantitative wavelength-dependent transmission analysis or other applications where you need the cross section as a function of temperature.

This is an example of what we are seeing:

E_thermal = 0.0253
cfg = 'Polyethylene_CH2.ncmat'
temperatures = np.linspace(250, 350, 101)
plt.figure()
for lux in (3,4):
    xs_thermal = []
    for T in temperatures:
        mat = NC.load(cfg+f';temp={T};vdoslux={lux}')
        xs_thermal.append(mat.scatter.xsect(E_thermal))
    plt.plot(temperatures, xs_thermal, label=f'vdoslux={lux}')
plt.legend()
plt.xlabel('Temperature (K)')
plt.ylabel(f'Cross section @ E={E_thermal}')
plt.show()
Image

A more intense effect is seen with the Debye Model, and perhaps it could be useful for debugging:

E = np.geomspace(1e-4,10,1000)
for T in  (319., 319.001):
    mat = NC.load(f'solid::C/1gcm3/TDebye400K;vdoslux=5;comp=inelas;temp={T}')
    xs = mat.xsect(E) 
    plt.semilogx(E, xs, '-')
plt.xlabel('Energy [eV]')
plt.ylabel('Scattering XS')
Image
temperatures = np.linspace(300,320,101)
E0 = 1e-3
xs25 = [NC.load(f'solid::C/1gcm3/TDebye400K;vdoslux=5;elas=0;temp={t}').xsect(E0) for t in temperatures]
plt.plot(temperatures, xs25, '.-')
plt.xlabel('Temperature [K]')
plt.ylabel('Scattering XS at 1 meV')
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions