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

Class to handle the error vectors used in DIIS.

Public Functions

void setErrorFromMatrices(int index, const SpinAdaptedMatrix &fock, const DensityMatrix &density, const Eigen::MatrixXd &overlap)
void setOrthogonal(bool o)
void setUnrestricted(bool u)
void resize(unsigned subspaceSize)
double getError(int i1, int i2) const

Private Functions

Eigen::MatrixXd calculateUnrestrictedErrorMatrix(const SpinAdaptedMatrix &fock, const DensityMatrix &density, const Eigen::MatrixXd &overlap) const
Eigen::MatrixXd calculateRestrictedErrorMatrix(const SpinAdaptedMatrix &fock, const DensityMatrix &density, const Eigen::MatrixXd &overlap) const
Eigen::MatrixXd calculateErrorMatrix(const Eigen::MatrixXd &fock, const Eigen::MatrixXd &overlap, const Eigen::MatrixXd &density) const
Eigen::MatrixXd calculateOrthogonalErrorMatrix(const Eigen::MatrixXd &fock, const Eigen::MatrixXd &density) const

Private Members

bool orthogonal_ = false
bool unrestricted_ = false
std::vector<Eigen::MatrixXd> errorMatrices