Rosetta  2021.16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
protocols::canonical_sampling::TemperatureController Class Referenceabstract

Base class for controlling the temperature of a simulation. More...

#include <TemperatureController.hh>

Inheritance diagram for protocols::canonical_sampling::TemperatureController:
Inheritance graph
[legend]

Public Types

typedef utility::vector1
< core::Size
GridCoord
 
- Public Types inherited from protocols::moves::Mover
typedef utility::tag::TagCOP TagCOP
 
typedef core::pose::Pose Pose
 
typedef core::pose::PoseCOP PoseCOP
 
typedef std::list< std::string > Strings
 

Public Member Functions

 TemperatureController ()
 Default constructor. More...
 
 TemperatureController (TemperatureController const &)
 Copy constructor. More...
 
TemperatureControlleroperator= (TemperatureController const &)=default
 This has substantially different behavior than the copy constructor. More...
 
void apply (core::pose::Pose &) override
 No-op implemented only to satisfy the Mover interface. More...
 
std::string get_name () const override
 Return the name of this class. More...
 
bool reinitialize_for_each_job () const override
 Return false. This class does not need to be reinitialized for each job. More...
 
bool reinitialize_for_new_input () const override
 Return false. This class does not need to be reinitialized for new input. More...
 
void observe_after_metropolis (MetropolisHastingsMover const &metropolis_hastings_mover) override
 Callback executed after the Metropolis criterion is evaluated. More...
 
virtual core::Real temperature_move (core::Real score)=0
 Execute the temperature move. More...
 
virtual core::Real temperature_move (core::pose::Pose &pose)
 Execute a temperature move which depends on the current pose. More...
 
virtual core::Real temperature () const =0
 Return the current temperature. More...
 
virtual core::Real temperature (core::Size level) const =0
 Set the current temperature to match given level. More...
 
virtual core::Size temperature_level () const
 Return the current temperature level. More...
 
virtual GridCoord level_2_grid_coord (core::Size level) const
 
virtual core::Size exchange_grid_dim () const
 
virtual core::Size nlevels_per_dim (core::Size) const
 
virtual void initialize_simulation (core::pose::Pose &pose, MetropolisHastingsMover const &metropolis_hastings_mover, core::Size level, core::Real temperature, core::Size cycle)
 
void initialize_simulation (core::pose::Pose &, MetropolisHastingsMover const &, core::Size) override
 Callback executed before any Monte Carlo trials are attempted. More...
 
virtual core::Size n_temp_levels () const
 Return the number of temperature levels used by this controller. More...
 
protocols::moves::MonteCarloCOP monte_carlo () const
 Return const access to the MonteCarlo object being controlled. More...
 
virtual bool finished_simulation (core::Size trials, core::Size ntrials)
 Return true if the simulation has been completed. More...
 
virtual void set_monte_carlo (protocols::moves::MonteCarloOP monte_carlo)
 Set the MonteCarlo object to be controlled. More...
 
- Public Member Functions inherited from protocols::canonical_sampling::ThermodynamicObserver
 ThermodynamicObserver ()
 Default constructor. More...
 
 ~ThermodynamicObserver () override
 Destructor. More...
 
void apply (core::pose::Pose &) override
 Callback executed after each move is made. More...
 
virtual void finalize_simulation (core::pose::Pose &, MetropolisHastingsMover const &)
 Callback executed after all Monte Carlo trials are completed. More...
 
virtual bool restart_simulation (core::pose::Pose &, MetropolisHastingsMover &, core::Size &, core::Size &, core::Real &)
 Attempt to restart the last simulation that was recorded by this observer. More...
 
virtual bool requires_pose ()
 Return false if this observer does not require a valid pose. TrialCounterObserver is an example of such an observer. More...
 
- Public Member Functions inherited from protocols::moves::Mover
 Mover ()
 
virtual MoverOP create ()
 
MoverCOP get_self_ptr () const
 
MoverOP get_self_ptr ()
 
MoverCAP get_self_weak_ptr () const
 
MoverAP get_self_weak_ptr ()
 
 Mover (std::string const &type_name)
 sets the type for a mover; name_ has been removed (2010/05/14) More...
 
virtual void test_move (Pose &pose)
 : Unit test support function. Apply one move to a given pose. Allows extra test specific functions to be called before applying More...
 
virtual MoverOP clone () const
 Return a clone of the Mover object. More...
 
virtual MoverOP fresh_instance () const
 Generates a new Mover object freshly created with the default ctor. More...
 
MoverStatus get_last_move_status () const
 end parser interface, start Job Distributor interface///////////// More...
 
void reset_status ()
 resets status to SUCCESS, meant to be used before an apply(). The job distributor (august 08 vintage) uses this to ensure non-accumulation of status across apply()s. More...
 
virtual core::pose::PoseOP get_additional_output ()
 Mechanism by which a mover may return multiple output poses from a single input pose. More...
 
