The DMDW code

Tutorials

The tutorials input, output and dynamical matrix files are located in the “tutorials” directory of the distribution. These tutorials assume that the dynamical matrix files have been generated. The generation of these files is beyond the scope of these tutorials. The users should refer to the dynamical matrix generation guide (coming soon).



Case 1: Near-neighbor EXAFS DW factor of Cu between 1 and 300K

The input file (dmdw.inp) for this case is:
 1               # Output level: 0 - Terse, 1 - Verbose
 10              # Lanczos recursion order
 20 1.0 300.0    # Temperature grid: Number of temps, T min, T max
 0               # Type of output: 0 - s2, 1 - VFE, 2 - SE, 3 - u2
 feff.dym        # Dynamical matrix file name
 1               # Number of paths descriptors
 2 1 2     30.0  # Single scatt. descriptor from 1 to 2, ignore if R_Path > 30 a.u.

The first line set the the verbosity of the output. Currently only two levels are available, with 0 reporting only the target quantity (σ2, u2, etc) and 1 producing other interesting quantities (see below). The second line sets the Lanczos recursion order. In this case 10 is more than sufficient to produce converged EXAFS DW factors. Users should always monitor convergence with respect to this parameter. Please refer to the User’s Guide for a more detailed discussion of the lower and upper recursion order limits. The third line determines the target temperatures. Both single temperatures and ranges can be computed. The fourth line sets the type of DMDW output. (σ2 and u2 calculations are fully implemented, while vibrational free energies and self-energies are still under development.) The next line defines the name of the dynamical matrix file, in .dym format (please refer to the User’s Guide for a detailed description of this format). The last two lines define the EXAFS paths for which the DW factors will be computed. In this case there is only one type of path, a single scattering path between the near-neighbor atoms 1 and 2. A path length cutoff is also included to ignore paths longer than 30.0 au.

The output file (dmdw.out) looks like this:
# Lanczos recursion order:   10
# Temperature: (See list Below)
# Dynamical matrix file: feff.dym

--------------------------------------------------------------
 Path Indices:    1   2
 pDOS Poles:
     Freq. (THz)    Weight
        2.165       0.00126
        2.888       0.03260
        3.630       0.11056
        4.340       0.13929
        5.025       0.13509
        5.704       0.10975
        6.380       0.10676
        6.805       0.21940
        7.118       0.06292
        7.332       0.08235

 pDOS Einstein freq (single pole) and associated temp:
 Freq (THz) Temp (K)
   5.784     277.60

 pDOS n Moments and associated Einstein freqs and temps:
  n     Mom (THz^n)   Freq (THz)   Temp (K)
 -2       0.03882       5.07524     243.57
 -1       0.18960       5.27433     253.12
  0       0.99998       0.00000       0.00
  1       5.63323       5.63323     270.34
  2      33.45866       5.78435     277.60

 Path Length (Ang):  2.532
 Temp (K)   s2 (1e-3 Ang2)
    1.00       3.016
   16.74       3.016
   32.47       3.029
   48.21       3.091
   63.95       3.218
   79.68       3.404
   95.42       3.636
  111.16       3.904
...

The main portions of the output are the table of poles and weights determined by the Lanczos algorithm, the moments of the projected phonon density of states (pDOS) from both the single-pole and multi-pole approximations, their associated Einstein frequencies and temperatures and, finally, the table of DW factors at each target temperature. The poles and weights can be used to plot the pDOS (as in the figure above, which corresponds to the total, rather than projected pDOS, see below) while the moments can be used in simplified models and provide interesting properties of the systems, like its Einstein temperature.



Case 2: All single and some select double scattering EXAFS DW factors from one atom for Ge at 300K

As in the first case, the input file is very simple:
 0              # Output level: 0 - Terse, 1 - Verbose
 10             # Lanczos recursion order
 1 300.0        # Temperature grid: Number of temps, T min, T max
 0              # Type of output: 0 - s^2, 1 - VFE, 2 - SE, 3 - u^2
 feff.dym       # Dynamical matrix file name
 2              # Number of paths descriptors
 2 1 0     30.0 # All single scatt. descriptor from 1, ignore if R_Path > 30 a.u.
 3 1 4 0   30.0 # Double scatt. descriptor from 1, 4, ignore if R_Path > 30 a.u.

The main difference in this case is in the use of a terse output, just a single temperature and targeting single scattering parts from atoms 1, and double scattering paths that pass through atoms 1, 4 and any other atom in the system.

The output only lists the path indices, length and associated DW factors:
# Lanczos recursion order:   10
# Temperature:  300.00
# Dynamical matrix file: feff.dym

