00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef _LJDIMER_H
00010 #define _LJDIMER_H
00011
00012 #include "mdparallel.h"
00013
00014
00015 #define P_KB 1.380662e-23 // (kg*m^2/s^2/K) Boltzmann constant
00016 #define P_E 1.6021892e-19 // (C) electron charge
00017
00018 #define LJ_ENERGY (119.8*P_KB/P_E) // argon energy (epsilon)
00019 #define LJ_LENGTH 3.405 // argon length (sigma)
00020 #define LJ_RC (1.12246204830937*LJ_LENGTH) //2^(1/6) *(sigma)
00021
00022 class LJDIMERFrame : public MDPARALLELFrame
00023 {
00024
00025 double _ALJ_00,_BLJ_00, ALJ_00,BLJ_00, Uc_00,DUDRc_00;
00026
00027
00028 double _H_DIMER, _W_DIMER, H_DIMER, W_DIMER, R_DIMER, F_DIMER,
00029 F_DIMER_INTERNAL, F_DIMER_EXTERNAL;
00030
00031 public:
00032 LJDIMERFrame():_ALJ_00(4),_BLJ_00(4),
00033 _H_DIMER(6),_W_DIMER(0.25), R_DIMER(0),
00034 F_DIMER(0), F_DIMER_INTERNAL(0), F_DIMER_EXTERNAL(0){};
00035 void lennard_jones_dimer();
00036 void find_dimer_indices(int *ind0,int *ind1);
00037 virtual void potential();
00038 virtual void SWITCHpotential_user(double lambda);
00039 void lennard_jones_dimer_constrained(double R);
00040 virtual void initvars();
00041
00042 virtual void initparser();
00043 virtual int exec(char *name);
00044 virtual void calcprop();
00045
00046 void initLJ();
00047
00048 };
00049
00050
00051
00052 #endif // _LJDIMER_H
00053