Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
md.hh
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 //
4 // This file is made available under the Rosetta Commons license.
5 // See http://www.rosettacommons.org/license
6 // (C) 199x-2007 University of Washington
7 // (C) 199x-2007 University of California Santa Cruz
8 // (C) 199x-2007 University of California San Francisco
9 // (C) 199x-2007 Johns Hopkins University
10 // (C) 199x-2007 University of North Carolina, Chapel Hill
11 // (C) 199x-2007 Vanderbilt University
12 
13 /// @file core/cartesian/md.hh
14 /// @brief Atom tree minimization functions
15 /// @author Phil Bradley
16 
17 
18 #ifndef INCLUDED_protocols_cartesian_md_hh
19 #define INCLUDED_protocols_cartesian_md_hh
20 
21 
22 // Package headers
25 // AUTO-REMOVED #include <core/optimization/Multifunc.hh>
27 
28 // Project headers
29 #include <core/pose/Pose.fwd.hh>
33 
34 // ObjexxFCL headers
35 // AUTO-REMOVED #include <ObjexxFCL/FArray2D.fwd.hh>
36 
37 #include <utility/vector1.hh>
38 
39 
40 
41 namespace protocols {
42 namespace cartesian {
43 
47 
52 
56 
57  double mass;
58 };
59 
60 struct MD_Bond{
63  int index1;
64  int index2;
65  float length;
66 };
67 
68 struct MD_Angle{
72  int index1;
73  int index2;
74  int index3;
75  float length;
76  float angle;
77 };
78 
84  int index1;
85  int index2;
86  int index3;
87  int index4;
88  float angle;
89 };
90 
91 
92 
94 public:
96  core::pose::PoseOP & inputpose,
97  core::scoring::ScoreFunction const & scorefxn
98  );
99 
100 
101 
102 
103 private: //functions
104 
105  void createCartesianArray( );
108  void zeroForces();
109  int findCartomAtom( const core::id::AtomID &id1 );
110  void getCartesianDerivatives( core::scoring::ScoreFunction const & scorefxn );
111 
112 
113  void createBondList( );
114  void createAngleList( );
115  void createDihedralList( );
117  const core::conformation::Residue &rsd,
118  std::string name1,
119  std::string name2,
120  std::string name3,
121  std::string name4
122  );
124  const core::conformation::Residue &rsd1,
125  const core::conformation::Residue &rsd2,
126  const core::conformation::Residue &rsd3,
127  const core::conformation::Residue &rsd4,
128  std::string name1,
129  std::string name2,
130  std::string name3,
131  std::string name4
132  );
133 
134  void setDihedralDerivatives( );
135 
136 
137 
138 
139  void doBondDerivatives( float &totalepot );
140  void doAngleDerivatives(float &totalepot );
141  void doDihedralDerivatives( float &totalepot );
142 
143 
144 
146  core::scoring::ScoreFunction const & scorefxn );
147 
148 
149  void setInitialSpeeds(double tgtTemp);
150 
151  void calcKineticEnergy(
152  float &ekin,
153  float &Temp
154  );
155 
156 
157  void applyForces_BeeMan(
158  float &kin,
159  float &temp);
160 
161 
163  double T,
164  float &kin,
165  float &temp);
166 
167 
168 
170  int Step,
171  float &current_energy,
172  float &m_OldEnergy
173  );
174 
176 
177 
178 public:
179 
180  void doMinimising( core::scoring::ScoreFunction const & scorefxn );
181 
182  void doMD(core::scoring::ScoreFunction const & scorefxn,
183  int Steps,
184  float startTemp,
185  float endTemp);
186 
188 
189 
190 
191 
192 private: //data
193 
198 
202 
204 
205 
206 };
207 
208 
209 } // namespace optimization
210 } // namespace core
211 
212 #endif //INCLUDED_protocols_cartesian_md_hh