Changes in src/molecule.cpp [906822:c94eeb]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/molecule.cpp
r906822 rc94eeb 27 27 #include "tesselation.hpp" 28 28 #include "vector.hpp" 29 #include "Matrix.hpp" 29 30 #include "World.hpp" 30 31 #include "Plane.hpp" … … 79 80 void molecule::setName(const std::string _name){ 80 81 OBSERVE; 82 cout << "Set name of molecule " << getId() << " to " << _name << endl; 81 83 strncpy(name,_name.c_str(),MAXSTRINGSIZE); 82 84 } … … 283 285 Vector Orthovector1, Orthovector2; // temporary vectors in coordination construction 284 286 Vector InBondvector; // vector in direction of *Bond 285 double *matrix = NULL;287 Matrix matrix; 286 288 bond *Binder = NULL; 287 289 double * const cell_size = World::getInstance().getDomain(); … … 306 308 } // (signs are correct, was tested!) 307 309 } 308 matrix = ReturnFullMatrixforSymmetric(cell_size); 310 double *matrix_double = ReturnFullMatrixforSymmetric(cell_size); 311 matrix = Matrix(matrix_double); 312 delete[](matrix_double); 309 313 Orthovector1.MatrixMultiplication(matrix); 310 314 InBondvector -= Orthovector1; // subtract just the additional translation 311 delete[](matrix);312 315 bondlength = InBondvector.Norm(); 313 316 // Log() << Verbose(4) << "Corrected InBondvector is now: "; … … 540 543 break; 541 544 } 542 delete[](matrix);543 545 544 546 // Log() << Verbose(3) << "End of AddHydrogenReplacementAtom." << endl; … … 739 741 else 740 742 length = strlen(molname) - strlen(endname); 743 cout << "Set name of molecule " << getId() << " to " << molname << endl; 741 744 strncpy(name, molname, length); 742 745 name[length]='\0'; … … 880 883 ElementNo[i] = current++; 881 884 } 882 ActOnAllAtoms( &atom::OutputArrayIndexed, output, (const int *)ElementNo, (int *)AtomNo, (const char *) NULL );885 ActOnAllAtoms( &atom::OutputArrayIndexed, (ostream * const) output, (const int *)ElementNo, (int *)AtomNo, (const char *) NULL ); 883 886 return true; 884 887 } … … 1003 1006 for(int i=MAX_ELEMENTS;i--;) 1004 1007 ElementCount += (ElementsInMolecule[i] != 0 ? 1 : 0); 1005 };1006 1007 1008 /** Counts necessary number of valence electrons and returns number and SpinType.1009 * \param configuration containing everything1010 */1011 void molecule::CalculateOrbitals(class config &configuration)1012 {1013 configuration.MaxPsiDouble = configuration.PsiMaxNoDown = configuration.PsiMaxNoUp = configuration.PsiType = 0;1014 for(int i=MAX_ELEMENTS;i--;) {1015 if (ElementsInMolecule[i] != 0) {1016 //Log() << Verbose(0) << "CalculateOrbitals: " << elemente->FindElement(i)->name << " has a valence of " << (int)elemente->FindElement(i)->Valence << " and there are " << ElementsInMolecule[i] << " of it." << endl;1017 configuration.MaxPsiDouble += ElementsInMolecule[i]*((int)elemente->FindElement(i)->Valence);1018 }1019 }1020 configuration.PsiMaxNoDown = configuration.MaxPsiDouble/2 + (configuration.MaxPsiDouble % 2);1021 configuration.PsiMaxNoUp = configuration.MaxPsiDouble/2;1022 configuration.MaxPsiDouble /= 2;1023 configuration.PsiType = (configuration.PsiMaxNoDown == configuration.PsiMaxNoUp) ? 0 : 1;1024 if ((configuration.PsiType == 1) && (configuration.ProcPEPsi < 2) && ((configuration.PsiMaxNoDown != 1) || (configuration.PsiMaxNoUp != 0))) {1025 configuration.ProcPEGamma /= 2;1026 configuration.ProcPEPsi *= 2;1027 } else {1028 configuration.ProcPEGamma *= configuration.ProcPEPsi;1029 configuration.ProcPEPsi = 1;1030 }1031 cout << configuration.PsiMaxNoDown << ">" << configuration.PsiMaxNoUp << endl;1032 if (configuration.PsiMaxNoDown > configuration.PsiMaxNoUp) {1033 configuration.InitMaxMinStopStep = configuration.MaxMinStopStep = configuration.PsiMaxNoDown;1034 cout << configuration.PsiMaxNoDown << " " << configuration.InitMaxMinStopStep << endl;1035 } else {1036 configuration.InitMaxMinStopStep = configuration.MaxMinStopStep = configuration.PsiMaxNoUp;1037 cout << configuration.PsiMaxNoUp << " " << configuration.InitMaxMinStopStep << endl;1038 }1039 1008 }; 1040 1009
Note:
See TracChangeset
for help on using the changeset viewer.