--------------------------------------------------------------
 Path Indices:    1   2
 Path Length (Ang), s2 (1e-3 Ang2):  2.417   3.448
--------------------------------------------------------------
 Path Indices:    1   3
 Path Length (Ang), s2 (1e-3 Ang2):  2.417   3.448
...
 


Case 3: Crystallographic u2 for Ge at 300K

The main difference in this case is in the type of DMDW calculation, and that the descriptor now targets a single atom, rather than an EXAFS scattering path:
 1              # Output level: 0 - Terse, 1 - Verbose
 16             # Lanczos recursion order
 1 300.0        # Temperature grid: Number of temps, T min, T max
 3              # Type of output: 0 - s2, 1 - VFE, 2 - SE, 3 - u2
 feff.dym       # Dynamical matrix file name
 1              # Number of paths descriptors
 1 1        0.0 # Target atom 1

The Lanczos order has been increased to provide better results since the u2 calculations have slower convergence than the σ2. (Please refer to the User’s Guide for a more detailed discussion of the lower and upper recursion order limits.)

The output file looks like this:
# Lanczos recursion order:   16
# Temperature:  300.00
# Dynamical matrix file: feff.dym
==============================================================
 Atom Index:    1
--------- Direction x ---------------------------
 pDOS Poles:
     Freq. (THz)    Weight
        1.787       0.07747
        2.205       0.10172
        2.627       0.12653
        3.211       0.02538
        3.931       0.02408
        4.650       0.03918
        5.325       0.02747
        6.117       0.03222
        6.575       0.08839
        7.051       0.02895
        7.455       0.03463
        7.850       0.06450
        8.100       0.14295
        8.366       0.11729
        8.458       0.01356
        8.635       0.05567

 pDOS Einstein freq (single pole) and associated temp: 
 Freq (THz) Temp (K)
   6.241     299.51

 pDOS n Moments and associated Einstein freqs and temps:
  n     Mom (THz^n)   Freq (THz)   Temp (K) 
 -2       0.08025       3.53009     169.41
 -1       0.24064       4.15556     199.43
  0       1.00000       0.00000       0.00
  1       5.68136       5.68136     272.65
  2      38.95106       6.24108     299.51

 u2 (1e-3 Ang2):   7.166
--------- Direction y ---------------------------
 pDOS Poles:
     Freq. (THz)    Weight
        1.792       0.06711
        2.228       0.10530
        2.629       0.13148
        3.217       0.02493
        3.926       0.02336
        4.660       0.04435
        5.318       0.02809
        6.098       0.03694
        6.557       0.08771
        7.015       0.02365
        7.436       0.03234
        7.848       0.05568
        8.104       0.14464
        8.356       0.09064
        8.424       0.04703
        8.641       0.05674

 pDOS Einstein freq (single pole) and associated temp: 
 Freq (THz) Temp (K)
   6.241     299.51

 pDOS n Moments and associated Einstein freqs and temps:
  n     Mom (THz^n)   Freq (THz)   Temp (K) 
 -2       0.07803       3.57984     171.80
 -1       0.23833       4.19591     201.37
  0       0.99999       0.00000       0.00
  1       5.68823       5.68823     272.98
  2      38.95074       6.24105     299.51

 u2 (1e-3 Ang2):   6.973
--------- Direction z ---------------------------
 pDOS Poles:
     Freq. (THz)    Weight
        1.786       0.05930
        2.251       0.10504
        2.642       0.13850
        3.242       0.02409
        3.937       0.02334
        4.678       0.04897
        5.318       0.02858
        6.098       0.04633
        6.567       0.08597
        7.114       0.02174
        7.511       0.02893
        7.924       0.06717
        8.143       0.13487
        8.396       0.12810
        8.620       0.01798
        8.658       0.04108

 pDOS Einstein freq (single pole) and associated temp: 
 Freq (THz) Temp (K)
   6.241     299.51

 pDOS n Moments and associated Einstein freqs and temps:
  n     Mom (THz^n)   Freq (THz)   Temp (K) 
 -2       0.07612       3.62463     173.95
 -1       0.23623       4.23317     203.15
  0       0.99999       0.00000       0.00
  1       5.69498       5.69498     273.31
  2      38.95122       6.24109     299.52

 u2 (1e-3 Ang2):   6.806
==============================================================

The output is very similar to the σ2 case, but with three sections corresponding to displacement along the three Cartesian axes. The total pDOS can be obtained by collecting all poles and renormalizing the weights by 1/3. The total u2 corresponds to the average of the three Cartesian components.