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