8 #ifndef SPARROW_MNDOTYPEATOMICPARAMETERS_H 
    9 #define SPARROW_MNDOTYPEATOMICPARAMETERS_H 
   32                             BasisFunctions basisFunctions = BasisFunctions::spd) {
 
   33     setElement(e, basisFunctions);
 
   38     return e_ != Utils::ElementType::none;
 
   41   void setElement(Utils::ElementType e, BasisFunctions basisFunctions = BasisFunctions::spd) {
 
   43     setNAOs(PM6Elements::getNumberOfAOs(e, basisFunctions));
 
   44     setCoreCharge(PM6Elements::getCoreCharge(e));
 
   47   Utils::ElementType element()
 const {
 
   52     gtos_ = std::move(gtos);
 
   55   const Utils::AtomicGtos& GTOs()
 const {
 
   67   void setCoreCharge(
double c) {
 
   69     coreCharge13_ = std::pow(c, 1. / 3.);
 
   72   double coreCharge()
 const {
 
   76   double cubicRootOfCoreCharge()
 const {
 
   80   void setBetaS(
double v) {
 
   84   void setBetaP(
double v) {
 
   88   void setBetaD(
double v) {
 
   92   double betaS()
 const {
 
   96   double betaP()
 const {
 
  100   double betaD()
 const {
 
  104   void setUss(
double v) {
 
  108   void setUpp(
double v) {
 
  112   void setUdd(
double v) {
 
  128   double alpha()
 const {
 
  132   void setAlpha(
double v) {
 
  136   void setPCore(
double p) {
 
  140   double pCore()
 const {
 
  144   bool pCoreSpecified()
 const {
 
  145     return pCoreSpecified_;
 
  148   void setPCoreSpecified(
bool b) {
 
  152   void setKlopmanParameters(
const multipole::KlopmanParameter& k) {
 
  156   const multipole::KlopmanParameter& klopmanParameters()
 const {
 
  160   void setChargeSeparations(
const multipole::ChargeSeparationParameter& d) {
 
  164   const multipole::ChargeSeparationParameter& chargeSeparations()
 const {
 
  168   void addGaussianRepulsionParameters(
double a, 
double b, 
double c) {
 
  169     gaussianRepulsionParameters_.emplace_back(a, b, c);
 
  170     hasGaussianRepulsionParameters_ = 
true;
 
  173   bool hasGaussianRepulsionParameters()
 const {
 
  174     return hasGaussianRepulsionParameters_;
 
  177   const std::vector<std::tuple<double, double, double>>& getGaussianRepulsionParameters()
 const {
 
  178     return gaussianRepulsionParameters_;
 
  181   void clearGaussianRepulsionParameters() {
 
  182     gaussianRepulsionParameters_.clear();
 
  186   Utils::ElementType e_{Utils::ElementType::none};
 
  188   double coreCharge_{0.};
 
  189   double coreCharge13_{}; 
 
  190   Utils::AtomicGtos gtos_{};
 
  191   double betaS_{0.}, betaP_{0.}, betaD_{0.};
 
  192   double Uss_{0.}, Upp_{0.}, Udd_{0.};
 
  195   bool hasGaussianRepulsionParameters_{
false};
 
  196   std::vector<std::tuple<double, double, double>> gaussianRepulsionParameters_{}; 
 
  200   multipole::KlopmanParameter klopman_{};
 
  201   multipole::ChargeSeparationParameter chargeSep_{};
 
  202   bool pCoreSpecified_{
false};
 
  209 #endif // SPARROW_MNDOTYPEATOMICPARAMETERS_H 
Definition: AtomicParameters.h:29
bool isValid() const 
Definition: AtomicParameters.h:37