00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef _MEAM_BASKES_H
00010 #define _MEAM_BASKES_H
00011
00012 #include "mdparallel.h"
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 extern "C" int force_();
00023 extern "C" int inter_();
00024 extern "C" int phif_(double *,int *,int *);
00025 extern "C" int phiid_(double *,int *);
00026 extern "C" int calphiid_(double *,int *,double *);
00027
00028
00029 #define natmax 10000
00030 #define neimax 150
00031 #define ngrid 5010
00032 #define ngridar 5010
00033 #define ntable 10000
00034 #define nelmax 3
00035 #define natcmax 500
00036 #define icmax 30
00037 #define icmay 30
00038 #define icmaz 30
00039 #define neimx 3000
00040
00041
00042 extern struct INTERACT { double rcutsq, rcut; } interact_;
00043 extern struct LATTICE { double perub[3], perlb[3], perlen[3], alat, xbound[2], ybound[2], zbound[2];
00044 int natoms; double latty; } lattice_;
00045 extern struct PARTICLE { double rv[natmax][6]; int itype[natmax]; } particle_;
00046 extern struct SCALED { double y[natmax][6]; } scaled_;
00047 extern struct FORCES { double f[natmax][3], e[natmax], stresst[3][3], slocal[natmax][3][3],
00048 avslocal[natmax][3][3]; int noutput; } forces_;
00049 extern struct TYPES { double amass[nelmax]; int ielement[nelmax], netype[nelmax], ntypes ; } types_;
00050 extern struct CNEIGH { double rctsqn, dradn; int nneigh, nneips, nmeth, nnindx[natmax+1],
00051 newlst, nlstmx, nnlst[natmax*neimax]; } cneigh_;
00052
00053
00054 extern struct CMEAM { double omegas[nelmax], res[nelmax][nelmax],
00055 esubs[nelmax][nelmax], alats[nelmax], zs[nelmax],
00056 alphas[nelmax][nelmax],deltas[nelmax][nelmax],
00057 betas[nelmax][4],ts[nelmax][4],asubs[nelmax],
00058 rozros[nelmax],z0s[nelmax],
00059 repuls[nelmax][nelmax],attrac[nelmax][nelmax];
00060 float legend; int ibarr[nelmax],irhos[nelmax];
00061 char enames[nelmax][4],lattces[nelmax][4]; } cmeam_;
00062
00063 extern struct SCR { double rscrmax, cmin[nelmax][nelmax][nelmax],
00064 cmax[nelmax][nelmax][nelmax]; int nscree,ipscree; } scr_;
00065
00066
00067
00068 extern struct MEA {char meamf[80],meafile[80]; } mea_;
00069 extern struct KODES {char kodes[nelmax][7]; } kodes_;
00070 extern struct MYOUTPUT {int fid; } myoutput_;
00071
00072 class MEAMFrame : public MDPARALLELFrame
00073 {
00074 public:
00075 double cmin0[nelmax];
00076
00077 MEAMFrame() {};
00078
00079 virtual void potential ();
00080
00081 void readMEAM();
00082 void MEAM();
00083
00084 virtual void Alloc();
00085 virtual void initvars();
00086 virtual void initparser();
00087
00088 virtual int exec(char *nam);
00089
00090 void printpairpot();
00091 };
00092
00093
00094 #endif // _MEAM-BASKES_H
00095