dymmatrix.pl
usage: dymmatrix.pl (DISPLACECAR) (OUTCAR)
or : dymmatrix.pl (#DISPLACECAR) (DISPLACECAR1) (DISPLACECAR2) ...
or : dymmatrix.pl (OUTCAR1) (OUTCAR2) (OUTCAR3) ...
output: mass-scaled dynamical matrix (freq.mat)
normal mode frequencies (freq.dat)
eigenvalues (eigs.dat)
and eigenvectors (modes.dat)
Takes the output from the dynamical matrix calculation and creates the matrix. The DISPLACECARs should only contain those degrees of freedomthat were calculated in their corresponding OUTCARs (see dymcmpdisp.pl). The scripts now handles the diagonalization itself via package fromCPAN. (It could be a bit slow for large matrices).
dymeffbar.pl
usage: dymeffbar.pl (initial temperature) (final temperature)
(saddle point energy) (file with initial state frequencies)
(file with saddle point frequencies)
output: eff_ea.dat, a file containing:
(temperature) (1000 / temperature)
(classical energy barrier)
(zero point energy corrected energy barrier)
(quantum barrier with zero point and tunneling)
dymzpbar.pl
usage: dymzpbar.pl (omega squared file [eigs.dat])
output: the zero point energy in eV to the STDOUT
This script sums up the zero point energy contribution from the stable modes.
dymseldsp.pl
usage: dymseldsp.pl (POSCAR 1) (POSCAR 2) (atoms to include) (displacement)
output: DISPLACECAR file, to STDOUT
Takes as input two POSCAR files, n, the number of atoms to include, and the displacement. It then finds the n atoms that have the largestdisplacement between the two POSCAR files. The file DISPLACECAR is created, which contains the displacements of each degree of freedom (zero,unless the atom is one of the n atoms, in which case it is the entered displacement). This file is ready to use, then, with the dynamicalmatrix routine.
dymselsph.pl
usage: dymselsph.pl (POSCAR) (Central atom) (radius) (displacement)
output: DISPLACECAR file, to STDOUT
Similar to dymseldsp.pl, except it only takes one POSCAR and also needs an atom number as input. It then finds the n atoms closest to thechosen atom and these are the atoms given non-zero displacements in the DISPLACECAR file.
dymcmpdisp.pl
usage: dymcmpdisp.pl (DISPLACECAR 1) (DISPLACECAR 2)
output: DISPLACECAR file, to STDOUT
Takes as input two DISPLACECAR files, compares them, and outputs a DISPLACECAR file in which those degrees of freedom that are set in oneDISPLACECAR but not the other. Thus, if you use dymseldsp.pl to create a DISPLACECAR with 24 degrees of freedom, and then you want to calculatethen next 12 degrees of freedom, you would dymseldsp.pl for 36 degrees of freedom and use compare_disp.pl to extract those 12 which aren’tincluded in the first DISPLACECAR. You can then run the dynamical matrix calculation on this new file, getting the forces for these 12 newdisplacements, and then use dymmatrix.pl to combine the OUTCARs from both calculations into one matrix.
dymfit.pl
usage: dymfit.pl (order of fit) (displacement 1) (matrix 1) (displacement 2) (matrix 2) ...
output: dynamical matrix, to STDOUT
Used to fit between two or more matrices together. It takes as input the order of the fit, and then pairs of displacements and matrices. Itoutputs a matrix of the same order. It requires the Perl modules Math::Matrix and Math::Approx.
dymextract.pl
usage: dymextract.pl (DISPLACECAR of matrix you have)(DISPLACECAR of matrix you want)(matrix you have)
output: dynamical matrix, to STDOUT
Used to create a smaller dynamical matrix from a larger one. If you calculated many degrees of freedom the first time and want to check howthe quantity converges versus degrees of freedom, use this to create the smaller matrix. You need the DISPLACECAR for the matrix you have andthe DISPLACECAR for the matrix you want.
dymreorder.pl
usage: dymreorder.pl (number of DISPLACECARs with desired order)(list of DISPLACECARs)(number of DISPLACECARs of current order)(list of DISPLACECARs) (current matrix)
output: dynamical matrix, to STDOUT
Reorders a dynamical matrix. You might want to use this if you plan on fitting matrices, but you got at them different ways (for example, oneyou had by doing all of the degrees of freedom at once and the second you created by doing degrees of freedom a bit at a time… the orderingof the displacements in each matrix will be different). You need the series of DISPLACECARs that were used to create each matrix.
dymprefactor.pl
usage: dymprefactor.pl (freq.dat of minimum) (freq.dat of transition state)
output: prefactor in units of inverse cm
dymanalyze.pl
usage: dymanalyze.pl (flag) (modevalue) (displacement 1) (matrix 1) (displacement 2) (matrix 2) ...
output: information on the agreement between the fits and the original matrices
Intended to help analyze the convergence of the dynamical matrices and compare the differences both between different displacements as well asdifferent orders of fits. It takes as input pairs of displacements and their corresponding matrix. The first argument is a flag. If it is zero,then a fit is done with each successive matrix added to the points used to determine the fit. The output tells how much the force constantschange as each point is added to the fit. If the flag is greater than zero, then a fit is done with the first n, where flag equals n, matrices,and the difference between the force constants calculated for the other matrices and the fitted matrices is printed. The analysis is done forany modes which have a frequency larger than modevalue.
dymmodes2xyz.pl
usage: dymmodes2xyz.pl POSCAR DISPLACECAR modes.dat (moviefolder) (freq.dat) (numimages) (dist)
output: movies for each normal mode
Takes the configuration file (POSCAR), displacement file (DISPLACECAR) and modes file (modes.dat), which is created by running dymmatrix.pl,and creates a movie for each mode. These xyz movies are saved in the moviefolder (if designated) or the current directory. The frequency ofeach mode will be written to the xyz files if the freq.dat file is provided. The numimages variable sets the number of frames in each modemovie and the dist variable sets the vibrational amplitude.
Note: if the modes.dat is created by using serveral DISPLACECARs as indicated in dymmatrix.pl, use the concatenated DISPLACECAR file in thisscript (i.e., cat those DISPLACECAR files in the same order as they were used in dymmatrix.pl).