Changeset 6829d2 for src/Fragmentation/Summation/SetValues/Fragment.cpp
- Timestamp:
- Nov 4, 2016, 9:37:49 AM (9 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_StructOpt_integration_tests, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.6.0, Candidate_v1.6.1, Candidate_v1.7.0, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, 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_ChronosMutex, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, GeometryObjects, Gui_displays_atomic_force_velocity, IndependentFragmentGrids_IntegrationTest, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, RotateToPrincipalAxisSystem_UndoRedo, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, ThirdParty_MPQC_rebuilt_buildsystem, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, Ubuntu_1604_changes, stable
- Children:
- 16c6f7
- Parents:
- 95304c
- git-author:
- Frederik Heber <heber@…> (10/02/16 13:24:41)
- git-committer:
- Frederik Heber <heber@…> (11/04/16 09:37:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Fragmentation/Summation/SetValues/Fragment.cpp
r95304c r6829d2 54 54 {} 55 55 56 Fragment::Fragment(const positions_t &_positions, const charges_t &_charges) 56 Fragment::Fragment( 57 const positions_t &_positions, 58 const atomicnumbers_t &_atomicnumbers, 59 const charges_t &_charges) 57 60 { 58 61 ASSERT( _positions.size() == _charges.size(), 59 62 "Fragment::Fragment() - given charges and positions don't match in size."); 60 63 positions_t::const_iterator piter = _positions.begin(); 64 atomicnumbers_t::const_iterator aiter = _atomicnumbers.begin(); 61 65 charges_t::const_iterator citer = _charges.begin(); 62 for (;piter != _positions.end(); ++piter, ++ citer)63 nuclei.push_back( make_pair( *piter, *citer) );66 for (;piter != _positions.end(); ++piter, ++aiter, ++citer) 67 nuclei.push_back( createNucleus(*piter, *aiter, *citer) ); 64 68 } 65 69 … … 121 125 } 122 126 127 Fragment::atomicnumbers_t Fragment::getAtomicNumbers() const 128 { 129 atomicnumbers_t positions; 130 for (nuclei_t::const_iterator iter = nuclei.begin(); 131 iter != nuclei.end(); ++iter) 132 positions.push_back(iter->second.first); 133 return positions; 134 } 135 123 136 Fragment::charges_t Fragment::getCharges() const 124 137 { … … 126 139 for (nuclei_t::const_iterator iter = nuclei.begin(); 127 140 iter != nuclei.end(); ++iter) 128 charges.push_back(iter->second );141 charges.push_back(iter->second.second); 129 142 return charges; 130 143 } 131 144 132 Fragment::nucleus_t Fragment::createNucleus(const position_t &position, const double charge) 133 { 134 return nucleus_t( make_pair( position, charge ) ); 145 Fragment::nucleus_t Fragment::createNucleus( 146 const position_t &position, 147 const atomicNumber_t &atomicnumber, 148 const double charge) 149 { 150 return nucleus_t( make_pair( position, std::make_pair(atomicnumber, charge) ) ); 135 151 } 136 152 … … 174 190 std::ostream & operator<<(std::ostream &ost, const Fragment::nucleus_t &n) 175 191 { 176 ost << n.first << " with charge " << n.second;192 ost << n.first << " with Z of " << n.second.first << " charge " << n.second.second; 177 193 return ost; 178 194 } … … 183 199 // check positions 184 200 status &= Fragment::isPositionEqual(a.first, b.first); 185 status &= fabs(a.second - b.second) < std::numeric_limits<double>::epsilon(); 201 status &= (a.second.first == b.second.first); 202 status &= fabs(a.second.second - b.second.second) < std::numeric_limits<double>::epsilon(); 186 203 return status; 187 204 } … … 190 207 { 191 208 Fragment::positions_t positions; 209 Fragment::atomicnumbers_t atomicnumbers; 192 210 Fragment::charges_t charges; 193 Fragment returnvalue(positions, charges);211 Fragment returnvalue(positions, atomicnumbers, charges); 194 212 return returnvalue; 195 213 }
Note:
See TracChangeset
for help on using the changeset viewer.
