00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _BMB_H
00012 #define _BMB_H
00013
00014 #include "mdparallel.h"
00015
00016
00017 #define P_KB 1.380662e-23 // (kg*m^2/s^2/K) Boltzmann constant
00018 #define P_E 1.6021892e-19 // (C) electron charge
00019 #define P_BMB 1.0*1000.0/(EV*AVO) // (eV) conversion factor for BMB parameters (From wikipedia)
00020
00021
00022
00023
00024 #define MAXSP 4
00025 #define MAXNUMBOND 3
00026
00027
00028
00029
00030
00031
00032
00033
00034 const double BMB_POT[7][3] = {{ 0.0*P_BMB, 0.0*P_BMB, 1.0 },
00035 { 0.0*P_BMB, 95120.0*P_BMB, 2.65957450 },
00036 { 2691.0*P_BMB, 2196000.0*P_BMB, 6.71140940 },
00037 { 0.0*P_BMB, 0.0*P_BMB, 1.0 },
00038 { 0.0*P_BMB, 129780.0*P_BMB, 2.86450870 },
00039 { 0.0*P_BMB, 0.0*P_BMB, 1.0 },
00040 { 0.0*P_BMB, 0.0*P_BMB, 1.0 }};
00041
00042 class BMBFrame : public MDPARALLELFrame
00043 {
00044 public:
00045 double BMB_Rc;
00046
00047 BMBFrame(){};
00048 void born_meyer_buckingham();
00049 void born_meyer_buckingham_Ewald();
00050 virtual void potential();
00051 virtual void initvars();
00052
00053 virtual void initparser();
00054 virtual int exec(char *name);
00055 virtual void calcprop();
00056
00057 virtual void Alloc();
00058
00059 void dope_Yttria();
00060 };
00061
00062
00063
00064 #endif // _BMB_H
00065