20 #ifndef INCLUDED_protocols_rbsegment_relax_RBSegmentRelax_hh
21 #define INCLUDED_protocols_rbsegment_relax_RBSegmentRelax_hh
48 #include <utility/vector1.hh>
52 namespace rbsegment_relax {
146 class SimAnnealMover : public protocols::moves::Mover {
151 protocols::moves::MoverOP mover_in,
152 protocols::moves::MonteCarloOP mc_in,
153 core::Real init_temp,
154 core::Real final_temp,
156 ) : moves::Mover("SimAnnealMover"),
159 init_temp_( init_temp ),
160 final_temp_( final_temp ),
165 virtual void apply( core::pose::Pose & pose )
167 core::Real gamma = std::pow( ( float( final_temp_/ init_temp_ ) ),
168 float( 1.0f/cycles_ ) );
169 core::Real temperature( init_temp_ );
170 mc_->set_temperature( temperature );
172 for ( Size i = 1; i <= cycles_; ++i ) {
173 mover_->apply( pose );
174 temperature *= gamma;
175 //std::cout << "Temperature " << temperature << std::endl;
176 mc_->set_temperature( temperature );
181 protocols::moves::MoverOP mover_;
182 protocols::moves::MonteCarloOP mc_;
183 // MoverStatistics stats_;
187 core::Real init_temp_, final_temp_;