Changeset 4aba27
- Timestamp:
- Jul 11, 2012, 9:31:41 AM (13 years ago)
- Children:
- 16135f
- Parents:
- 850bce
- git-author:
- Frederik Heber <heber@…> (07/11/12 09:24:59)
- git-committer:
- Frederik Heber <heber@…> (07/11/12 09:31:41)
- File:
-
- 1 edited
-
src/bin/mpqc/mpqc.cc (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/bin/mpqc/mpqc.cc
r850bce r4aba27 177 177 { 178 178 MemoryGrp::set_default_memorygrp(0); 179 MessageGrp::set_default_messagegrp(0);180 179 ThreadGrp::set_default_threadgrp(0); 181 180 SCMatrixKit::set_default_matrixkit(0); 182 181 Integral::set_default_integral(0); 183 182 RegionTimer::set_default_regiontimer(0); 183 } 184 185 static void 186 final_clean_up(void) 187 { 188 MessageGrp::set_default_messagegrp(0); 184 189 } 185 190 … … 1205 1210 /** Performs the main work to calculate the ground state energies, gradients, etc. 1206 1211 * 1212 * @param grp message group 1207 1213 * @param values temporary value storage for parsed command-line 1208 1214 * @param input input file name … … 1213 1219 */ 1214 1220 void mainFunction( 1221 Ref<MessageGrp> grp, 1215 1222 struct OptionValues &values, 1223 const char *&output, 1216 1224 const char *&input, 1217 1225 const char *&generic_input, … … 1224 1232 ) 1225 1233 { 1226 // get the message group. first try the commandline and environment 1227 Ref<MessageGrp> grp; 1228 getMessageGroup(grp, argc, argv); 1234 // get the basename for output files 1235 setOutputBaseName(input, output); 1229 1236 1230 1237 // parse input into keyvalue container … … 1253 1260 Ref<ThreadGrp> thread; 1254 1261 getThreadGroup(keyval, thread, argc, argv); 1255 1262 1256 1263 // get the memory group. 1257 1264 Ref<MemoryGrp> memory; … … 1497 1504 } 1498 1505 } 1499 // GaussianShell is the actual orbital functions it seems ...1500 //ExEnv::out0() << "There are the following Gaussian Shells: " << endl;1501 SCVector3 r;1502 r.x() = r.y() = r.z() = 10;1503 ExEnv::out0() << "We get the following value at " << r << "." << endl;1504 Ref<Integral> intgrl = Integral::get_default_integral();1505 GaussianBasisSet::ValueData vdat(wfn->basis(), integral);1506 ExEnv::out0() << "Value at (10,10,10) is " << EvaluateDensity(r, intgrl, vdat, wfn) << endl;1507 boost::function<double (SCVector3 &r)> evaluator =1508 boost::bind(&EvaluateDensity, _1, boost::ref(intgrl), boost::ref(vdat), boost::ref(wfn));1509 ExEnv::out0() << "Check against values at " << r << "." << endl;1510 int nbasis = wfn->basis()->nbasis();1511 double *b_val = new double[nbasis];1512 wfn->basis()->values(r, &vdat, b_val);1513 for (int i=0; i<nbasis; i++) {1514 //ExEnv::out0() << "Shell nr. " << nr << ": ";1515 ExEnv::out0() << "Value at (10,10,10) is " << b_val[i] << endl;1516 }1517 // perform test integration of density1518 double delta = 1.;1519 double sum = 0.;1520 for (r.x() = -10. ; r.x() < 10.; r.x() += delta)1521 for (r.y() = -10. ; r.y() < 10.; r.y() += delta)1522 for (r.z() = -10. ; r.z() < 10.; r.z() += delta) {1523 wfn->basis()->values(r, &vdat, b_val);1524 for (int i=0; i<nbasis; i++)1525 sum += wfn->ao_density()->get_element(i,i)*b_val[i];1526 }1527 sum /= pow(20/delta,3);1528 ExEnv::out0() << "Sum over domain [0:20]^3 with " << delta << " delta is " << sum << "." << endl;1529 delete[] b_val;1506 // // GaussianShell is the actual orbital functions it seems ... 1507 // //ExEnv::out0() << "There are the following Gaussian Shells: " << endl; 1508 // SCVector3 r; 1509 // r.x() = r.y() = r.z() = 10; 1510 // ExEnv::out0() << "We get the following value at " << r << "." << endl; 1511 // Ref<Integral> intgrl = Integral::get_default_integral(); 1512 // GaussianBasisSet::ValueData vdat(wfn->basis(), integral); 1513 // ExEnv::out0() << "Value at (10,10,10) is " << EvaluateDensity(r, intgrl, vdat, wfn) << endl; 1514 // boost::function<double (SCVector3 &r)> evaluator = 1515 // boost::bind(&EvaluateDensity, _1, boost::ref(intgrl), boost::ref(vdat), boost::ref(wfn)); 1516 // ExEnv::out0() << "Check against values at " << r << "." << endl; 1517 // int nbasis = wfn->basis()->nbasis(); 1518 // double *b_val = new double[nbasis]; 1519 // wfn->basis()->values(r, &vdat, b_val); 1520 // for (int i=0; i<nbasis; i++) { 1521 // //ExEnv::out0() << "Shell nr. " << nr << ": "; 1522 // ExEnv::out0() << "Value at (10,10,10) is " << b_val[i] << endl; 1523 // } 1524 // // perform test integration of density 1525 // double delta = 1.; 1526 // double sum = 0.; 1527 // for (r.x() = -10. ; r.x() < 10.; r.x() += delta) 1528 // for (r.y() = -10. ; r.y() < 10.; r.y() += delta) 1529 // for (r.z() = -10. ; r.z() < 10.; r.z() += delta) { 1530 // wfn->basis()->values(r, &vdat, b_val); 1531 // for (int i=0; i<nbasis; i++) 1532 // sum += wfn->ao_density()->get_element(i,i)*b_val[i]; 1533 // } 1534 // sum /= pow(20/delta,3); 1535 // ExEnv::out0() << "Sum over domain [0:20]^3 with " << delta << " delta is " << sum << "." << endl; 1536 // delete[] b_val; 1530 1537 } 1531 1538 … … 1544 1551 keyval = 0; 1545 1552 parsedkv = 0; 1546 grp = 0;1547 1553 memory = 0; 1548 1554 clean_up(); … … 1596 1602 const char *generic_input = 0; 1597 1603 MPQCData data; 1598 mainFunction(values, input, generic_input, in_char_array, argc, argv, data); 1599 delete[] in_char_array; 1604 Ref<MessageGrp> grp = MessageGrp::get_default_messagegrp(); 1605 char filename_template[] = "mpqc_temp_XXXXXX"; 1606 const char *output = mktemp(filename_template); 1607 mainFunction(grp, values, output, input, generic_input, in_char_array, argc, argv, data); 1608 // delete[] in_char_array; 1600 1609 1601 1610 // if (output != 0) { … … 1642 1651 if (generic_input) input = generic_input; 1643 1652 1644 // get the basename for output files 1645 setOutputBaseName(input, output); 1653 // get the message group. first try the commandline and environment 1654 Ref<MessageGrp> grp; 1655 getMessageGroup(grp, argc, argv); 1646 1656 1647 1657 // check if we got option "-n" … … 1689 1699 #ifdef HAVE_MPQCDATA 1690 1700 MPQCData data; 1691 mainFunction( values, input, generic_input, in_char_array, argc, argv, data);1701 mainFunction(grp, values, output, input, generic_input, in_char_array, argc, argv, data); 1692 1702 #else 1693 mainFunction( values, input, generic_input, in_char_array, argc, argv);1703 mainFunction(grp, values, output, input, generic_input, in_char_array, argc, argv); 1694 1704 #endif 1695 1705 } … … 1699 1709 delete outstream; 1700 1710 } 1711 1712 grp = 0; 1713 final_clean_up(); 1701 1714 1702 1715 return exitflag;
Note:
See TracChangeset
for help on using the changeset viewer.
