- Timestamp:
- Oct 3, 2016, 11:13:32 AM (9 years ago)
- Branches:
- Fix_FitPotential_needs_atomicnumbers
- Children:
- 0b7036
- Parents:
- c93e58
- git-author:
- Frederik Heber <heber@…> (10/03/16 10:35:00)
- git-committer:
- Frederik Heber <heber@…> (10/03/16 11:13:32)
- Location:
- src
- Files:
-
- 7 edited
-
FunctionApproximation/Extractors.cpp (modified) (1 diff)
-
FunctionApproximation/Extractors.hpp (modified) (2 diffs)
-
FunctionApproximation/FunctionArgument.hpp (modified) (1 diff)
-
Potentials/CompoundPotential.cpp (modified) (2 diffs)
-
Potentials/PotentialTrainer.cpp (modified) (2 diffs)
-
Potentials/SerializablePotential.hpp (modified) (1 diff)
-
documentation/constructs/potentials.dox (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/FunctionApproximation/Extractors.cpp
rc93e58 rbe20db 96 96 Extractors::elementcounts_t 97 97 Extractors::_detail::getElementCounts( 98 const Fragment:: charges_t elements98 const Fragment::atomicnumbers_t elements 99 99 ) 100 100 { 101 101 elementcounts_t elementcounts; 102 for (Fragment:: charges_t::const_iterator elementiter = elements.begin();102 for (Fragment::atomicnumbers_t::const_iterator elementiter = elements.begin(); 103 103 elementiter != elements.end(); ++elementiter) { 104 104 // insert new element -
src/FunctionApproximation/Extractors.hpp
rc93e58 rbe20db 39 39 40 40 typedef size_t count_t; 41 typedef Fragment:: charge_t element_t;41 typedef Fragment::atomicNumber_t element_t; 42 42 typedef std::map< element_t, count_t> elementcounts_t; 43 43 typedef std::map< element_t, chargeiters_t > elementtargets_t; 44 44 typedef std::vector< chargeiters_t > targets_per_combination_t; 45 45 //!> typedef for particle designation 46 typedef int ParticleType_t;46 typedef unsigned int ParticleType_t; 47 47 //!> typedef for a vector of particle designations 48 48 typedef std::vector<ParticleType_t> ParticleTypes_t; … … 59 59 */ 60 60 elementcounts_t getElementCounts( 61 const Fragment:: charges_t elements61 const Fragment::atomicnumbers_t elements 62 62 ); 63 63 -
src/FunctionApproximation/FunctionArgument.hpp
rc93e58 rbe20db 33 33 typedef std::pair<size_t, size_t> indices_t; 34 34 //!> typedef for the underlying type of the particle 35 typedef int ParticleType_t;35 typedef unsigned int ParticleType_t; 36 36 //!> typedef for the two particle types of the argument 37 37 typedef std::pair<ParticleType_t, ParticleType_t> types_t; -
src/Potentials/CompoundPotential.cpp
rc93e58 rbe20db 70 70 potential->getParticleTypes(); 71 71 72 // create charges73 Fragment::charges_t charges;74 charges.resize(types.size());75 std::transform(types.begin(), types.end(),76 charges.begin(), boost::lambda::_1);77 72 // convert into count map 78 Extractors::elementcounts_t counts_per_ charge=79 Extractors::_detail::getElementCounts( charges);80 // ASSERT( !counts_per_ charge.empty(),81 // "getFirstGraphwithSpecifiedElements() - chargecounts are empty?");82 LOG(2, "DEBUG: counts_per_ charge is " << counts_per_charge<< ".");73 Extractors::elementcounts_t counts_per_element = 74 Extractors::_detail::getElementCounts(types); 75 // ASSERT( !counts_per_element.empty(), 76 // "getFirstGraphwithSpecifiedElements() - element counts are empty?"); 77 LOG(2, "DEBUG: counts_per_element is " << counts_per_element << "."); 83 78 84 79 // check whether graph contains suitable types 85 Extractors::elementcounts_t::const_iterator countiter = counts_per_ charge.begin();86 for (; countiter != counts_per_ charge.end(); ++countiter)80 Extractors::elementcounts_t::const_iterator countiter = counts_per_element.begin(); 81 for (; countiter != counts_per_element.end(); ++countiter) 87 82 if (!graph.hasGreaterEqualTimesAtomicNumber( 88 83 static_cast<size_t>(countiter->first), … … 91 86 break; 92 87 // if we have a match for every count, store model 93 if( countiter == counts_per_ charge.end()) {88 if( countiter == counts_per_element.end()) { 94 89 LOG(1, "INFO: Potential " << potentialiter->first << " matches with fragment."); 95 90 models.push_back(static_cast<FunctionModel*>(potential)); -
src/Potentials/PotentialTrainer.cpp
rc93e58 rbe20db 198 198 ASSERT( !types.empty(), 199 199 "getFirstGraphwithSpecifiedElements() - charges is empty?"); 200 // create charges 201 Fragment::charges_t charges; 202 charges.resize(types.size()); 203 std::transform(types.begin(), types.end(), 204 charges.begin(), boost::lambda::_1); 200 205 201 // convert into count map 206 Extractors::elementcounts_t counts_per_ charge=207 Extractors::_detail::getElementCounts( charges);208 ASSERT( !counts_per_ charge.empty(),209 "getFirstGraphwithSpecifiedElements() - chargecounts are empty?");210 LOG(1, "DEBUG: counts_per_ charge is " << counts_per_charge<< ".");202 Extractors::elementcounts_t counts_per_element = 203 Extractors::_detail::getElementCounts(types); 204 ASSERT( !counts_per_element.empty(), 205 "getFirstGraphwithSpecifiedElements() - element counts are empty?"); 206 LOG(1, "DEBUG: counts_per_element is " << counts_per_element << "."); 211 207 // we want to check each (unique) key only once 212 208 HomologyContainer::const_key_iterator olditer = homologies.key_end(); … … 221 217 // check whether we have the same set of atomic numbers 222 218 const HomologyGraph::nodes_t &nodes = (*iter).getNodes(); 223 Extractors::elementcounts_t nodes_counts_per_ charge;219 Extractors::elementcounts_t nodes_counts_per_element; 224 220 for (HomologyGraph::nodes_t::const_iterator nodeiter = nodes.begin(); 225 221 nodeiter != nodes.end(); ++nodeiter) { 226 222 const Extractors::element_t elem = nodeiter->first.getAtomicNumber(); 227 223 const std::pair<Extractors::elementcounts_t::iterator, bool> inserter = 228 nodes_counts_per_ charge.insert( std::make_pair(elem, (Extractors::count_t)nodeiter->second ) );224 nodes_counts_per_element.insert( std::make_pair(elem, (Extractors::count_t)nodeiter->second ) ); 229 225 if (!inserter.second) 230 226 inserter.first->second += (Extractors::count_t)nodeiter->second; 231 227 } 232 LOG(1, "DEBUG: Node (" << *iter << ")'s counts_per_ charge is " << nodes_counts_per_charge<< ".");233 if (counts_per_ charge == nodes_counts_per_charge)228 LOG(1, "DEBUG: Node (" << *iter << ")'s counts_per_element is " << nodes_counts_per_element << "."); 229 if (counts_per_element == nodes_counts_per_element) 234 230 return *iter; 235 231 } -
src/Potentials/SerializablePotential.hpp
rc93e58 rbe20db 39 39 public: 40 40 //!> typedef for particle designation 41 typedef int ParticleType_t;41 typedef unsigned int ParticleType_t; 42 42 //!> typedef for a vector of particle designations 43 43 typedef std::vector<ParticleType_t> ParticleTypes_t; -
src/documentation/constructs/potentials.dox
rc93e58 rbe20db 158 158 * HomologyContainer homologies; 159 159 * const HomologyGraph graph = getSomeGraph(homologies); 160 * Fragment:: charges_t h2o;160 * Fragment::atomicnumbers_t h2o; 161 161 * h2o += 8,1,1; 162 162 * // TrainingData needs so called Extractors to get the required distances … … 165 165 * boost::bind(&Extractors::gatherDistancesFromFragment, 166 166 * boost::bind(&Fragment::getPositions, _1), 167 * boost::bind(&Fragment::get Charges, _1),167 * boost::bind(&Fragment::getAtomicNumbers, _1), 168 168 * boost::cref(h2o), 169 169 * _2)
Note:
See TracChangeset
for help on using the changeset viewer.
