Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RNA_LJ_BaseEnergy.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 part of the Rosetta software suite and is made available under license.
5 // The Rosetta software is developed by the contributing members of the Rosetta Commons consortium.
6 // (C) 199x-2009 Rosetta Commons participating institutions and developers.
7 // For more information, see http://www.rosettacommons.org/.
8 
9 /// @file core/scoring/rna/RNA_LJ_BaseEnergy.hh
10 /// @brief van der waals over aromatics
11 /// @author Rhiju Das
12 
13 
14 #ifndef INCLUDED_core_scoring_rna_RNA_LJ_BaseEnergy_hh
15 #define INCLUDED_core_scoring_rna_RNA_LJ_BaseEnergy_hh
16 
17 // Unit Headers
19 
20 // Package headers
25 
26 // Project headers
27 #include <core/pose/Pose.fwd.hh>
28 
29 // Utility headers
30 // AUTO-REMOVED #include <utility/vector1.hh>
31 
32 #include <utility/vector1.hh>
33 #include <ObjexxFCL/FArray3D.fwd.hh>
34 
35 
36 namespace core {
37 namespace scoring {
38 namespace rna {
39 
40 ///
42 public:
44 
45 public:
46 
47  RNA_LJ_BaseEnergy( etable::Etable const & etable_in );
48 
49  /// clone
50  virtual
52  clone() const;
53 
54  RNA_LJ_BaseEnergy( RNA_LJ_BaseEnergy const & src );
55 
56  virtual
57  void
59  pose::Pose & pose,
60  ScoreFunction const & scfxn
61  ) const;
62 
63  /// called during gradient-based minimization inside dfunc
64  /**
65  F1 and F2 are not zeroed -- contributions from this atom are
66  just summed in
67  **/
68  virtual
69  void
71  id::AtomID const & id,
72  pose::Pose const & pose,
73  kinematics::DomainMap const & domain_map,
74  ScoreFunction const & sfxn,
75  EnergyMap const & weights,
76  Vector & F1,
77  Vector & F2
78  ) const;
79 
80 
81  virtual
82  void
84  conformation::Residue const & rsd1,
85  conformation::Residue const & rsd2,
86  pose::Pose const & pose,
87  ScoreFunction const &,
88  EnergyMap & emap
89  ) const;
90 
91  virtual
92  bool
93  defines_intrares_energy( EnergyMap const & /*weights*/ ) const { return false; }
94 
95  virtual
96  void
98  conformation::Residue const &,
99  pose::Pose const &,
100  ScoreFunction const &,
101  EnergyMap &
102  ) const {}
103 
104  virtual
105  Distance
107 
108 
109  void indicate_required_context_graphs( utility::vector1< bool > & context_graphs_required ) const;
110 
111  Real
113  id::AtomID const & id,
114  pose::Pose const & pose
115  ) const;
116 
117 private:
118 
119  void
120  eval_lj(
121  conformation::Atom const & atom1,
122  conformation::Atom const & atom2,
123  Real const & d2,
124  Real & fa_atr_score,
125  Real & fa_rep_score,
126  Real & deriv_atr,
127  Real & deriv_rep
128  ) const;
129 
130  virtual
131  void
133  pose::Pose & pose,
134  ScoreFunction const &,
135  EnergyMap &// totals
136  ) const;
137 
138 /////////////////////////////////////////////////////////////////////////////
139 // data
140 /////////////////////////////////////////////////////////////////////////////
141 
142 private:
143  etable::Etable const & etable_; // shouldn't this be a pointer? Reference count information is (dangerously) lost when
144  //a reference is taken, instead of a smart pointer. There's the potential for a dangling reference with this.
145 
146 
147  /// these guys are taken from the etable
148  ObjexxFCL::FArray3D< Real > const & ljatr_;
149  ObjexxFCL::FArray3D< Real > const & ljrep_;
150 
151  ObjexxFCL::FArray3D< Real > const & dljatr_;
152  ObjexxFCL::FArray3D< Real > const & dljrep_;
153 
156 
157  bool const verbose_;
158 virtual
159 core::Size version() const;
160 
161 };
162 
163 }
164 }
165 }
166 
167 #endif // INCLUDED_core_scoring_methods_RNA_LJ_BaseEnergy_HH