Changes in src/moleculelist.cpp [24a5e0:ead4e6]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/moleculelist.cpp
r24a5e0 read4e6 141 141 void MoleculeListClass::Enumerate(ostream *out) 142 142 { 143 element* Elemental = NULL;144 143 atom *Walker = NULL; 145 int Counts[MAX_ELEMENTS]; 144 periodentafel *periode = World::getInstance().getPeriode(); 145 std::map<atomicNumber_t,unsigned int> counts; 146 146 double size=0; 147 147 Vector Origin; … … 155 155 Origin.Zero(); 156 156 for (MoleculeList::iterator ListRunner = ListOfMolecules.begin(); ListRunner != ListOfMolecules.end(); ListRunner++) { 157 // reset element counts158 for (int j = 0; j<MAX_ELEMENTS;j++)159 Counts[j] = 0;160 157 // count atoms per element and determine size of bounding sphere 161 158 size=0.; … … 163 160 while (Walker->next != (*ListRunner)->end) { 164 161 Walker = Walker->next; 165 Counts[Walker->type->Z]++;162 counts[Walker->type->getNumber()]++; 166 163 if (Walker->x.DistanceSquared(&Origin) > size) 167 164 size = Walker->x.DistanceSquared(&Origin); … … 169 166 // output Index, Name, number of atoms, chemical formula 170 167 (*out) << ((*ListRunner)->ActiveFlag ? "*" : " ") << (*ListRunner)->IndexNr << "\t" << (*ListRunner)->name << "\t\t" << (*ListRunner)->AtomCount << "\t"; 171 Elemental = (*ListRunner)->elemente->end; 172 while(Elemental->previous != (*ListRunner)->elemente->start) {173 Elemental = Elemental->previous;174 if (Counts[Elemental->Z] != 0)175 (*out) << Elemental->symbol << Counts[Elemental->Z];168 169 std::map<atomicNumber_t,unsigned int>::reverse_iterator iter; 170 for(iter=counts.rbegin(); iter!=counts.rend();++iter){ 171 atomicNumber_t Z =(*iter).first; 172 (*out) << periode->FindElement(Z)->getSymbol() << (*iter).second; 176 173 } 177 174 // Center and size … … 215 212 // remove src 216 213 ListOfMolecules.remove(srcmol); 217 World::get ()->destroyMolecule(srcmol);214 World::getInstance().destroyMolecule(srcmol); 218 215 return true; 219 216 }; … … 580 577 stringstream line; 581 578 atom *Walker = NULL; 582 element *runner = NULL;579 periodentafel *periode=World::getInstance().getPeriode(); 583 580 584 581 // open file for the force factors … … 590 587 //output << prefix << "Forces" << endl; 591 588 for (MoleculeList::iterator ListRunner = ListOfMolecules.begin(); ListRunner != ListOfMolecules.end(); ListRunner++) { 592 runner = (*ListRunner)->elemente->start; 593 while (runner->next != (*ListRunner)->elemente->end) { // go through every element 594 runner = runner->next; 595 if ((*ListRunner)->ElementsInMolecule[runner->Z]) { // if this element got atoms 589 periodentafel::const_iterator elemIter; 590 for(elemIter=periode->begin();elemIter!=periode->end();++elemIter){ 591 if ((*ListRunner)->ElementsInMolecule[(*elemIter).first]) { // if this element got atoms 596 592 Walker = (*ListRunner)->start; 597 593 while (Walker->next != (*ListRunner)->end) { // go through every atom of this element 598 594 Walker = Walker->next; 599 if (Walker->type-> Z == runner->Z) {595 if (Walker->type->getNumber() == (*elemIter).first) { 600 596 if ((Walker->GetTrueFather() != NULL) && (Walker->GetTrueFather() != Walker)) {// if there is a rea 601 597 //Log() << Verbose(0) << "Walker is " << *Walker << " with true father " << *( Walker->GetTrueFather()) << ", it … … 750 746 void MoleculeListClass::DissectMoleculeIntoConnectedSubgraphs(const periodentafel * const periode, config * const configuration) 751 747 { 752 molecule *mol = World::get ()->createMolecule();748 molecule *mol = World::getInstance().createMolecule(); 753 749 atom *Walker = NULL; 754 750 atom *Advancer = NULL; … … 775 771 } 776 772 // remove the molecule 777 World::get ()->destroyMolecule(*MolRunner);773 World::getInstance().destroyMolecule(*MolRunner); 778 774 ListOfMolecules.erase(MolRunner); 779 775 } … … 797 793 molecule **molecules = Malloc<molecule *>(MolCount, "config::Load() - **molecules"); 798 794 for (int i=0;i<MolCount;i++) { 799 molecules[i] = World::get ()->createMolecule();795 molecules[i] = World::getInstance().createMolecule(); 800 796 molecules[i]->ActiveFlag = true; 801 797 strncpy(molecules[i]->name, mol->name, MAXSTRINGSIZE); … … 895 891 OBSERVE; 896 892 molecule *mol = NULL; 897 mol = World::get ()->createMolecule();893 mol = World::getInstance().createMolecule(); 898 894 insert(mol); 899 895 }; … … 904 900 char filename[MAXSTRINGSIZE]; 905 901 Log() << Verbose(0) << "Format should be XYZ with: ShorthandOfElement\tX\tY\tZ" << endl; 906 mol = World::get ()->createMolecule();902 mol = World::getInstance().createMolecule(); 907 903 do { 908 904 Log() << Verbose(0) << "Enter file name: "; … … 962 958 mol = *ListRunner; 963 959 ListOfMolecules.erase(ListRunner); 964 World::get ()->destroyMolecule(mol);960 World::getInstance().destroyMolecule(mol); 965 961 break; 966 962 } … … 1009 1005 // remove the leaf itself 1010 1006 if (Leaf != NULL) { 1011 World::get ()->destroyMolecule(Leaf);1007 World::getInstance().destroyMolecule(Leaf); 1012 1008 Leaf = NULL; 1013 1009 }
Note:
See TracChangeset
for help on using the changeset viewer.