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

Class for the coefficient (molecular orbital) matrix. Contains all the eigenfunctions (molecular orbitals) produced when solving the (generalized) eigenvalue problem. The contained matrices are therefore quadratic; their dimension is the number of basis functions. TODO: Take SingleParticleEnergies inside this class?

See

OccupiedMolecularOrbitals

Public Types

using Matrix = SpinAdaptedMatrix::Matrix

Public Functions

void makeUnrestricted()

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

MolecularOrbitals toUnrestricted() const

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

bool isValid() const

Return

true if the MO’s are valid and can be used, for instance, for the density matrix generation.

void invalidate()

Reinitialize the MO’s, for instance if the molecular structure changes.

bool isRestricted() const
bool isUnrestricted() const
int numberOrbitals() const
MolecularOrbitals::Matrix &restrictedMatrix()
const MolecularOrbitals::Matrix &restrictedMatrix() const
MolecularOrbitals::Matrix &alphaMatrix()
const MolecularOrbitals::Matrix &alphaMatrix() const
MolecularOrbitals::Matrix &betaMatrix()
const MolecularOrbitals::Matrix &betaMatrix() const

Public Static Functions

static MolecularOrbitals createEmptyUnrestrictedOrbitals()
static MolecularOrbitals createEmptyRestrictedOrbitals()
template<typename T>
MolecularOrbitals createFromRestrictedCoefficients(T &&restricted)
template<typename T>
MolecularOrbitals createFromUnrestrictedCoefficients(T &&alpha, T &&beta)

Private Members

SpinAdaptedMatrix matrix_
bool valid_ = false
bool unrestricted_ = false