File OccupiedMolecularOrbitals.h

A file containing definitions of classes that are just different names.

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

Class for the occupied part of the coefficient (molecular orbital) matrix. Contains only the occupied eigenfunctions (molecular orbitals). The dimension of the matrices is the number of basis functions (rows) and the number of occupied orbitals (columns) TODO: Take SingleParticleEnergies inside this class?

See

MolecularOrbitals

Public Types

using Matrix = SpinAdaptedMatrix::Matrix

Public Functions

OccupiedMolecularOrbitals()
OccupiedMolecularOrbitals(const MolecularOrbitals &allOrbitals, const LcaoUtil::ElectronicOccupation &occupation)

Construct from all the molecular orbitals and the electronic occupation.

void makeUnrestricted()

If the molecular orbitals are restricted, transforms them into unrestricted ones.

OccupiedMolecularOrbitals toUnrestricted() const

Return a copy of the orbitals, transformed to the unrestricted variant if needed.

bool isRestricted() const
bool isUnrestricted() const
const OccupiedMolecularOrbitals::Matrix &restrictedMatrix() const
const OccupiedMolecularOrbitals::Matrix &alphaMatrix() const
const OccupiedMolecularOrbitals::Matrix &betaMatrix() const

Private Functions

void constructRestricted(const MolecularOrbitals &allOrbitals, const LcaoUtil::ElectronicOccupation &occupation)
void constructUnrestricted(const MolecularOrbitals &allOrbitals, const LcaoUtil::ElectronicOccupation &occupation)

Private Members

SpinAdaptedMatrix matrix_
bool unrestricted_ = false

Private Static Functions

static Eigen::MatrixXd calculateMatrixForFilledOrbitals(const Eigen::MatrixXd &matrixWithAllOrbitals, const std::vector<int> &filledOrbitalsIndexes)