00001 #ifndef RESTRAINS_H
00002 #define RESTRAINS_H
00003
00004 #include "Restrain.h"
00005 #include "ReadData.h"
00006
00007
00008
00012 class CRestDIST: public CRestrain
00013 {
00014
00015 public:
00016 CRestDIST(CData *dt);
00017 virtual ~CRestDIST();
00018
00019 void FindReferences();
00020 void MarkOutChangingAtoms();
00021
00026 virtual int CheckGoodSetting();
00027 virtual void Print();
00028 virtual void Read(CXMLElement *elrestrain);
00029
00035 virtual REAL E();
00036 private:
00037 int f1,f2;
00038 int p1,p2;
00039 int id1,id2;
00040 REAL dist,k;
00041
00042 };
00043
00044
00045
00049 class CRestANGLE: public CRestrain
00050 {
00051
00052 public:
00053 CRestANGLE(CData *dt);
00054 virtual ~CRestANGLE();
00055
00056 void FindReferences();
00057 void MarkOutChangingAtoms();
00058
00064 virtual int CheckGoodSetting();
00065 virtual void Print();
00066 virtual void Read(CXMLElement *elrestrain);
00067
00075 virtual REAL E();
00076 private:
00077
00078 int ParseVector(CSmallString &strV, int *vB,int *vE);
00079
00080 int f1,f2,f3,f4;
00081 int p1,p2,p3,p4;
00082 int id1,id2,id3,id4;
00083 REAL angle,k;
00084
00085 };
00086
00087
00091 class CRestTORSION: public CRestrain
00092 {
00093
00094 public:
00095 CRestTORSION(CData *dt);
00096 virtual ~CRestTORSION();
00097
00098
00104 virtual int CheckGoodSetting();
00105 void FindReferences();
00106 void MarkOutChangingAtoms();
00107
00108 virtual void Print();
00109 virtual void Read(CXMLElement *elrestrain);
00110 virtual REAL E();
00121 private:
00122
00123 int ParseTorsion(CSmallString &strV);
00124
00125 int f1,f2,f3,f4;
00126 int p1,p2,p3,p4;
00127 int id1,id2,id3,id4;
00128 REAL angle,k;
00129
00130 };
00131
00132
00133
00134
00138 class CRestELECT: public CRestrain
00139 {
00140
00141 public:
00142 CRestELECT(CData *dt);
00143 virtual ~CRestELECT();
00144
00145 void FindReferences();
00146 void MarkOutChangingAtoms();
00147
00152 virtual int CheckGoodSetting();
00153 virtual void Print();
00154 virtual void Read(CXMLElement *elrestrain);
00155
00162 virtual REAL E();
00163 private:
00164 REAL k;
00165 REAL eps;
00166 };
00167
00168
00169
00170
00171 #endif