Changeset 8d5db8 for src/Fragmentation/Summation/SetValues/Fragment.cpp
- Timestamp:
- Oct 2, 2016, 1:49:57 PM (9 years ago)
- Branches:
- Fix_FitPotential_needs_atomicnumbers
- Children:
- a13e21
- Parents:
- f6f761
- git-author:
- Frederik Heber <heber@…> (10/02/16 13:24:41)
- git-committer:
- Frederik Heber <heber@…> (10/02/16 13:49:57)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Fragmentation/Summation/SetValues/Fragment.cpp
rf6f761 r8d5db8 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.
