Changes in src/moleculelist.cpp [c27778:389cc8]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/moleculelist.cpp
rc27778 r389cc8 5 5 */ 6 6 7 #ifdef HAVE_CONFIG_H 8 #include <config.h> 9 #endif 10 7 11 #include "Helpers/MemDebug.hpp" 8 12 9 13 #include <cstring> 14 15 #include <gsl/gsl_inline.h> 16 #include <gsl/gsl_heapsort.h> 10 17 11 18 #include "World.hpp" … … 19 26 #include "linkedcell.hpp" 20 27 #include "lists.hpp" 28 #include "verbose.hpp" 21 29 #include "log.hpp" 22 30 #include "molecule.hpp" 23 #include "memoryallocator.hpp"24 31 #include "periodentafel.hpp" 25 32 #include "Helpers/Assert.hpp" 33 #include "Matrix.hpp" 34 #include "Box.hpp" 35 #include "stackclass.hpp" 26 36 27 37 #include "Helpers/Assert.hpp" … … 587 597 periodentafel::const_iterator elemIter; 588 598 for(elemIter=periode->begin();elemIter!=periode->end();++elemIter){ 589 if ((*ListRunner)-> ElementsInMolecule[(*elemIter).first]) { // if this element got atoms599 if ((*ListRunner)->hasElement((*elemIter).first)) { // if this element got atoms 590 600 for(molecule::iterator atomIter = (*ListRunner)->begin(); atomIter !=(*ListRunner)->end();++atomIter){ 591 601 if ((*atomIter)->type->getNumber() == (*elemIter).first) { … … 631 641 int FragmentCounter = 0; 632 642 ofstream output; 633 double cell_size_backup[6]; 634 double * const cell_size = World::getInstance().getDomain(); 635 636 // backup cell_size 637 for (int i=0;i<6;i++) 638 cell_size_backup[i] = cell_size[i]; 643 Matrix cell_size = World::getInstance().getDomain().getM(); 644 Matrix cell_size_backup = cell_size; 645 639 646 // store the fragments as config and as xyz 640 647 for (MoleculeList::iterator ListRunner = ListOfMolecules.begin(); ListRunner != ListOfMolecules.end(); ListRunner++) { … … 674 681 (*ListRunner)->CenterEdge(&BoxDimension); 675 682 (*ListRunner)->SetBoxDimension(&BoxDimension); // update Box of atoms by boundary 676 int j = -1;677 683 for (int k = 0; k < NDIM; k++) { 678 j += k + 1;679 684 BoxDimension[k] = 2.5 * (World::getInstance().getConfig()->GetIsAngstroem() ? 1. : 1. / AtomicLengthToAngstroem); 680 cell_size[j] = BoxDimension[k] * 2.; 681 } 685 cell_size.at(k,k) = BoxDimension[k] * 2.; 686 } 687 World::getInstance().setDomain(cell_size); 682 688 (*ListRunner)->Translate(&BoxDimension); 683 689 684 690 // also calculate necessary orbitals 685 (*ListRunner)->CountElements(); // this is a bugfix, atoms should shoulds actually be added correctly to this fragment686 691 //(*ListRunner)->CalculateOrbitals(*World::getInstance().getConfig); 687 692 … … 725 730 726 731 // restore cell_size 727 for (int i=0;i<6;i++) 728 cell_size[i] = cell_size_backup[i]; 732 World::getInstance().setDomain(cell_size_backup); 729 733 730 734 return result; … … 887 891 // center at set box dimensions 888 892 mol->CenterEdge(¢er); 889 World::getInstance().getDomain()[0] = center[0]; 890 World::getInstance().getDomain()[1] = 0; 891 World::getInstance().getDomain()[2] = center[1]; 892 World::getInstance().getDomain()[3] = 0; 893 World::getInstance().getDomain()[4] = 0; 894 World::getInstance().getDomain()[5] = center[2]; 893 Matrix domain; 894 for(int i =0;i<NDIM;++i) 895 domain.at(i,i) = center[i]; 896 World::getInstance().setDomain(domain); 895 897 insert(mol); 896 898 }
Note:
See TracChangeset
for help on using the changeset viewer.