22#ifndef VOTCA_XTP_ORBITALS_H
23#define VOTCA_XTP_ORBITALS_H
133 double energy_difference)
const;
136 switch (type.
Type()) {
177 this->
QMAtoms()[atom_index].setPos(new_position);
210 throw std::runtime_error(
211 "Requested the DFT basis, but no basis is present. Make sure "
212 "SetupDftBasis is called.");
220 throw std::runtime_error(
221 "Requested the Aux basis, but no basis is present. Make sure "
222 "SetupAuxBasis is called.");
399 void WriteToCpt(
const std::string &filename)
const;
443 Eigen::MatrixXd
CalcAuxMat_cc(
const Eigen::VectorXd &coeffs)
const;
444 Eigen::MatrixXd
CalcAuxMat_vv(
const Eigen::VectorXd &coeffs)
const;
Container to hold Basisfunctions for all atoms.
void UpdateShellPositions(const QMMolecule &mol)
Index AOBasisSize() const
const std::string & Name() const
container for molecular orbitals
const Eigen::MatrixXd getTruncMOsFullBasis() const
void setScaHFX(double ScaHFX)
void setCalculationType(std::string CalcType)
const tools::EigenSystem & BSETriplets() const
bool GetFlagUseHqpOffdiag() const
Index getNumOfActiveElectrons()
Index number_beta_electrons_
void CalcCoupledTransition_Dipoles()
Eigen::MatrixXd occupations_
bool hasRPAindices() const
Eigen::VectorXd rpa_inputenergies_
const tools::EigenSystem & QPdiag() const
void ReadBasisSetsFromCpt(CheckpointReader r)
Eigen::MatrixXd TransitionDensityMatrix(const QMState &state) const
double getDFTTotalEnergy() const
bool hasBSESinglets_dynamic() const
void setInactiveDensity(Eigen::MatrixXd inactivedensity)
bool hasBSEindices() const
bool hasAuxbasisName() const
Eigen::MatrixXd CalculateQParticleAORepresentation() const
std::array< Eigen::MatrixXd, 2 > DensityMatrixExcitedState_R(const QMState &state) const
const tools::EigenSystem & MOs_beta() const
void setNumofActiveElectrons(const Index active_electrons)
Eigen::VectorXd lmos_energies_
const tools::EigenSystem & BSESinglets() const
Eigen::VectorXd & BSESinglets_dynamic()
const Eigen::VectorXd & QPpertEnergies() const
bool getTDAApprox() const
tools::EigenSystem BSE_singlet_
void PrepareDimerGuess(const Orbitals &orbitalsA, const Orbitals &orbitalsB)
Guess for a dimer based on monomer orbitals.
bool hasNumberOfLevelsBeta() const
tools::EigenSystem mos_beta_
std::string grid_quality_
void setTruncMOsFullBasis(const Eigen::MatrixXd &expandedMOs)
bool hasBSESinglets() const
double getTotalStateEnergy(const QMState &state) const
Eigen::VectorXd BSE_triplet_energies_dynamic_
const Eigen::MatrixXd & Occupations() const
bool hasRPAInputEnergies() const
std::vector< Index > CheckDegeneracy(Index level, double energy_difference) const
tools::EigenSystem & BSETriplets()
const AOBasis & getAuxBasis() const
Eigen::MatrixXd inactivedensity_
Index getNumberOfAlphaElectrons() const
void setLMOs_energies(const Eigen::VectorXd &energies)
std::string getCalculationType() const
std::array< Eigen::MatrixXd, 3 > CalcFreeTransition_Dipoles() const
void setLMOs(const Eigen::MatrixXd &matrix)
bool hasNumberOfBetaElectrons() const
const std::string & getQMpackage() const
Eigen::MatrixXd CalcAuxMat_cc(const Eigen::VectorXd &coeffs) const
void setRPAindices(Index rpamin, Index rpamax)
bool hasNumberOfLevels() const
Eigen::MatrixXd expandedMOs_
void setNumberOfAlphaElectrons(Index electrons)
void updateAtomPostion(Index atom_index, Eigen::Vector3d new_position)
Eigen::VectorXd & RPAInputEnergies()
Eigen::VectorXd Oscillatorstrengths() const
std::vector< Eigen::Vector3d > transition_dipoles_
static constexpr int orbitals_version()
std::string functionalname_
Eigen::MatrixXd & Occupations()
Eigen::MatrixXd DensityMatrixWithoutGS(const QMState &state) const
void WriteBasisSetsToCpt(CheckpointWriter w) const
bool hasGWAindices() const
tools::EigenSystem & MOs()
Eigen::MatrixXd DensityMatrixFull(const QMState &state) const
bool hasTransitionDipoles() const
const Eigen::MatrixXd & getLMOs() const
Eigen::MatrixXd CalcAuxMat_vv(const Eigen::VectorXd &coeffs) const
tools::EigenSystem & MOs_beta()
tools::EigenSystem & QPdiag()
void SetupAuxBasis(std::string aux_basis_name)
void setNumberOfBetaElectrons(Index electrons)
tools::EigenSystem BSE_triplet_
void setBSEindices(Index vmin, Index cmax)
bool hasBasisSetSize() const
const Eigen::MatrixXd & getInactiveDensity() const
void setGWindices(Index qpmin, Index qpmax)
std::vector< Index > SortEnergies()
std::array< Eigen::MatrixXd, 2 > DensityMatrixExcitedState_AR(const QMState &state) const
bool hasQMpackage() const
double getExcitedStateEnergy(const QMState &state) const
tools::EigenSystem & BSESinglets()
void setECPName(const std::string &ECP)
void setXCGrid(std::string grid)
void setNumberOfOccupiedLevels(Index occupied_levels)
const std::vector< Eigen::Vector3d > & TransitionDipoles() const
Index occupied_levels_beta_
tools::EigenSystem QPdiag_
bool hasBSETriplets() const
Eigen::MatrixXd DensityMatrixKSstate(const QMState &state) const
bool hasBSETriplets_dynamic() const
const std::string getAuxbasisName() const
Eigen::MatrixXd DensityMatrixQuasiParticle(const QMState &state) const
Index getBasisSetSize() const
void setQMEnergy(double qmenergy)
const Eigen::VectorXd & RPAInputEnergies() const
const std::string & getXCGrid() const
Eigen::VectorXd BSE_singlet_energies_dynamic_
Eigen::VectorXd & QPpertEnergies()
const Eigen::VectorXd & BSETriplets_dynamic() const
const tools::EigenSystem & MOs() const
void setQMpackage(const std::string &qmpackage)
Eigen::VectorXd & BSETriplets_dynamic()
Eigen::MatrixXd DensityMatrixGroundState() const
const QMMolecule & QMAtoms() const
tools::EigenSystem mos_embedding_
const std::string & getXCFunctionalName() const
void SetFlagUseHqpOffdiag(bool flag)
void ReadFromCpt(const std::string &filename)
void setEmbeddedMOs(tools::EigenSystem &system)
void setNumberOfOccupiedLevelsBeta(Index occupied_levels_beta)
void setChargeAndSpin(Index charge, Index spin)
Eigen::VectorXd QPpert_energies_
void WriteToCpt(const std::string &filename) const
bool hasDFTbasisName() const
const std::string & getECPName() const
const std::string & getDFTbasisName() const
void SetupDftBasis(std::string basis_name)
void setTDAApprox(bool usedTDA)
std::array< Eigen::MatrixXd, 2 > DensityMatrixExcitedState(const QMState &state) const
const Eigen::VectorXd & BSESinglets_dynamic() const
Index number_alpha_electrons_
const tools::EigenSystem & getEmbeddedMOs() const
Index NumberofStates(QMStateType type) const
Eigen::Vector3d CalcElDipole(const QMState &state) const
Index getNumberOfBetaElectrons() const
const AOBasis & getDftBasis() const
const Eigen::VectorXd & getLMOs_energies() const
bool hasNumberOfAlphaElectrons() const
void setXCFunctionalName(std::string functionalname)
Identifier for QMstates. Strings like S1 are converted into enum +zero indexed int.
base class for all analysis tools