Direction integrated and powder spectra:

The script make_TDS_DispersionIntensityCurvesIntegrated calculates IXS and INS scattering intensities integrated over a given axis or sphere. For a given Q, it considers a whole set of points obtained from this q by rotation operations.

It requires that you have previously done the following operations :

  • symmetrisation
  • Fourier transform
  • Debye waller calculation for the temperature of choice
  • The usage is

    make_TDS_DispersionIntensityCurvesIntegrated castep_filename input_filename  

    the file castep_filename can be either the name of the original castep output our the associated hdf5 file. In any case the associated hdf5 file must exist already ( make_TDS_Simmetrization must be runned beforehand )

  • The input_file must set the variables :

    • Mandatories


      • redStarts

      • redEnds

      • Nqlines

      • Nfour_interp

      • Temperature

      • resolutionfile

      • Saturation

      • lowerLimit

      • bottom_meV

      • axis

        this is the axis around which rotations are done when sphereintegral==0

      • Nangular

        this is the number of azimuthal steps

      • sphereintegral

    • if sphereintegral==1

      • Nangular2

        this is the number of polar steps

    • If NEUTRONCALC==0 ( default )

      • Lambda

      • CohB
      • NeutronE
    • Optional

      • branchWeight
      • Eigscal
      • UniqueIon


  • File summedoverQs.dat

    contains two columns : energy , intensity. Obtained after summing over Qs

  • File alongtheline_TDS.dat :

    energy integrated intensity (TDS) for each q-value

The input variables are documented with docstrings below

make_TDS_DispersionIntensityCurvesIntegrated.APPLYTIMEREVERSAL = 1

this is one by default. Must be coherent with previous steps

make_TDS_DispersionIntensityCurvesIntegrated.redStarts = [[-2.0, -2.0, 0.0], [2.0, 2.0, 0.0]]

The list of Q points at which calculation is made is done of N segments. The redStarts variable contains a list of N starting points in reciprocal space reduced units. Each segment i starts at redStarts[i] and ends at redEnds[i]. Within each segment the spacing between points is the segment lenght divided by Nqlines[i]

make_TDS_DispersionIntensityCurvesIntegrated.redEnds = [[2.0, 2.0, 0.0], [2.0, 2.0, 1.0]]

see redStarts

make_TDS_DispersionIntensityCurvesIntegrated.Nqlines = [200, 100]

see redStarts

make_TDS_DispersionIntensityCurvesIntegrated.Nfour_interp = 5

The number of points in each direction of the 3D reciprocal grid. The hdf5 file must contain a previous pretreatement done with the same parameter.

make_TDS_DispersionIntensityCurvesIntegrated.Temperature = 100
The hdf5 file must include DW factors calculated ALSO at this temperature.
The temperature at which DW factors have been calculated.
Units are Kelvin
make_TDS_DispersionIntensityCurvesIntegrated.resolutionfile = ''

a two column file : first the energy in cm-1, second the value of resolution function

make_TDS_DispersionIntensityCurvesIntegrated.Lambda = 1.0

For X-ray scattering : the wavelenght in Angstroems.

make_TDS_DispersionIntensityCurvesIntegrated.Saturation = 0

To limit intensity at peaks : intensity is saturated at this value

make_TDS_DispersionIntensityCurvesIntegrated.lowerLimit = 0

To correct the dynamical range, when displaying, the intensity is clipped to prevent it going below this value

make_TDS_DispersionIntensityCurvesIntegrated.bottom_meV = 0

Calculated eigenvalues are clipped to this value before use.

make_TDS_DispersionIntensityCurvesIntegrated.NEUTRONCALC = 0

This activate neutron scattering calculations.

make_TDS_DispersionIntensityCurvesIntegrated.CohB = None

When neutroncalc is on, this must be a dictionary : for each atom name the Coherent lenght.

make_TDS_DispersionIntensityCurvesIntegrated.NeutronE = 0

When neutroncalc is on, the neutron energy in meV

make_TDS_DispersionIntensityCurvesIntegrated.branchWeight = None

a list of weights : one per branch.

make_TDS_DispersionIntensityCurvesIntegrated.Eigscal = 0

EigScal==1 Intensity are calculated WITH only eigenvector scalar products ; ==2 Intensity are calculated WITH only eigenvector scalar products PLUS Mass factor

make_TDS_DispersionIntensityCurvesIntegrated.UniqueIon = -1

If >=0. Selects one ion. All the other will be silent.

make_TDS_DispersionIntensityCurvesIntegrated.axis = [0.0, 0.0, 1.0]

Rotation axis

make_TDS_DispersionIntensityCurvesIntegrated.Nangular = 4

No of angular steps over 2pi

make_TDS_DispersionIntensityCurvesIntegrated.sphereintegral = 0

if set to 1 : the whole sphere is integrated

make_TDS_DispersionIntensityCurvesIntegrated.Nangular2 = 1

if sphereintegral == 1 this variable has to be set : Nangular for No of azimuth angle steps, Nangular2 for No of polar angle steps