File Ediis.h

Copyright

This code is licensed under the 3-clause BSD license.

Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.

See LICENSE.txt for details.

namespace Scine

This header file contains functions that allow for common notation for common things that can be done at a different degree of derivatives.

This header contains alias definitions defining which classes to use for the different degrees of derivatives.

namespace Utils
class Ediis
#include <Ediis.h>

Class performing the calculation of a Fock matrix based on the EDIIS algorithm.

Public Functions

Ediis()
void setSubspaceSize(int n)
void setNAOs(int n)
void setUnrestricted(bool b)
void addMatrices(double energy, const SpinAdaptedMatrix &F, const DensityMatrix &P)
void restart()
SpinAdaptedMatrix getMixedFockMatrix()

Private Functions

void resizeMembers()
void updateBMatrix()
double getBMatrixElement(int i, int j) const
SpinAdaptedMatrix calculateLinearCombination(const Eigen::VectorXd &coefs)

Private Members

bool unrestricted_ = false
int subspaceSize_
int nAOs_ = 0
int index_
int lastAdded_
int iterationNo_
std::vector<SpinAdaptedMatrix> fockMatrices
std::vector<DensityMatrix> densityMatrices
std::vector<double> energies
Eigen::MatrixXd B