-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPhonon.h
43 lines (37 loc) · 1.95 KB
/
Phonon.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/** ***************************************************** **/
/** ** Phonon Vibration Analysis ** **/
/** **/
/** ** Version 2 ** **/
/** **/
/** By: Pedro Brandimarte ([email protected]) and **/
/** Alexandre Reily Rocha ([email protected]) **/
/** **/
/** ***************************************************** **/
/** Interface of phonon analysis to: **/
/** - read the output data from a siesta force **/
/** constants (FC) calculation runned with the flag **/
/** 'PB.FCwriteHS .true.' at the fdf input file; **/
/** - build the force constants matrix and computes the **/
/** phonon frequencies and modes by finite differences; **/
/** - compute the hamiltonian and overlap matrices **/
/** derivatives with respect to the dynamic atoms **/
/** displacements and apply suitable corrections and **/
/** calculate the electron-phonon coupling matrix. **/
/** ***************************************************** **/
/* For calling from fortran prograns. */
#ifdef FORTRAN
#define PHONheader phonheader_
#define PHONreadFCfdf phonreadfcfdf_
#define PHONfreq phonfreq_
#define PHONephCoupling phonephcoupling_
#endif
/* Collects required informations from FC input 'fdf' file. */
void PHONreadFCfdf (char *exec, char *FCpath, char *FCinput,
int calcType, char *FCsplit, int *nDynTot,
int *nDynOrb, int *spinPol);
/* Computes phonon frequencies and modes. */
void PHONfreq (double *EigVec, double *EigVal);
/* Writes a 'xyz' file for each computed phonon mode. */
void PHONjmolVib (double *EigVec);
/* Computes electron-phonon coupling matrices. */
void PHONephCoupling (double *EigVec, double *EigVal, double *Meph);