44template <
typename _Scalar>
86 if (this->N % 2 != 0) {
87 throw std::invalid_argument(
"RHFSCFEnvironment::RHFSCFEnvironment(const size_t, const RSQHamiltonian<Scalar>&, const SquareMatrix<Scalar>&, const RTransformation<Scalar>&): You have given an odd number of electrons.");
109 using MatrixType = Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic>;
110 Eigen::GeneralizedSelfAdjointEigenSolver<MatrixType> generalized_eigensolver {H_core,
S.parameters()};
126 template <
typename Z = Scalar>
135 for (
size_t i = 0; i < C_initial.cols(); i++) {
136 C_initial(0, i) +=
x;
138 for (
size_t j = 0; j < C_initial.rows(); j++) {
139 C_initial(j, 0) -=
x;
160 template <
typename Z = Scalar>
165 using MatrixType = Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic>;
166 Eigen::GeneralizedSelfAdjointEigenSolver<MatrixType> generalized_eigensolver {H_core,
S.parameters()};
167 auto C_initial {generalized_eigensolver.eigenvectors()};
Definition: RHFSCFEnvironment.hpp:45
std::deque< Orbital1DM< Scalar > > density_matrices
Definition: RHFSCFEnvironment.hpp:60
std::deque< VectorX< Scalar > > error_vectors
Definition: RHFSCFEnvironment.hpp:62
static RHFSCFEnvironment< Scalar > WithTransformedCoreGuess(const size_t N, const RSQHamiltonian< Scalar > &sq_hamiltonian, const ScalarRSQOneElectronOperator< Scalar > &S, const std::function< Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic >(const Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &)> &transformation_function)
Definition: RHFSCFEnvironment.hpp:161
RHFSCFEnvironment(const size_t N, const RSQHamiltonian< Scalar > &sq_hamiltonian, const ScalarRSQOneElectronOperator< Scalar > &S, const RTransformation< Scalar > &C_initial)
Definition: RHFSCFEnvironment.hpp:80
static enable_if_t< std::is_same< Z, complex >::value, RHFSCFEnvironment< complex > > WithComplexlyTransformedCoreGuess(const size_t N, const RSQHamiltonian< Scalar > &sq_hamiltonian, const ScalarRSQOneElectronOperator< Scalar > &S)
Definition: RHFSCFEnvironment.hpp:127
_Scalar Scalar
Definition: RHFSCFEnvironment.hpp:47
std::deque< ScalarRSQOneElectronOperator< Scalar > > fock_matrices
Definition: RHFSCFEnvironment.hpp:61
std::deque< RTransformation< Scalar > > coefficient_matrices
Definition: RHFSCFEnvironment.hpp:59
static RHFSCFEnvironment< Scalar > WithCoreGuess(const size_t N, const RSQHamiltonian< Scalar > &sq_hamiltonian, const ScalarRSQOneElectronOperator< Scalar > &S)
Definition: RHFSCFEnvironment.hpp:105
std::deque< VectorX< Scalar > > orbital_energies
Definition: RHFSCFEnvironment.hpp:55
size_t N
Definition: RHFSCFEnvironment.hpp:51
ScalarRSQOneElectronOperator< Scalar > S
Definition: RHFSCFEnvironment.hpp:57
std::deque< Scalar > electronic_energies
Definition: RHFSCFEnvironment.hpp:53
RSQHamiltonian< Scalar > sq_hamiltonian
Definition: RHFSCFEnvironment.hpp:64
Definition: RSQOneElectronOperator.hpp:42
Definition: SQHamiltonian.hpp:54
Definition: SquareMatrix.hpp:39
Definition: BaseOneElectronIntegralBuffer.hpp:25
typename std::enable_if< B, T >::type enable_if_t
Definition: type_traits.hpp:37
std::complex< double > complex
Definition: complex.hpp:31
@ x
Definition: CartesianDirection.hpp:28