File DipoleMatrix.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 InvalidDimensionSizeException : public exception

Public Functions

const char *what() const
class DipoleMatrix

This class stores the dipole integrals <mu|r|nu> in their three components x, y, z.

Unnamed Group

Eigen::MatrixXd &x()

Getters and setters for the x, y and z components of the matrix.

Eigen::MatrixXd x() const
Eigen::MatrixXd &y()
Eigen::MatrixXd y() const
Eigen::MatrixXd &z()
Eigen::MatrixXd z() const

Public Functions

void reset(int dimension)

Resets the dipole matrix.

Parameters
  • dimension: the number of basis function in the system, i.e. the dimension of the integral matrices.

Eigen::MatrixXd &operator[](int index)

Returns the components by index.

0 is x, 1 is y and 2 is z.

Eigen::MatrixXd operator[](int index) const

Private Members

Eigen::MatrixXd xDipoleMatrix_

Updates entries after displacement of one atom.

This method updates all the integrals needed after the displacement of one atom. This is particularly convenient for the semi-numerical calculation of the dipole gradient.

Eigen::MatrixXd yDipoleMatrix_
Eigen::MatrixXd zDipoleMatrix_