Class solver::ParallelTempering
Parallel Tempering algorithm.
Run multiple metropolis simulating at separate temperatures, allowing exchange of configuration between neighboring replicas between sweeps.
Note
Use of the Metropolis Algorithm is currently hard-coded, but this could in principle be a template argument, provided that the alternative method implements the corresponding interfaces for exchange moves.
Inherited Members
Constructors
ParallelTempering()
Create an uninitialized Parallel Tempering instance.
Declaration
solver::ParallelTempering<Model_T>::ParallelTempering()
ParallelTempering()
Declaration
solver::ParallelTempering<Model_T>::ParallelTempering(const ParallelTempering&)=delete
Methods
operator=()
Declaration
ParallelTempering&solver::ParallelTempering<Model_T>::operator=(const ParallelTempering&)=delete
get_temperatures()
Declaration
std::vector<double>solver::ParallelTempering<Model_T>::get_temperatures()
use_inverse_temperatures()
Declaration
bool solver::ParallelTempering<Model_T>::use_inverse_temperatures()
get_identifier()
Identifier of this solver (target
in the request)
Declaration
std::string solver::ParallelTempering<Model_T>::get_identifier() const override
init_memory_check_error_message()
Declaration
std::string solver::ParallelTempering<Model_T>::init_memory_check_error_message() const override
target_number_of_states()
Declaration
size_t solver::ParallelTempering<Model_T>::target_number_of_states() const override
init()
Initialize each replica.
Declaration
void solver::ParallelTempering<Model_T>::init() override
accept()
Decide whether to accept an exchange move.
Declaration
double solver::ParallelTempering<Model_T>::accept(const markov::Metropolis<Model_T>&a, const markov::Metropolis<Model_T>&b)
make_step()
Perform discrete time step t
.
Declaration
void solver::ParallelTempering<Model_T>::make_step(uint64_t step) override
configure()
Configure.
Declaration
void solver::ParallelTempering<Model_T>::configure(const utils::Json&json) override
finalize()
Declaration
void solver::ParallelTempering<Model_T>::finalize() override