GQCP
Loading...
Searching...
No Matches
ERJacobiLocalizer.hpp
Go to the documentation of this file.
1// This file is part of GQCG-GQCP.
2//
3// Copyright (C) 2017-2020 the GQCG developers
4//
5// GQCG-GQCP is free software: you can redistribute it and/or modify
6// it under the terms of the GNU Lesser General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// GQCG-GQCP is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU Lesser General Public License for more details.
14//
15// You should have received a copy of the GNU Lesser General Public License
16// along with GQCG-GQCP. If not, see <http://www.gnu.org/licenses/>.
17
18#pragma once
19
20
22
23
24namespace GQCP {
25
26
31private:
32 double A = 0.0, B = 0.0, C = 0.0; // the Jacobi rotation coefficients
33
34
35public:
36 // CONSTRUCTORS
37 using JacobiOrbitalOptimizer::JacobiOrbitalOptimizer; // inherit base constructor
38
39
40 // PUBLIC OVERRIDDEN METHODS
41
48 void calculateJacobiCoefficients(const RSQHamiltonian<double>& sq_hamiltonian, const size_t i, const size_t j) override;
49
57 double calculateOptimalRotationAngle(const RSQHamiltonian<double>& sq_hamiltonian, const size_t i, const size_t j) const override;
58
65 double calculateScalarFunctionChange(const RSQHamiltonian<double>& sq_hamiltonian, const JacobiRotation& jacobi_rotation) const override;
66
71};
72
73
74} // namespace GQCP
Definition: ERJacobiLocalizer.hpp:30
void calculateJacobiCoefficients(const RSQHamiltonian< double > &sq_hamiltonian, const size_t i, const size_t j) override
Definition: ERJacobiLocalizer.cpp:37
double calculateOptimalRotationAngle(const RSQHamiltonian< double > &sq_hamiltonian, const size_t i, const size_t j) const override
Definition: ERJacobiLocalizer.cpp:54
double calculateScalarFunctionChange(const RSQHamiltonian< double > &sq_hamiltonian, const JacobiRotation &jacobi_rotation) const override
Definition: ERJacobiLocalizer.cpp:72
void prepareJacobiSpecificConvergenceChecking(const RSQHamiltonian< double > &sq_hamiltonian) override
Definition: ERJacobiLocalizer.hpp:70
Definition: JacobiOrbitalOptimizer.hpp:31
JacobiOrbitalOptimizer(const size_t dim, const double convergence_threshold=1.0e-08, const size_t maximum_number_of_iterations=128)
Definition: JacobiOrbitalOptimizer.cpp:35
Definition: JacobiRotation.hpp:33
Definition: SQHamiltonian.hpp:54
Definition: BaseOneElectronIntegralBuffer.hpp:25