Changeset 5dba7a for molecuilder/src/moleculelist.cpp
- Timestamp:
- Mar 12, 2010, 1:16:01 PM (16 years ago)
- Children:
- d639c7
- Parents:
- 1e0785
- File:
-
- 1 edited
-
molecuilder/src/moleculelist.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
molecuilder/src/moleculelist.cpp
r1e0785 r5dba7a 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 … … 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
Note:
See TracChangeset
for help on using the changeset viewer.
