Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LK_CosThetaEnergy.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 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 
10 /// @file core/scoring/methods/LK_CosThetaEnergy.hh
11 /// @brief LK Solvation using hemisphere culling class declaration
12 /// @author David Baker
13 /// @author Andrew Leaver-Fay
14 
15 
16 #ifndef INCLUDED_core_scoring_methods_LK_CosThetaEnergy_hh
17 #define INCLUDED_core_scoring_methods_LK_CosThetaEnergy_hh
18 
19 // Unit Headers
21 
22 // Package headers
27 
28 // Project headers
29 #include <core/pose/Pose.fwd.hh>
30 
31 // Utility headers
32 // AUTO-REMOVED #include <utility/vector1.hh>
33 
34 #include <utility/vector1.hh>
35 #include <ObjexxFCL/FArray3D.fwd.hh>
36 
37 
38 namespace core {
39 namespace scoring {
40 namespace methods {
41 
42 ///
44 public:
46 
47 public:
48 
49  LK_CosThetaEnergy( etable::Etable const & etable_in );
50 
51 
52  /// clone
53  virtual
55  clone() const;
56 
57  LK_CosThetaEnergy( LK_CosThetaEnergy const & src );
58 
59  virtual
60  void
62  pose::Pose & pose,
63  ScoreFunction const & scfxn
64  ) const;
65 
66 
67  void
68  eval_atom_derivative_intra_RNA( //Called by eval_atom_derivative, specific case for RNA intra_res. Parin Sripakdeevong June 27, 2011.
69  id::AtomID const & atom_id,
70  pose::Pose const & pose,
71  kinematics::DomainMap const & domain_map,
72  EnergyMap const & weights,
73  Vector & F1,
74  Vector & F2
75  ) const;
76 
77 
78  /// called during gradient-based minimization inside dfunc
79  /**
80  F1 and F2 are not zeroed -- contributions from this atom are
81  just summed in
82  **/
83  virtual
84  void
86  id::AtomID const & id,
87  pose::Pose const & pose,
88  kinematics::DomainMap const & domain_map,
89  ScoreFunction const & sfxn,
90  EnergyMap const & weights,
91  Vector & F1,
92  Vector & F2
93  ) const;
94 
95 
96  virtual
97  void
99  conformation::Residue const & rsd1,
100  conformation::Residue const & rsd2,
101  pose::Pose const & pose,
102  ScoreFunction const &,
103  EnergyMap & emap
104  ) const;
105 
106  virtual
107  bool
108  defines_intrares_energy( EnergyMap const & weights ) const;
109 
110 
111  virtual
112  void
114  conformation::Residue const & rsd,
115  pose::Pose const & pose,
116  ScoreFunction const & ,
117  EnergyMap & emap
118  ) const;
119 
120 
121  virtual
122  Distance
124 
125 
126  void indicate_required_context_graphs( utility::vector1< bool > & context_graphs_required ) const;
127 
128 
129  virtual
130  void
132  pose::Pose & pose,
133  ScoreFunction const &,
134  EnergyMap &// totals
135  ) const;
136 
137 private:
138 
139  Vector
140  get_base_vector( conformation::Residue const & rsd1, Size const i, pose::Pose const & pose ) const;
141 
142  void
144  conformation::Residue const & rsd,
145  pose::Pose const & pose,
146  Real & lk_polar_intra_RNA_score,
147  Real & lk_nonpolar_intra_RNA_score,
148  Real & lk_costheta_intra_RNA_score
149  ) const;
150 
151  void
153  conformation::Residue const & rsd1,
154  conformation::Residue const & rsd2,
155  pose::Pose const & pose,
156  Real & lk_polar_score,
157  Real & lk_nonpolar_score,
158  Real & lk_costheta_score ) const;
159 
160  Real
161  eval_lk(
162  conformation::Atom const & atom1,
163  conformation::Atom const & atom2,
164  Real const & d2,
165  Real & deriv ) const;
166 
167  void
169 
170 
171 /////////////////////////////////////////////////////////////////////////////
172 // data
173 /////////////////////////////////////////////////////////////////////////////
174 
175 private:
176  etable::Etable const & etable_; // shouldn't this be a pointer? Reference count information is (dangerously) lost when
177  //a reference is taken, instead of a smart pointer. There's the potential for a dangling reference with this.
178 
179 
180  /// these guys are taken from the etable
181  ObjexxFCL::FArray3D< Real > const & solv1_;
182  ObjexxFCL::FArray3D< Real > const & solv2_;
183 
184  ObjexxFCL::FArray3D< Real > const & dsolv1_;
185 
188 
189  bool const verbose_;
190 
191  /// Used soley when calculating derivatives
192  /// Could/should be moved into the Pose's cachable data.
198  mutable Real lk_costheta_weight_; // hold this while calculating derivatives.
199 virtual
200 core::Size version() const;
201 };
202 
203 }
204 }
205 }
206 
207 #endif // INCLUDED_core_scoring_methods_LK_CosThetaEnergy_HH