Changeset 44fce5


Ignore:
Timestamp:
Feb 7, 2011, 10:43:41 AM (14 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
963321a
Parents:
61d69a4
git-author:
Frederik Heber <heber@…> (02/04/11 12:43:30)
git-committer:
Frederik Heber <heber@…> (02/07/11 10:43:41)
Message:

Extended MpqcParser_Parameters, can set and get all values.

Location:
src/Parser
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/Makefile.am

    r61d69a4 r44fce5  
    1313  MpqcParser.cpp \
    1414  MpqcParser_Parameters.cpp \
     15  MpqcParser_Parameters_initBasis.cpp \
    1516  PcpParser.cpp \
    1617  PdbAtomInfoContainer.cpp \
  • src/Parser/MpqcParser.cpp

    r61d69a4 r44fce5  
    123123    *file << "\tsavestate = " << params.getString(MpqcParser_Parameters::savestateParam) << endl;
    124124    *file << "\tdo_gradient = " << params.getString(MpqcParser_Parameters::do_gradientParam) << endl;
    125     if (params.getBool(MpqcParser_Parameters::HessianParam)) {
     125    if (params.getBool(MpqcParser_Parameters::hessianParam)) {
    126126      *file << "\tfreq<MolecularFrequencies>: (" << endl;
    127127      *file << "\t\tmolecule=$:molecule" << endl;
  • src/Parser/MpqcParser_Parameters.cpp

    r61d69a4 r44fce5  
    4545  TheoryNames[MBPT2_R12]="MBPT2_R12";
    4646
     47  {
     48    // TODO: throw exception instead of eLog()
     49    std::pair<TheoryLookupType::iterator, bool> inserter;
     50    for (TheoryNamesType::iterator iter = TheoryNames.begin();
     51        iter != TheoryNames.end();
     52        ++iter) {
     53      inserter = TheoryLookup.insert( make_pair(iter->second, iter->first) );
     54      if (!inserter.second)
     55        DoeLog(0) && (eLog() << Verbose(0)
     56            << "MpqcParser_Parameters::MpqcParser_Parameters() - Theory name already present: "
     57            << (inserter.first)->second << " and " << iter->first << "!"
     58            << std::endl);
     59    }
     60  }
     61
    4762  // add all integration names
    4863  IntegrationNames[IntegralCints] = "IntegralCints";
     64  {
     65    // TODO: throw exception instead of eLog()
     66    std::pair<IntegrationLookupType::iterator, bool> inserter;
     67    for (IntegrationNamesType::iterator iter = IntegrationNames.begin();
     68        iter != IntegrationNames.end();
     69        ++iter) {
     70      inserter = IntegrationLookup.insert( make_pair(iter->second, iter->first) );
     71      if (!inserter.second)
     72        DoeLog(0) && (eLog() << Verbose(0)
     73            << "MpqcParser_Parameters::MpqcParser_Parameters() - Integration name already present: "
     74            << (inserter.first)->second << " and " << iter->first << "!"
     75            << std::endl);
     76    }
     77  }
    4978
    5079  // have names for all parmaters
    51   ParamNames[HessianParam] = "Hessian";
     80  ParamNames[hessianParam] = "Hessian";
    5281  ParamNames[savestateParam] = "savestate";
    5382  ParamNames[do_gradientParam] = "do_gradient";
     
    6190  ParamNames[theoryParam] = "theory";
    6291
     92  {
     93    // TODO: throw exception instead of eLog()
     94    std::pair<ParamLookupType::iterator, bool> inserter;
     95    for (ParamNamesType::iterator iter = ParamNames.begin();
     96        iter != ParamNames.end();
     97        ++iter) {
     98      inserter = ParamLookup.insert( make_pair(iter->second, iter->first) );
     99      if (!inserter.second)
     100        DoeLog(0) && (eLog() << Verbose(0)
     101            << "MpqcParser_Parameters::MpqcParser_Parameters() - parameter name already present: "
     102            << (inserter.first)->second << " and " << iter->first << "!"
     103            << std::endl);
     104    }
     105  }
     106
    63107  initParameters();
    64108}
     
    66110void MpqcParser_Parameters::initParameters()
    67111{
    68         appendParameter(HessianParam, bool(false));
     112        appendParameter(hessianParam, bool(false));
    69113        appendParameter(savestateParam, bool(false));
    70114        appendParameter(do_gradientParam, bool(true));
     
    85129{
    86130  std::ostringstream output;
    87   output << "Hessian=" << mpqc_params.getString(MpqcParser_Parameters::HessianParam) << ";";
     131  output << "Hessian=" << mpqc_params.getString(MpqcParser_Parameters::hessianParam) << ";";
    88132  output << "savestate=" << mpqc_params.getString(MpqcParser_Parameters::savestateParam) << ";";
    89133  output << "do_gradient=" << mpqc_params.getString(MpqcParser_Parameters::do_gradientParam) << ";";
     
    100144}
    101145
    102 // TODO: These should throw exceptions such that invalid user entry can be detected.
    103146std::istream & operator >> (std::istream& ist, MpqcParser_Parameters &params)
    104147{
     
    106149      tokenizer;
    107150  boost::char_separator<char> semicolonsep(";");
    108   boost::char_separator<char> equalitysep("=");
     151  boost::char_separator<char> equalitysep(" =");
    109152  std::string line;
    110   double tmp;
    111153  std::getline( ist, line );
    112154  //DoLog(0) && (Log() << Verbose(0) << "INFO: full line of parameters is '" << line << "'" << std::endl);
     
    121163      tokenizer::iterator tok_valueiter = tok_paramiter;
    122164      tokenizer::iterator tok_checkiter = ++tok_valueiter;
     165      // TODO: throw exception instead of ASSERT
    123166      ASSERT(tok_valueiter == params.end(),
    124167          "operator<< on MpqcParser_Parameters - missing value before ';'!");
     
    126169      ASSERT(tok_checkiter == params.end(),
    127170          "operator<< on MpqcParser_Parameters - still tokens before ';'!");
    128       DoLog(0) && (Log() << Verbose(0) << "INFO: Token pair is " << *tok_paramiter << "," << *tok_valueiter << std::endl);
     171      DoLog(0) && (Log() << Verbose(0)
     172          << "INFO: Token pair is " << *tok_paramiter << "," << *tok_valueiter << std::endl);
    129173      std::stringstream value(*tok_valueiter);
    130174
    131       value >> tmp;
    132 //      if ((MpqcParser_Parameters::params.count(*tok_paramiter) != 0)
    133 //          && (tmp != MpqcParser_Parameters::noset_value)) {
    134 //        switch (MpqcParser_Parameters::params[*tok_paramiter]) {
    135 //          case (MpqcParser_Parameters::param_seed):
    136 //              params.seed = tmp;
    137 //              break;
    138 //          default:
    139 //              std::cerr << "This is weird, we cannot get here!" << std::endl;
    140 //        }
    141 //        DoLog(1) && (Log() << Verbose(1) << "ACCEPT: Value for token " << *tok_paramiter << " set." << std::endl);
    142 //      } else {
    143 //        DoLog(1) && (Log() << Verbose(1) << "REJECT: Value for token " << *tok_paramiter << " not specified." << std::endl);
    144 //      }
     175      // TODO: throw exception instead of DoeLog()
     176      if ((params.haveParam(*tok_paramiter))) {
     177        params.setter(params.getParam(*tok_paramiter), value);
     178      } else {
     179        DoeLog(0) && (eLog() << Verbose(0)
     180            << *tok_paramiter << " is not a valid parameter name!" << std::endl);
     181      }
    145182    } else {
    146183      ist.setstate(std::ios::eofbit);
     
    151188
    152189
    153 /** Sets whether hessian is desired or not
    154  * \param hessian statement
     190/** Sets a desired value in the params from a string.
     191 *
     192 * This is due to strict typing of C++ very ugly and boost::any does not make
     193 * it any better because it offers to functions to use values directly from
     194 * stringstream. Probably, because value is unknown to is as well and hence
     195 * the author could not implement it beautifully, so he dropped it altogether.
     196 * Grrr ....
     197 *
     198 * @param _param param to set
     199 * @param _desired stringstream containing value as next argument
     200 * @return true - type ok, false - unknown type in params.
    155201 */
    156 void MpqcParser_Parameters::setHessian(bool _hessian)
    157 {
    158   try {
    159     params[HessianParam] = _hessian;
    160   } catch(const boost::bad_any_cast &) {
    161     DoeLog(0) && (eLog() << Verbose(0)
    162         << "MpqcParser_Parameters::setHessian() - could not set boolean!" << std::endl);
    163   }
    164 }
    165 
    166 /** Sets the desired level of solving theory to use
    167  * \param _theory shorthand of the theory
    168  */
     202bool MpqcParser_Parameters::setter(enum Parameters _param, std::stringstream& _desired) {
     203  if (_param == integrationParam) {
     204     std::string tmp;
     205    _desired >> tmp;
     206    params[_param] = IntegrationLookup[tmp];
     207  } else if(_param == theoryParam) {
     208    std::string tmp;
     209    _desired >> tmp;
     210    params[_param] = TheoryLookup[tmp];
     211  } else if (params[_param].type() == typeid(std::string)) {
     212    std::string tmp;
     213    _desired >> tmp;
     214    params[_param] = tmp;
     215  } else if (params[_param].type() ==  typeid(int)) {
     216    int tmp;
     217    _desired >> tmp;
     218    params[_param] = tmp;
     219  } else if (params[_param].type() == typeid(double)) {
     220    double tmp;
     221    _desired >> tmp;
     222    params[_param] = tmp;
     223  } else if (params[_param].type() == typeid(bool)) {
     224    std::string tmp;
     225    _desired >> tmp;
     226    if (tmp == "yes") {
     227      params[_param] = bool(true);
     228    } else if (tmp == "no") {
     229      params[_param] = bool(false);
     230    } else {
     231      DoeLog(0) && (eLog() << Verbose(0)
     232          << "MpqcParser_Parameters::setter() - unknown boolean key "
     233          << tmp << "!" << std::endl);
     234    }
     235  } else {
     236    DoeLog(0) && (eLog() << Verbose(0)
     237        << "MpqcParser_Parameters::setter() - unknown type!" << std::endl);
     238    return false;
     239  }
     240  return true;
     241}
     242
     243
    169244void MpqcParser_Parameters::setTheory(enum Theory _theory)
    170245{
     246  // TODO: throw exception instead of eLog()
    171247  try {
    172248    params[theoryParam] = _theory;
    173249  } catch(const boost::bad_any_cast &) {
    174250    DoeLog(0) && (eLog() << Verbose(0)
    175         << "MpqcParser_Parameters::setHessian() - could not set boolean!" << std::endl);
    176   }
     251        << "MpqcParser_Parameters::setTheory() - could not set boolean!" << std::endl);
     252  }
     253}
     254
     255void MpqcParser_Parameters::setIntegration(enum MpqcParser_Parameters::IntegrationMethod _integration){
     256  // TODO: throw exception instead of eLog()
     257  try {
     258    params[integrationParam] = _integration;
     259  } catch(const boost::bad_any_cast &) {
     260    DoeLog(0) && (eLog() << Verbose(0)
     261        << "MpqcParser_Parameters::setIntegration() - could not set boolean!" << std::endl);
     262  }
     263}
     264
     265bool MpqcParser_Parameters::haveParam(std::string _name) const
     266{
     267  return ParamLookup.count(_name) != 0;
     268}
     269
     270enum MpqcParser_Parameters::Parameters MpqcParser_Parameters::getParam(std::string _name)
     271{
     272  return ParamLookup[_name];
    177273}
    178274
     
    180276{
    181277  enum IntegrationMethod value;
     278  // TODO: throw exception instead of eLog()
    182279  try {
    183280    value = boost::any_cast<enum IntegrationMethod>(params[integrationParam]);
     
    193290{
    194291  enum Theory value;
     292  // TODO: throw exception instead of eLog()
    195293  try {
    196294    value = boost::any_cast<enum Theory>(params[theoryParam]);
     
    210308  bool test;
    211309  switch (_param) {
    212     case HessianParam:
     310    case hessianParam:
    213311    case savestateParam:
    214312    case do_gradientParam:
     
    220318      break;
    221319    case integrationParam:
     320      // TODO: throw exception instead of eLog()
    222321      try {
    223322        Iindex = boost::any_cast<enum IntegrationMethod>(params[_param]);
     
    230329      break;
    231330    case theoryParam:
     331      // TODO: throw exception instead of eLog()
    232332      try {
    233333        Tindex = boost::any_cast<enum Theory>(params[_param]);
     
    240340      break;
    241341    default:
     342      // TODO: throw exception instead of eLog()
    242343      try {
    243344        value = boost::any_cast<std::string>(params[_param]);
     
    258359  switch (_param) {
    259360    default:
     361      // TODO: throw exception instead of eLog()
    260362      try {
    261363        value = boost::any_cast<int>(params[_param]);
     
    271373
    272374double MpqcParser_Parameters::getDouble(enum Parameters _param)
    273     {
     375{
    274376  double value;
     377  // TODO: throw exception instead of eLog()
    275378  try {
    276379    value = boost::any_cast<double>(params[_param]);
     
    286389{
    287390  bool value;
     391  // TODO: throw exception instead of eLog()
    288392  try {
    289393    value = boost::any_cast<bool>(params[_param]);
     
    310414}
    311415
    312 void MpqcParser_Parameters::initBasis()
    313 {
    314   // list is obtained via the following shell script
    315   //for basis in ~/install/share/mpqc/3.0.0-alpha/basis/*.kv; do
    316   //  grep ": \"" $basis | awk -F":" '{print "\tBasisList["$2"].push_back(\""$1"\");"}' | tr -d \ ;
    317   //done
    318 
    319   BasisList["3-21G"].push_back("hydrogen");
    320         BasisList["3-21G"].push_back("helium");
    321         BasisList["3-21G"].push_back("lithium");
    322         BasisList["3-21G"].push_back("beryllium");
    323         BasisList["3-21G"].push_back("boron");
    324         BasisList["3-21G"].push_back("carbon");
    325         BasisList["3-21G"].push_back("nitrogen");
    326         BasisList["3-21G"].push_back("oxygen");
    327         BasisList["3-21G"].push_back("fluorine");
    328         BasisList["3-21G"].push_back("neon");
    329         BasisList["3-21G"].push_back("sodium");
    330         BasisList["3-21G"].push_back("magnesium");
    331         BasisList["3-21G"].push_back("aluminum");
    332         BasisList["3-21G"].push_back("silicon");
    333         BasisList["3-21G"].push_back("phosphorus");
    334         BasisList["3-21G"].push_back("sulfur");
    335         BasisList["3-21G"].push_back("chlorine");
    336         BasisList["3-21G"].push_back("argon");
    337         BasisList["3-21G"].push_back("potassium");
    338         BasisList["3-21G"].push_back("calcium");
    339         BasisList["3-21G"].push_back("scandium");
    340         BasisList["3-21G"].push_back("titanium");
    341         BasisList["3-21G"].push_back("vanadium");
    342         BasisList["3-21G"].push_back("chromium");
    343         BasisList["3-21G"].push_back("manganese");
    344         BasisList["3-21G"].push_back("iron");
    345         BasisList["3-21G"].push_back("cobalt");
    346         BasisList["3-21G"].push_back("nickel");
    347         BasisList["3-21G"].push_back("copper");
    348         BasisList["3-21G"].push_back("zinc");
    349         BasisList["3-21G"].push_back("gallium");
    350         BasisList["3-21G"].push_back("germanium");
    351         BasisList["3-21G"].push_back("arsenic");
    352         BasisList["3-21G"].push_back("selenium");
    353         BasisList["3-21G"].push_back("bromine");
    354         BasisList["3-21G"].push_back("krypton");
    355         BasisList["3-21G*"].push_back("hydrogen");
    356         BasisList["3-21G*"].push_back("helium");
    357         BasisList["3-21G*"].push_back("lithium");
    358         BasisList["3-21G*"].push_back("beryllium");
    359         BasisList["3-21G*"].push_back("boron");
    360         BasisList["3-21G*"].push_back("carbon");
    361         BasisList["3-21G*"].push_back("nitrogen");
    362         BasisList["3-21G*"].push_back("oxygen");
    363         BasisList["3-21G*"].push_back("fluorine");
    364         BasisList["3-21G*"].push_back("neon");
    365         BasisList["3-21G*"].push_back("sodium");
    366         BasisList["3-21G*"].push_back("magnesium");
    367         BasisList["3-21G*"].push_back("aluminum");
    368         BasisList["3-21G*"].push_back("silicon");
    369         BasisList["3-21G*"].push_back("phosphorus");
    370         BasisList["3-21G*"].push_back("sulfur");
    371         BasisList["3-21G*"].push_back("chlorine");
    372         BasisList["3-21G*"].push_back("argon");
    373         BasisList["3-21++G"].push_back("hydrogen");
    374         BasisList["3-21++G"].push_back("helium");
    375         BasisList["3-21++G"].push_back("lithium");
    376         BasisList["3-21++G"].push_back("beryllium");
    377         BasisList["3-21++G"].push_back("boron");
    378         BasisList["3-21++G"].push_back("carbon");
    379         BasisList["3-21++G"].push_back("nitrogen");
    380         BasisList["3-21++G"].push_back("oxygen");
    381         BasisList["3-21++G"].push_back("fluorine");
    382         BasisList["3-21++G"].push_back("neon");
    383         BasisList["3-21++G"].push_back("sodium");
    384         BasisList["3-21++G"].push_back("magnesium");
    385         BasisList["3-21++G"].push_back("aluminum");
    386         BasisList["3-21++G"].push_back("silicon");
    387         BasisList["3-21++G"].push_back("phosphorus");
    388         BasisList["3-21++G"].push_back("sulfur");
    389         BasisList["3-21++G"].push_back("chlorine");
    390         BasisList["3-21++G"].push_back("argon");
    391         BasisList["3-21++G*"].push_back("hydrogen");
    392         BasisList["3-21++G*"].push_back("helium");
    393         BasisList["3-21++G*"].push_back("lithium");
    394         BasisList["3-21++G*"].push_back("beryllium");
    395         BasisList["3-21++G*"].push_back("boron");
    396         BasisList["3-21++G*"].push_back("carbon");
    397         BasisList["3-21++G*"].push_back("nitrogen");
    398         BasisList["3-21++G*"].push_back("oxygen");
    399         BasisList["3-21++G*"].push_back("fluorine");
    400         BasisList["3-21++G*"].push_back("neon");
    401         BasisList["3-21++G*"].push_back("sodium");
    402         BasisList["3-21++G*"].push_back("magnesium");
    403         BasisList["3-21++G*"].push_back("aluminum");
    404         BasisList["3-21++G*"].push_back("silicon");
    405         BasisList["3-21++G*"].push_back("phosphorus");
    406         BasisList["3-21++G*"].push_back("sulfur");
    407         BasisList["3-21++G*"].push_back("chlorine");
    408         BasisList["3-21++G*"].push_back("argon");
    409         BasisList["4-31G"].push_back("hydrogen");
    410         BasisList["4-31G"].push_back("helium");
    411         BasisList["4-31G"].push_back("lithium");
    412         BasisList["4-31G"].push_back("beryllium");
    413         BasisList["4-31G"].push_back("boron");
    414         BasisList["4-31G"].push_back("carbon");
    415         BasisList["4-31G"].push_back("nitrogen");
    416         BasisList["4-31G"].push_back("oxygen");
    417         BasisList["4-31G"].push_back("fluorine");
    418         BasisList["4-31G"].push_back("neon");
    419         BasisList["4-31G"].push_back("phosphorus");
    420         BasisList["4-31G"].push_back("sulfur");
    421         BasisList["4-31G"].push_back("chlorine");
    422         BasisList["6-311G"].push_back("hydrogen");
    423         BasisList["6-311G"].push_back("helium");
    424         BasisList["6-311G"].push_back("lithium");
    425         BasisList["6-311G"].push_back("beryllium");
    426         BasisList["6-311G"].push_back("boron");
    427         BasisList["6-311G"].push_back("carbon");
    428         BasisList["6-311G"].push_back("nitrogen");
    429         BasisList["6-311G"].push_back("oxygen");
    430         BasisList["6-311G"].push_back("fluorine");
    431         BasisList["6-311G"].push_back("neon");
    432         BasisList["6-311G"].push_back("sodium");
    433         BasisList["6-311G"].push_back("magnesium");
    434         BasisList["6-311G"].push_back("aluminum");
    435         BasisList["6-311G"].push_back("silicon");
    436         BasisList["6-311G"].push_back("phosphorus");
    437         BasisList["6-311G"].push_back("sulfur");
    438         BasisList["6-311G"].push_back("chlorine");
    439         BasisList["6-311G"].push_back("argon");
    440         BasisList["6-311G"].push_back("potassium");
    441         BasisList["6-311G"].push_back("calcium");
    442         BasisList["6-311G"].push_back("gallium");
    443         BasisList["6-311G"].push_back("germanium");
    444         BasisList["6-311G"].push_back("arsenic");
    445         BasisList["6-311G"].push_back("selenium");
    446         BasisList["6-311G"].push_back("bromine");
    447         BasisList["6-311G"].push_back("krypton");
    448         BasisList["6-311G(2df,2pd)"].push_back("hydrogen");
    449         BasisList["6-311G(2df,2pd)"].push_back("helium");
    450         BasisList["6-311G(2df,2pd)"].push_back("lithium");
    451         BasisList["6-311G(2df,2pd)"].push_back("beryllium");
    452         BasisList["6-311G(2df,2pd)"].push_back("boron");
    453         BasisList["6-311G(2df,2pd)"].push_back("carbon");
    454         BasisList["6-311G(2df,2pd)"].push_back("nitrogen");
    455         BasisList["6-311G(2df,2pd)"].push_back("oxygen");
    456         BasisList["6-311G(2df,2pd)"].push_back("fluorine");
    457         BasisList["6-311G(2df,2pd)"].push_back("neon");
    458         BasisList["6-311G(2df,2pd)"].push_back("potassium");
    459         BasisList["6-311G(2df,2pd)"].push_back("calcium");
    460         BasisList["6-311G*"].push_back("hydrogen");
    461         BasisList["6-311G*"].push_back("helium");
    462         BasisList["6-311G*"].push_back("lithium");
    463         BasisList["6-311G*"].push_back("beryllium");
    464         BasisList["6-311G*"].push_back("boron");
    465         BasisList["6-311G*"].push_back("carbon");
    466         BasisList["6-311G*"].push_back("nitrogen");
    467         BasisList["6-311G*"].push_back("oxygen");
    468         BasisList["6-311G*"].push_back("fluorine");
    469         BasisList["6-311G*"].push_back("neon");
    470         BasisList["6-311G*"].push_back("sodium");
    471         BasisList["6-311G*"].push_back("magnesium");
    472         BasisList["6-311G*"].push_back("aluminum");
    473         BasisList["6-311G*"].push_back("silicon");
    474         BasisList["6-311G*"].push_back("phosphorus");
    475         BasisList["6-311G*"].push_back("sulfur");
    476         BasisList["6-311G*"].push_back("chlorine");
    477         BasisList["6-311G*"].push_back("argon");
    478         BasisList["6-311G*"].push_back("potassium");
    479         BasisList["6-311G*"].push_back("calcium");
    480         BasisList["6-311G*"].push_back("gallium");
    481         BasisList["6-311G*"].push_back("germanium");
    482         BasisList["6-311G*"].push_back("arsenic");
    483         BasisList["6-311G*"].push_back("selenium");
    484         BasisList["6-311G*"].push_back("bromine");
    485         BasisList["6-311G*"].push_back("krypton");
    486         BasisList["6-311G**"].push_back("hydrogen");
    487         BasisList["6-311G**"].push_back("helium");
    488         BasisList["6-311G**"].push_back("lithium");
    489         BasisList["6-311G**"].push_back("beryllium");
    490         BasisList["6-311G**"].push_back("boron");
    491         BasisList["6-311G**"].push_back("carbon");
    492         BasisList["6-311G**"].push_back("nitrogen");
    493         BasisList["6-311G**"].push_back("oxygen");
    494         BasisList["6-311G**"].push_back("fluorine");
    495         BasisList["6-311G**"].push_back("neon");
    496         BasisList["6-311G**"].push_back("sodium");
    497         BasisList["6-311G**"].push_back("magnesium");
    498         BasisList["6-311G**"].push_back("aluminum");
    499         BasisList["6-311G**"].push_back("silicon");
    500         BasisList["6-311G**"].push_back("phosphorus");
    501         BasisList["6-311G**"].push_back("sulfur");
    502         BasisList["6-311G**"].push_back("chlorine");
    503         BasisList["6-311G**"].push_back("argon");
    504         BasisList["6-311G**"].push_back("potassium");
    505         BasisList["6-311G**"].push_back("calcium");
    506         BasisList["6-311G**"].push_back("gallium");
    507         BasisList["6-311G**"].push_back("germanium");
    508         BasisList["6-311G**"].push_back("arsenic");
    509         BasisList["6-311G**"].push_back("selenium");
    510         BasisList["6-311G**"].push_back("bromine");
    511         BasisList["6-311G**"].push_back("krypton");
    512         BasisList["6-311++G(2d,2p)"].push_back("hydrogen");
    513         BasisList["6-311++G(2d,2p)"].push_back("helium");
    514         BasisList["6-311++G(2d,2p)"].push_back("lithium");
    515         BasisList["6-311++G(2d,2p)"].push_back("beryllium");
    516         BasisList["6-311++G(2d,2p)"].push_back("boron");
    517         BasisList["6-311++G(2d,2p)"].push_back("carbon");
    518         BasisList["6-311++G(2d,2p)"].push_back("nitrogen");
    519         BasisList["6-311++G(2d,2p)"].push_back("oxygen");
    520         BasisList["6-311++G(2d,2p)"].push_back("fluorine");
    521         BasisList["6-311++G(2d,2p)"].push_back("neon");
    522         BasisList["6-311++G(2d,2p)"].push_back("sodium");
    523         BasisList["6-311++G(2d,2p)"].push_back("magnesium");
    524         BasisList["6-311++G(2d,2p)"].push_back("aluminum");
    525         BasisList["6-311++G(2d,2p)"].push_back("silicon");
    526         BasisList["6-311++G(2d,2p)"].push_back("phosphorus");
    527         BasisList["6-311++G(2d,2p)"].push_back("sulfur");
    528         BasisList["6-311++G(2d,2p)"].push_back("chlorine");
    529         BasisList["6-311++G(2d,2p)"].push_back("argon");
    530         BasisList["6-311++G(2d,2p)"].push_back("potassium");
    531         BasisList["6-311++G(2d,2p)"].push_back("calcium");
    532         BasisList["6-311++G(3df,3pd)"].push_back("hydrogen");
    533         BasisList["6-311++G(3df,3pd)"].push_back("helium");
    534         BasisList["6-311++G(3df,3pd)"].push_back("lithium");
    535         BasisList["6-311++G(3df,3pd)"].push_back("beryllium");
    536         BasisList["6-311++G(3df,3pd)"].push_back("boron");
    537         BasisList["6-311++G(3df,3pd)"].push_back("carbon");
    538         BasisList["6-311++G(3df,3pd)"].push_back("nitrogen");
    539         BasisList["6-311++G(3df,3pd)"].push_back("oxygen");
    540         BasisList["6-311++G(3df,3pd)"].push_back("fluorine");
    541         BasisList["6-311++G(3df,3pd)"].push_back("neon");
    542         BasisList["6-311++G(3df,3pd)"].push_back("sodium");
    543         BasisList["6-311++G(3df,3pd)"].push_back("magnesium");
    544         BasisList["6-311++G(3df,3pd)"].push_back("aluminum");
    545         BasisList["6-311++G(3df,3pd)"].push_back("silicon");
    546         BasisList["6-311++G(3df,3pd)"].push_back("phosphorus");
    547         BasisList["6-311++G(3df,3pd)"].push_back("sulfur");
    548         BasisList["6-311++G(3df,3pd)"].push_back("chlorine");
    549         BasisList["6-311++G(3df,3pd)"].push_back("argon");
    550         BasisList["6-311++G**"].push_back("hydrogen");
    551         BasisList["6-311++G**"].push_back("helium");
    552         BasisList["6-311++G**"].push_back("lithium");
    553         BasisList["6-311++G**"].push_back("beryllium");
    554         BasisList["6-311++G**"].push_back("boron");
    555         BasisList["6-311++G**"].push_back("carbon");
    556         BasisList["6-311++G**"].push_back("nitrogen");
    557         BasisList["6-311++G**"].push_back("oxygen");
    558         BasisList["6-311++G**"].push_back("fluorine");
    559         BasisList["6-311++G**"].push_back("neon");
    560         BasisList["6-31G"].push_back("hydrogen");
    561         BasisList["6-31G"].push_back("helium");
    562         BasisList["6-31G"].push_back("lithium");
    563         BasisList["6-31G"].push_back("beryllium");
    564         BasisList["6-31G"].push_back("boron");
    565         BasisList["6-31G"].push_back("carbon");
    566         BasisList["6-31G"].push_back("nitrogen");
    567         BasisList["6-31G"].push_back("oxygen");
    568         BasisList["6-31G"].push_back("fluorine");
    569         BasisList["6-31G"].push_back("neon");
    570         BasisList["6-31G"].push_back("sodium");
    571         BasisList["6-31G"].push_back("magnesium");
    572         BasisList["6-31G"].push_back("aluminum");
    573         BasisList["6-31G"].push_back("silicon");
    574         BasisList["6-31G"].push_back("phosphorus");
    575         BasisList["6-31G"].push_back("sulfur");
    576         BasisList["6-31G"].push_back("chlorine");
    577         BasisList["6-31G"].push_back("argon");
    578         BasisList["6-31G"].push_back("potassium");
    579         BasisList["6-31G"].push_back("calcium");
    580         BasisList["6-31G"].push_back("scandium");
    581         BasisList["6-31G"].push_back("titanium");
    582         BasisList["6-31G"].push_back("vanadium");
    583         BasisList["6-31G"].push_back("chromium");
    584         BasisList["6-31G"].push_back("manganese");
    585         BasisList["6-31G"].push_back("iron");
    586         BasisList["6-31G"].push_back("cobalt");
    587         BasisList["6-31G"].push_back("nickel");
    588         BasisList["6-31G"].push_back("copper");
    589         BasisList["6-31G"].push_back("zinc");
    590         BasisList["6-31G*"].push_back("hydrogen");
    591         BasisList["6-31G*"].push_back("helium");
    592         BasisList["6-31G*"].push_back("lithium");
    593         BasisList["6-31G*"].push_back("beryllium");
    594         BasisList["6-31G*"].push_back("boron");
    595         BasisList["6-31G*"].push_back("carbon");
    596         BasisList["6-31G*"].push_back("nitrogen");
    597         BasisList["6-31G*"].push_back("oxygen");
    598         BasisList["6-31G*"].push_back("fluorine");
    599         BasisList["6-31G*"].push_back("neon");
    600         BasisList["6-31G*"].push_back("sodium");
    601         BasisList["6-31G*"].push_back("magnesium");
    602         BasisList["6-31G*"].push_back("aluminum");
    603         BasisList["6-31G*"].push_back("silicon");
    604         BasisList["6-31G*"].push_back("phosphorus");
    605         BasisList["6-31G*"].push_back("sulfur");
    606         BasisList["6-31G*"].push_back("chlorine");
    607         BasisList["6-31G*"].push_back("argon");
    608         BasisList["6-31G*"].push_back("potassium");
    609         BasisList["6-31G*"].push_back("calcium");
    610         BasisList["6-31G*"].push_back("scandium");
    611         BasisList["6-31G*"].push_back("titanium");
    612         BasisList["6-31G*"].push_back("vanadium");
    613         BasisList["6-31G*"].push_back("chromium");
    614         BasisList["6-31G*"].push_back("manganese");
    615         BasisList["6-31G*"].push_back("iron");
    616         BasisList["6-31G*"].push_back("cobalt");
    617         BasisList["6-31G*"].push_back("nickel");
    618         BasisList["6-31G*"].push_back("copper");
    619         BasisList["6-31G*"].push_back("zinc");
    620         BasisList["6-31G**"].push_back("hydrogen");
    621         BasisList["6-31G**"].push_back("helium");
    622         BasisList["6-31G**"].push_back("lithium");
    623         BasisList["6-31G**"].push_back("beryllium");
    624         BasisList["6-31G**"].push_back("boron");
    625         BasisList["6-31G**"].push_back("carbon");
    626         BasisList["6-31G**"].push_back("nitrogen");
    627         BasisList["6-31G**"].push_back("oxygen");
    628         BasisList["6-31G**"].push_back("fluorine");
    629         BasisList["6-31G**"].push_back("neon");
    630         BasisList["6-31G**"].push_back("sodium");
    631         BasisList["6-31G**"].push_back("magnesium");
    632         BasisList["6-31G**"].push_back("aluminum");
    633         BasisList["6-31G**"].push_back("silicon");
    634         BasisList["6-31G**"].push_back("phosphorus");
    635         BasisList["6-31G**"].push_back("sulfur");
    636         BasisList["6-31G**"].push_back("chlorine");
    637         BasisList["6-31G**"].push_back("argon");
    638         BasisList["6-31G**"].push_back("potassium");
    639         BasisList["6-31G**"].push_back("calcium");
    640         BasisList["6-31G**"].push_back("scandium");
    641         BasisList["6-31G**"].push_back("titanium");
    642         BasisList["6-31G**"].push_back("vanadium");
    643         BasisList["6-31G**"].push_back("chromium");
    644         BasisList["6-31G**"].push_back("manganese");
    645         BasisList["6-31G**"].push_back("iron");
    646         BasisList["6-31G**"].push_back("cobalt");
    647         BasisList["6-31G**"].push_back("nickel");
    648         BasisList["6-31G**"].push_back("copper");
    649         BasisList["6-31G**"].push_back("zinc");
    650         BasisList["6-31+G*"].push_back("hydrogen");
    651         BasisList["6-31+G*"].push_back("helium");
    652         BasisList["6-31+G*"].push_back("lithium");
    653         BasisList["6-31+G*"].push_back("beryllium");
    654         BasisList["6-31+G*"].push_back("boron");
    655         BasisList["6-31+G*"].push_back("carbon");
    656         BasisList["6-31+G*"].push_back("nitrogen");
    657         BasisList["6-31+G*"].push_back("oxygen");
    658         BasisList["6-31+G*"].push_back("fluorine");
    659         BasisList["6-31+G*"].push_back("neon");
    660         BasisList["6-31+G*"].push_back("sodium");
    661         BasisList["6-31+G*"].push_back("magnesium");
    662         BasisList["6-31+G*"].push_back("aluminum");
    663         BasisList["6-31+G*"].push_back("silicon");
    664         BasisList["6-31+G*"].push_back("phosphorus");
    665         BasisList["6-31+G*"].push_back("sulfur");
    666         BasisList["6-31+G*"].push_back("chlorine");
    667         BasisList["6-31+G*"].push_back("argon");
    668         BasisList["6-31++G"].push_back("hydrogen");
    669         BasisList["6-31++G"].push_back("helium");
    670         BasisList["6-31++G"].push_back("lithium");
    671         BasisList["6-31++G"].push_back("beryllium");
    672         BasisList["6-31++G"].push_back("boron");
    673         BasisList["6-31++G"].push_back("carbon");
    674         BasisList["6-31++G"].push_back("nitrogen");
    675         BasisList["6-31++G"].push_back("oxygen");
    676         BasisList["6-31++G"].push_back("fluorine");
    677         BasisList["6-31++G"].push_back("neon");
    678         BasisList["6-31++G"].push_back("sodium");
    679         BasisList["6-31++G"].push_back("magnesium");
    680         BasisList["6-31++G"].push_back("aluminum");
    681         BasisList["6-31++G"].push_back("silicon");
    682         BasisList["6-31++G"].push_back("phosphorus");
    683         BasisList["6-31++G"].push_back("sulfur");
    684         BasisList["6-31++G"].push_back("chlorine");
    685         BasisList["6-31++G"].push_back("argon");
    686         BasisList["6-31++G"].push_back("potassium");
    687         BasisList["6-31++G"].push_back("calcium");
    688         BasisList["6-31++G*"].push_back("hydrogen");
    689         BasisList["6-31++G*"].push_back("helium");
    690         BasisList["6-31++G*"].push_back("lithium");
    691         BasisList["6-31++G*"].push_back("beryllium");
    692         BasisList["6-31++G*"].push_back("boron");
    693         BasisList["6-31++G*"].push_back("carbon");
    694         BasisList["6-31++G*"].push_back("nitrogen");
    695         BasisList["6-31++G*"].push_back("oxygen");
    696         BasisList["6-31++G*"].push_back("fluorine");
    697         BasisList["6-31++G*"].push_back("neon");
    698         BasisList["6-31++G*"].push_back("sodium");
    699         BasisList["6-31++G*"].push_back("magnesium");
    700         BasisList["6-31++G*"].push_back("aluminum");
    701         BasisList["6-31++G*"].push_back("silicon");
    702         BasisList["6-31++G*"].push_back("phosphorus");
    703         BasisList["6-31++G*"].push_back("sulfur");
    704         BasisList["6-31++G*"].push_back("chlorine");
    705         BasisList["6-31++G*"].push_back("argon");
    706         BasisList["6-31++G**"].push_back("hydrogen");
    707         BasisList["6-31++G**"].push_back("helium");
    708         BasisList["6-31++G**"].push_back("lithium");
    709         BasisList["6-31++G**"].push_back("beryllium");
    710         BasisList["6-31++G**"].push_back("boron");
    711         BasisList["6-31++G**"].push_back("carbon");
    712         BasisList["6-31++G**"].push_back("nitrogen");
    713         BasisList["6-31++G**"].push_back("oxygen");
    714         BasisList["6-31++G**"].push_back("fluorine");
    715         BasisList["6-31++G**"].push_back("neon");
    716         BasisList["6-31++G**"].push_back("sodium");
    717         BasisList["6-31++G**"].push_back("magnesium");
    718         BasisList["6-31++G**"].push_back("aluminum");
    719         BasisList["6-31++G**"].push_back("silicon");
    720         BasisList["6-31++G**"].push_back("phosphorus");
    721         BasisList["6-31++G**"].push_back("sulfur");
    722         BasisList["6-31++G**"].push_back("chlorine");
    723         BasisList["6-31++G**"].push_back("argon");
    724         BasisList["aug-cc-pCV5Z"].push_back("boron");
    725         BasisList["aug-cc-pCV5Z"].push_back("carbon");
    726         BasisList["aug-cc-pCV5Z"].push_back("nitrogen");
    727         BasisList["aug-cc-pCV5Z"].push_back("oxygen");
    728         BasisList["aug-cc-pCV5Z"].push_back("fluorine");
    729         BasisList["aug-cc-pCV5Z"].push_back("neon");
    730         BasisList["aug-cc-pCVDZ"].push_back("boron");
    731         BasisList["aug-cc-pCVDZ"].push_back("carbon");
    732         BasisList["aug-cc-pCVDZ"].push_back("nitrogen");
    733         BasisList["aug-cc-pCVDZ"].push_back("oxygen");
    734         BasisList["aug-cc-pCVDZ"].push_back("fluorine");
    735         BasisList["aug-cc-pCVDZ"].push_back("neon");
    736         BasisList["aug-cc-pCVDZ"].push_back("aluminum");
    737         BasisList["aug-cc-pCVDZ"].push_back("silicon");
    738         BasisList["aug-cc-pCVDZ"].push_back("phosphorus");
    739         BasisList["aug-cc-pCVDZ"].push_back("sulfur");
    740         BasisList["aug-cc-pCVDZ"].push_back("chlorine");
    741         BasisList["aug-cc-pCVDZ"].push_back("argon");
    742         BasisList["aug-cc-pCVQZ"].push_back("boron");
    743         BasisList["aug-cc-pCVQZ"].push_back("carbon");
    744         BasisList["aug-cc-pCVQZ"].push_back("nitrogen");
    745         BasisList["aug-cc-pCVQZ"].push_back("oxygen");
    746         BasisList["aug-cc-pCVQZ"].push_back("fluorine");
    747         BasisList["aug-cc-pCVQZ"].push_back("neon");
    748         BasisList["aug-cc-pCVQZ"].push_back("aluminum");
    749         BasisList["aug-cc-pCVQZ"].push_back("silicon");
    750         BasisList["aug-cc-pCVQZ"].push_back("phosphorus");
    751         BasisList["aug-cc-pCVQZ"].push_back("sulfur");
    752         BasisList["aug-cc-pCVQZ"].push_back("chlorine");
    753         BasisList["aug-cc-pCVQZ"].push_back("argon");
    754         BasisList["aug-cc-pCVTZ"].push_back("boron");
    755         BasisList["aug-cc-pCVTZ"].push_back("carbon");
    756         BasisList["aug-cc-pCVTZ"].push_back("nitrogen");
    757         BasisList["aug-cc-pCVTZ"].push_back("oxygen");
    758         BasisList["aug-cc-pCVTZ"].push_back("fluorine");
    759         BasisList["aug-cc-pCVTZ"].push_back("neon");
    760         BasisList["aug-cc-pCVTZ"].push_back("aluminum");
    761         BasisList["aug-cc-pCVTZ"].push_back("silicon");
    762         BasisList["aug-cc-pCVTZ"].push_back("phosphorus");
    763         BasisList["aug-cc-pCVTZ"].push_back("sulfur");
    764         BasisList["aug-cc-pCVTZ"].push_back("chlorine");
    765         BasisList["aug-cc-pCVTZ"].push_back("argon");
    766         BasisList["aug-cc-pV5Z"].push_back("hydrogen");
    767         BasisList["aug-cc-pV5Z"].push_back("helium");
    768         BasisList["aug-cc-pV5Z"].push_back("boron");
    769         BasisList["aug-cc-pV5Z"].push_back("carbon");
    770         BasisList["aug-cc-pV5Z"].push_back("nitrogen");
    771         BasisList["aug-cc-pV5Z"].push_back("oxygen");
    772         BasisList["aug-cc-pV5Z"].push_back("fluorine");
    773         BasisList["aug-cc-pV5Z"].push_back("neon");
    774         BasisList["aug-cc-pV5Z"].push_back("aluminum");
    775         BasisList["aug-cc-pV5Z"].push_back("silicon");
    776         BasisList["aug-cc-pV5Z"].push_back("phosphorus");
    777         BasisList["aug-cc-pV5Z"].push_back("sulfur");
    778         BasisList["aug-cc-pV5Z"].push_back("chlorine");
    779         BasisList["aug-cc-pV5Z"].push_back("argon");
    780         BasisList["aug-cc-pV5Z"].push_back("gallium");
    781         BasisList["aug-cc-pV5Z"].push_back("germanium");
    782         BasisList["aug-cc-pV5Z"].push_back("arsenic");
    783         BasisList["aug-cc-pV5Z"].push_back("selenium");
    784         BasisList["aug-cc-pV5Z"].push_back("bromine");
    785         BasisList["aug-cc-pV5Z"].push_back("krypton");
    786         BasisList["aug-cc-pV6Z"].push_back("hydrogen");
    787         BasisList["aug-cc-pV6Z"].push_back("helium");
    788         BasisList["aug-cc-pV6Z"].push_back("boron");
    789         BasisList["aug-cc-pV6Z"].push_back("carbon");
    790         BasisList["aug-cc-pV6Z"].push_back("nitrogen");
    791         BasisList["aug-cc-pV6Z"].push_back("oxygen");
    792         BasisList["aug-cc-pV6Z"].push_back("fluorine");
    793         BasisList["aug-cc-pV6Z"].push_back("neon");
    794         BasisList["aug-cc-pV6Z"].push_back("aluminum");
    795         BasisList["aug-cc-pV6Z"].push_back("silicon");
    796         BasisList["aug-cc-pV6Z"].push_back("phosphorus");
    797         BasisList["aug-cc-pV6Z"].push_back("sulfur");
    798         BasisList["aug-cc-pV6Z"].push_back("chlorine");
    799         BasisList["aug-cc-pV6Z"].push_back("argon");
    800         BasisList["aug-cc-pVDZ"].push_back("hydrogen");
    801         BasisList["aug-cc-pVDZ"].push_back("helium");
    802         BasisList["aug-cc-pVDZ"].push_back("boron");
    803         BasisList["aug-cc-pVDZ"].push_back("carbon");
    804         BasisList["aug-cc-pVDZ"].push_back("nitrogen");
    805         BasisList["aug-cc-pVDZ"].push_back("oxygen");
    806         BasisList["aug-cc-pVDZ"].push_back("fluorine");
    807         BasisList["aug-cc-pVDZ"].push_back("neon");
    808         BasisList["aug-cc-pVDZ"].push_back("aluminum");
    809         BasisList["aug-cc-pVDZ"].push_back("silicon");
    810         BasisList["aug-cc-pVDZ"].push_back("phosphorus");
    811         BasisList["aug-cc-pVDZ"].push_back("sulfur");
    812         BasisList["aug-cc-pVDZ"].push_back("chlorine");
    813         BasisList["aug-cc-pVDZ"].push_back("argon");
    814         BasisList["aug-cc-pVDZ"].push_back("gallium");
    815         BasisList["aug-cc-pVDZ"].push_back("germanium");
    816         BasisList["aug-cc-pVDZ"].push_back("arsenic");
    817         BasisList["aug-cc-pVDZ"].push_back("selenium");
    818         BasisList["aug-cc-pVDZ"].push_back("bromine");
    819         BasisList["aug-cc-pVDZ"].push_back("krypton");
    820         BasisList["aug-cc-pVQZ"].push_back("hydrogen");
    821         BasisList["aug-cc-pVQZ"].push_back("helium");
    822         BasisList["aug-cc-pVQZ"].push_back("boron");
    823         BasisList["aug-cc-pVQZ"].push_back("carbon");
    824         BasisList["aug-cc-pVQZ"].push_back("nitrogen");
    825         BasisList["aug-cc-pVQZ"].push_back("oxygen");
    826         BasisList["aug-cc-pVQZ"].push_back("fluorine");
    827         BasisList["aug-cc-pVQZ"].push_back("neon");
    828         BasisList["aug-cc-pVQZ"].push_back("aluminum");
    829         BasisList["aug-cc-pVQZ"].push_back("silicon");
    830         BasisList["aug-cc-pVQZ"].push_back("phosphorus");
    831         BasisList["aug-cc-pVQZ"].push_back("sulfur");
    832         BasisList["aug-cc-pVQZ"].push_back("chlorine");
    833         BasisList["aug-cc-pVQZ"].push_back("argon");
    834         BasisList["aug-cc-pVQZ"].push_back("gallium");
    835         BasisList["aug-cc-pVQZ"].push_back("germanium");
    836         BasisList["aug-cc-pVQZ"].push_back("arsenic");
    837         BasisList["aug-cc-pVQZ"].push_back("selenium");
    838         BasisList["aug-cc-pVQZ"].push_back("bromine");
    839         BasisList["aug-cc-pVQZ"].push_back("krypton");
    840         BasisList["aug-cc-pVTZ"].push_back("hydrogen");
    841         BasisList["aug-cc-pVTZ"].push_back("helium");
    842         BasisList["aug-cc-pVTZ"].push_back("boron");
    843         BasisList["aug-cc-pVTZ"].push_back("carbon");
    844         BasisList["aug-cc-pVTZ"].push_back("nitrogen");
    845         BasisList["aug-cc-pVTZ"].push_back("oxygen");
    846         BasisList["aug-cc-pVTZ"].push_back("fluorine");
    847         BasisList["aug-cc-pVTZ"].push_back("neon");
    848         BasisList["aug-cc-pVTZ"].push_back("aluminum");
    849         BasisList["aug-cc-pVTZ"].push_back("silicon");
    850         BasisList["aug-cc-pVTZ"].push_back("phosphorus");
    851         BasisList["aug-cc-pVTZ"].push_back("sulfur");
    852         BasisList["aug-cc-pVTZ"].push_back("chlorine");
    853         BasisList["aug-cc-pVTZ"].push_back("argon");
    854         BasisList["aug-cc-pVTZ"].push_back("gallium");
    855         BasisList["aug-cc-pVTZ"].push_back("germanium");
    856         BasisList["aug-cc-pVTZ"].push_back("arsenic");
    857         BasisList["aug-cc-pVTZ"].push_back("selenium");
    858         BasisList["aug-cc-pVTZ"].push_back("bromine");
    859         BasisList["aug-cc-pVTZ"].push_back("krypton");
    860         BasisList["augmentation-cc-pV5Z-DK"].push_back("scandium");
    861         BasisList["augmentation-cc-pV5Z-DK"].push_back("titanium");
    862         BasisList["augmentation-cc-pV5Z-DK"].push_back("vanadium");
    863         BasisList["augmentation-cc-pV5Z-DK"].push_back("chromium");
    864         BasisList["augmentation-cc-pV5Z-DK"].push_back("manganese");
    865         BasisList["augmentation-cc-pV5Z-DK"].push_back("iron");
    866         BasisList["augmentation-cc-pV5Z-DK"].push_back("cobalt");
    867         BasisList["augmentation-cc-pV5Z-DK"].push_back("nickel");
    868         BasisList["augmentation-cc-pV5Z-DK"].push_back("copper");
    869         BasisList["augmentation-cc-pV5Z-DK"].push_back("zinc");
    870         BasisList["augmentation-cc-pV5Z"].push_back("hydrogen");
    871         BasisList["augmentation-cc-pV5Z"].push_back("boron");
    872         BasisList["augmentation-cc-pV5Z"].push_back("carbon");
    873         BasisList["augmentation-cc-pV5Z"].push_back("nitrogen");
    874         BasisList["augmentation-cc-pV5Z"].push_back("oxygen");
    875         BasisList["augmentation-cc-pV5Z"].push_back("fluorine");
    876         BasisList["augmentation-cc-pV5Z"].push_back("neon");
    877         BasisList["augmentation-cc-pV5Z"].push_back("aluminum");
    878         BasisList["augmentation-cc-pV5Z"].push_back("silicon");
    879         BasisList["augmentation-cc-pV5Z"].push_back("phosphorus");
    880         BasisList["augmentation-cc-pV5Z"].push_back("sulfur");
    881         BasisList["augmentation-cc-pV5Z"].push_back("chlorine");
    882         BasisList["augmentation-cc-pV5Z"].push_back("argon");
    883         BasisList["augmentation-cc-pV5Z"].push_back("gallium");
    884         BasisList["augmentation-cc-pV5Z"].push_back("germanium");
    885         BasisList["augmentation-cc-pV5Z"].push_back("arsenic");
    886         BasisList["augmentation-cc-pV5Z"].push_back("selenium");
    887         BasisList["augmentation-cc-pV5Z"].push_back("bromine");
    888         BasisList["augmentation-cc-pV5Z"].push_back("krypton");
    889         BasisList["augmentation-cc-pV5Z"].push_back("scandium");
    890         BasisList["augmentation-cc-pV5Z"].push_back("titanium");
    891         BasisList["augmentation-cc-pV5Z"].push_back("vanadium");
    892         BasisList["augmentation-cc-pV5Z"].push_back("chromium");
    893         BasisList["augmentation-cc-pV5Z"].push_back("manganese");
    894         BasisList["augmentation-cc-pV5Z"].push_back("iron");
    895         BasisList["augmentation-cc-pV5Z"].push_back("cobalt");
    896         BasisList["augmentation-cc-pV5Z"].push_back("nickel");
    897         BasisList["augmentation-cc-pV5Z"].push_back("copper");
    898         BasisList["augmentation-cc-pV5Z"].push_back("zinc");
    899         BasisList["augmentation-cc-pV5Z-RI"].push_back("hydrogen");
    900         BasisList["augmentation-cc-pV5Z-RI"].push_back("helium");
    901         BasisList["augmentation-cc-pV5Z-RI"].push_back("boron");
    902         BasisList["augmentation-cc-pV5Z-RI"].push_back("carbon");
    903         BasisList["augmentation-cc-pV5Z-RI"].push_back("nitrogen");
    904         BasisList["augmentation-cc-pV5Z-RI"].push_back("oxygen");
    905         BasisList["augmentation-cc-pV5Z-RI"].push_back("fluorine");
    906         BasisList["augmentation-cc-pV5Z-RI"].push_back("neon");
    907         BasisList["augmentation-cc-pV5Z-RI"].push_back("aluminum");
    908         BasisList["augmentation-cc-pV5Z-RI"].push_back("silicon");
    909         BasisList["augmentation-cc-pV5Z-RI"].push_back("phosphorus");
    910         BasisList["augmentation-cc-pV5Z-RI"].push_back("sulfur");
    911         BasisList["augmentation-cc-pV5Z-RI"].push_back("chlorine");
    912         BasisList["augmentation-cc-pV5Z-RI"].push_back("argon");
    913         BasisList["augmentation-cc-pV6Z"].push_back("hydrogen");
    914         BasisList["augmentation-cc-pV6Z"].push_back("helium");
    915         BasisList["augmentation-cc-pV6Z"].push_back("boron");
    916         BasisList["augmentation-cc-pV6Z"].push_back("carbon");
    917         BasisList["augmentation-cc-pV6Z"].push_back("nitrogen");
    918         BasisList["augmentation-cc-pV6Z"].push_back("oxygen");
    919         BasisList["augmentation-cc-pV6Z"].push_back("fluorine");
    920         BasisList["augmentation-cc-pV6Z"].push_back("neon");
    921         BasisList["augmentation-cc-pV6Z"].push_back("aluminum");
    922         BasisList["augmentation-cc-pV6Z"].push_back("silicon");
    923         BasisList["augmentation-cc-pV6Z"].push_back("phosphorus");
    924         BasisList["augmentation-cc-pV6Z"].push_back("sulfur");
    925         BasisList["augmentation-cc-pV6Z"].push_back("chlorine");
    926         BasisList["augmentation-cc-pV6Z"].push_back("argon");
    927         BasisList["augmentation-cc-pV6Z-RI"].push_back("hydrogen");
    928         BasisList["augmentation-cc-pV6Z-RI"].push_back("helium");
    929         BasisList["augmentation-cc-pV6Z-RI"].push_back("boron");
    930         BasisList["augmentation-cc-pV6Z-RI"].push_back("carbon");
    931         BasisList["augmentation-cc-pV6Z-RI"].push_back("nitrogen");
    932         BasisList["augmentation-cc-pV6Z-RI"].push_back("oxygen");
    933         BasisList["augmentation-cc-pV6Z-RI"].push_back("fluorine");
    934         BasisList["augmentation-cc-pV6Z-RI"].push_back("neon");
    935         BasisList["augmentation-cc-pV6Z-RI"].push_back("aluminum");
    936         BasisList["augmentation-cc-pV6Z-RI"].push_back("silicon");
    937         BasisList["augmentation-cc-pV6Z-RI"].push_back("phosphorus");
    938         BasisList["augmentation-cc-pV6Z-RI"].push_back("sulfur");
    939         BasisList["augmentation-cc-pV6Z-RI"].push_back("chlorine");
    940         BasisList["augmentation-cc-pV6Z-RI"].push_back("argon");
    941         BasisList["augmentation-cc-pVDZ"].push_back("hydrogen");
    942         BasisList["augmentation-cc-pVDZ"].push_back("boron");
    943         BasisList["augmentation-cc-pVDZ"].push_back("carbon");
    944         BasisList["augmentation-cc-pVDZ"].push_back("nitrogen");
    945         BasisList["augmentation-cc-pVDZ"].push_back("oxygen");
    946         BasisList["augmentation-cc-pVDZ"].push_back("fluorine");
    947         BasisList["augmentation-cc-pVDZ"].push_back("neon");
    948         BasisList["augmentation-cc-pVDZ"].push_back("aluminum");
    949         BasisList["augmentation-cc-pVDZ"].push_back("silicon");
    950         BasisList["augmentation-cc-pVDZ"].push_back("phosphorus");
    951         BasisList["augmentation-cc-pVDZ"].push_back("sulfur");
    952         BasisList["augmentation-cc-pVDZ"].push_back("chlorine");
    953         BasisList["augmentation-cc-pVDZ"].push_back("argon");
    954         BasisList["augmentation-cc-pVDZ"].push_back("gallium");
    955         BasisList["augmentation-cc-pVDZ"].push_back("germanium");
    956         BasisList["augmentation-cc-pVDZ"].push_back("arsenic");
    957         BasisList["augmentation-cc-pVDZ"].push_back("selenium");
    958         BasisList["augmentation-cc-pVDZ"].push_back("bromine");
    959         BasisList["augmentation-cc-pVDZ"].push_back("krypton");
    960         BasisList["augmentation-cc-pVDZ-RI"].push_back("hydrogen");
    961         BasisList["augmentation-cc-pVDZ-RI"].push_back("helium");
    962         BasisList["augmentation-cc-pVDZ-RI"].push_back("boron");
    963         BasisList["augmentation-cc-pVDZ-RI"].push_back("carbon");
    964         BasisList["augmentation-cc-pVDZ-RI"].push_back("nitrogen");
    965         BasisList["augmentation-cc-pVDZ-RI"].push_back("oxygen");
    966         BasisList["augmentation-cc-pVDZ-RI"].push_back("fluorine");
    967         BasisList["augmentation-cc-pVDZ-RI"].push_back("neon");
    968         BasisList["augmentation-cc-pVDZ-RI"].push_back("aluminum");
    969         BasisList["augmentation-cc-pVDZ-RI"].push_back("silicon");
    970         BasisList["augmentation-cc-pVDZ-RI"].push_back("phosphorus");
    971         BasisList["augmentation-cc-pVDZ-RI"].push_back("sulfur");
    972         BasisList["augmentation-cc-pVDZ-RI"].push_back("chlorine");
    973         BasisList["augmentation-cc-pVDZ-RI"].push_back("argon");
    974         BasisList["augmentation-cc-pVQZ-DK"].push_back("scandium");
    975         BasisList["augmentation-cc-pVQZ-DK"].push_back("titanium");
    976         BasisList["augmentation-cc-pVQZ-DK"].push_back("vanadium");
    977         BasisList["augmentation-cc-pVQZ-DK"].push_back("chromium");
    978         BasisList["augmentation-cc-pVQZ-DK"].push_back("manganese");
    979         BasisList["augmentation-cc-pVQZ-DK"].push_back("iron");
    980         BasisList["augmentation-cc-pVQZ-DK"].push_back("cobalt");
    981         BasisList["augmentation-cc-pVQZ-DK"].push_back("nickel");
    982         BasisList["augmentation-cc-pVQZ-DK"].push_back("copper");
    983         BasisList["augmentation-cc-pVQZ-DK"].push_back("zinc");
    984         BasisList["augmentation-cc-pVQZ"].push_back("hydrogen");
    985         BasisList["augmentation-cc-pVQZ"].push_back("boron");
    986         BasisList["augmentation-cc-pVQZ"].push_back("carbon");
    987         BasisList["augmentation-cc-pVQZ"].push_back("nitrogen");
    988         BasisList["augmentation-cc-pVQZ"].push_back("oxygen");
    989         BasisList["augmentation-cc-pVQZ"].push_back("fluorine");
    990         BasisList["augmentation-cc-pVQZ"].push_back("neon");
    991         BasisList["augmentation-cc-pVQZ"].push_back("aluminum");
    992         BasisList["augmentation-cc-pVQZ"].push_back("silicon");
    993         BasisList["augmentation-cc-pVQZ"].push_back("phosphorus");
    994         BasisList["augmentation-cc-pVQZ"].push_back("sulfur");
    995         BasisList["augmentation-cc-pVQZ"].push_back("chlorine");
    996         BasisList["augmentation-cc-pVQZ"].push_back("argon");
    997         BasisList["augmentation-cc-pVQZ"].push_back("gallium");
    998         BasisList["augmentation-cc-pVQZ"].push_back("germanium");
    999         BasisList["augmentation-cc-pVQZ"].push_back("arsenic");
    1000         BasisList["augmentation-cc-pVQZ"].push_back("selenium");
    1001         BasisList["augmentation-cc-pVQZ"].push_back("bromine");
    1002         BasisList["augmentation-cc-pVQZ"].push_back("krypton");
    1003         BasisList["augmentation-cc-pVQZ"].push_back("scandium");
    1004         BasisList["augmentation-cc-pVQZ"].push_back("titanium");
    1005         BasisList["augmentation-cc-pVQZ"].push_back("vanadium");
    1006         BasisList["augmentation-cc-pVQZ"].push_back("chromium");
    1007         BasisList["augmentation-cc-pVQZ"].push_back("manganese");
    1008         BasisList["augmentation-cc-pVQZ"].push_back("iron");
    1009         BasisList["augmentation-cc-pVQZ"].push_back("cobalt");
    1010         BasisList["augmentation-cc-pVQZ"].push_back("nickel");
    1011         BasisList["augmentation-cc-pVQZ"].push_back("copper");
    1012         BasisList["augmentation-cc-pVQZ"].push_back("zinc");
    1013         BasisList["augmentation-cc-pVQZ-RI"].push_back("hydrogen");
    1014         BasisList["augmentation-cc-pVQZ-RI"].push_back("helium");
    1015         BasisList["augmentation-cc-pVQZ-RI"].push_back("boron");
    1016         BasisList["augmentation-cc-pVQZ-RI"].push_back("carbon");
    1017         BasisList["augmentation-cc-pVQZ-RI"].push_back("nitrogen");
    1018         BasisList["augmentation-cc-pVQZ-RI"].push_back("oxygen");
    1019         BasisList["augmentation-cc-pVQZ-RI"].push_back("fluorine");
    1020         BasisList["augmentation-cc-pVQZ-RI"].push_back("neon");
    1021         BasisList["augmentation-cc-pVQZ-RI"].push_back("aluminum");
    1022         BasisList["augmentation-cc-pVQZ-RI"].push_back("silicon");
    1023         BasisList["augmentation-cc-pVQZ-RI"].push_back("phosphorus");
    1024         BasisList["augmentation-cc-pVQZ-RI"].push_back("sulfur");
    1025         BasisList["augmentation-cc-pVQZ-RI"].push_back("chlorine");
    1026         BasisList["augmentation-cc-pVQZ-RI"].push_back("argon");
    1027         BasisList["augmentation-cc-pVTZ-DK"].push_back("scandium");
    1028         BasisList["augmentation-cc-pVTZ-DK"].push_back("titanium");
    1029         BasisList["augmentation-cc-pVTZ-DK"].push_back("vanadium");
    1030         BasisList["augmentation-cc-pVTZ-DK"].push_back("chromium");
    1031         BasisList["augmentation-cc-pVTZ-DK"].push_back("manganese");
    1032         BasisList["augmentation-cc-pVTZ-DK"].push_back("iron");
    1033         BasisList["augmentation-cc-pVTZ-DK"].push_back("cobalt");
    1034         BasisList["augmentation-cc-pVTZ-DK"].push_back("nickel");
    1035         BasisList["augmentation-cc-pVTZ-DK"].push_back("copper");
    1036         BasisList["augmentation-cc-pVTZ-DK"].push_back("zinc");
    1037         BasisList["augmentation-cc-pVTZ"].push_back("hydrogen");
    1038         BasisList["augmentation-cc-pVTZ"].push_back("boron");
    1039         BasisList["augmentation-cc-pVTZ"].push_back("carbon");
    1040         BasisList["augmentation-cc-pVTZ"].push_back("nitrogen");
    1041         BasisList["augmentation-cc-pVTZ"].push_back("oxygen");
    1042         BasisList["augmentation-cc-pVTZ"].push_back("fluorine");
    1043         BasisList["augmentation-cc-pVTZ"].push_back("neon");
    1044         BasisList["augmentation-cc-pVTZ"].push_back("aluminum");
    1045         BasisList["augmentation-cc-pVTZ"].push_back("silicon");
    1046         BasisList["augmentation-cc-pVTZ"].push_back("phosphorus");
    1047         BasisList["augmentation-cc-pVTZ"].push_back("sulfur");
    1048         BasisList["augmentation-cc-pVTZ"].push_back("chlorine");
    1049         BasisList["augmentation-cc-pVTZ"].push_back("argon");
    1050         BasisList["augmentation-cc-pVTZ"].push_back("gallium");
    1051         BasisList["augmentation-cc-pVTZ"].push_back("germanium");
    1052         BasisList["augmentation-cc-pVTZ"].push_back("arsenic");
    1053         BasisList["augmentation-cc-pVTZ"].push_back("selenium");
    1054         BasisList["augmentation-cc-pVTZ"].push_back("bromine");
    1055         BasisList["augmentation-cc-pVTZ"].push_back("krypton");
    1056         BasisList["augmentation-cc-pVTZ"].push_back("scandium");
    1057         BasisList["augmentation-cc-pVTZ"].push_back("titanium");
    1058         BasisList["augmentation-cc-pVTZ"].push_back("vanadium");
    1059         BasisList["augmentation-cc-pVTZ"].push_back("chromium");
    1060         BasisList["augmentation-cc-pVTZ"].push_back("manganese");
    1061         BasisList["augmentation-cc-pVTZ"].push_back("iron");
    1062         BasisList["augmentation-cc-pVTZ"].push_back("cobalt");
    1063         BasisList["augmentation-cc-pVTZ"].push_back("nickel");
    1064         BasisList["augmentation-cc-pVTZ"].push_back("copper");
    1065         BasisList["augmentation-cc-pVTZ"].push_back("zinc");
    1066         BasisList["augmentation-cc-pVTZ-RI"].push_back("hydrogen");
    1067         BasisList["augmentation-cc-pVTZ-RI"].push_back("helium");
    1068         BasisList["augmentation-cc-pVTZ-RI"].push_back("boron");
    1069         BasisList["augmentation-cc-pVTZ-RI"].push_back("carbon");
    1070         BasisList["augmentation-cc-pVTZ-RI"].push_back("nitrogen");
    1071         BasisList["augmentation-cc-pVTZ-RI"].push_back("oxygen");
    1072         BasisList["augmentation-cc-pVTZ-RI"].push_back("fluorine");
    1073         BasisList["augmentation-cc-pVTZ-RI"].push_back("neon");
    1074         BasisList["augmentation-cc-pVTZ-RI"].push_back("aluminum");
    1075         BasisList["augmentation-cc-pVTZ-RI"].push_back("silicon");
    1076         BasisList["augmentation-cc-pVTZ-RI"].push_back("phosphorus");
    1077         BasisList["augmentation-cc-pVTZ-RI"].push_back("sulfur");
    1078         BasisList["augmentation-cc-pVTZ-RI"].push_back("chlorine");
    1079         BasisList["augmentation-cc-pVTZ-RI"].push_back("argon");
    1080         BasisList["cc-pCV5Z"].push_back("boron");
    1081         BasisList["cc-pCV5Z"].push_back("carbon");
    1082         BasisList["cc-pCV5Z"].push_back("nitrogen");
    1083         BasisList["cc-pCV5Z"].push_back("oxygen");
    1084         BasisList["cc-pCV5Z"].push_back("fluorine");
    1085         BasisList["cc-pCV5Z"].push_back("neon");
    1086         BasisList["cc-pCVDZ"].push_back("lithium");
    1087         BasisList["cc-pCVDZ"].push_back("boron");
    1088         BasisList["cc-pCVDZ"].push_back("carbon");
    1089         BasisList["cc-pCVDZ"].push_back("nitrogen");
    1090         BasisList["cc-pCVDZ"].push_back("oxygen");
    1091         BasisList["cc-pCVDZ"].push_back("fluorine");
    1092         BasisList["cc-pCVDZ"].push_back("neon");
    1093         BasisList["cc-pCVDZ"].push_back("sodium");
    1094         BasisList["cc-pCVDZ"].push_back("magnesium");
    1095         BasisList["cc-pCVDZ"].push_back("aluminum");
    1096         BasisList["cc-pCVDZ"].push_back("silicon");
    1097         BasisList["cc-pCVDZ"].push_back("phosphorus");
    1098         BasisList["cc-pCVDZ"].push_back("sulfur");
    1099         BasisList["cc-pCVDZ"].push_back("chlorine");
    1100         BasisList["cc-pCVDZ"].push_back("argon");
    1101         BasisList["cc-pCVQZ"].push_back("lithium");
    1102         BasisList["cc-pCVQZ"].push_back("boron");
    1103         BasisList["cc-pCVQZ"].push_back("carbon");
    1104         BasisList["cc-pCVQZ"].push_back("nitrogen");
    1105         BasisList["cc-pCVQZ"].push_back("oxygen");
    1106         BasisList["cc-pCVQZ"].push_back("fluorine");
    1107         BasisList["cc-pCVQZ"].push_back("neon");
    1108         BasisList["cc-pCVQZ"].push_back("sodium");
    1109         BasisList["cc-pCVQZ"].push_back("magnesium");
    1110         BasisList["cc-pCVQZ"].push_back("aluminum");
    1111         BasisList["cc-pCVQZ"].push_back("silicon");
    1112         BasisList["cc-pCVQZ"].push_back("phosphorus");
    1113         BasisList["cc-pCVQZ"].push_back("sulfur");
    1114         BasisList["cc-pCVQZ"].push_back("chlorine");
    1115         BasisList["cc-pCVQZ"].push_back("argon");
    1116         BasisList["cc-pCVTZ"].push_back("lithium");
    1117         BasisList["cc-pCVTZ"].push_back("boron");
    1118         BasisList["cc-pCVTZ"].push_back("carbon");
    1119         BasisList["cc-pCVTZ"].push_back("nitrogen");
    1120         BasisList["cc-pCVTZ"].push_back("oxygen");
    1121         BasisList["cc-pCVTZ"].push_back("fluorine");
    1122         BasisList["cc-pCVTZ"].push_back("neon");
    1123         BasisList["cc-pCVTZ"].push_back("sodium");
    1124         BasisList["cc-pCVTZ"].push_back("magnesium");
    1125         BasisList["cc-pCVTZ"].push_back("aluminum");
    1126         BasisList["cc-pCVTZ"].push_back("silicon");
    1127         BasisList["cc-pCVTZ"].push_back("phosphorus");
    1128         BasisList["cc-pCVTZ"].push_back("sulfur");
    1129         BasisList["cc-pCVTZ"].push_back("chlorine");
    1130         BasisList["cc-pCVTZ"].push_back("argon");
    1131         BasisList["cc-pV5Z-DK"].push_back("hydrogen");
    1132         BasisList["cc-pV5Z-DK"].push_back("helium");
    1133         BasisList["cc-pV5Z-DK"].push_back("lithium");
    1134         BasisList["cc-pV5Z-DK"].push_back("beryllium");
    1135         BasisList["cc-pV5Z-DK"].push_back("boron");
    1136         BasisList["cc-pV5Z-DK"].push_back("carbon");
    1137         BasisList["cc-pV5Z-DK"].push_back("nitrogen");
    1138         BasisList["cc-pV5Z-DK"].push_back("oxygen");
    1139         BasisList["cc-pV5Z-DK"].push_back("fluorine");
    1140         BasisList["cc-pV5Z-DK"].push_back("neon");
    1141         BasisList["cc-pV5Z-DK"].push_back("aluminum");
    1142         BasisList["cc-pV5Z-DK"].push_back("silicon");
    1143         BasisList["cc-pV5Z-DK"].push_back("phosphorus");
    1144         BasisList["cc-pV5Z-DK"].push_back("sulfur");
    1145         BasisList["cc-pV5Z-DK"].push_back("chlorine");
    1146         BasisList["cc-pV5Z-DK"].push_back("argon");
    1147         BasisList["cc-pV5Z-DK"].push_back("gallium");
    1148         BasisList["cc-pV5Z-DK"].push_back("germanium");
    1149         BasisList["cc-pV5Z-DK"].push_back("arsenic");
    1150         BasisList["cc-pV5Z-DK"].push_back("selenium");
    1151         BasisList["cc-pV5Z-DK"].push_back("bromine");
    1152         BasisList["cc-pV5Z-DK"].push_back("krypton");
    1153         BasisList["cc-pV5Z-DK"].push_back("scandium");
    1154         BasisList["cc-pV5Z-DK"].push_back("titanium");
    1155         BasisList["cc-pV5Z-DK"].push_back("vanadium");
    1156         BasisList["cc-pV5Z-DK"].push_back("chromium");
    1157         BasisList["cc-pV5Z-DK"].push_back("manganese");
    1158         BasisList["cc-pV5Z-DK"].push_back("iron");
    1159         BasisList["cc-pV5Z-DK"].push_back("cobalt");
    1160         BasisList["cc-pV5Z-DK"].push_back("nickel");
    1161         BasisList["cc-pV5Z-DK"].push_back("copper");
    1162         BasisList["cc-pV5Z-DK"].push_back("zinc");
    1163         BasisList["cc-pV5Z"].push_back("hydrogen");
    1164         BasisList["cc-pV5Z"].push_back("helium");
    1165         BasisList["cc-pV5Z"].push_back("lithium");
    1166         BasisList["cc-pV5Z"].push_back("beryllium");
    1167         BasisList["cc-pV5Z"].push_back("boron");
    1168         BasisList["cc-pV5Z"].push_back("carbon");
    1169         BasisList["cc-pV5Z"].push_back("nitrogen");
    1170         BasisList["cc-pV5Z"].push_back("oxygen");
    1171         BasisList["cc-pV5Z"].push_back("fluorine");
    1172         BasisList["cc-pV5Z"].push_back("neon");
    1173         BasisList["cc-pV5Z"].push_back("sodium");
    1174         BasisList["cc-pV5Z"].push_back("magnesium");
    1175         BasisList["cc-pV5Z"].push_back("aluminum");
    1176         BasisList["cc-pV5Z"].push_back("silicon");
    1177         BasisList["cc-pV5Z"].push_back("phosphorus");
    1178         BasisList["cc-pV5Z"].push_back("sulfur");
    1179         BasisList["cc-pV5Z"].push_back("chlorine");
    1180         BasisList["cc-pV5Z"].push_back("argon");
    1181         BasisList["cc-pV5Z"].push_back("calcium");
    1182         BasisList["cc-pV5Z"].push_back("gallium");
    1183         BasisList["cc-pV5Z"].push_back("germanium");
    1184         BasisList["cc-pV5Z"].push_back("arsenic");
    1185         BasisList["cc-pV5Z"].push_back("selenium");
    1186         BasisList["cc-pV5Z"].push_back("bromine");
    1187         BasisList["cc-pV5Z"].push_back("krypton");
    1188         BasisList["cc-pV5Z"].push_back("scandium");
    1189         BasisList["cc-pV5Z"].push_back("titanium");
    1190         BasisList["cc-pV5Z"].push_back("vanadium");
    1191         BasisList["cc-pV5Z"].push_back("chromium");
    1192         BasisList["cc-pV5Z"].push_back("manganese");
    1193         BasisList["cc-pV5Z"].push_back("iron");
    1194         BasisList["cc-pV5Z"].push_back("cobalt");
    1195         BasisList["cc-pV5Z"].push_back("nickel");
    1196         BasisList["cc-pV5Z"].push_back("copper");
    1197         BasisList["cc-pV5Z"].push_back("zinc");
    1198         BasisList["cc-pV5Z-RI"].push_back("hydrogen");
    1199         BasisList["cc-pV5Z-RI"].push_back("helium");
    1200         BasisList["cc-pV5Z-RI"].push_back("lithium");
    1201         BasisList["cc-pV5Z-RI"].push_back("beryllium");
    1202         BasisList["cc-pV5Z-RI"].push_back("boron");
    1203         BasisList["cc-pV5Z-RI"].push_back("carbon");
    1204         BasisList["cc-pV5Z-RI"].push_back("nitrogen");
    1205         BasisList["cc-pV5Z-RI"].push_back("oxygen");
    1206         BasisList["cc-pV5Z-RI"].push_back("fluorine");
    1207         BasisList["cc-pV5Z-RI"].push_back("neon");
    1208         BasisList["cc-pV5Z-RI"].push_back("sodium");
    1209         BasisList["cc-pV5Z-RI"].push_back("magnesium");
    1210         BasisList["cc-pV5Z-RI"].push_back("aluminum");
    1211         BasisList["cc-pV5Z-RI"].push_back("silicon");
    1212         BasisList["cc-pV5Z-RI"].push_back("phosphorus");
    1213         BasisList["cc-pV5Z-RI"].push_back("sulfur");
    1214         BasisList["cc-pV5Z-RI"].push_back("chlorine");
    1215         BasisList["cc-pV5Z-RI"].push_back("argon");
    1216         BasisList["cc-pV6Z"].push_back("hydrogen");
    1217         BasisList["cc-pV6Z"].push_back("helium");
    1218         BasisList["cc-pV6Z"].push_back("boron");
    1219         BasisList["cc-pV6Z"].push_back("carbon");
    1220         BasisList["cc-pV6Z"].push_back("nitrogen");
    1221         BasisList["cc-pV6Z"].push_back("oxygen");
    1222         BasisList["cc-pV6Z"].push_back("fluorine");
    1223         BasisList["cc-pV6Z"].push_back("neon");
    1224         BasisList["cc-pV6Z"].push_back("aluminum");
    1225         BasisList["cc-pV6Z"].push_back("silicon");
    1226         BasisList["cc-pV6Z"].push_back("phosphorus");
    1227         BasisList["cc-pV6Z"].push_back("sulfur");
    1228         BasisList["cc-pV6Z"].push_back("chlorine");
    1229         BasisList["cc-pV6Z"].push_back("argon");
    1230         BasisList["cc-pV6Z-RI"].push_back("hydrogen");
    1231         BasisList["cc-pV6Z-RI"].push_back("helium");
    1232         BasisList["cc-pV6Z-RI"].push_back("lithium");
    1233         BasisList["cc-pV6Z-RI"].push_back("beryllium");
    1234         BasisList["cc-pV6Z-RI"].push_back("boron");
    1235         BasisList["cc-pV6Z-RI"].push_back("carbon");
    1236         BasisList["cc-pV6Z-RI"].push_back("nitrogen");
    1237         BasisList["cc-pV6Z-RI"].push_back("oxygen");
    1238         BasisList["cc-pV6Z-RI"].push_back("fluorine");
    1239         BasisList["cc-pV6Z-RI"].push_back("neon");
    1240         BasisList["cc-pV6Z-RI"].push_back("sodium");
    1241         BasisList["cc-pV6Z-RI"].push_back("magnesium");
    1242         BasisList["cc-pV6Z-RI"].push_back("aluminum");
    1243         BasisList["cc-pV6Z-RI"].push_back("silicon");
    1244         BasisList["cc-pV6Z-RI"].push_back("phosphorus");
    1245         BasisList["cc-pV6Z-RI"].push_back("sulfur");
    1246         BasisList["cc-pV6Z-RI"].push_back("chlorine");
    1247         BasisList["cc-pV6Z-RI"].push_back("argon");
    1248         BasisList["cc-pVDZ-DK"].push_back("hydrogen");
    1249         BasisList["cc-pVDZ-DK"].push_back("helium");
    1250         BasisList["cc-pVDZ-DK"].push_back("boron");
    1251         BasisList["cc-pVDZ-DK"].push_back("carbon");
    1252         BasisList["cc-pVDZ-DK"].push_back("nitrogen");
    1253         BasisList["cc-pVDZ-DK"].push_back("oxygen");
    1254         BasisList["cc-pVDZ-DK"].push_back("fluorine");
    1255         BasisList["cc-pVDZ-DK"].push_back("neon");
    1256         BasisList["cc-pVDZ-DK"].push_back("aluminum");
    1257         BasisList["cc-pVDZ-DK"].push_back("silicon");
    1258         BasisList["cc-pVDZ-DK"].push_back("phosphorus");
    1259         BasisList["cc-pVDZ-DK"].push_back("sulfur");
    1260         BasisList["cc-pVDZ-DK"].push_back("chlorine");
    1261         BasisList["cc-pVDZ-DK"].push_back("argon");
    1262         BasisList["cc-pVDZ-DK"].push_back("gallium");
    1263         BasisList["cc-pVDZ-DK"].push_back("germanium");
    1264         BasisList["cc-pVDZ-DK"].push_back("arsenic");
    1265         BasisList["cc-pVDZ-DK"].push_back("selenium");
    1266         BasisList["cc-pVDZ-DK"].push_back("bromine");
    1267         BasisList["cc-pVDZ-DK"].push_back("krypton");
    1268         BasisList["cc-pVDZ"].push_back("hydrogen");
    1269         BasisList["cc-pVDZ"].push_back("helium");
    1270         BasisList["cc-pVDZ"].push_back("lithium");
    1271         BasisList["cc-pVDZ"].push_back("beryllium");
    1272         BasisList["cc-pVDZ"].push_back("boron");
    1273         BasisList["cc-pVDZ"].push_back("carbon");
    1274         BasisList["cc-pVDZ"].push_back("nitrogen");
    1275         BasisList["cc-pVDZ"].push_back("oxygen");
    1276         BasisList["cc-pVDZ"].push_back("fluorine");
    1277         BasisList["cc-pVDZ"].push_back("neon");
    1278         BasisList["cc-pVDZ"].push_back("sodium");
    1279         BasisList["cc-pVDZ"].push_back("magnesium");
    1280         BasisList["cc-pVDZ"].push_back("aluminum");
    1281         BasisList["cc-pVDZ"].push_back("silicon");
    1282         BasisList["cc-pVDZ"].push_back("phosphorus");
    1283         BasisList["cc-pVDZ"].push_back("sulfur");
    1284         BasisList["cc-pVDZ"].push_back("chlorine");
    1285         BasisList["cc-pVDZ"].push_back("argon");
    1286         BasisList["cc-pVDZ"].push_back("calcium");
    1287         BasisList["cc-pVDZ"].push_back("gallium");
    1288         BasisList["cc-pVDZ"].push_back("germanium");
    1289         BasisList["cc-pVDZ"].push_back("arsenic");
    1290         BasisList["cc-pVDZ"].push_back("selenium");
    1291         BasisList["cc-pVDZ"].push_back("bromine");
    1292         BasisList["cc-pVDZ"].push_back("krypton");
    1293         BasisList["cc-pVDZ-RI"].push_back("hydrogen");
    1294         BasisList["cc-pVDZ-RI"].push_back("helium");
    1295         BasisList["cc-pVDZ-RI"].push_back("lithium");
    1296         BasisList["cc-pVDZ-RI"].push_back("beryllium");
    1297         BasisList["cc-pVDZ-RI"].push_back("boron");
    1298         BasisList["cc-pVDZ-RI"].push_back("carbon");
    1299         BasisList["cc-pVDZ-RI"].push_back("nitrogen");
    1300         BasisList["cc-pVDZ-RI"].push_back("oxygen");
    1301         BasisList["cc-pVDZ-RI"].push_back("fluorine");
    1302         BasisList["cc-pVDZ-RI"].push_back("neon");
    1303         BasisList["cc-pVDZ-RI"].push_back("sodium");
    1304         BasisList["cc-pVDZ-RI"].push_back("magnesium");
    1305         BasisList["cc-pVDZ-RI"].push_back("aluminum");
    1306         BasisList["cc-pVDZ-RI"].push_back("silicon");
    1307         BasisList["cc-pVDZ-RI"].push_back("phosphorus");
    1308         BasisList["cc-pVDZ-RI"].push_back("sulfur");
    1309         BasisList["cc-pVDZ-RI"].push_back("chlorine");
    1310         BasisList["cc-pVDZ-RI"].push_back("argon");
    1311         BasisList["cc-pVQZ-DK"].push_back("hydrogen");
    1312         BasisList["cc-pVQZ-DK"].push_back("helium");
    1313         BasisList["cc-pVQZ-DK"].push_back("boron");
    1314         BasisList["cc-pVQZ-DK"].push_back("carbon");
    1315         BasisList["cc-pVQZ-DK"].push_back("nitrogen");
    1316         BasisList["cc-pVQZ-DK"].push_back("oxygen");
    1317         BasisList["cc-pVQZ-DK"].push_back("fluorine");
    1318         BasisList["cc-pVQZ-DK"].push_back("neon");
    1319         BasisList["cc-pVQZ-DK"].push_back("aluminum");
    1320         BasisList["cc-pVQZ-DK"].push_back("silicon");
    1321         BasisList["cc-pVQZ-DK"].push_back("phosphorus");
    1322         BasisList["cc-pVQZ-DK"].push_back("sulfur");
    1323         BasisList["cc-pVQZ-DK"].push_back("chlorine");
    1324         BasisList["cc-pVQZ-DK"].push_back("argon");
    1325         BasisList["cc-pVQZ-DK"].push_back("gallium");
    1326         BasisList["cc-pVQZ-DK"].push_back("germanium");
    1327         BasisList["cc-pVQZ-DK"].push_back("arsenic");
    1328         BasisList["cc-pVQZ-DK"].push_back("selenium");
    1329         BasisList["cc-pVQZ-DK"].push_back("bromine");
    1330         BasisList["cc-pVQZ-DK"].push_back("krypton");
    1331         BasisList["cc-pVQZ-DK"].push_back("scandium");
    1332         BasisList["cc-pVQZ-DK"].push_back("titanium");
    1333         BasisList["cc-pVQZ-DK"].push_back("vanadium");
    1334         BasisList["cc-pVQZ-DK"].push_back("chromium");
    1335         BasisList["cc-pVQZ-DK"].push_back("manganese");
    1336         BasisList["cc-pVQZ-DK"].push_back("iron");
    1337         BasisList["cc-pVQZ-DK"].push_back("cobalt");
    1338         BasisList["cc-pVQZ-DK"].push_back("nickel");
    1339         BasisList["cc-pVQZ-DK"].push_back("copper");
    1340         BasisList["cc-pVQZ-DK"].push_back("zinc");
    1341         BasisList["cc-pVQZ"].push_back("hydrogen");
    1342         BasisList["cc-pVQZ"].push_back("helium");
    1343         BasisList["cc-pVQZ"].push_back("lithium");
    1344         BasisList["cc-pVQZ"].push_back("beryllium");
    1345         BasisList["cc-pVQZ"].push_back("boron");
    1346         BasisList["cc-pVQZ"].push_back("carbon");
    1347         BasisList["cc-pVQZ"].push_back("nitrogen");
    1348         BasisList["cc-pVQZ"].push_back("oxygen");
    1349         BasisList["cc-pVQZ"].push_back("fluorine");
    1350         BasisList["cc-pVQZ"].push_back("neon");
    1351         BasisList["cc-pVQZ"].push_back("sodium");
    1352         BasisList["cc-pVQZ"].push_back("magnesium");
    1353         BasisList["cc-pVQZ"].push_back("aluminum");
    1354         BasisList["cc-pVQZ"].push_back("silicon");
    1355         BasisList["cc-pVQZ"].push_back("phosphorus");
    1356         BasisList["cc-pVQZ"].push_back("sulfur");
    1357         BasisList["cc-pVQZ"].push_back("chlorine");
    1358         BasisList["cc-pVQZ"].push_back("argon");
    1359         BasisList["cc-pVQZ"].push_back("calcium");
    1360         BasisList["cc-pVQZ"].push_back("gallium");
    1361         BasisList["cc-pVQZ"].push_back("germanium");
    1362         BasisList["cc-pVQZ"].push_back("arsenic");
    1363         BasisList["cc-pVQZ"].push_back("selenium");
    1364         BasisList["cc-pVQZ"].push_back("bromine");
    1365         BasisList["cc-pVQZ"].push_back("krypton");
    1366         BasisList["cc-pVQZ"].push_back("scandium");
    1367         BasisList["cc-pVQZ"].push_back("titanium");
    1368         BasisList["cc-pVQZ"].push_back("vanadium");
    1369         BasisList["cc-pVQZ"].push_back("chromium");
    1370         BasisList["cc-pVQZ"].push_back("manganese");
    1371         BasisList["cc-pVQZ"].push_back("iron");
    1372         BasisList["cc-pVQZ"].push_back("cobalt");
    1373         BasisList["cc-pVQZ"].push_back("nickel");
    1374         BasisList["cc-pVQZ"].push_back("copper");
    1375         BasisList["cc-pVQZ"].push_back("zinc");
    1376         BasisList["cc-pVQZ-RI"].push_back("hydrogen");
    1377         BasisList["cc-pVQZ-RI"].push_back("helium");
    1378         BasisList["cc-pVQZ-RI"].push_back("lithium");
    1379         BasisList["cc-pVQZ-RI"].push_back("beryllium");
    1380         BasisList["cc-pVQZ-RI"].push_back("boron");
    1381         BasisList["cc-pVQZ-RI"].push_back("carbon");
    1382         BasisList["cc-pVQZ-RI"].push_back("nitrogen");
    1383         BasisList["cc-pVQZ-RI"].push_back("oxygen");
    1384         BasisList["cc-pVQZ-RI"].push_back("fluorine");
    1385         BasisList["cc-pVQZ-RI"].push_back("neon");
    1386         BasisList["cc-pVQZ-RI"].push_back("sodium");
    1387         BasisList["cc-pVQZ-RI"].push_back("magnesium");
    1388         BasisList["cc-pVQZ-RI"].push_back("aluminum");
    1389         BasisList["cc-pVQZ-RI"].push_back("silicon");
    1390         BasisList["cc-pVQZ-RI"].push_back("phosphorus");
    1391         BasisList["cc-pVQZ-RI"].push_back("sulfur");
    1392         BasisList["cc-pVQZ-RI"].push_back("chlorine");
    1393         BasisList["cc-pVQZ-RI"].push_back("argon");
    1394         BasisList["cc-pVTZ-DK"].push_back("hydrogen");
    1395         BasisList["cc-pVTZ-DK"].push_back("helium");
    1396         BasisList["cc-pVTZ-DK"].push_back("boron");
    1397         BasisList["cc-pVTZ-DK"].push_back("carbon");
    1398         BasisList["cc-pVTZ-DK"].push_back("nitrogen");
    1399         BasisList["cc-pVTZ-DK"].push_back("oxygen");
    1400         BasisList["cc-pVTZ-DK"].push_back("fluorine");
    1401         BasisList["cc-pVTZ-DK"].push_back("neon");
    1402         BasisList["cc-pVTZ-DK"].push_back("aluminum");
    1403         BasisList["cc-pVTZ-DK"].push_back("silicon");
    1404         BasisList["cc-pVTZ-DK"].push_back("phosphorus");
    1405         BasisList["cc-pVTZ-DK"].push_back("sulfur");
    1406         BasisList["cc-pVTZ-DK"].push_back("chlorine");
    1407         BasisList["cc-pVTZ-DK"].push_back("argon");
    1408         BasisList["cc-pVTZ-DK"].push_back("gallium");
    1409         BasisList["cc-pVTZ-DK"].push_back("germanium");
    1410         BasisList["cc-pVTZ-DK"].push_back("arsenic");
    1411         BasisList["cc-pVTZ-DK"].push_back("selenium");
    1412         BasisList["cc-pVTZ-DK"].push_back("bromine");
    1413         BasisList["cc-pVTZ-DK"].push_back("krypton");
    1414         BasisList["cc-pVTZ-DK"].push_back("scandium");
    1415         BasisList["cc-pVTZ-DK"].push_back("titanium");
    1416         BasisList["cc-pVTZ-DK"].push_back("vanadium");
    1417         BasisList["cc-pVTZ-DK"].push_back("chromium");
    1418         BasisList["cc-pVTZ-DK"].push_back("manganese");
    1419         BasisList["cc-pVTZ-DK"].push_back("iron");
    1420         BasisList["cc-pVTZ-DK"].push_back("cobalt");
    1421         BasisList["cc-pVTZ-DK"].push_back("nickel");
    1422         BasisList["cc-pVTZ-DK"].push_back("copper");
    1423         BasisList["cc-pVTZ-DK"].push_back("zinc");
    1424         BasisList["cc-pVTZ"].push_back("hydrogen");
    1425         BasisList["cc-pVTZ"].push_back("helium");
    1426         BasisList["cc-pVTZ"].push_back("lithium");
    1427         BasisList["cc-pVTZ"].push_back("beryllium");
    1428         BasisList["cc-pVTZ"].push_back("boron");
    1429         BasisList["cc-pVTZ"].push_back("carbon");
    1430         BasisList["cc-pVTZ"].push_back("nitrogen");
    1431         BasisList["cc-pVTZ"].push_back("oxygen");
    1432         BasisList["cc-pVTZ"].push_back("fluorine");
    1433         BasisList["cc-pVTZ"].push_back("neon");
    1434         BasisList["cc-pVTZ"].push_back("sodium");
    1435         BasisList["cc-pVTZ"].push_back("magnesium");
    1436         BasisList["cc-pVTZ"].push_back("aluminum");
    1437         BasisList["cc-pVTZ"].push_back("silicon");
    1438         BasisList["cc-pVTZ"].push_back("phosphorus");
    1439         BasisList["cc-pVTZ"].push_back("sulfur");
    1440         BasisList["cc-pVTZ"].push_back("chlorine");
    1441         BasisList["cc-pVTZ"].push_back("argon");
    1442         BasisList["cc-pVTZ"].push_back("calcium");
    1443         BasisList["cc-pVTZ"].push_back("gallium");
    1444         BasisList["cc-pVTZ"].push_back("germanium");
    1445         BasisList["cc-pVTZ"].push_back("arsenic");
    1446         BasisList["cc-pVTZ"].push_back("selenium");
    1447         BasisList["cc-pVTZ"].push_back("bromine");
    1448         BasisList["cc-pVTZ"].push_back("krypton");
    1449         BasisList["cc-pVTZ"].push_back("scandium");
    1450         BasisList["cc-pVTZ"].push_back("titanium");
    1451         BasisList["cc-pVTZ"].push_back("vanadium");
    1452         BasisList["cc-pVTZ"].push_back("chromium");
    1453         BasisList["cc-pVTZ"].push_back("manganese");
    1454         BasisList["cc-pVTZ"].push_back("iron");
    1455         BasisList["cc-pVTZ"].push_back("cobalt");
    1456         BasisList["cc-pVTZ"].push_back("nickel");
    1457         BasisList["cc-pVTZ"].push_back("copper");
    1458         BasisList["cc-pVTZ"].push_back("zinc");
    1459         BasisList["cc-pVTZ-RI"].push_back("hydrogen");
    1460         BasisList["cc-pVTZ-RI"].push_back("helium");
    1461         BasisList["cc-pVTZ-RI"].push_back("lithium");
    1462         BasisList["cc-pVTZ-RI"].push_back("beryllium");
    1463         BasisList["cc-pVTZ-RI"].push_back("boron");
    1464         BasisList["cc-pVTZ-RI"].push_back("carbon");
    1465         BasisList["cc-pVTZ-RI"].push_back("nitrogen");
    1466         BasisList["cc-pVTZ-RI"].push_back("oxygen");
    1467         BasisList["cc-pVTZ-RI"].push_back("fluorine");
    1468         BasisList["cc-pVTZ-RI"].push_back("neon");
    1469         BasisList["cc-pVTZ-RI"].push_back("sodium");
    1470         BasisList["cc-pVTZ-RI"].push_back("magnesium");
    1471         BasisList["cc-pVTZ-RI"].push_back("aluminum");
    1472         BasisList["cc-pVTZ-RI"].push_back("silicon");
    1473         BasisList["cc-pVTZ-RI"].push_back("phosphorus");
    1474         BasisList["cc-pVTZ-RI"].push_back("sulfur");
    1475         BasisList["cc-pVTZ-RI"].push_back("chlorine");
    1476         BasisList["cc-pVTZ-RI"].push_back("argon");
    1477         BasisList["cc-pwCV5Z-DK"].push_back("scandium");
    1478         BasisList["cc-pwCV5Z-DK"].push_back("titanium");
    1479         BasisList["cc-pwCV5Z-DK"].push_back("vanadium");
    1480         BasisList["cc-pwCV5Z-DK"].push_back("chromium");
    1481         BasisList["cc-pwCV5Z-DK"].push_back("manganese");
    1482         BasisList["cc-pwCV5Z-DK"].push_back("iron");
    1483         BasisList["cc-pwCV5Z-DK"].push_back("cobalt");
    1484         BasisList["cc-pwCV5Z-DK"].push_back("nickel");
    1485         BasisList["cc-pwCV5Z-DK"].push_back("copper");
    1486         BasisList["cc-pwCV5Z-DK"].push_back("zinc");
    1487         BasisList["cc-pwCV5Z"].push_back("scandium");
    1488         BasisList["cc-pwCV5Z"].push_back("titanium");
    1489         BasisList["cc-pwCV5Z"].push_back("vanadium");
    1490         BasisList["cc-pwCV5Z"].push_back("chromium");
    1491         BasisList["cc-pwCV5Z"].push_back("manganese");
    1492         BasisList["cc-pwCV5Z"].push_back("iron");
    1493         BasisList["cc-pwCV5Z"].push_back("cobalt");
    1494         BasisList["cc-pwCV5Z"].push_back("nickel");
    1495         BasisList["cc-pwCV5Z"].push_back("copper");
    1496         BasisList["cc-pwCV5Z"].push_back("zinc");
    1497         BasisList["cc-pwCVQZ-DK"].push_back("scandium");
    1498         BasisList["cc-pwCVQZ-DK"].push_back("titanium");
    1499         BasisList["cc-pwCVQZ-DK"].push_back("vanadium");
    1500         BasisList["cc-pwCVQZ-DK"].push_back("chromium");
    1501         BasisList["cc-pwCVQZ-DK"].push_back("manganese");
    1502         BasisList["cc-pwCVQZ-DK"].push_back("iron");
    1503         BasisList["cc-pwCVQZ-DK"].push_back("cobalt");
    1504         BasisList["cc-pwCVQZ-DK"].push_back("nickel");
    1505         BasisList["cc-pwCVQZ-DK"].push_back("copper");
    1506         BasisList["cc-pwCVQZ-DK"].push_back("zinc");
    1507         BasisList["cc-pwCVQZ"].push_back("scandium");
    1508         BasisList["cc-pwCVQZ"].push_back("titanium");
    1509         BasisList["cc-pwCVQZ"].push_back("vanadium");
    1510         BasisList["cc-pwCVQZ"].push_back("chromium");
    1511         BasisList["cc-pwCVQZ"].push_back("manganese");
    1512         BasisList["cc-pwCVQZ"].push_back("iron");
    1513         BasisList["cc-pwCVQZ"].push_back("cobalt");
    1514         BasisList["cc-pwCVQZ"].push_back("nickel");
    1515         BasisList["cc-pwCVQZ"].push_back("copper");
    1516         BasisList["cc-pwCVQZ"].push_back("zinc");
    1517         BasisList["cc-pwCVTZ-DK"].push_back("scandium");
    1518         BasisList["cc-pwCVTZ-DK"].push_back("titanium");
    1519         BasisList["cc-pwCVTZ-DK"].push_back("vanadium");
    1520         BasisList["cc-pwCVTZ-DK"].push_back("chromium");
    1521         BasisList["cc-pwCVTZ-DK"].push_back("manganese");
    1522         BasisList["cc-pwCVTZ-DK"].push_back("iron");
    1523         BasisList["cc-pwCVTZ-DK"].push_back("cobalt");
    1524         BasisList["cc-pwCVTZ-DK"].push_back("nickel");
    1525         BasisList["cc-pwCVTZ-DK"].push_back("copper");
    1526         BasisList["cc-pwCVTZ-DK"].push_back("zinc");
    1527         BasisList["cc-pwCVTZ"].push_back("scandium");
    1528         BasisList["cc-pwCVTZ"].push_back("titanium");
    1529         BasisList["cc-pwCVTZ"].push_back("vanadium");
    1530         BasisList["cc-pwCVTZ"].push_back("chromium");
    1531         BasisList["cc-pwCVTZ"].push_back("manganese");
    1532         BasisList["cc-pwCVTZ"].push_back("iron");
    1533         BasisList["cc-pwCVTZ"].push_back("cobalt");
    1534         BasisList["cc-pwCVTZ"].push_back("nickel");
    1535         BasisList["cc-pwCVTZ"].push_back("copper");
    1536         BasisList["cc-pwCVTZ"].push_back("zinc");
    1537         BasisList["DZ(Dunning)"].push_back("hydrogen");
    1538         BasisList["DZ(Dunning)"].push_back("lithium");
    1539         BasisList["DZ(Dunning)"].push_back("boron");
    1540         BasisList["DZ(Dunning)"].push_back("carbon");
    1541         BasisList["DZ(Dunning)"].push_back("nitrogen");
    1542         BasisList["DZ(Dunning)"].push_back("oxygen");
    1543         BasisList["DZ(Dunning)"].push_back("fluorine");
    1544         BasisList["DZ(Dunning)"].push_back("neon");
    1545         BasisList["DZ(Dunning)"].push_back("aluminum");
    1546         BasisList["DZ(Dunning)"].push_back("silicon");
    1547         BasisList["DZ(Dunning)"].push_back("phosphorus");
    1548         BasisList["DZ(Dunning)"].push_back("sulfur");
    1549         BasisList["DZ(Dunning)"].push_back("chlorine");
    1550         BasisList["DZP(Dunning)"].push_back("hydrogen");
    1551         BasisList["DZP(Dunning)"].push_back("lithium");
    1552         BasisList["DZP(Dunning)"].push_back("boron");
    1553         BasisList["DZP(Dunning)"].push_back("carbon");
    1554         BasisList["DZP(Dunning)"].push_back("nitrogen");
    1555         BasisList["DZP(Dunning)"].push_back("oxygen");
    1556         BasisList["DZP(Dunning)"].push_back("fluorine");
    1557         BasisList["DZP(Dunning)"].push_back("neon");
    1558         BasisList["DZP(Dunning)"].push_back("aluminum");
    1559         BasisList["DZP(Dunning)"].push_back("silicon");
    1560         BasisList["DZP(Dunning)"].push_back("phosphorus");
    1561         BasisList["DZP(Dunning)"].push_back("sulfur");
    1562         BasisList["DZP(Dunning)"].push_back("chlorine");
    1563         BasisList["DZP+Diffuse(Dunning)"].push_back("hydrogen");
    1564         BasisList["DZP+Diffuse(Dunning)"].push_back("boron");
    1565         BasisList["DZP+Diffuse(Dunning)"].push_back("carbon");
    1566         BasisList["DZP+Diffuse(Dunning)"].push_back("nitrogen");
    1567         BasisList["DZP+Diffuse(Dunning)"].push_back("oxygen");
    1568         BasisList["DZP+Diffuse(Dunning)"].push_back("fluorine");
    1569         BasisList["DZP+Diffuse(Dunning)"].push_back("neon");
    1570         BasisList["MIDI(Huzinaga)"].push_back("hydrogen");
    1571         BasisList["MIDI(Huzinaga)"].push_back("helium");
    1572         BasisList["MIDI(Huzinaga)"].push_back("lithium");
    1573         BasisList["MIDI(Huzinaga)"].push_back("beryllium");
    1574         BasisList["MIDI(Huzinaga)"].push_back("boron");
    1575         BasisList["MIDI(Huzinaga)"].push_back("carbon");
    1576         BasisList["MIDI(Huzinaga)"].push_back("nitrogen");
    1577         BasisList["MIDI(Huzinaga)"].push_back("oxygen");
    1578         BasisList["MIDI(Huzinaga)"].push_back("fluorine");
    1579         BasisList["MIDI(Huzinaga)"].push_back("neon");
    1580         BasisList["MIDI(Huzinaga)"].push_back("sodium");
    1581         BasisList["MIDI(Huzinaga)"].push_back("aluminum");
    1582         BasisList["MIDI(Huzinaga)"].push_back("silicon");
    1583         BasisList["MIDI(Huzinaga)"].push_back("phosphorus");
    1584         BasisList["MIDI(Huzinaga)"].push_back("sulfur");
    1585         BasisList["MIDI(Huzinaga)"].push_back("chlorine");
    1586         BasisList["MIDI(Huzinaga)"].push_back("argon");
    1587         BasisList["MIDI(Huzinaga)"].push_back("potassium");
    1588         BasisList["MINI(Huzinaga)"].push_back("hydrogen");
    1589         BasisList["MINI(Huzinaga)"].push_back("helium");
    1590         BasisList["MINI(Huzinaga)"].push_back("lithium");
    1591         BasisList["MINI(Huzinaga)"].push_back("beryllium");
    1592         BasisList["MINI(Huzinaga)"].push_back("boron");
    1593         BasisList["MINI(Huzinaga)"].push_back("carbon");
    1594         BasisList["MINI(Huzinaga)"].push_back("nitrogen");
    1595         BasisList["MINI(Huzinaga)"].push_back("oxygen");
    1596         BasisList["MINI(Huzinaga)"].push_back("fluorine");
    1597         BasisList["MINI(Huzinaga)"].push_back("neon");
    1598         BasisList["MINI(Huzinaga)"].push_back("sodium");
    1599         BasisList["MINI(Huzinaga)"].push_back("magnesium");
    1600         BasisList["MINI(Huzinaga)"].push_back("aluminum");
    1601         BasisList["MINI(Huzinaga)"].push_back("silicon");
    1602         BasisList["MINI(Huzinaga)"].push_back("phosphorus");
    1603         BasisList["MINI(Huzinaga)"].push_back("sulfur");
    1604         BasisList["MINI(Huzinaga)"].push_back("chlorine");
    1605         BasisList["MINI(Huzinaga)"].push_back("argon");
    1606         BasisList["MINI(Huzinaga)"].push_back("potassium");
    1607         BasisList["MINI(Huzinaga)"].push_back("calcium");
    1608         BasisList["MINI(Scaled)"].push_back("hydrogen");
    1609         BasisList["MINI(Scaled)"].push_back("helium");
    1610         BasisList["MINI(Scaled)"].push_back("lithium");
    1611         BasisList["MINI(Scaled)"].push_back("beryllium");
    1612         BasisList["MINI(Scaled)"].push_back("boron");
    1613         BasisList["MINI(Scaled)"].push_back("carbon");
    1614         BasisList["MINI(Scaled)"].push_back("nitrogen");
    1615         BasisList["MINI(Scaled)"].push_back("oxygen");
    1616         BasisList["MINI(Scaled)"].push_back("fluorine");
    1617         BasisList["MINI(Scaled)"].push_back("neon");
    1618         BasisList["MINI(Scaled)"].push_back("sodium");
    1619         BasisList["MINI(Scaled)"].push_back("magnesium");
    1620         BasisList["MINI(Scaled)"].push_back("aluminum");
    1621         BasisList["MINI(Scaled)"].push_back("silicon");
    1622         BasisList["MINI(Scaled)"].push_back("phosphorus");
    1623         BasisList["MINI(Scaled)"].push_back("sulfur");
    1624         BasisList["MINI(Scaled)"].push_back("chlorine");
    1625         BasisList["MINI(Scaled)"].push_back("argon");
    1626         BasisList["MINI(Scaled)"].push_back("potassium");
    1627         BasisList["MINI(Scaled)"].push_back("calcium");
    1628         BasisList["NASAAmesANO"].push_back("hydrogen");
    1629         BasisList["NASAAmesANO"].push_back("boron");
    1630         BasisList["NASAAmesANO"].push_back("carbon");
    1631         BasisList["NASAAmesANO"].push_back("nitrogen");
    1632         BasisList["NASAAmesANO"].push_back("oxygen");
    1633         BasisList["NASAAmesANO"].push_back("fluorine");
    1634         BasisList["NASAAmesANO"].push_back("neon");
    1635         BasisList["NASAAmesANO"].push_back("aluminum");
    1636         BasisList["NASAAmesANO"].push_back("phosphorus");
    1637         BasisList["NASAAmesANO"].push_back("titanium");
    1638         BasisList["NASAAmesANO"].push_back("iron");
    1639         BasisList["NASAAmesANO"].push_back("nickel");
    1640         BasisList["pc-0-aug"].push_back("hydrogen");
    1641         BasisList["pc-0-aug"].push_back("carbon");
    1642         BasisList["pc-0-aug"].push_back("nitrogen");
    1643         BasisList["pc-0-aug"].push_back("oxygen");
    1644         BasisList["pc-0-aug"].push_back("fluorine");
    1645         BasisList["pc-0-aug"].push_back("silicon");
    1646         BasisList["pc-0-aug"].push_back("phosphorus");
    1647         BasisList["pc-0-aug"].push_back("sulfur");
    1648         BasisList["pc-0-aug"].push_back("chlorine");
    1649         BasisList["pc-0"].push_back("hydrogen");
    1650         BasisList["pc-0"].push_back("carbon");
    1651         BasisList["pc-0"].push_back("nitrogen");
    1652         BasisList["pc-0"].push_back("oxygen");
    1653         BasisList["pc-0"].push_back("fluorine");
    1654         BasisList["pc-0"].push_back("silicon");
    1655         BasisList["pc-0"].push_back("phosphorus");
    1656         BasisList["pc-0"].push_back("sulfur");
    1657         BasisList["pc-0"].push_back("chlorine");
    1658         BasisList["pc-1-aug"].push_back("hydrogen");
    1659         BasisList["pc-1-aug"].push_back("carbon");
    1660         BasisList["pc-1-aug"].push_back("nitrogen");
    1661         BasisList["pc-1-aug"].push_back("oxygen");
    1662         BasisList["pc-1-aug"].push_back("fluorine");
    1663         BasisList["pc-1-aug"].push_back("silicon");
    1664         BasisList["pc-1-aug"].push_back("phosphorus");
    1665         BasisList["pc-1-aug"].push_back("sulfur");
    1666         BasisList["pc-1-aug"].push_back("chlorine");
    1667         BasisList["pc-1"].push_back("hydrogen");
    1668         BasisList["pc-1"].push_back("carbon");
    1669         BasisList["pc-1"].push_back("nitrogen");
    1670         BasisList["pc-1"].push_back("oxygen");
    1671         BasisList["pc-1"].push_back("fluorine");
    1672         BasisList["pc-1"].push_back("silicon");
    1673         BasisList["pc-1"].push_back("phosphorus");
    1674         BasisList["pc-1"].push_back("sulfur");
    1675         BasisList["pc-1"].push_back("chlorine");
    1676         BasisList["pc-2-aug"].push_back("hydrogen");
    1677         BasisList["pc-2-aug"].push_back("carbon");
    1678         BasisList["pc-2-aug"].push_back("nitrogen");
    1679         BasisList["pc-2-aug"].push_back("oxygen");
    1680         BasisList["pc-2-aug"].push_back("fluorine");
    1681         BasisList["pc-2-aug"].push_back("silicon");
    1682         BasisList["pc-2-aug"].push_back("phosphorus");
    1683         BasisList["pc-2-aug"].push_back("sulfur");
    1684         BasisList["pc-2-aug"].push_back("chlorine");
    1685         BasisList["pc-2"].push_back("hydrogen");
    1686         BasisList["pc-2"].push_back("carbon");
    1687         BasisList["pc-2"].push_back("nitrogen");
    1688         BasisList["pc-2"].push_back("oxygen");
    1689         BasisList["pc-2"].push_back("fluorine");
    1690         BasisList["pc-2"].push_back("silicon");
    1691         BasisList["pc-2"].push_back("phosphorus");
    1692         BasisList["pc-2"].push_back("sulfur");
    1693         BasisList["pc-2"].push_back("chlorine");
    1694         BasisList["pc-3-aug"].push_back("hydrogen");
    1695         BasisList["pc-3-aug"].push_back("carbon");
    1696         BasisList["pc-3-aug"].push_back("nitrogen");
    1697         BasisList["pc-3-aug"].push_back("oxygen");
    1698         BasisList["pc-3-aug"].push_back("fluorine");
    1699         BasisList["pc-3-aug"].push_back("silicon");
    1700         BasisList["pc-3-aug"].push_back("phosphorus");
    1701         BasisList["pc-3-aug"].push_back("sulfur");
    1702         BasisList["pc-3-aug"].push_back("chlorine");
    1703         BasisList["pc-3"].push_back("hydrogen");
    1704         BasisList["pc-3"].push_back("carbon");
    1705         BasisList["pc-3"].push_back("nitrogen");
    1706         BasisList["pc-3"].push_back("oxygen");
    1707         BasisList["pc-3"].push_back("fluorine");
    1708         BasisList["pc-3"].push_back("silicon");
    1709         BasisList["pc-3"].push_back("phosphorus");
    1710         BasisList["pc-3"].push_back("sulfur");
    1711         BasisList["pc-3"].push_back("chlorine");
    1712         BasisList["pc-4-aug"].push_back("hydrogen");
    1713         BasisList["pc-4-aug"].push_back("carbon");
    1714         BasisList["pc-4-aug"].push_back("nitrogen");
    1715         BasisList["pc-4-aug"].push_back("oxygen");
    1716         BasisList["pc-4-aug"].push_back("fluorine");
    1717         BasisList["pc-4-aug"].push_back("silicon");
    1718         BasisList["pc-4-aug"].push_back("phosphorus");
    1719         BasisList["pc-4-aug"].push_back("sulfur");
    1720         BasisList["pc-4-aug"].push_back("chlorine");
    1721         BasisList["pc-4"].push_back("hydrogen");
    1722         BasisList["pc-4"].push_back("carbon");
    1723         BasisList["pc-4"].push_back("nitrogen");
    1724         BasisList["pc-4"].push_back("oxygen");
    1725         BasisList["pc-4"].push_back("fluorine");
    1726         BasisList["pc-4"].push_back("silicon");
    1727         BasisList["pc-4"].push_back("phosphorus");
    1728         BasisList["pc-4"].push_back("sulfur");
    1729         BasisList["pc-4"].push_back("chlorine");
    1730         BasisList["STO-2G"].push_back("hydrogen");
    1731         BasisList["STO-2G"].push_back("helium");
    1732         BasisList["STO-2G"].push_back("lithium");
    1733         BasisList["STO-2G"].push_back("beryllium");
    1734         BasisList["STO-2G"].push_back("boron");
    1735         BasisList["STO-2G"].push_back("carbon");
    1736         BasisList["STO-2G"].push_back("nitrogen");
    1737         BasisList["STO-2G"].push_back("oxygen");
    1738         BasisList["STO-2G"].push_back("fluorine");
    1739         BasisList["STO-2G"].push_back("neon");
    1740         BasisList["STO-2G"].push_back("sodium");
    1741         BasisList["STO-2G"].push_back("magnesium");
    1742         BasisList["STO-2G"].push_back("aluminum");
    1743         BasisList["STO-2G"].push_back("silicon");
    1744         BasisList["STO-2G"].push_back("phosphorus");
    1745         BasisList["STO-2G"].push_back("sulfur");
    1746         BasisList["STO-2G"].push_back("chlorine");
    1747         BasisList["STO-2G"].push_back("argon");
    1748         BasisList["STO-2G"].push_back("potassium");
    1749         BasisList["STO-2G"].push_back("calcium");
    1750         BasisList["STO-3G"].push_back("hydrogen");
    1751         BasisList["STO-3G"].push_back("helium");
    1752         BasisList["STO-3G"].push_back("lithium");
    1753         BasisList["STO-3G"].push_back("beryllium");
    1754         BasisList["STO-3G"].push_back("boron");
    1755         BasisList["STO-3G"].push_back("carbon");
    1756         BasisList["STO-3G"].push_back("nitrogen");
    1757         BasisList["STO-3G"].push_back("oxygen");
    1758         BasisList["STO-3G"].push_back("fluorine");
    1759         BasisList["STO-3G"].push_back("neon");
    1760         BasisList["STO-3G"].push_back("sodium");
    1761         BasisList["STO-3G"].push_back("magnesium");
    1762         BasisList["STO-3G"].push_back("aluminum");
    1763         BasisList["STO-3G"].push_back("silicon");
    1764         BasisList["STO-3G"].push_back("phosphorus");
    1765         BasisList["STO-3G"].push_back("sulfur");
    1766         BasisList["STO-3G"].push_back("chlorine");
    1767         BasisList["STO-3G"].push_back("argon");
    1768         BasisList["STO-3G"].push_back("potassium");
    1769         BasisList["STO-3G"].push_back("calcium");
    1770         BasisList["STO-3G"].push_back("scandium");
    1771         BasisList["STO-3G"].push_back("titanium");
    1772         BasisList["STO-3G"].push_back("vanadium");
    1773         BasisList["STO-3G"].push_back("chromium");
    1774         BasisList["STO-3G"].push_back("manganese");
    1775         BasisList["STO-3G"].push_back("iron");
    1776         BasisList["STO-3G"].push_back("cobalt");
    1777         BasisList["STO-3G"].push_back("nickel");
    1778         BasisList["STO-3G"].push_back("copper");
    1779         BasisList["STO-3G"].push_back("zinc");
    1780         BasisList["STO-3G"].push_back("gallium");
    1781         BasisList["STO-3G"].push_back("germanium");
    1782         BasisList["STO-3G"].push_back("arsenic");
    1783         BasisList["STO-3G"].push_back("selenium");
    1784         BasisList["STO-3G"].push_back("bromine");
    1785         BasisList["STO-3G"].push_back("krypton");
    1786         BasisList["STO-3G*"].push_back("hydrogen");
    1787         BasisList["STO-3G*"].push_back("helium");
    1788         BasisList["STO-3G*"].push_back("lithium");
    1789         BasisList["STO-3G*"].push_back("beryllium");
    1790         BasisList["STO-3G*"].push_back("boron");
    1791         BasisList["STO-3G*"].push_back("carbon");
    1792         BasisList["STO-3G*"].push_back("nitrogen");
    1793         BasisList["STO-3G*"].push_back("oxygen");
    1794         BasisList["STO-3G*"].push_back("fluorine");
    1795         BasisList["STO-3G*"].push_back("neon");
    1796         BasisList["STO-3G*"].push_back("sodium");
    1797         BasisList["STO-3G*"].push_back("magnesium");
    1798         BasisList["STO-3G*"].push_back("aluminum");
    1799         BasisList["STO-3G*"].push_back("silicon");
    1800         BasisList["STO-3G*"].push_back("phosphorus");
    1801         BasisList["STO-3G*"].push_back("sulfur");
    1802         BasisList["STO-3G*"].push_back("chlorine");
    1803         BasisList["STO-3G*"].push_back("argon");
    1804         BasisList["STO-6G"].push_back("hydrogen");
    1805         BasisList["STO-6G"].push_back("helium");
    1806         BasisList["STO-6G"].push_back("lithium");
    1807         BasisList["STO-6G"].push_back("beryllium");
    1808         BasisList["STO-6G"].push_back("boron");
    1809         BasisList["STO-6G"].push_back("carbon");
    1810         BasisList["STO-6G"].push_back("nitrogen");
    1811         BasisList["STO-6G"].push_back("oxygen");
    1812         BasisList["STO-6G"].push_back("fluorine");
    1813         BasisList["STO-6G"].push_back("neon");
    1814         BasisList["STO-6G"].push_back("sodium");
    1815         BasisList["STO-6G"].push_back("magnesium");
    1816         BasisList["STO-6G"].push_back("aluminum");
    1817         BasisList["STO-6G"].push_back("silicon");
    1818         BasisList["STO-6G"].push_back("phosphorus");
    1819         BasisList["STO-6G"].push_back("sulfur");
    1820         BasisList["STO-6G"].push_back("chlorine");
    1821         BasisList["STO-6G"].push_back("argon");
    1822         BasisList["STO-6G"].push_back("potassium");
    1823         BasisList["STO-6G"].push_back("calcium");
    1824         BasisList["STO-6G"].push_back("scandium");
    1825         BasisList["STO-6G"].push_back("titanium");
    1826         BasisList["STO-6G"].push_back("vanadium");
    1827         BasisList["STO-6G"].push_back("chromium");
    1828         BasisList["STO-6G"].push_back("manganese");
    1829         BasisList["STO-6G"].push_back("iron");
    1830         BasisList["STO-6G"].push_back("cobalt");
    1831         BasisList["STO-6G"].push_back("nickel");
    1832         BasisList["STO-6G"].push_back("copper");
    1833         BasisList["STO-6G"].push_back("zinc");
    1834         BasisList["STO-6G"].push_back("gallium");
    1835         BasisList["STO-6G"].push_back("germanium");
    1836         BasisList["STO-6G"].push_back("arsenic");
    1837         BasisList["STO-6G"].push_back("selenium");
    1838         BasisList["STO-6G"].push_back("bromine");
    1839         BasisList["STO-6G"].push_back("krypton");
    1840         BasisList["TZ(Dunning)"].push_back("hydrogen");
    1841         BasisList["TZ(Dunning)"].push_back("lithium");
    1842         BasisList["TZ(Dunning)"].push_back("beryllium");
    1843         BasisList["TZ(Dunning)"].push_back("boron");
    1844         BasisList["TZ(Dunning)"].push_back("carbon");
    1845         BasisList["TZ(Dunning)"].push_back("nitrogen");
    1846         BasisList["TZ(Dunning)"].push_back("oxygen");
    1847         BasisList["TZ(Dunning)"].push_back("fluorine");
    1848         BasisList["TZ(Dunning)"].push_back("neon");
    1849 }
  • src/Parser/MpqcParser_Parameters.hpp

    r61d69a4 r44fce5  
    2929class MpqcParser_Parameters
    3030{
     31  // MpqcParser should be friend to access params directly for types.
    3132  friend class MpqcParser;
     33  // ParserMpqcUnitTest needs to be friend to check types contained in params.
    3234  friend class ParserMpqcUnitTest;
    33   friend std::ostream & operator << (std::ostream& ost, const MpqcParser_Parameters &params);
    34   friend std::istream & operator >> (std::istream& ist, MpqcParser_Parameters &params);
     35
    3536public:
     37  /** Constructor of MpqcParser_Parameters.
     38   *
     39   */
    3640  MpqcParser_Parameters();
     41
     42  /** Destructor of MpqcParser_Parameters.
     43   *
     44   */
    3745  ~MpqcParser_Parameters();
    3846
    39   enum Theory { CLHF, CLKS, MBPT2, MBPT2_R12, unknownTheory };
    40   enum IntegrationMethod { IntegralCints, unknownIntegration };
    41 
     47  /** Enumeration of all known theories.
     48   *
     49   */
     50  enum Theory {
     51    CLHF,       //!< Closed Shell Hartree-Fock equations
     52    CLKS,       //!< Closed Shell Kohn-Sham equations
     53    MBPT2,      //!< Moeller Plesset Perturbation Theory second order
     54    MBPT2_R12,  //!< Moeller Plesset Perturbation Theory second order with R12 integral
     55    unknownTheory //!< designates an unknown theory
     56  };
     57
     58  /** Enumeration of all known integration methods
     59   *
     60   */
     61  enum IntegrationMethod {
     62    IntegralCints,  //!< Integration method Cints in MBPT2 R12?
     63    unknownIntegration //!< designates unknown integration method
     64  };
     65
     66  /** Enumeration of all known Parameters to allow placing them in vectors, maps.
     67   *
     68   */
    4269  enum Parameters {
    43     HessianParam,
    44     savestateParam,
    45     do_gradientParam,
    46     maxiterParam,
    47     memoryParam,
    48     stdapproxParam,
    49     nfzcParam,
    50     basisParam,
    51     aux_basisParam,
    52     integrationParam,
    53     theoryParam,
    54     unknownParam};
     70    hessianParam,    //!< HessianParam, whether hessian should be calculated or not
     71    savestateParam,  //!< savestateParam, whether intermediate/final states (wave function) should be stored
     72    do_gradientParam,//!< do_gradientParam, whether a gradient should be calculated
     73    maxiterParam,    //!< maxiterParam, number of maximum iterations for CG
     74    memoryParam,     //!< memoryParam, maximum amount of memory to use
     75    stdapproxParam,  //!< stdapproxParam, standard approximation in MBPT2 R12
     76    nfzcParam,       //!< nfzcParam, nfzc parameter in MBPT2 R12
     77    basisParam,      //!< basisParam, basis set to use
     78    aux_basisParam,  //!< aux_basisParam, auxiliary baseis set to use in MBPT2 R12
     79    integrationParam,//!< integrationParam, integration method to use in MBPT2 R12
     80    theoryParam,     //!< theoryParam, level of theory to use
     81    unknownParam};   //!< unknownParam, designates an unknown parameter
    5582
    5683  bool checkWorldElementsAgainstCurrentBasis() const;
    57   void setHessian(bool _hessian);
     84
     85  /** Sets the desired level of solving theory to use.
     86   *
     87   * \param _theory shorthand of the theory
     88   */
    5889  void setTheory(enum Theory _theory);
     90
     91  /** Sets the desired level of solving integration to use.
     92   *
     93   * \param _integration shorthand of the integration
     94   */
     95  void setIntegration(enum IntegrationMethod _integration);
     96
     97  /** Getter for integration method in params.
     98   *
     99   * @return enumeration index of IntegrationMethod.
     100   */
    59101  enum IntegrationMethod getIntegration();
     102
     103  /** Getter for current Theory in params.
     104   *
     105   * @return enumeration index of Theory
     106   */
    60107  enum Theory getTheory();
    61108
     109  /** Getter for a parameter in params as a string.
     110   *
     111   * @param _param enumeration index of desired Parameter
     112   * @return string value
     113   */
    62114  std::string getString(enum Parameters _param);
     115
     116  /** Getter for integer value of desired Parameter in params.
     117   *
     118   * Only if type in params matches int!
     119   *
     120   * @param _param enumeration index in Parameter
     121   * @return integer value of parameter
     122   */
    63123  int getInt(enum Parameters _param);
     124
     125  /** Getter for double value of desired Parameter in params.
     126   *
     127   * Only if type in params matches double!
     128   *
     129   * @param _param enumeration index in Parameter
     130   * @return double value of parameter
     131   */
    64132  double getDouble(enum Parameters _param);
     133
     134  /** Getter for bool value of desired Parameter in params.
     135   *
     136   * Only if type in params matches bool!
     137   *
     138   * @param _param enumeration index in Parameter
     139   * @return bool value of parameter
     140   */
    65141  bool getBool(enum Parameters _param);
    66142
     143  /** Setter for a desired value of its type is known.
     144   *
     145   * We check whether given type matches present type in params.
     146   *
     147   * @param _param enumeration index of Parameter
     148   * @param _desired desired value to set to
     149   * @return true - type match, value set, false - type mismatch
     150   */
    67151  template <class T> bool setter(enum Parameters _param, T _desired) {
    68152    if (typeid(T) == params[_param].type()) {
     
    73157  }
    74158
     159  /** Sets a desired value in the params from a string.
     160   *
     161   * This is due to strict typing of C++ very ugly and boost::any does not make
     162   * it any better because it offers to functions to use values directly from
     163   * stringstream. Probably, because value is unknown to is as well and hence
     164   * the author could not implement it beautifully, so he dropped it altogether.
     165   * Grrr ....
     166   *
     167   * @param _param param to set
     168   * @param _desired stringstream containing value as next argument
     169   * @return true - type ok, false - unknown type in params.
     170   */
     171  bool setter(enum Parameters _param, std::stringstream& _desired);
     172
     173  /** Grants access to ParamLookup.
     174   *
     175   *  Does not check for unknown parameter.
     176   *
     177   * @param _name name of parameter
     178   * @return enumeration index of Parameters
     179   */
     180  enum Parameters getParam(std::string _name);
     181
     182  /** Checker whether parameter with name is known.
     183   *
     184   * @param _name
     185   * @return true - parameter known, false - parameter unknown
     186   */
     187  bool haveParam(std::string _name) const;
    75188
    76189private:
     190  /** Initializes BasisList.
     191   *
     192   */
    77193  void initBasis();
     194
     195  /** Initializes params.
     196   * Sets the type and the associated enumeration index.
     197   */
    78198  void initParameters();
    79199
     200  /** Internal function used by initParameters() to add parameters to params.
     201   *
     202   * @param _enum enumeration index to set
     203   * @param _p (default) value to set with certain type
     204   */
    80205  template <class T> void appendParameter(enum Parameters _enum, T _p) {
    81206    boost::any _p_value = _p;
     
    83208  }
    84209
    85   // contains basis and all elements the basis knows about
     210  // all internal typedefs for lists below
    86211  typedef std::map<std::string, std::list<std::string> > BasisMapType;
    87212  typedef std::map<enum Theory, std::string> TheoryNamesType;
     213  typedef std::map<std::string, enum Theory> TheoryLookupType;
    88214  typedef std::map<enum IntegrationMethod, std::string> IntegrationNamesType;
     215  typedef std::map<std::string, enum IntegrationMethod> IntegrationLookupType;
    89216  typedef std::map<enum Parameters, std::string> ParamNamesType;
    90 
     217  typedef std::map<std::string, enum Parameters> ParamLookupType;
    91218  typedef std::map<enum Parameters, boost::any> parameterlist;
    92219
    93   // is mutable for boost::any_cast not caring about const.
     220  //!> boost::any container for all the parameters
    94221  parameterlist params;
    95222
     223  // maps from names to enumerations
     224
     225  //!> contains basis and all elements the basis knows about
    96226  BasisMapType BasisList;
     227  //!> contains the name of a theory as string
    97228  TheoryNamesType TheoryNames;
     229  //!> contains a lookup from theory name to enumeration index
     230  TheoryLookupType TheoryLookup;
     231  //!> contains the name of an integration method as string
    98232  IntegrationNamesType IntegrationNames;
     233  //!> contains a lookup from integration method name to enumeration index
     234  IntegrationLookupType IntegrationLookup;
     235  //!> contains the name of a parameter
    99236  ParamNamesType ParamNames;
     237  //!> contains a lookup from parameter name to enumeration index
     238  ParamLookupType ParamLookup;
    100239};
    101240
     241/** Output operator for the contents of MpqcParser_Parameters::params.
     242 *
     243 * @param ost output stream
     244 * @param params reference to MpqcParser_Parameters containing params.
     245 * @return reference to output stream for concatenation
     246 */
    102247std::ostream & operator << (std::ostream& ost, const MpqcParser_Parameters &params);
     248
     249/** Input operator for a list of parameters to place into \a params.
     250 *
     251 * @param ist input stream
     252 * @param params parameters to parse into
     253 * @return input stream for concatenation
     254 */
    103255std::istream & operator >> (std::istream& ist, MpqcParser_Parameters &params);
    104256
  • src/Parser/unittests/ParserMpqcUnitTest.cpp

    r61d69a4 r44fce5  
    177177void ParserMpqcUnitTest::ParameterTypeTest() {
    178178  // check types in boost::any map
    179   CPPUNIT_ASSERT(mpqc->params.params[MpqcParser_Parameters::HessianParam].type() == typeid(bool));
    180   CPPUNIT_ASSERT(mpqc->params.params[MpqcParser_Parameters::HessianParam].type() != typeid(int));
     179  CPPUNIT_ASSERT(mpqc->params.params[MpqcParser_Parameters::hessianParam].type() == typeid(bool));
     180  CPPUNIT_ASSERT(mpqc->params.params[MpqcParser_Parameters::hessianParam].type() != typeid(int));
    181181  CPPUNIT_ASSERT(mpqc->params.params[MpqcParser_Parameters::savestateParam].type() == typeid(bool));
    182182  CPPUNIT_ASSERT(mpqc->params.params[MpqcParser_Parameters::do_gradientParam].type() == typeid(bool));
     
    193193void ParserMpqcUnitTest::ParameterDefaultTest() {
    194194  // check default values
    195   CPPUNIT_ASSERT(mpqc->params.getString(MpqcParser_Parameters::HessianParam) == "no");
    196   CPPUNIT_ASSERT(!mpqc->params.getBool(MpqcParser_Parameters::HessianParam));
     195  CPPUNIT_ASSERT(mpqc->params.getString(MpqcParser_Parameters::hessianParam) == "no");
     196  CPPUNIT_ASSERT(!mpqc->params.getBool(MpqcParser_Parameters::hessianParam));
    197197  CPPUNIT_ASSERT(mpqc->params.getString(MpqcParser_Parameters::savestateParam) == "no");
    198198  CPPUNIT_ASSERT(!mpqc->params.getBool(MpqcParser_Parameters::savestateParam));
     
    217217  //CPPUNIT_ASSERT_THROW(mpqc->params.getInt(MpqcParser_Parameters::theoryParam), boost::bad_any_cast);
    218218
     219}
     220
     221void ParserMpqcUnitTest::ParameterSetterTest() {
     222  // test a string
     223  {
     224    std::stringstream setvalue("theory = CLHF");
     225    setvalue >> mpqc->params;
     226//    std::cout << "integration method is "
     227//        << mpqc->params.getString(MpqcParser_Parameters::theoryParam) << std::endl;
     228    CPPUNIT_ASSERT(mpqc->params.getString(MpqcParser_Parameters::theoryParam) == "CLHF");
     229  }
     230  // test a bool
     231  {
     232    std::stringstream setvalue("Hessian = yes");
     233    setvalue >> mpqc->params;
     234//    std::cout << "Hessian is "
     235//        << mpqc->params.getString(MpqcParser_Parameters::hessianParam) << std::endl;
     236    CPPUNIT_ASSERT(mpqc->params.getString(MpqcParser_Parameters::hessianParam) == "yes");
     237  }
     238  // test int
     239  {
     240    std::stringstream setvalue("maxiter = 500");
     241    setvalue >> mpqc->params;
     242//    std::cout << "maxiter is "
     243//        << mpqc->params.getString(MpqcParser_Parameters::maxiterParam) << std::endl;
     244    CPPUNIT_ASSERT(mpqc->params.getInt(MpqcParser_Parameters::maxiterParam) == 500);
     245  }
     246  // test whether unknown key fails
     247  std::cout << "The following CRITICAL warning is desired and does not indicate a failure of the test." << std::endl;
     248  {
     249    std::stringstream setvalue("hessian = no");
     250    setvalue >> mpqc->params;
     251//    std::cout << "Hessian is still "
     252//        << mpqc->params.getString(MpqcParser_Parameters::hessianParam) << std::endl;
     253    CPPUNIT_ASSERT(mpqc->params.getString(MpqcParser_Parameters::hessianParam) == "yes");
     254  }
    219255}
    220256
  • src/Parser/unittests/ParserMpqcUnitTest.hpp

    r61d69a4 r44fce5  
    2323  CPPUNIT_TEST ( ParameterTypeTest );
    2424  CPPUNIT_TEST ( ParameterDefaultTest );
     25  CPPUNIT_TEST ( ParameterSetterTest );
    2526  CPPUNIT_TEST ( readMpqcTest );
    2627  CPPUNIT_TEST ( writeMpqcTest );
     
    3334  void ParameterTypeTest();
    3435  void ParameterDefaultTest();
     36  void ParameterSetterTest();
    3537  void readMpqcTest();
    3638  void writeMpqcTest();
Note: See TracChangeset for help on using the changeset viewer.