1 #ifndef DYNMAT_H 2 #define DYNMAT_H 3 4 #include "stdio.h" 5 #include "stdlib.h" 6 #include "string.h" 7 #include "memory.h" 8 #include "interpolate.h" 9 10 class DynMat { 11 public: 12 13 DynMat(int, char**); 14 ~DynMat(); 15 16 int nx, ny, nz, nucell; 17 int sysdim, fftdim; 18 double eml2f, eml2fc; 19 char *funit; 20 21 void getDMq(double *); 22 void getDMq(double *, double *); 23 void writeDMq(double *); 24 void writeDMq(double *, const double, FILE *fp); 25 int geteigen(double *, int); 26 void reset_interp_method(); 27 28 doublecomplex **DM_q; 29 30 int flag_latinfo; 31 int npt, fftdim2; 32 double Tmeasure, basevec[9], ibasevec[9]; 33 double *M_inv_sqrt; 34 double **basis; 35 int *attyp; 36 37 private: 38 39 int flag_skip, flag_reset_gamma; 40 Interpolate *interpolate; 41 42 Memory *memory; 43 44 int nasr; 45 void EnforceASR(); 46 47 char *binfile, *dmfile; 48 double boltz, q[3]; 49 50 doublecomplex **DM_all; 51 52 void car2dir(); // to convert basis from cartisian coordinate into factional. 53 void real2rec(); 54 void GaussJordan(int, double *); 55 56 void help(); 57 void ShowInfo(); 58 void ShowVersion(); 59 void Define_Conversion_Factor(); 60 }; 61 #endif 62