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