File FockDiis.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 FockDiis
#include <FockDiis.h>

Class performing the calculation of a Fock matrix based on the direct inversion of the iterative subspace (DIIS) algorithm.

Public Functions

FockDiis()
void setSubspaceSize(int n)
void setNAOs(int n)
void setUnrestricted(bool b)
void setOrthogonal(bool o)
void addMatrices(const SpinAdaptedMatrix &F, const DensityMatrix &P)
void setOverlapMatrix(const Eigen::MatrixXd &S)
void restart()
SpinAdaptedMatrix getMixedFockMatrix()
double getMaxError() const
double getMinError() const
double getLastError() const

Private Functions

void resizeMembers()
void updateBMatrix()
SpinAdaptedMatrix calculateLinearCombination()

Private Members

bool unrestricted_ = false
int subspaceSize_ = 5
int nAOs_ = 0
int index_
int lastAdded_
int iterationNo_
std::vector<SpinAdaptedMatrix> fockMatrices
DiisError diisError_
std::vector<double> diisStepErrors_
Eigen::MatrixXd overlap
Eigen::MatrixXd B
Eigen::VectorXd rhs
Eigen::VectorXd C