58 std::ifstream fin(fname.c_str());
61 std::cerr <<
"Error when opening file: " << fname << std::endl;
67 search(fin,
"NUMBER OF CARTESIAN GAUSSIAN BASIS FUNCTIONS", aline);
70 search(fin,
"SPIN MULTIPLICITY", aline);
74 search(fin,
"TOTAL NUMBER OF ATOMS", aline);
77 std::cout <<
"NUMBER OF ATOMS: " <<
NumberOfAtoms << std::endl;
78 if (
lookFor(fin,
"SCFTYP=UHF", aline))
81 std::cout <<
"Spin Unrestricted MOs" << std::endl;
85 std::cout <<
"Spin Restricted MOs" << std::endl;
87 if (
lookFor(fin,
"TOTAL NUMBER OF MOS IN VARIATION SPACE=", aline))
91 std::cout <<
"NUMBER OF MOs: " <<
numMO << std::endl;
96 fin.open(fname.c_str());
98 if (
lookFor(fin,
"SET, THE NUMBER OF SPHERICAL HARMONICS KEPT IN THE VARIATION SPACE IS", aline))
102 std::cout <<
"NUMBER OF MOs: " <<
numMO << std::endl;
107 fin.open(fname.c_str());
109 std::cout <<
"Didn't find reduction of variational space, assuming cartesian number of MO's. \n";
122 std::cout <<
"Using ECP." << std::endl;
124 search(fin,
"NUMBER OF ELECTRONS KEPT IN THE CALCULATION IS", aline);
127 std::cout <<
"Number of electrons: " <<
NumberOfEls << std::endl;
129 search(fin,
"NUMBER OF OCCUPIED ORBITALS (ALPHA) KEPT IS", aline);
132 std::cout <<
"Number of alpha electrons: " <<
NumberOfAlpha << std::endl;
133 search(fin,
"NUMBER OF OCCUPIED ORBITALS (BETA ) KEPT IS", aline);
136 std::cout <<
"Number of beta electrons: " <<
NumberOfBeta << std::endl;
140 search(fin,
"NUMBER OF ELECTRONS ", aline);
143 std::cout <<
"Number of electrons: " <<
NumberOfEls << std::endl;
144 search(fin,
"NUMBER OF OCCUPIED ORBITALS (ALPHA)", aline);
147 std::cout <<
"Number of alpha electrons: " <<
NumberOfAlpha << std::endl;
148 search(fin,
"NUMBER OF OCCUPIED ORBITALS (BETA )", aline);
151 std::cout <<
"Number of beta electrons: " <<
NumberOfBeta << std::endl;
159 std::cout <<
"Reading " <<
readNO <<
" orbitals from file.\n";
161 if (
lookFor(fin,
"NATURAL ORBITALS IN ATOMIC ORBITAL BASIS"))
163 MOtype =
"NaturalOrbitals";
165 std::cout <<
"Reading Natural Orbitals from ALDET/GUGA/FSOCI run output. \n";
170 fin.open(fname.c_str());
172 if (
lookFor(fin,
"MCSCF NATURAL ORBITALS"))
174 MOtype =
"NaturalOrbitals";
176 std::cout <<
"Reading Natural Orbitals from MCSCF run output. \n";
180 std::cerr <<
"Could not find Natural Orbitals. \n";
187 std::cout <<
"Reading " <<
readGuess <<
" orbitals from file.\n";
189 if (
lookFor(fin,
" INITIAL GUESS ORBITALS"))
193 std::cout <<
"Reading INITIAL GUESS ORBITALS output. \n";
197 std::cerr <<
"Could not find INITIAL GUESS ORBITALS. \n";
204 if (
lookFor(fin,
" EIGENVECTORS"))
209 std::cout <<
"Reading RHF Canonical Orbitals from Gamess output. \n";
214 fin.open(fname.c_str());
216 if (
lookFor(fin,
"MCSCF OPTIMIZED ORBITALS"))
221 std::cout <<
"Reading Optimized Orbitals from MCSCF run output. \n";
225 std::cerr <<
"Could not find eigenstates. \n";
239 std::cerr <<
"Error when opening file: " <<
outputFile << std::endl;
245 if (
lookFor(fin,
"GUGA DISTINCT ROW TABLE"))
247 std::cout <<
"Found GUGA ROW TABLE, reading CSF." << std::endl;
249 if (!
lookFor(fin,
"SYMMETRIES FOR THE", aline))
251 std::cerr <<
"Could not find number of frozen core orbitals in output file.\n";
256 NFZC = atoi(aline.substr(20, 3).c_str());
257 NAC = atoi(aline.substr(30, 3).c_str());
258 NEXT = atoi(aline.substr(42, 3).c_str());
260 std::cout <<
"# core, #active, #external: " <<
NFZC <<
" " <<
NAC <<
" " <<
NEXT << std::endl;
268 std::cout <<
"Could not find GUGA ROW TABLE, looking for Slater Dets." << std::endl;
273 if (
lookFor(fin,
"DIRECT DETERMINANT ORMAS-CI"))
275 std::cout <<
"Found ORMAS-CI" << std::endl;
284 std::cout <<
"Assuming ALDET-CI" << std::endl;
299 std::vector<int> atomic_number, core;
300 std::vector<double> q, pos;
305 bool notfound =
true;
310 std::cerr <<
"Could not find atomic coordinates. \n";
329 atomic_number.push_back(zint);
342 std::cerr <<
"Could not find atomic coordinates for all atoms. \n";
352 std::cerr <<
"Problem looking for ECPs, this should not happen. Contact developers for help. \n";
375 std::cerr <<
"Found ECPs, but problem looking ZCORE data.\n";
392 std::vector<std::string>::iterator it, it0;
397 std::cerr <<
"Problem with ECP data. Didn't found ATOM tag\n";
398 std::cerr << is.rdbuf() << std::endl;
402 int nq0 = atoi(it0->c_str()) - 1;
406 core[nq0] = atoi(it->c_str());
408 std::cout <<
"Found ECP for atom " << nq0 <<
" with zcore " << core[nq0] << std::endl;
415 std::cerr <<
"Problem with ECP data. Didn't found ATOM tag\n";
416 std::cerr <<
"Atom: " << nq0 << std::endl;
419 std::vector<std::string>::iterator it2 = it;
421 int nq = atoi(it2->c_str());
424 std::cerr <<
"Problem with ECP data. ID's don't agree\n";
425 std::cerr <<
"Atom: " << nq0 << std::endl;
431 std::cerr <<
"Problem with ECP data (2).\n";
432 std::cerr <<
"Atom: " << nq0 << std::endl;
435 nq = atoi((it + 1)->c_str());
436 core[nq0] = core[nq - 1];
438 std::cout <<
"Found ECP for atom " << nq0 <<
" with zcore " << core[nq0] << std::endl;
452 std::cout <<
"usingECP: " << (
usingECP ? (
"yes") : (
"no")) << std::endl;
461 int speciesID = species.addSpecies(
GroupName[i]);
472 std::map<std::string, int> basisDataMap;
476 std::map<std::string, int>::iterator it(basisDataMap.find(
tags[i]));
477 if (it == basisDataMap.end())
479 basisDataMap[
tags[i]] = nUniqAt++;
483 std::vector<std::vector<double>> expo(nUniqAt), coef(nUniqAt), coef2(nUniqAt);
484 std::vector<int> nshll(nUniqAt, 0);
485 std::vector<std::vector<int>> ncoeffpershell(nUniqAt);
486 std::vector<std::vector<std::string>> shID(nUniqAt);
487 std::map<std::string, int> gsMap;
488 gsMap[std::string(
"S")] = 1;
489 gsMap[std::string(
"SP")] = 2;
490 gsMap[std::string(
"L")] = 2;
491 gsMap[std::string(
"P")] = 3;
492 gsMap[std::string(
"D")] = 4;
493 gsMap[std::string(
"F")] = 5;
494 gsMap[std::string(
"G")] = 6;
495 gsMap[std::string(
"H")] = 7;
496 gsMap[std::string(
"I")] = 8;
503 std::cerr <<
"Problem with basis set data.\n";
530 std::map<std::string, int>::iterator it(basisDataMap.find(
currentWords[0]));
531 if (it == basisDataMap.end())
533 std::cerr <<
"Error in parser.\n";
536 currPos = it->second;
537 bool newgroup = (nshll[currPos] == 0);
540 ncoeffpershell[currPos].clear();
541 ncoeffpershell[currPos].push_back(0);
542 shID[currPos].clear();
543 shID[currPos].push_back(
"NONE");
550 std::streampos pivot = is.tellg();
557 ncoeffpershell[currPos].push_back(0);
558 shID[currPos].push_back(
"NONE");
573 ncoeffpershell[currPos][nshll[currPos]]++;
578 std::cerr <<
"Unhandled primitive type " <<
currentWords[1] << std::endl;
583 std::cerr <<
"Can't handle SP basis states yet. Fix later.\n";
588 std::cerr <<
"Can't handle J basis states or higher yet. Fix later.\n";
593 std::cout << currPos <<
":" << expo[currPos].back() <<
" " << coef[currPos].back() <<
" " 594 << ncoeffpershell[currPos][nshll[currPos]] <<
" " << shID[currPos][nshll[currPos]] << std::endl;
711 std::map<std::string, int>::iterator it(basisDataMap.find(
tags[i]));
712 if (it == basisDataMap.end())
714 std::cerr <<
"Error in parser.\n";
718 int indx = it->second;
720 for (
int k = 0; k < nshll[indx]; k++)
721 gShell.push_back(gsMap[shID[indx][k]]);
722 for (
int k = 0; k < nshll[indx]; k++)
723 gNumber.push_back(ncoeffpershell[indx][k]);
724 for (
int k = 0; k < expo[indx].size(); k++)
725 gExp.push_back(expo[indx][k]);
726 for (
int k = 0; k < coef[indx].size(); k++)
727 gC0.push_back(coef[indx][k]);
748 std::vector<double> dummy(50);
750 std::streampos pivot;
765 CartLabels[k].erase(0, 1);
777 for (
int i = 0; i <
numMO; i++)
779 EigVec[cnt++] = CartMat[i][k];
784 search(is,
" EIGENVECTORS");
790 for (
int i = 0; i <
numMO; i++)
792 EigVec[cnt++] = CartMat[i][k];
793 std::cout <<
"Finished reading MO." << std::endl;
801 for (
int i = 0; i < nq; i++)
855 for (
int i = 0; i < rem; i++)
866 for (
int i = 0; i < rem; i++)
868 CartMat[cnt + i][k] = atof(
currentWords[3 + i].c_str());
874 for (
int i = 0; i < rem; i++)
876 CartMat[cnt + i][k] = atof(
currentWords[2 + i].c_str());
881 for (
int i = 0; i < rem; i++)
883 CartMat[cnt + i][k] = atof(
currentWords[4 + i].c_str());
902 *(Sphe) = *(Cart + 1);
904 *(Sphe + 1) = *(Cart + 2);
906 *(Sphe + 2) = *(Cart);
911 *(Sphe) = *(Cart + 3);
913 *(Sphe + 1) = *(Cart + 5);
915 *(Sphe + 2) = *(Cart + 2) - 0.5 * (*(Cart) + *(Cart + 1));
917 *(Sphe + 3) = *(Cart + 4);
919 *(Sphe + 4) =
std::sqrt(0.75) * (*(Cart) - *(Cart + 1));
924 *(Sphe) = -1.0 *
std::sqrt(5.0 / 8.0) * (*(Cart + 1)) +
std::sqrt(9.0 / 8.0) * (*(Cart + 3));
926 *(Sphe + 1) = *(Cart + 9);
928 *(Sphe + 2) =
std::sqrt(6.0 / 5.0) * (*(Cart + 8)) -
std::sqrt(3.0 / 8.0) * (*(Cart + 1)) -
929 std::sqrt(6.0 / 5.0) * (*(Cart + 3)) / 4.0;
931 *(Sphe + 3) = *(Cart + 2) - 3.0 /
std::sqrt(10.0) * (*(Cart + 4) + *(Cart + 6));
933 *(Sphe + 4) =
std::sqrt(6.0 / 5.0) * (*(Cart + 7)) -
std::sqrt(3.0 / 8.0) * (*(Cart)) -
934 std::sqrt(6.0 / 5.0) * (*(Cart + 5)) / 4.0;
936 *(Sphe + 5) =
std::sqrt(3.0 / 4.0) * (*(Cart + 4) - *(Cart + 6));
938 *(Sphe + 6) = -1.0 *
std::sqrt(5.0 / 8.0) * (*(Cart)) +
std::sqrt(9.0 / 8.0) * (*(Cart + 5));
943 *(Sphe) =
std::sqrt(5.0 / 4.0) * (*(Cart + 3) - *(Cart + 5));
945 *(Sphe + 1) = -1.0 *
std::sqrt(5.0 / 8.0) * (*(Cart + 6)) +
std::sqrt(9.0 / 8.0) * (*(Cart + 12));
947 *(Sphe + 2) =
std::sqrt(9.0 / 7.0) * (*(Cart + 14)) -
std::sqrt(5.0 / 28.0) * (*(Cart + 3) + *(Cart + 5));
949 *(Sphe + 3) =
std::sqrt(10.0 / 7.0) * (*(Cart + 8)) - 0.75 *
std::sqrt(10.0 / 7.0) * (*(Cart + 6)) -
950 0.75 *
std::sqrt(2.0 / 7.0) * (*(Cart + 12));
952 *(Sphe + 4) = *(Cart + 2) +
std::sqrt(9.0 / 32.0) * (*(Cart) + *(Cart + 1)) -
953 3.0 *
std::sqrt(6.0 / 35.0) * (*(Cart + 10) + *(Cart + 11) - 0.25 * (*(Cart + 9)));
955 *(Sphe + 5) =
std::sqrt(10.0 / 7.0) * (*(Cart + 7)) - 0.75 *
std::sqrt(10.0 / 7.0) * (*(Cart + 4)) -
956 0.75 *
std::sqrt(2.0 / 7.0) * (*(Cart + 13));
959 1.5 *
std::sqrt(3.0 / 7.0) * (*(Cart + 10) - *(Cart + 11)) -
std::sqrt(5.0 / 16.0) * (*(Cart) - *(Cart + 1));
961 *(Sphe + 7) =
std::sqrt(5.0 / 8.0) * (*(Cart + 4)) -
std::sqrt(9.0 / 8.0) * (*(Cart + 13));
963 *(Sphe + 8) =
std::sqrt(35.0) / 8.0 * (*(Cart) + *(Cart + 1)) -
std::sqrt(3.0) * 0.75 * (*(Cart + 9));
994 std::cerr <<
"Error in Cartesian2Spherical. Invalid n: " <<
n << std::endl;
1005 bool notfound =
true;
1016 std::cout <<
"Target State Number is " <<
target_state << std::endl;
1022 std::cerr <<
"Could not find CSF expansion. \n";
1049 std::pair<int, double> cic(nq, cof);
1055 else if (
NTOT == 50)
1082 std::cout <<
"Done reading csf coefficients." << std::endl;
1083 std::cout <<
"Found: " <<
coeff2csf.size() <<
" CSFs.\n";
1087 for (
int i = 0; i <
CSFocc.size(); i++)
1089 int max =
CSFocc[i].size();
1090 for (
int k =
CSFocc[i].size() - 1; k >= 0; k--)
1106 if (!
lookFor(is,
"DETERMINANT CONTRIBUTION TO CSF'S"))
1109 <<
"Could not find CSF determinant contributions. Please use NPRT=2 in $CIDRT/DRT input section of gamess. \n";
1116 std::cerr <<
"Problems reading DETERMINANT CONTRIBUTION TO CSF'S (1). \n";
1123 std::vector<int> csfOccup;
1125 int cnt = 1, current = 0;
1126 int naea = 0, naeb = 0;
1132 std::cerr <<
"Problems reading DETERMINANT CONTRIBUTION TO CSF'S (2). \n";
1144 if (aline.substr(1, 3) !=
"CSF")
1146 std::cerr <<
"aline:" << aline << std::endl;
1147 std::cerr <<
"Problems reading DETERMINANT CONTRIBUTION TO CSF'S (4). \n";
1160 int num = (aline.size() - 33) / 3;
1161 for (
int i = 0; i < num; i++)
1164 int nq = atoi(aline.substr(33 + i * 3, 3).c_str());
1165 csfOccup.push_back(nq);
1170 std::cerr <<
"Problems with det std::string #,nq,i: " << cnt <<
" " << nq <<
" " << i << std::endl;
1171 std::cout <<
"line: " << aline << std::endl;
1172 std::cout <<
"alpha: " << alp << std::endl;
1173 std::cout <<
"beta: " << beta << std::endl;
1176 std::cerr << std::endl;
1179 alp.at(nq - 1 -
ci_nca) =
'1';
1186 std::cerr <<
"Problems with det std::string #,nq,i: " << cnt <<
" " << nq <<
" " << i << std::endl;
1187 std::cout <<
"line: " << aline << std::endl;
1188 std::cout <<
"alpha: " << alp << std::endl;
1189 std::cout <<
"beta: " << beta << std::endl;
1192 std::cerr << std::endl;
1195 beta.at(-nq - 1 -
ci_ncb) =
'1';
1203 int num = (aline.size() - 33) / 3;
1204 for (
int i = 0; i < num; i++)
1207 int nq = atoi(aline.substr(33 + i * 3, 3).c_str());
1208 csfOccup.push_back(nq);
1213 std::cerr <<
"Problems with det std::string #,nq,i: " << cnt <<
" " << nq <<
" " << i << std::endl;
1214 std::cout <<
"line: " << aline << std::endl;
1215 std::cout <<
"alpha: " << alp << std::endl;
1216 std::cout <<
"beta: " << beta << std::endl;
1219 std::cerr << std::endl;
1222 alp.at(nq - 1 -
ci_nca) =
'1';
1229 std::cerr <<
"Problems with det std::string #,nq,i: " << cnt <<
" " << nq <<
" " << i << std::endl;
1230 std::cout <<
"line: " << aline << std::endl;
1231 std::cout <<
"alpha: " << alp << std::endl;
1232 std::cout <<
"beta: " << beta << std::endl;
1235 std::cerr << std::endl;
1238 beta.at(-nq - 1 -
ci_ncb) =
'1';
1242 if (na != naea || nb != naeb)
1244 std::cerr <<
"Problems with det std::string #: " << cnt << std::endl;
1245 std::cout <<
"line: " << aline << std::endl;
1246 std::cout <<
"alpha: " << alp << std::endl;
1247 std::cout <<
"beta: " << beta << std::endl;
1250 std::cerr << std::endl;
1256 CSFbeta[current].push_back(beta);
1258 CSFexpansion[current].push_back(atof(aline.substr(20, 9).c_str()) * sg);
1265 std::cerr <<
"Problems reading DETERMINANT CONTRIBUTION TO CSF'S (5). \n";
1271 if (cnt < 10000000 && atoi(
currentWords[2].c_str()) != cnt)
1273 std::cerr <<
"Problems reading DETERMINANT CONTRIBUTION TO CSF'S (6). \n";
1280 int num = (aline.size() - 33) / 3;
1281 for (
int i = 0; i < num; i++)
1284 int nq = atoi(aline.substr(33 + i * 3, 3).c_str());
1285 csfOccup.push_back(nq);
1290 std::cerr <<
"Problems with det std::string #,nq,i: " << cnt <<
" " << nq <<
" " << i << std::endl;
1291 std::cout <<
"line: " << aline << std::endl;
1292 std::cout <<
"alpha: " << alp << std::endl;
1293 std::cout <<
"beta: " << beta << std::endl;
1296 std::cerr << std::endl;
1299 alp.at(nq - 1 -
ci_nca) =
'1';
1305 std::cerr <<
"Problems with det std::string #,nq,i: " << cnt <<
" " << nq <<
" " << i << std::endl;
1306 std::cout <<
"line: " << aline << std::endl;
1307 std::cout <<
"alpha: " << alp << std::endl;
1308 std::cout <<
"beta: " << beta << std::endl;
1311 std::cerr << std::endl;
1314 beta.at(-nq - 1 -
ci_ncb) =
'1';
1319 CSFbeta[current].push_back(beta);
1321 CSFexpansion[current].push_back(atof(aline.substr(20, 9).c_str()) * sg);
1333 std::cerr <<
"Problems reading DETERMINANT CONTRIBUTION TO CSF'S (5). \n";
1339 if (cnt < 10000000 && atoi(
currentWords[2].c_str()) != cnt)
1341 std::cerr <<
"Problems reading DETERMINANT CONTRIBUTION TO CSF'S (6). \n";
1350 std::cout <<
"Done reading csf expansion." << std::endl;
1353 for (
int i = 0; i <
CSFalpha[0][0].size(); i++)
1357 for (
int i = 0; i <
CSFbeta[0][0].size(); i++)
1358 if (
CSFbeta[0][0].at(i) ==
'1')
1381 bool notfound =
true;
1390 std::cout <<
"Target State Number is " <<
target_state << std::endl;
1397 std::cerr <<
"Could not find CI expansion. \n";
1429 for (
int i = 0; i <
CIalpha[0].size(); i++)
1432 for (
int i = 0; i <
CIbeta[0].size(); i++)
1433 if (
CIbeta[0].at(i) ==
'1')
1437 std::cerr <<
"QMCPACK can't handle different number of active orbitals in alpha and beta channels right now. " 1438 "Contact developers for help (Miguel).\n";
1445 for (
int i = 0; i <
CIalpha.size(); i++)
1447 for (
int i = 0; i <
CIbeta.size(); i++)
1460 bool notfound =
true;
1466 if (!
lookFor(is,
"NUMBER OF CORE ORBITALS", aline))
1468 std::cerr <<
"Couldn't find # of CORE ORBITALS in ORMAS.\n";
1473 if (!
lookFor(is,
"NUMBER OF ACTIVE ORBITALS", aline))
1475 std::cerr <<
"Couldn't find # of ACTIVE ORBITALS in ORMAS.\n";
1480 if (!
lookFor(is,
"NUMBER OF ALPHA ELECTRONS", aline))
1482 std::cerr <<
"Couldn't find # of ALPHA ELECTRONS in ORMAS.\n";
1488 if (!
lookFor(is,
"NUMBER OF BETA ELECTRONS", aline))
1490 std::cerr <<
"Couldn't find # of BETA ELECTRONS in ORMAS.\n";
1496 std::cout <<
"ORMAS: nea,neb,ncore,nact: " <<
ci_nea <<
" " <<
ci_neb <<
" " <<
ci_nca <<
" " << nactive <<
"\n";
1502 std::cerr <<
"Inconsistent number of core electrons: " <<
ci_nca <<
" " << nea -
ci_nea << std::endl;
1507 std::cerr <<
"Inconsistent number of core electrons: " <<
ci_ncb <<
" " << neb -
ci_neb << std::endl;
1510 std::string dummy_alpha(nactive,
'0');
1511 std::string dummy_beta(nactive,
'0');
1517 std::cerr <<
"Could not find ORMAS CI expansion. \n";
1538 CIalpha.push_back(dummy_alpha);
1539 CIbeta.push_back(dummy_beta);
1540 for (
int i = 0; i <
ci_nea; i++)
1542 for (
int i = 0; i <
ci_neb; i++)
1550 for (
int i = 0; i <
ci_size; i++)
1553 for (
int k = nactive - 1; k >= 0; k--)
1573 for (
int i = 0; i <
n; i++)
1574 for (
int j = i + 1; j <
n; j++)
1576 if (occ[j] > occ[i])
1579 double tmp = occ[i];
std::vector< std::vector< double > > CSFexpansion
void getCI(std::istream &is)
std::vector< value_type > EigVal_beta
std::vector< std::string > currentWords
void getCSF(std::istream &is)
MakeReturn< UnaryNode< FnFabs, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t abs(const Vector< T1, C1 > &l)
void getMO(std::istream &is)
void getMO_single_set(std::istream &is, Matrix< double > &CartMat, std::vector< value_type > &EigVal_alpha)
std::streampos pivot_begin
std::vector< double > CIcoeff
std::vector< std::string > GroupName
ParticleIndex GroupID
Species ID.
std::vector< std::vector< std::string > > CSFbeta
std::vector< value_type > EigVal_alpha
std::vector< std::string > CSFocc
std::vector< int > gBound
std::vector< value_type > gC0
double getCSFSign(std::vector< int > &)
unsigned parsewords(const char *inbuf, std::vector< std::string > &slist, const std::string &extra_tokens)
std::vector< value_type > EigVec
int search(std::istream &is, const std::string &keyword)
std::vector< value_type > gExp
static std::map< int, std::string > IonName
std::vector< std::string > tags
void getGaussianCenters(std::istream &is)
SpeciesSet & getSpeciesSet()
retrun the SpeciesSet of this particle set
std::vector< std::string > CIalpha
void create(const std::vector< int > &agroup)
create grouped particles
std::vector< std::pair< int, double > > coeff2csf
void getORMAS(std::istream &is)
MakeReturn< UnaryNode< FnSqrt, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sqrt(const Vector< T1, C1 > &l)
bool lookFor(std::istream &is, const std::string &keyword)
std::vector< int > gNumber
void getGeometry(std::istream &is)
Custom container for set of attributes for a set of species.
void parse(const std::string &fname) override
int getwordsWithMergedNumbers(std::vector< std::string > &slist, std::istream &fp, int dummy, const std::string &extra_tokens)
int getwords(std::vector< std::string > &slist, std::istream &fp, std::string &aline)
std::vector< std::string > CIbeta
std::vector< value_type > gC1
std::vector< int > gShell
void Cartesian2Spherical(int n, double *Cart, double *Sphe)
std::vector< std::vector< std::string > > CSFalpha