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

Class handling the single-particle energies obtained as eigenvalues of the (generalized) eigenvalue problem. NB: no check is made if the correct (i.e., Restricted / Unrestricted) function variants are called.

Public Types

using EnergyLevels = std::vector<double>

Public Functions

bool isRestricted() const
int getRestrictedNLevels() const
int getUnrestrictedNLevels() const
void setRestricted(const Eigen::VectorXd &values)
void setUnrestricted(const Eigen::VectorXd &alpha, const Eigen::VectorXd &beta)
double getRestrictedLevelEnergy(int index) const
double getAlphaLevelEnergy(int index) const
double getBetaLevelEnergy(int index) const
const SingleParticleEnergies::EnergyLevels &getRestrictedEnergies() const
const SingleParticleEnergies::EnergyLevels &getAlphaEnergies() const
const SingleParticleEnergies::EnergyLevels &getBetaEnergies() const

Public Static Functions

static SingleParticleEnergies createEmptyUnrestrictedEnergies()
static SingleParticleEnergies createEmptyRestrictedEnergies()

Private Members

bool restricted_ = {true}
EnergyLevels restrictedEnergies_
EnergyLevels alphaEnergies_
EnergyLevels betaEnergies_