Changeset 0aa88e
- Timestamp:
- Oct 21, 2013, 8:42:13 AM (12 years ago)
- Children:
- 1966ba
- Parents:
- 6a4956
- git-author:
- Frederik Heber <heber@…> (10/21/13 08:38:14)
- git-committer:
- Frederik Heber <heber@…> (10/21/13 08:42:13)
- File:
-
- 1 edited
-
src/bin/mpqc/mpqc.cc (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/bin/mpqc/mpqc.cc
r6a4956 r0aa88e 1788 1788 std::set<int> valence_indices; 1789 1789 if (data.DoValenceOnly == MPQCData::DoSampleValenceOnly) { 1790 // calculate number of core electrons, half their number is the 1791 // number of orbitals to skip 1792 size_t sum = 0; 1793 for (int iatom=0;iatom < wfn->molecule()->natom(); ++iatom) { 1794 double charge = wfn->molecule()->Z(iatom); 1795 sum += getCoreElectrons(charge); 1796 } 1797 sum = sum/2 - 1; 1790 1798 // find valence orbitals 1791 1799 RefDiagSCMatrix evals = scf->eigenvalues(); … … 1797 1805 evals_sorted.insert(evals(i)); 1798 1806 std::set<double> evals_distances; 1799 std::set<double>::const_iterator advancer = evals_sorted.begin(); 1800 std::set<double>::const_iterator iter = advancer++; 1801 for(;advancer != evals_sorted.end(); ++advancer,++iter) { 1802 if ((*advancer) > 0.) 1803 break; 1804 evals_distances.insert(-(*iter)+(*advancer)); 1805 } 1806 const double largest_distance = (evals_distances.empty() ? 0. : *(evals_distances.rbegin())); 1807 ExEnv::out0() << "Largest distance between EV is " << largest_distance << std::endl; 1808 advancer = evals_sorted.begin(); 1809 iter = advancer++; 1810 for(;advancer != evals_sorted.begin(); ++advancer,++iter) { 1811 if ((*advancer) > 0.) 1812 break; 1813 if (fabs((-(*iter)+(*advancer)) - largest_distance) < 1e-10) 1814 break; 1815 } 1807 std::set<double>::const_iterator iter = evals_sorted.begin(); 1808 std::advance(iter, sum); 1809 // std::set<double>::const_iterator iter = advancer++; 1810 // for(;advancer != evals_sorted.end(); ++advancer,++iter) { 1811 // if ((*advancer) > 0.) 1812 // break; 1813 // evals_distances.insert(-(*iter)+(*advancer)); 1814 // } 1815 // const double largest_distance = (evals_distances.empty() ? 0. : *(evals_distances.rbegin())); 1816 // ExEnv::out0() << "Largest distance between EV is " << largest_distance << std::endl; 1817 // advancer = evals_sorted.begin(); 1818 // iter = advancer++; 1819 // for(;advancer != evals_sorted.begin(); ++advancer,++iter) { 1820 // if ((*advancer) > 0.) 1821 // break; 1822 // if (fabs((-(*iter)+(*advancer)) - largest_distance) < 1e-10) 1823 // break; 1824 // } 1816 1825 // assert( advancer != evals_sorted.begin() ); 1817 1826 const double last_core_ev = (*iter); 1818 ExEnv::out0() << "Last core EV is " << last_core_ev << std::endl;1827 ExEnv::out0() << "Last (" << sum << ") core EV is " << last_core_ev << std::endl; 1819 1828 for(int i=0;i<wfn->oso_dimension(); ++i) 1820 1829 if (evals(i) > last_core_ev)
Note:
See TracChangeset
for help on using the changeset viewer.