void set_type (std::string const &setting)
 Set the 'type' string. More...
 
std::string get_type () const
 
void type (const std::string &type_in)
 Set the 'type' string. More...
 
std::string const & type () const
 Get the set 'type' string. More...
 
virtual void set_input_pose (PoseCOP pose)
 setter for poses contained for rms More...
 
virtual void set_native_pose (PoseCOP pose)
 setter for native poses contained for rms -— we should get rid of this method? it is widely used, but a bit unsafe More...
 
PoseCOP get_input_pose () const
 
PoseCOP get_native_pose () const
 
virtual void parse_my_tag (TagCOP tag, basic::datacache::DataMap &data)
 Called by MoverFactory when constructing new Movers. Takes care of the specific mover's parsing. More...
 
void set_current_job (protocols::jobdist::BasicJobCOP job)
 
jobdist::BasicJobCOP get_current_job () const
 
virtual void set_current_tag (std::string const &new_tag)
 
std::string get_current_tag () const
 A tag is a unique identifier used to identify structures produced by this Mover. get_current_tag() returns the tag, and set_current_tag( std::string tag ) sets the tag. This functionality is not intended for use with the 2008 job distributor. More...
 
virtual void show (std::ostream &output=std::cout) const
 Outputs details about the Mover, including current settings. More...
 
virtual core::Real last_proposal_density_ratio ()
 
virtual void clear_info ()
 Strings container can be used to return miscellaneous info (as std::string) from a mover, such as notes about the results of apply(). The job distributor (Apr 09 vintage) will check this function to see if your protocol wants to add string info to the Job that ran this mover. One way this can be useful is that later, a JobOutputter may include/append this info to an output file. More...
 
virtual Stringsinfo ()
 non-const accessor More...
 
virtual Strings const & info () const
 const accessor More...
 
virtual void provide_citation_info (basic::citation_manager::CitationCollectionList &) const
 Provide citations to the passed CitationCollectionList Subclasses should add the info for themselves and any other classes they use. More...
 

Protected Member Functions

protocols::moves::MonteCarloOP monte_carlo ()
 Return non-const access to the MonteCarlo object being controlled. More...
 
- Protected Member Functions inherited from protocols::moves::Mover
void set_last_move_status (MoverStatus status)
 nonvirtual setter for MoverStatus last_status_. Protected means that only the mover itself will be able to change its own status. The job distributor (august 08 vintage) is aware of status set with this function and will do what the MoverStatus says. More...
 

Private Attributes

protocols::moves::MonteCarloOP monte_carlo_
 

Additional Inherited Members

- Static Public Member Functions inherited from protocols::moves::Mover
static std::string name ()
 
static void register_options ()
 Overload this static method if you access options within the mover. More...
 

Detailed Description

Base class for controlling the temperature of a simulation.

Many schemes to improve the performance of condensed phase Monte Carlo simulations depends on changing the temperature of the system. Common examples include simulated annealing and parallel tempering. This class provides an interface for writing these algorithms. The most important method is temperature_move(), which is responsible for actually changing the temperature of the MonteCarlo object used for the underlying simulation. Methods like temperature_level() are also provided for managing a discrete number of different temperature levels, which is a common feature of these algorithms.

The TemperingBase class serves a similar role to this one, but is geared towards controllers that actually intend to change the temperature. This class also is parent to FixedTemperatureController, which is the default controller used by MetropolisHastingsMover.

Member Typedef Documentation

Constructor & Destructor Documentation

protocols::canonical_sampling::TemperatureController::TemperatureController ( )

Default constructor.

protocols::canonical_sampling::TemperatureController::TemperatureController ( TemperatureController const &  other)

Copy constructor.

Member Function Documentation

void protocols::canonical_sampling::TemperatureController::apply ( core::pose::Pose )
inlineoverridevirtual

No-op implemented only to satisfy the Mover interface.

Implements protocols::moves::Mover.

Reimplemented in protocols::canonical_sampling::TemperingBase.

virtual core::Size protocols::canonical_sampling::TemperatureController::exchange_grid_dim ( ) const
inlinevirtual
virtual bool protocols::canonical_sampling::TemperatureController::finished_simulation ( core::Size  trials,
core::Size  ntrials 
)
inlinevirtual

Return true if the simulation has been completed.

Reimplemented in protocols::canonical_sampling::AsyncMPITemperingBase.

Referenced by protocols::canonical_sampling::AsyncMPITemperingBase::finished_simulation().

std::string protocols::canonical_sampling::TemperatureController::get_name ( ) const
overridevirtual
void protocols::canonical_sampling::TemperatureController::initialize_simulation ( core::pose::Pose pose,
MetropolisHastingsMover const &  metropolis_hastings_mover,
core::Size  level,
core::Real  temperature,
core::Size  cycle 
)
virtual
void protocols::canonical_sampling::TemperatureController::initialize_simulation ( core::pose::Pose ,
MetropolisHastingsMover const &  ,
core::Size   
)
inlineoverridevirtual

