Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RNAHackElecEnergy.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/RNAHackElecEnergy.hh
11 /// @brief Electrostatics for RNA
12 /// @author Rhiju Das
13 
14 
15 #ifndef INCLUDED_core_scoring_hackelec_RNAHackElecEnergy_hh
16 #define INCLUDED_core_scoring_hackelec_RNAHackElecEnergy_hh
17 
18 /// Unit Headers
20 
21 /// Package Headers
23 
25 
28 
29 #include <ObjexxFCL/FArray2D.fwd.hh>
30 
31 #include <utility/vector1.hh>
32 
33 
34 
35 namespace core {
36 namespace scoring {
37 namespace hackelec {
38 
39 ///
41 public:
44 
45 public:
46 
47  ///
49 
50  ///
51  RNAHackElecEnergy( RNAHackElecEnergy const & src );
52 
53 
54  /// clone
55  virtual
57  clone() const;
58 
59  virtual
60  void
61  setup_for_derivatives( pose::Pose & pose, ScoreFunction const & ) const;
62 
63  virtual
64  void
65  setup_for_scoring( pose::Pose & pose, ScoreFunction const & ) const;
66 
67  ///
68  virtual
69  void
71 
72 
73  /// @brief overrides parent class implementation which would have
74  /// created several tries
75  virtual
76  void
78  pose::Pose const & pose,
79  conformation::RotamerSetBase & set ) const;
80 
81  /// @brief overrides parent class implementation which would have
82  /// updated a trie
83  virtual
84  void
85  update_residue_for_packing( pose::Pose & pose, Size resid ) const;
86 
87  /////////////////////////////////////////////////////////////////////////////
88  // scoring
89  /////////////////////////////////////////////////////////////////////////////
90 
91  virtual
92  void
94  conformation::Residue const & rsd1,
95  conformation::Residue const & rsd2,
96  pose::Pose const & pose,
97  ScoreFunction const &,
98  EnergyMap & emap
99  ) const;
100 
101  /// @brief Returns "true" because this energy method has not been updated to
102  /// use the new derivative evaluation machinery. Note that this class requires
103  /// the definition of this method because it's parent class, HackElecEnergy,
104  /// HAS been updated to use the new derivative evaluation machinery, and,
105  /// if this class did not return "true", it would be asked to evaluate derivatives
106  /// in ways it cannot yet evaluate them in.
107  bool
108  minimize_in_whole_structure_context( pose::Pose const & ) const { return true; }
109 
110 
111  /// @brief Jan 10, 2012. Parin Sripakdeevon (sripakpa@stanford.edu)
112  /// Returns "false" to overwrite the behavior in the parent class (HackElecEnergy)!
113  virtual
114  bool
116 
117  virtual
118  void
120  conformation::Residue const &,
121  pose::Pose const &,
122  ScoreFunction const &,
123  EnergyMap &
124  ) const {}
125 
126  //@brief overrides default rotamer/rotamer energy calculation
127  // and overrides the parent class trie implementatoin
128  virtual
129  void
131  conformation::RotamerSetBase const & set1,
132  conformation::RotamerSetBase const & set2,
133  pose::Pose const & pose,
134  ScoreFunction const & sfxn,
135  EnergyMap const & weights,
136  ObjexxFCL::FArray2D< core::PackerEnergy > & energy_table
137  ) const;
138 
139 
140  //@brief overrides default rotamer/background energy calculation
141  // and overrides the parent class trie implementatoin
142  virtual
143  void
145  conformation::RotamerSetBase const & set,
146  conformation::Residue const & residue,
147  pose::Pose const & pose,
148  ScoreFunction const & sfxn,
149  EnergyMap const & weights,
151  ) const;
152 
153 
154  virtual
155  void
157  id::AtomID const & atom_id,
158  pose::Pose const & pose,
159  kinematics::DomainMap const & domain_map,
160  ScoreFunction const &,
161  EnergyMap const & weights,
162  Vector & F1,
163  Vector & F2
164  ) const;
165 
166  virtual
167  bool
168  defines_intrares_energy( EnergyMap const & /*weights*/ ) const { return false; }
169 
170  virtual
171  void indicate_required_context_graphs( utility::vector1< bool > & context_graphs_required ) const;
172 
173 public:
174 
175 
176  Real
178  conformation::Residue const & rsd1,
179  conformation::Residue const & rsd2,
180  EnergyMap & emap
181  ) const;
182 
183  void
185  conformation::Residue const & rsd1,
186  Size const & i,
187  conformation::Residue const & rsd2,
188  EnergyMap const & weights,
189  Vector & F1,
190  Vector & F2
191  ) const;
192 virtual
193 core::Size version() const;
194 
195 };
196 
197 
198 }
199 }
200 }
201 
202 #endif