TutorialΒΆ

This tutorial comes with example files for the calculation of IXS and INS intensity maps and TDS intensity distribution. The case of ice-XI

  1. Download the files containing the dynamical matrix together with cell information (.phonon file) and the Born effective charges together with polarisability (.castep file). These files have been created via CASTEP though a “phonon” and an “efield” calculation. All files are located in the “tutorial” directory.

  2. Preliminary steps

    • reconstruct Brillouin zone using symmetry operations

      requires the files “phon_PBE_e774_co820_k554_fine001.phonon”, “efield_PBE_e774_co820_k554.castep” and the input file called “inputSimmetrization.txt”

      the input file is a text file containing the following parameters

      APPLYTIMEREVERSAL=1
      

      run the script

      make_TDS_Simmetrization phon_PBE_e774_co820_k554_fine001.phonon inputSimmetrization.txt efield_PBE_e774_co820_k554.castep
      
    • calculate Debye Waller factors with input file “inputDW.txt” containing

      APPLYTIMEREVERSAL=1
      Temperature=100
      

      run the script

      make_TDS_DW phon_PBE_e774_co820_k554_fine001.phonon inputDW.txt
      

      inspect calculated values stored in the md5 file

      h5dump -d /Codes_1/DWs/100/DWf_33 phon_PBE_e774_co820_k554_fine001.phonon.*
      

      here ‘100’ stands for the temperature, Debye-Waller factors calculated at other temperatures will be stored in an subdirectory named accordingly. Explore the contents of the md5 file with h5ls -r

    • perform Fourier Interpolation (can be executed in parallel) with input file “inputFourier.txt” containing

      APPLYTIMEREVERSAL=1
      Nfour_interp=4
      

      run the script

      mpirun -n 4 make_TDS_Fourier phon_PBE_e774_co820_k554_fine001.phonon inputFourier.txt
      
  3. Calculate scattering intensities for x-rays and neutron

    • calculate IXS intensity map for given direction with input file “inputDispersionIntensityCurve.txt” containing

      APPLYTIMEREVERSAL=1
      Nfour_interp=4
      Temperature=100
      redStarts=[[1.000 , 1.000 , 0.000]]
      redEnds  =[[2.000 , 2.000 , 0.000]]
      Nqlines=[200]
      resolutionfile="a3res9_pm.fit"
      Lambda=0.6968
      Saturation=1e-2
      lowerLimit=1e-12
      bottom_meV=1.0e-1
      COLOR=1
      

      download the experimental resolution file “a3res9_pm.fit” and run the script

      make_TDS_DispersionIntensityCurves phon_PBE_e774_co820_k554_fine001.phonon inputDispersionIntensityCurve.txt
      

      right-click on the graph to get a constant Q-cut

      try different values of Nfour_interp to see how the Fourier interpolation effects the intensity map. Remember that make_TDS_Fourier needs to be run for each values of Nfour_interp.

    • calculate INS intensity map

      replace “Lambda=0.6968” by “NeutronE=25.0” in the input file and add the scattering lengths

      NeutronE=25.0
      CohB={"H": 6.671+0.0j , "O": 5.803+0.0j }
      

      activate the neutron calculation by adding

      NEUTRONCALC=1
      

      run the script as for IXS intensity calculation

    • calculate 3D TDS intensity distribution (can be parallel) with input file “inputIntensityVolume.txt” containing

      APPLYTIMEREVERSAL=1
      subN1=50
      subN2=50
      subN3=50
      N1 =  4
      N2 =  4
      N3 =  4
      Nfour_interp=4
      Temperature=100
      Lambda=0.6968
      Saturation=1.0e6
      do_histogram=0
      DOQLIMITS=0
      

      run the script

      mpirun -n 6 make_TDS_IntensityVolume phon_PBE_e774_co820_k554_fine001.phonon inputIntensityVolume.txt
      

      ATTENTION: This operation requires 6 GB RAM per core! Run on less cores or decrease subNx if your machines does not have enough memory.

      open the VolumeIntensity_100_.ccp4 file with Chimera or VolumeIntensity_100_.h5 with pymca to display 3D isosurfaces

    • calculate TDS intensity map (can be parallel) with input file “inputIntensityPlane.txt” containing

      APPLYTIMEREVERSAL=1
      Nfour_interp=4
      Temperature=100
      Lambda=0.6968
      redCenter = [0.0 , 0.0, 0.0]
      Nqs   = 80
      DQ    = 0.12
      Saturation=2
      lowerLimit=0.000001
      bottom_meV=1e-3
      LINEAR=1
      COLOR=1
      redA = [ 1.0 , 0.0  ,0.0  ]
      redB = [ 0.0  ,1.0  ,0.0  ]
      redC = [ 0.0 , 0.0 , 0.0 ]
      

      run the script

      mpirun -n 4 make_TDS_IntensityPlane phon_PBE_e774_co820_k554_fine001.phonon inputIntensityPlane.txt