Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MMLJLibrary.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/mm/MMLJLibrary.hh
11 /// @brief Molecular mechanics lj library class
12 /// @author P. Douglas Renfrew (renfrew@unc.edu)
13 
14 
15 #ifndef INCLUDED_core_scoring_mm_MMLJLibrary_hh
16 #define INCLUDED_core_scoring_mm_MMLJLibrary_hh
17 
18 // Unit headers
20 
21 // Project headers
22 #include <core/types.hh>
24 
25 // Utility header
26 #include <utility/vector1.hh>
27 #include <utility/keys/Key2Tuple.hh>
28 #include <utility/pointer/access_ptr.hh>
29 #include <utility/pointer/owning_ptr.hh>
30 #include <utility/pointer/ReferenceCount.hh>
31 
32 // C++ headers
33 #include <string>
34 #include <map>
35 
36 namespace core {
37 namespace scoring {
38 namespace mm {
39 
40 // typedefs
41 typedef Size mm_lj_atom;
42 typedef utility::keys::Key2Tuple< Real, Real > mm_lj_param_set;
43 
44 /// @brief A class to maintain a set of MM LJ paramaters.
45 ///
46 /// @details blah
47 ///
49 {
50 
51 public:
52  ///@brief Automatically generated virtual destructor for class deriving directly from ReferenceCount
53  virtual ~MMLJLibrary();
54  /// @brief ctor
56 
57  /// @brief blah
58  inline
60  lookup_three_bond( Size atom ) const
61  { return mm_lj_three_bond_library_[ atom ]; }
62 
63  /// @brief blah
64  inline
67  { return mm_lj_three_bond_library_[ mm_atom_set_->atom_type_index( atom ) ]; }
68 
69  /// @brief blah
70  inline
72  lookup( Size atom ) const
73  { return mm_lj_library_[ atom ]; }
74 
75  /// @brief blah
76  inline
78  lookup( std::string atom ) const
79  { return mm_lj_library_[ mm_atom_set_->atom_type_index( atom ) ]; }
80 
81  /// @brief blah
83  mm_atom_set() const
84  { return mm_atom_set_; }
85 
86  /// @brief blah
87  Real
89  { return nblist_dis2_cutoff_XX_; }
90 
91  /// @brief blah
92  Real
94  { return nblist_dis2_cutoff_XH_; }
95 
96  /// @brief blah
97  Real
99  { return nblist_dis2_cutoff_HH_; }
100 
101 private:
102  /// @brief library that contains lj params for sets in which atoms are seperated by 3 or bonds
104 
105  /// @brief library that contains lj params for sets in which atoms are seperated by 4 or more bonds
107 
108  /// @brief the MMAtomTypeSet associated with the library
110 
111  /// @brief the cutoff distance at which the neighbor list will count two atoms as being neighbors
112  /// given that those atom are both heavy, a heavy and a hydrogen, or a hydrogen and hydrogen
113  /// respectivly
117 };
118 
119 } // namespace mm
120 } // namespace scoring
121 } // namespace core
122 
123 
124 #endif // INCLUDED_core_mm_mm_lj_library_HH