Callback executed before any Monte Carlo trials are attempted.

Reimplemented from protocols::canonical_sampling::ThermodynamicObserver.

Reimplemented in protocols::canonical_sampling::TemperingBase.

virtual GridCoord protocols::canonical_sampling::TemperatureController::level_2_grid_coord ( core::Size  level) const
inlinevirtual
protocols::moves::MonteCarloCOP protocols::canonical_sampling::TemperatureController::monte_carlo ( ) const
protocols::moves::MonteCarloOP protocols::canonical_sampling::TemperatureController::monte_carlo ( )
protected

Return non-const access to the MonteCarlo object being controlled.

References monte_carlo_.

virtual core::Size protocols::canonical_sampling::TemperatureController::n_temp_levels ( ) const
inlinevirtual
virtual core::Size protocols::canonical_sampling::TemperatureController::nlevels_per_dim ( core::Size  ) const
inlinevirtual
void protocols::canonical_sampling::TemperatureController::observe_after_metropolis ( MetropolisHastingsMover const &  metropolis_hastings_mover)
overridevirtual

Callback executed after the Metropolis criterion is evaluated.

Implements protocols::canonical_sampling::ThermodynamicObserver.

Reimplemented in protocols::canonical_sampling::TemperingBase.

References monte_carlo_, protocols::hybridization::score, and temperature_move().

TemperatureController& protocols::canonical_sampling::TemperatureController::operator= ( TemperatureController const &  )
default

This has substantially different behavior than the copy constructor.

Referenced by protocols::canonical_sampling::ParallelTempering::operator=(), and protocols::canonical_sampling::AsyncMPITemperingBase::operator=().

bool protocols::canonical_sampling::TemperatureController::reinitialize_for_each_job ( ) const
inlineoverridevirtual

Return false. This class does not need to be reinitialized for each job.

Reimplemented from protocols::moves::Mover.

bool protocols::canonical_sampling::TemperatureController::reinitialize_for_new_input ( ) const
inlineoverridevirtual

Return false. This class does not need to be reinitialized for new input.

Reimplemented from protocols::moves::Mover.

void protocols::canonical_sampling::TemperatureController::set_monte_carlo ( protocols::moves::MonteCarloOP  monte_carlo)
virtual

Set the MonteCarlo object to be controlled.

Reimplemented in protocols::canonical_sampling::HamiltonianExchange.

References monte_carlo(), and monte_carlo_.

Referenced by protocols::canonical_sampling::HamiltonianExchange::set_monte_carlo().

virtual core::Real protocols::canonical_sampling::TemperatureController::temperature ( ) const
pure virtual
virtual core::Real protocols::canonical_sampling::TemperatureController::temperature ( core::Size  level) const
pure virtual

Set the current temperature to match given level.

Implemented in protocols::canonical_sampling::FixedTemperatureController, and protocols::canonical_sampling::TemperingBase.

virtual core::Size protocols::canonical_sampling::TemperatureController::temperature_level ( ) const
inlinevirtual

Return the current temperature level.

Tempering controllers often work with a handful of discrete temperature levels. This method makes it possible to work with levels, which are discrete, rather than temperatures, which are continuous.

See also
n_temp_levels()
temperature()

Reimplemented in protocols::canonical_sampling::TemperingBase.

Referenced by protocols::canonical_sampling::MultiTemperatureTrialCounter::count_accepted(), protocols::canonical_sampling::MultiTemperatureTrialCounter::count_energy_drop(), and protocols::canonical_sampling::MultiTemperatureTrialCounter::count_trial().

virtual core::Real protocols::canonical_sampling::TemperatureController::temperature_move ( core::Real  score)
pure virtual

Execute the temperature move.

This method is called by observe_after_metropolis() and is expected to return the new temperature (in units of kT, to the extent that that is meaningful in the context of rosetta).

Implemented in protocols::canonical_sampling::FixedTemperatureController, protocols::canonical_sampling::ParallelTempering, protocols::canonical_sampling::HamiltonianExchange, and protocols::canonical_sampling::SimulatedTempering.

Referenced by observe_after_metropolis(), and temperature_move().

core::Real protocols::canonical_sampling::TemperatureController::temperature_move ( core::pose::Pose pose)
virtual

Execute a temperature move which depends on the current pose.

The default implementation just calls the pose-independent temperature_pose() method with the energy of the given pose. However, the HamiltonianExchange temperature controller needs to evaluate the alternative Hamiltonian.

Reimplemented in protocols::canonical_sampling::HamiltonianExchange.

References core::pose::Pose::energies(), temperature_move(), and core::scoring::Energies::total_energy().

Member Data Documentation

protocols::moves::MonteCarloOP protocols::canonical_sampling::TemperatureController::monte_carlo_
private

The documentation for this class was generated from the following files: