Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TemperatureController.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 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
10 // vi: set ts=2 noet:
11 //
12 // (c) Copyright Rosetta Commons Member Institutions.
13 // (c) This file is part of the Rosetta software suite and is made available under license.
14 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
15 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
16 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
17 
18 /// @file /protocols/canonical_sampling/MetropolisHastingsMover.hh
19 /// @brief
20 /// @author Oliver Lange ( oliver.lange@tum.de )
21 
22 #ifndef INCLUDED_protocols_canonical_sampling_TemperatureController_hh
23 #define INCLUDED_protocols_canonical_sampling_TemperatureController_hh
24 
25 // Unit Headers
27 #include <protocols/moves/Mover.hh>
28 
29 // Project Headers
33 #include <core/pose/Pose.fwd.hh>
34 #include <numeric/random/WeightedSampler.hh>
35 #include <protocols/jd2/Job.fwd.hh>
36 
37 // Utility Headers
38 #include <core/types.hh>
39 #include <utility/vector1.hh>
40 
41 namespace protocols {
42 namespace canonical_sampling {
43 
45 
48 
50 interpolation_type_string_to_enum( std::string const & interp_string );
51 
52 ///@details
54 
55 public:
56 
58 
60 
61  virtual
62  void apply( core::pose::Pose& ) {};
63 
64  virtual
66  get_name() const;
67 
68  virtual
69  bool
70  reinitialize_for_each_job() const { return false; };
71 
72  virtual
73  bool
74  reinitialize_for_new_input() const { return false; };
75 
76  virtual
77  void
79  protocols::canonical_sampling::MetropolisHastingsMover const & metropolis_hastings_mover
80  );
81  /// @brief execute the temperatur move ( called by observer_after_metropolis )
82  /// returns the current temperatur in kT.
83  virtual core::Real temperature_move( core::Real score) = 0;
84 
85  /// @brief second interface for temperature_move - standard implementation calls the pose-less temperature move.
86  /// hamiltonian exchange needs to evaluate the alternative Hamiltonian though...
88 
89 
90  virtual core::Real temperature() const = 0;
91 
92  ///@brief return temperature of a certain level
93  virtual core::Real temperature( core::Size level ) const = 0 ;
94 
95 
96  virtual core::Size temperature_level() const {
97  return 1;
98  }
99 
100  virtual
101  void
103  core::pose::Pose & pose,
104  protocols::canonical_sampling::MetropolisHastingsMover const & metropolis_hastings_mover,
105  core::Size level,
107  core::Size cycle
108  );
109 
110  virtual
111  void
115  core::Size
116  ) {};
117 
118  virtual core::Size n_temp_levels() const { return 1; };
119 
121  monte_carlo() const;
122 
123  void
126  );
127 
128 protected:
130  monte_carlo();
131 
132 private:
134 }; //end TemperatureController
135 
136 
138 public:
140  temperature_ ( temp ) {};
141 
144 
145  virtual
147  get_name() const { return "FixedTemperatureContoller"; }
148  /// @brief execute the temperatur move ( called by observer_after_metropolis )
149  /// returns the current temperatur in kT.
151 
152  virtual core::Real temperature() const { return temperature_; };
153 
154  ///@brief return temperature of a certain level
155  virtual core::Real temperature( core::Size ) const { return temperature_; };
156 
157 private:
159 };
160 
161 } //namespace canonical_sampling
162 } //namespace protocols
163 
164 #endif //INCLUDED_protocols_canonical_sampling_TemperatureController_HH