24 #ifndef LOCALMINIMIZER_H
25 #define LOCALMINIMIZER_H
38 class PotentialReduction;
53 int Minimize(
bool dist_choice=
false,
int start_iters=0);
79 std::vector<std::tuple<int,int,double,double>>
scan_orbitals();
106 std::unique_ptr<CheMPS2::Hamiltonian>
ham;
109 std::unique_ptr<simanneal::OrbitalTransform>
orbtrans;
std::unique_ptr< simanneal::OrbitalTransform > orbtrans
the actual orbital transform
std::vector< std::tuple< int, int, double, double > > scan_orbitals()
int conv_steps
number of steps in convergence area
OrbitalTransform & getOrbitalTf() const
int Minimize_noOpt(double stopcrit)
simanneal::UnitaryMatrix & get_Optimal_Unitary()
void UsePotentialReduction()
doci2DM::BoundaryPoint & getMethod_BP() const
std::unique_ptr< CheMPS2::Hamiltonian > ham
Holds the current hamiltonian.
virtual ~LocalMinimizer()
void set_conv_crit(double)
double conv_crit
criteria for convergence of the minimizer
std::unique_ptr< simanneal::UnitaryMatrix > opt_unitary
the current unitary
LocalMinimizer(const CheMPS2::Hamiltonian &)
doci2DM::PotentialReduction & getMethod_PR() const
int Minimize(bool dist_choice=false, int start_iters=0)
CheMPS2::Hamiltonian & getHam() const
std::vector< int > allow_irreps
only rotation within these irreps (if not empty)
int choose_orbitalpair(std::vector< std::tuple< int, int, double, double >> &)
doci2DM::Method & getMethod() const
std::unique_ptr< doci2DM::Method > method
std::mt19937 mt
our pseudo-random generator
double get_conv_crit() const
double get_energy() const