35 class PotentialReduction;
89 std::unique_ptr<doci2DM::Method>
method;
92 std::unique_ptr<CheMPS2::Hamiltonian>
ham;
95 std::unique_ptr<simanneal::OrbitalTransform>
orbtrans;
125 std::random_device
rd;
void UsePotentialReduction()
void Set_start_temp(double)
double cur_temp
current temperature
doci2DM::Method & getMethod() const
double get_energy() const
bool accept_function(double)
double delta_temp
the change in temperatur between steps
unsigned int steps
the number of steps done
double delta_angle
the change in the angle allows in steps
OrbitalTransform & getOrbitalTf() const
double start_temp
the start temperatur
std::unique_ptr< simanneal::OrbitalTransform > orbtrans
the actual orbital transform
void Set_delta_temp(double)
SimulatedAnnealing(const CheMPS2::Hamiltonian &)
unsigned int unaccepted
number of unaccepted steps
std::random_device rd
the real random input (hopefully)
std::unique_ptr< simanneal::UnitaryMatrix > opt_unitary
the current unitary
virtual ~SimulatedAnnealing()
double max_angle
the maximum allows angle
doci2DM::BoundaryPoint & getMethod_BP() const
void Set_max_angle(double)
bool stop_running
bool to indicate if we should quite the optimalisation
unsigned int max_steps
max number of steps
simanneal::UnitaryMatrix & get_Optimal_Unitary()
std::mt19937_64 mt
our pseudo-random generator
doci2DM::PotentialReduction & getMethod_PR() const
std::unique_ptr< doci2DM::Method > method
double energy
energy of current iteration
void Set_delta_angle(double)
std::unique_ptr< CheMPS2::Hamiltonian > ham
Holds the current hamiltonian.
CheMPS2::Hamiltonian & getHam() const