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