Rosetta 3.5
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
protocols
cartesian
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
23
#include <
core/optimization/types.hh
>
24
#include <
core/optimization/MinimizerMap.hh
>
25
// AUTO-REMOVED #include <core/optimization/Multifunc.hh>
26
#include <
core/optimization/DOF_Node.hh
>
27
28
// Project headers
29
#include <
core/pose/Pose.fwd.hh
>
30
#include <
core/conformation/Residue.fwd.hh
>
31
#include <
core/scoring/ScoreFunction.fwd.hh
>
32
#include <
core/kinematics/MoveMap.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
44
struct
CartesianAtom
{
45
core::Size
res
;
46
core::Size
index
;
47
48
core::id::AtomID
atom_id
;
49
core::Vector
position
;
50
core::Vector
velocity
;
51
core::Vector
force
;
52
53
core::Vector
old_position
;
54
core::Vector
old_velocity
;
55
core::Vector
old_force
;
56
57
double
mass
;
58
};
59
60
struct
MD_Bond
{
61
core::id::AtomID
atom_id_1
;
62
core::id::AtomID
atom_id_2
;
63
int
index1
;
64
int
index2
;
65
float
length
;
66
};
67
68
struct
MD_Angle
{
69
core::id::AtomID
atom_id_1
;
70
core::id::AtomID
atom_id_2
;
71
core::id::AtomID
atom_id_3
;
72
int
index1
;
73
int
index2
;
74
int
index3
;
75
float
length
;
76
float
angle
;
77
};
78
79
struct
MD_HarmonicDihedral
{
80
core::id::AtomID
atom_id_1
;
81
core::id::AtomID
atom_id_2
;
82
core::id::AtomID
atom_id_3
;
83
core::id::AtomID
atom_id_4
;
84
int
index1
;
85
int
index2
;
86
int
index3
;
87
int
index4
;
88
float
angle
;
89
};
90
91
92
93
class
MolecularDynamics
{
94
public
:
95
MolecularDynamics
(
96
core::pose::PoseOP
& inputpose,
97
core::scoring::ScoreFunction
const
& scorefxn
98
);
99
100
101
102
103
private
:
//functions
104
105
void
createCartesianArray
( );
106
void
setCartesianPositionsFromPose
( );
107
void
setPosePositionsFromCartesian
( );
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
( );
116
MD_HarmonicDihedral
createDihedral
(
117
const
core::conformation::Residue
&rsd,
118
std::string
name1,
119
std::string
name2,
120
std::string
name3,
121
std::string
name4
122
);
123
MD_HarmonicDihedral
createDihedral
(
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
145
void
createCartesianDerivatives
(
core::pose::Pose
&
pose
,
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
162
void
applyForces_LangevinIntegration
(
163
double
T
,
164
float
&kin,
165
float
&temp);
166
167
168
169
void
applyForces_ConjugateGradient
(
170
int
Step,
171
float
¤t_energy,
172
float
&m_OldEnergy
173
);
174
175
void
createCartesianDerivatives
(
core::scoring::ScoreFunction
const
& scorefxn );
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
187
void
testCartesianDerivatives
(
core::scoring::ScoreFunction
const
& scorefxn );
188
189
190
191
192
private
:
//data
193
194
utility::vector1< CartesianAtom >
cartom
;
195
utility::vector1< MD_Bond >
bondlist
;
196
utility::vector1< MD_Angle >
anglelist
;
197
utility::vector1< MD_HarmonicDihedral >
dihedrallist
;
198
199
core::kinematics::MoveMap
mm
;
200
core::optimization::MinimizerMap
min_map
;
201
core::kinematics::DomainMap
domain_map
;
202
203
core::pose::PoseOP
pose
;
204
205
206
};
207
208
209
}
// namespace optimization
210
}
// namespace core
211
212
#endif //INCLUDED_protocols_cartesian_md_hh
Generated on Sat Jun 1 2013 11:44:58 for Rosetta 3.5 by
1.8.4