File AtomicParameters.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
namespace Sparrow
namespace nddo
class AtomicParameters
#include <AtomicParameters.h>

Class for the storage of atomic parameters in the semiempirical methods. (only those needed at runtime).

Public Functions

AtomicParameters(Utils::ElementType e = Utils::ElementType::none, BasisFunctions basisFunctions = BasisFunctions::spd)
bool isValid() const

Returns false if the element of the instance is not set.

void setElement(Utils::ElementType e, BasisFunctions basisFunctions = BasisFunctions::spd)
Utils::ElementType element() const
void setGTOs(Utils::AtomicGtos gtos)
const Utils::AtomicGtos &GTOs() const
void setNAOs(int n)
int nAOs() const
void setCoreCharge(double c)
double coreCharge() const
double cubicRootOfCoreCharge() const
void setBetaS(double v)
void setBetaP(double v)
void setBetaD(double v)
double betaS() const
double betaP() const
double betaD() const
void setUss(double v)
void setUpp(double v)
void setUdd(double v)
double Uss() const
double Upp() const
double Udd() const
double alpha() const
void setAlpha(double v)
void setPCore(double p)
double pCore() const
bool pCoreSpecified() const
void setPCoreSpecified(bool b)
void setKlopmanParameters(const multipole::KlopmanParameter &k)
const multipole::KlopmanParameter &klopmanParameters() const
void setChargeSeparations(const multipole::ChargeSeparationParameter &d)
const multipole::ChargeSeparationParameter &chargeSeparations() const
void addGaussianRepulsionParameters(double a, double b, double c)
bool hasGaussianRepulsionParameters() const
const std::vector<std::tuple<double, double, double>> &getGaussianRepulsionParameters() const
void clearGaussianRepulsionParameters()

Private Members

Utils::ElementType e_ = {Utils::ElementType::none}
int nAOs_ = {0}
double coreCharge_ = {0.}
double coreCharge13_ = {}
Utils::AtomicGtos gtos_ = {}
double betaS_ = {0.}
double betaP_ = {0.}
double betaD_ = {0.}
double Uss_ = {0.}
double Upp_ = {0.}
double Udd_ = {0.}
double alpha_ = {0.}
double pCore_ = {0.}
bool hasGaussianRepulsionParameters_ = {false}
std::vector<std::tuple<double, double, double>> gaussianRepulsionParameters_ = {}
multipole::KlopmanParameter klopman_ = {}
multipole::ChargeSeparationParameter chargeSep_ = {}
bool pCoreSpecified_ = {false}