Changes in / [60f50a:9757d9]
- Files:
-
- 46 added
- 38 deleted
- 52 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile.am
r60f50a r9757d9 1 1 ACLOCAL_AMFLAGS = -I m4 2 SUBDIRS = src src/ unittests doc tests2 SUBDIRS = src src/Actions src/unittests doc tests 3 3 4 4 EXTRA_DIST = autogen.sh -
configure.ac
r60f50a r9757d9 94 94 # test suite 95 95 AC_CONFIG_TESTDIR(tests) 96 AC_CONFIG_FILES([tests/atlocal tests/Makefile]) 97 AC_CONFIG_FILES([tests/Tesselations/Makefile tests/Tesselations/defs]) 96 AC_CONFIG_FILES([ 97 tests/atlocal 98 tests/Makefile]) 99 AC_CONFIG_FILES([ 100 tests/Tesselations/Makefile 101 tests/Tesselations/defs]) 98 102 AC_CONFIG_FILES([tests/molecuilder], [chmod +x tests/molecuilder]) 99 AC_CONFIG_FILES([doc/molecuilder.xml]) 100 AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile src/unittests/Makefile]) 103 AC_CONFIG_FILES([ 104 doc/molecuilder.xml]) 105 AC_CONFIG_FILES([ 106 Makefile 107 doc/Makefile 108 src/Makefile 109 src/Actions/Makefile 110 src/UIElements/Makefile 111 src/unittests/Makefile]) 101 112 AC_OUTPUT -
src/Actions/MapOfActions.cpp
r60f50a r9757d9 123 123 ShortFormMap["suspend-in-water"] = "U"; 124 124 ShortFormMap["translate-mol"] = "t"; 125 ShortFormMap["verbose"] = " V";125 ShortFormMap["verbose"] = "v"; 126 126 ShortFormMap["verlet-integrate"] = "P"; 127 ShortFormMap["version"] = " v";127 ShortFormMap["version"] = "V"; 128 128 129 129 // value types for the actions -
src/Helpers/MemDebug.cpp
r60f50a r9757d9 153 153 // build the entry in front of the space 154 154 Memory::entry_t *entry = (Memory::entry_t*) res; 155 memset(res,0,entrySpace); 155 156 entry->info.nbytes = nbytes; 156 157 entry->info.isUsed = true; -
src/Makefile.am
r60f50a r9757d9 1 1 # PLEASE adhere to the alphabetical ordering in this Makefile! 2 2 # Also indentation by a single tab 3 4 SUBDIRS = Actions UIElements 3 5 4 6 # this includes source files that need to be present at multiple points … … 49 51 analysis_correlation.hpp 50 52 51 ACTIONSSOURCE = Actions/Action.cpp \ 52 ${ANALYSISACTIONSOURCE} \ 53 ${ATOMACTIONSOURCE} \ 54 ${CMDACTIONSOURCE} \ 55 ${FRAGMENTATIONACTIONSOURCE} \ 56 ${MOLECULEACTIONSOURCE} \ 57 ${PARSERACTIONSOURCE} \ 58 ${TESSELATIONACTIONSOURCE} \ 59 ${WORLDACTIONSOURCE} \ 53 ACTIONSSOURCE = \ 54 Actions/Action.cpp \ 60 55 Actions/ActionHistory.cpp \ 61 56 Actions/ActionRegistry.cpp \ … … 64 59 Actions/MakroAction.cpp \ 65 60 Actions/ManipulateAtomsProcess.cpp \ 66 Actions/MapOfActions.cpp \67 61 Actions/MethodAction.cpp \ 68 62 Actions/Process.cpp 69 63 70 ACTIONSHEADER = Actions/Action.hpp\64 ACTIONSHEADER = \ 71 65 ${ANALYSISACTIONHEADER} \ 72 66 ${ATOMACTIONHEADER} \ … … 77 71 ${TESSELATIONACTIONHEADER} \ 78 72 ${WORLDACTIONHEADER} \ 73 Actions/Action.hpp \ 79 74 Actions/ActionHistory.hpp \ 80 75 Actions/ActionRegistry.hpp \ … … 89 84 Actions/Process.hpp 90 85 91 ANALYSISACTIONSOURCE = \92 Actions/AnalysisAction/MolecularVolumeAction.cpp \93 Actions/AnalysisAction/PairCorrelationAction.cpp \94 Actions/AnalysisAction/PairCorrelationToPointAction.cpp \95 Actions/AnalysisAction/PairCorrelationToSurfaceAction.cpp \96 Actions/AnalysisAction/PrincipalAxisSystemAction.cpp97 ANALYSISACTIONHEADER = \98 Actions/AnalysisAction/MolecularVolumeAction.hpp \99 Actions/AnalysisAction/PairCorrelationAction.hpp \100 Actions/AnalysisAction/PairCorrelationToPointAction.hpp \101 Actions/AnalysisAction/PairCorrelationToSurfaceAction.hpp \102 Actions/AnalysisAction/PrincipalAxisSystemAction.hpp103 104 ATOMACTIONSOURCE = \105 Actions/AtomAction/AddAction.cpp \106 Actions/AtomAction/ChangeElementAction.cpp \107 Actions/AtomAction/RemoveAction.cpp108 ATOMACTIONHEADER = \109 Actions/AtomAction/AddAction.hpp \110 Actions/AtomAction/ChangeElementAction.hpp \111 Actions/AtomAction/RemoveAction.cpp112 113 CMDACTIONSOURCE = \114 Actions/CmdAction/BondLengthTableAction.cpp \115 Actions/CmdAction/ElementDbAction.cpp \116 Actions/CmdAction/FastParsingAction.cpp \117 Actions/CmdAction/HelpAction.cpp \118 Actions/CmdAction/VerboseAction.cpp \119 Actions/CmdAction/VersionAction.cpp120 CMDACTIONHEADER = \121 Actions/CmdAction/BondLengthTableAction.hpp \122 Actions/CmdAction/ElementDbAction.hpp \123 Actions/CmdAction/FastParsingAction.hpp \124 Actions/CmdAction/HelpAction.hpp \125 Actions/CmdAction/VerboseAction.hpp \126 Actions/CmdAction/VersionAction.hpp127 128 FRAGMENTATIONACTIONSOURCE = \129 Actions/FragmentationAction/DepthFirstSearchAction.cpp \130 Actions/FragmentationAction/FragmentationAction.cpp \131 Actions/FragmentationAction/SubgraphDissectionAction.cpp132 FRAGMENTATIONACTIONHEADER = \133 Actions/FragmentationAction/DepthFirstSearchAction.hpp \134 Actions/FragmentationAction/FragmentationAction.hpp \135 Actions/FragmentationAction/SubgraphDissectionAction.hpp136 137 MOLECULEACTIONSOURCE = \138 Actions/MoleculeAction/BondFileAction.cpp \139 Actions/MoleculeAction/ChangeNameAction.cpp \140 Actions/MoleculeAction/FillWithMoleculeAction.cpp \141 Actions/MoleculeAction/LinearInterpolationofTrajectoriesAction.cpp \142 Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.cpp \143 Actions/MoleculeAction/SaveAdjacencyAction.cpp \144 Actions/MoleculeAction/SaveBondsAction.cpp \145 Actions/MoleculeAction/SaveTemperatureAction.cpp \146 Actions/MoleculeAction/SuspendInWaterAction.cpp \147 Actions/MoleculeAction/TranslateAction.cpp \148 Actions/MoleculeAction/VerletIntegrationAction.cpp149 MOLECULEACTIONHEADER = \150 Actions/MoleculeAction/BondFileAction.hpp \151 Actions/MoleculeAction/ChangeNameAction.hpp \152 Actions/MoleculeAction/FillWithMoleculeAction.hpp \153 Actions/MoleculeAction/LinearInterpolationofTrajectoriesAction.hpp \154 Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.hpp \155 Actions/MoleculeAction/SaveAdjacencyAction.hpp \156 Actions/MoleculeAction/SaveBondsAction.hpp \157 Actions/MoleculeAction/SaveTemperatureAction.hpp \158 Actions/MoleculeAction/SuspendInWaterAction.hpp \159 Actions/MoleculeAction/TranslateAction.hpp \160 Actions/MoleculeAction/VerletIntegrationAction.hpp161 162 PARSERACTIONSOURCE = \163 Actions/ParserAction/LoadXyzAction.cpp \164 Actions/ParserAction/SaveXyzAction.cpp165 PARSERACTIONHEADER = \166 Actions/ParserAction/LoadXyzAction.hpp \167 Actions/ParserAction/SaveXyzAction.hpp168 169 TESSELATIONACTIONSOURCE = \170 Actions/TesselationAction/ConvexEnvelopeAction.cpp \171 Actions/TesselationAction/NonConvexEnvelopeAction.cpp172 TESSELATIONACTIONHEADER = \173 Actions/TesselationAction/ConvexEnvelopeAction.hpp \174 Actions/TesselationAction/NonConvexEnvelopeAction.hpp175 176 WORLDACTIONSOURCE = \177 Actions/WorldAction/AddEmptyBoundaryAction.cpp \178 Actions/WorldAction/BoundInBoxAction.cpp \179 Actions/WorldAction/CenterInBoxAction.cpp \180 Actions/WorldAction/CenterOnEdgeAction.cpp \181 Actions/WorldAction/ChangeBoxAction.cpp \182 Actions/WorldAction/RemoveSphereOfAtomsAction.cpp \183 Actions/WorldAction/RepeatBoxAction.cpp \184 Actions/WorldAction/ScaleBoxAction.cpp \185 Actions/WorldAction/SetDefaultNameAction.cpp \186 Actions/WorldAction/SetGaussianBasisAction.cpp187 WORLDACTIONHEADER = \188 Actions/WorldAction/AddEmptyBoundaryAction.hpp \189 Actions/WorldAction/BoundInBoxAction.hpp \190 Actions/WorldAction/CenterInBoxAction.hpp \191 Actions/WorldAction/CenterOnEdgeAction.hpp \192 Actions/WorldAction/ChangeBoxAction.hpp \193 Actions/WorldAction/RemoveSphereOfAtomsAction.hpp \194 Actions/WorldAction/RepeatBoxAction.hpp \195 Actions/WorldAction/ScaleBoxAction.hpp \196 Actions/WorldAction/SetDefaultNameAction.hpp \197 Actions/WorldAction/SetGaussianBasisAction.hpp198 199 200 86 201 87 PARSERSOURCE = \ … … 216 102 Patterns/Observer.hpp \ 217 103 Patterns/Singleton.hpp 218 219 # Below is all for the User Interface220 221 VIEWSOURCE = \222 Views/View.cpp \223 Views/StringView.cpp \224 Views/MethodStringView.cpp \225 Views/StreamStringView.cpp226 VIEWHEADER = \227 Views/View.hpp \228 Views/StringView.hpp \229 Views/MethodStringView.hpp \230 Views/StreamStringView.hpp231 232 MENUSOURCE = \233 Menu/Menu.cpp \234 Menu/TextMenu.cpp \235 Menu/MenuItem.cpp \236 Menu/SubMenuItem.cpp \237 Menu/ActionMenuItem.cpp \238 Menu/SeperatorItem.cpp \239 Menu/DisplayMenuItem.cpp240 241 MENUHEADER = \242 Menu/Menu.hpp \243 Menu/TextMenu.hpp \244 Menu/MenuItem.hpp \245 Menu/SubMenuItem.hpp \246 Menu/ActionMenuItem.hpp \247 Menu/SeperatorItem.hpp \248 Menu/DisplayMenuItem.hpp249 250 UISOURCE = \251 ${ACTIONSSOURCE} \252 ${COMMANDLINEUISOURCE} \253 ${MENUSOURCE} \254 ${TEXTUISOURCE} \255 ${VIEWSOURCE} \256 UIElements/Dialog.cpp \257 UIElements/MainWindow.cpp \258 UIElements/UIFactory.cpp259 260 UIHEADER = \261 ${ACTIONSHEADER} \262 ${COMMANDLINEUIHEADER} \263 ${MENUHEADER} \264 ${TEXTUIHEADER} \265 ${VIEWHEADER} \266 UIElements/Dialog.hpp \267 UIElements/MainWindow.hpp \268 UIElements/UIFactory.hpp269 270 TEXTUISOURCE = \271 UIElements/TextDialog.cpp \272 UIElements/TextStatusIndicator.cpp \273 UIElements/TextUIFactory.cpp \274 UIElements/TextWindow.cpp275 TEXTUIHEADER = \276 UIElements/TextDialog.hpp \277 UIElements/TextStatusIndicator.hpp \278 UIElements/TextUIFactory.hpp \279 UIElements/TextWindow.hpp280 281 COMMANDLINEUISOURCE = \282 UIElements/CommandLineDialog.cpp \283 UIElements/CommandLineStatusIndicator.cpp \284 UIElements/CommandLineUIFactory.cpp \285 UIElements/CommandLineWindow.cpp286 COMMANDLINEUIHEADER = \287 UIElements/CommandLineDialog.hpp \288 UIElements/CommandLineStatusIndicator.hpp \289 UIElements/CommandLineUIFactory.hpp \290 UIElements/CommandLineWindow.hpp291 104 292 105 # all these files are only used for legacy reasons while the transition is in progress … … 321 134 SOURCE = \ 322 135 ${ANALYSISSOURCE} \ 136 ${ACTIONSSOURCE} \ 323 137 ${ATOMSOURCE} \ 324 138 ${PATTERNSOURCE} \ 325 139 ${PARSERSOURCE} \ 326 ${UISOURCE} \327 140 ${DESCRIPTORSOURCE} \ 328 141 ${HELPERSOURCE} \ … … 335 148 config.cpp \ 336 149 element.cpp \ 150 elements_db.cpp \ 337 151 ellipsoid.cpp \ 338 152 errorlogger.cpp \ … … 366 180 HEADER = \ 367 181 ${ANALYSISHEADER} \ 182 ${ACTIONSHEADER} \ 368 183 ${ATOMHEADER} \ 369 184 ${PARSERHEADER} \ 370 185 ${PATTERNHEADER} \ 371 ${UIHEADER} \372 186 ${DESCRIPTORHEADER} \ 373 187 ${EXCEPTIONHEADER} \ … … 380 194 defs.hpp \ 381 195 element.hpp \ 196 elements_db.hpp \ 382 197 ellipsoid.hpp \ 383 198 errorlogger.hpp \ … … 407 222 408 223 BOOST_LIB = $(BOOST_LDFLAGS) $(BOOST_MPL_LIB) 409 INCLUDES = -I$(top_srcdir)/src/unittests 224 INCLUDES = -I$(top_srcdir)/src/unittests -I$(top_srcdir)/src/Actions -I$(top_srcdir)/src/UIElements 410 225 411 226 noinst_LIBRARIES = libmolecuilder.a libgslwrapper.a … … 414 229 libmolecuilder_a_SOURCES = ${SOURCE} ${HEADER} 415 230 libgslwrapper_a_SOURCES = ${LINALGSOURCE} ${LINALGHEADER} 416 molecuilder_DATA = elements.db valence.db orbitals.db Hbonddistance.db Hbondangle.db417 231 molecuilder_LDFLAGS = $(BOOST_LDFLAGS) 418 232 molecuilder_SOURCES = builder.cpp 419 molecuilder_LDADD = libmolecuilder.a libgslwrapper.a $(BOOST_LIB) ${BOOST_THREAD_LIB} ${BOOST_PROGRAM_OPTIONS_LIB}233 molecuilder_LDADD = UIElements/libMolecuilderUI.a Actions/libMolecuilderActions.a libmolecuilder.a libgslwrapper.a $(BOOST_LIB) ${BOOST_THREAD_LIB} ${BOOST_PROGRAM_OPTIONS_LIB} 420 234 joiner_SOURCES = joiner.cpp datacreator.cpp parser.cpp datacreator.hpp helpers.hpp parser.hpp periodentafel.hpp 421 235 joiner_LDADD = libmolecuilder.a $(BOOST_LIB) ${BOOST_THREAD_LIB} -
src/UIElements/Dialog.cpp
r60f50a r9757d9 8 8 #include <cassert> 9 9 10 #include " UIElements/Dialog.hpp"10 #include "Dialog.hpp" 11 11 12 12 #include "atom.hpp" -
src/UIElements/MainWindow.cpp
r60f50a r9757d9 6 6 */ 7 7 8 #include " UIElements/MainWindow.hpp"8 #include "MainWindow.hpp" 9 9 10 10 MainWindow::MainWindow() -
src/UIElements/UIFactory.cpp
r60f50a r9757d9 9 9 #include <cassert> 10 10 #include "Patterns/Singleton_impl.hpp" 11 #include "UI Elements/UIFactory.hpp"11 #include "UIFactory.hpp" 12 12 13 13 // all factories that can be used: 14 #include " UIElements/TextUIFactory.hpp"15 #include " UIElements/CommandLineUIFactory.hpp"14 #include "TextUI/TextUIFactory.hpp" 15 #include "CommandLineUI/CommandLineUIFactory.hpp" 16 16 17 17 UIFactory::UIFactory() -
src/analysis_bonds.cpp
r60f50a r9757d9 51 51 * \param &Max maximum distance on return, 0 if no bond between the two elements 52 52 */ 53 void MinMeanMaxBondDistanceBetweenElements(const molecule *mol, element *type1,element *type2, double &Min, double &Mean, double &Max)53 void MinMeanMaxBondDistanceBetweenElements(const molecule *mol, const element *type1, const element *type2, double &Min, double &Mean, double &Max) 54 54 { 55 55 Min = 2e+6; … … 124 124 * \param *InterfaceElement or NULL 125 125 */ 126 int CountHydrogenBridgeBonds(MoleculeListClass *molecules, element * InterfaceElement = NULL)126 int CountHydrogenBridgeBonds(MoleculeListClass *molecules, const element * InterfaceElement = NULL) 127 127 { 128 128 atom *Walker = NULL; … … 181 181 // check angle 182 182 if (CheckHydrogenBridgeBondAngle(Walker, OtherAtom, Runner)) { 183 DoLog(1) && (Log() << Verbose(1) << Walker-> Name << ", " << OtherAtom->Name << " and " << Runner->Name<< " has a hydrogen bridge bond with distance " << sqrt(distance) << " and angle " << CalculateAngle(&OtherAtom->x, &Walker->x, &Runner->x)*(180./M_PI) << "." << endl);183 DoLog(1) && (Log() << Verbose(1) << Walker->getName() << ", " << OtherAtom->getName() << " and " << Runner->getName() << " has a hydrogen bridge bond with distance " << sqrt(distance) << " and angle " << CalculateAngle(&OtherAtom->x, &Walker->x, &Runner->x)*(180./M_PI) << "." << endl); 184 184 count++; 185 185 break; -
src/analysis_bonds.hpp
r60f50a r9757d9 31 31 32 32 void GetMaxMinMeanBondCount(const molecule * const mol, double &Min, double &Mean, double &Max); 33 void MinMeanMaxBondDistanceBetweenElements(const molecule *mol, element *type1,element *type2, double &Min, double &Mean, double &Max);33 void MinMeanMaxBondDistanceBetweenElements(const molecule *mol, const element *type1, const element *type2, double &Min, double &Mean, double &Max); 34 34 35 int CountHydrogenBridgeBonds(MoleculeListClass * const molecules, element * InterfaceElement);35 int CountHydrogenBridgeBonds(MoleculeListClass * const molecules, const element * InterfaceElement); 36 36 int CountBondsOfTwo(MoleculeListClass * const molecules, const element * const first, const element * const second); 37 37 int CountBondsOfThree(MoleculeListClass * const molecules, const element * const first, const element * const second, const element * const third); -
src/atom.cpp
r60f50a r9757d9 40 40 41 41 atom *atom::clone(){ 42 atom *res = new atom( );42 atom *res = new atom(this); 43 43 res->previous=0; 44 44 res->next=0; -
src/atom_bondedparticle.cpp
r60f50a r9757d9 44 44 void BondedParticle::OutputBondOfAtom() const 45 45 { 46 DoLog(4) && (Log() << Verbose(4) << "Atom " << Name<< "/" << nr << " with " << ListOfBonds.size() << " bonds: " << endl);46 DoLog(4) && (Log() << Verbose(4) << "Atom " << getName() << "/" << nr << " with " << ListOfBonds.size() << " bonds: " << endl); 47 47 int TotalDegree = 0; 48 48 for (BondList::const_iterator Runner = ListOfBonds.begin(); Runner != ListOfBonds.end(); ++Runner) { -
src/atom_graphnode.cpp
r60f50a r9757d9 27 27 void GraphNode::OutputGraphInfo() const 28 28 { 29 DoLog(2) && (Log() << Verbose(2) << "Atom " << Name<< " is " << ((SeparationVertex) ? "a" : "not a") << " separation vertex, components are ");29 DoLog(2) && (Log() << Verbose(2) << "Atom " << getName() << " is " << ((SeparationVertex) ? "a" : "not a") << " separation vertex, components are "); 30 30 OutputComponentNumber(); 31 31 DoLog(3) && (Log() << Verbose(3) << " with Lowpoint " << LowpointNr << " and Graph Nr. " << GraphNr << "." << endl); -
src/atom_particleinfo.cpp
r60f50a r9757d9 11 11 /** Constructor of ParticleInfo. 12 12 */ 13 ParticleInfo::ParticleInfo() : nr(-1), Name(NULL) {}; 13 ParticleInfo::ParticleInfo() : nr(-1), name("Unknown") { 14 }; 14 15 15 16 ParticleInfo::ParticleInfo(ParticleInfo *pointer) : 16 17 nr(pointer->nr), 17 Name(pointer->Name) 18 { 19 if (Name == NULL) 20 Name = " "; 21 } 18 name(pointer->name) 19 {} 22 20 23 21 … … 25 23 */ 26 24 ParticleInfo::~ParticleInfo() 27 { 28 Free(&Name); 29 }; 25 {}; 26 27 const string& ParticleInfo::getName() const{ 28 return name; 29 } 30 31 void ParticleInfo::setName(const string& _name){ 32 name = _name; 33 } 30 34 31 35 ostream & operator << (ostream &ost, const ParticleInfo &a) 32 36 { 33 if (a.Name == NULL) 34 ost << "[NULL]"; 35 else 36 ost << "[" << a.Name << "|" << &a << "]"; 37 ost << "[" << a.getName() << "|" << &a << "]"; 37 38 return ost; 38 39 }; … … 40 41 ostream & ParticleInfo::operator << (ostream &ost) const 41 42 { 42 if (Name == NULL) 43 ost << "[NULL]"; 44 else 45 ost << "[" << Name << "|" << this << "]"; 43 ost << "[" << name << "|" << this << "]"; 46 44 return ost; 47 45 }; -
src/atom_particleinfo.hpp
r60f50a r9757d9 28 28 public: 29 29 int nr; // index to easierly identify 30 char *Name; // some name to reference to on output31 30 32 31 ParticleInfo(); … … 34 33 ~ParticleInfo(); 35 34 35 const std::string& getName() const; 36 void setName(const std::string&); 37 36 38 ostream & operator << (ostream &ost) const; 37 39 38 40 private: 41 std::string name; // some name to reference to on output 39 42 }; 40 43 -
src/bond.cpp
r60f50a r9757d9 53 53 ostream & operator << (ostream &ost, const bond &b) 54 54 { 55 ost << "[" << b.leftatom-> Name << " <" << b.BondDegree << "(H" << b.HydrogenBond << ")>" << b.rightatom->Name<< "]";55 ost << "[" << b.leftatom->getName() << " <" << b.BondDegree << "(H" << b.HydrogenBond << ")>" << b.rightatom->getName() << "]"; 56 56 return ost; 57 57 }; -
src/builder.cpp
r60f50a r9757d9 53 53 54 54 #include <cstring> 55 #include <cstdlib> 55 56 56 57 #include "analysis_bonds.hpp" … … 1529 1530 break; 1530 1531 case 'v': 1532 setVerbosity(atoi(argv[argptr])); 1531 1533 ArgcList.insert(argptr-1); 1532 return(1); 1534 ArgcList.insert(argptr); 1535 argptr++; 1533 1536 break; 1534 1537 case 'V': 1535 1538 ArgcList.insert(argptr-1); 1536 ArgcList.insert(argptr); 1537 argptr++; 1539 return(1); 1538 1540 break; 1539 1541 case 'B': … … 2488 2490 ActionRegistry::purgeInstance(); 2489 2491 ActionHistory::purgeInstance(); 2492 Memory::getState(); 2490 2493 } 2491 2494 … … 2501 2504 bool ArgumentsCopied = false; 2502 2505 2506 // print version check whether arguments are present at all 2503 2507 cout << ESPACKVersion << endl; 2508 if (argc < 2) { 2509 cout << "Obtain help with " << argv[0] << " -h." << endl; 2510 cleanUp(); 2511 Memory::getState(); 2512 return(1); 2513 } 2514 2504 2515 2505 2516 setVerbosity(0); 2506 2517 // need to init the history before any action is created 2507 2518 ActionHistory::init(); 2519 2520 // from this moment on, we need to be sure to deeinitialize in the correct order 2521 // this is handled by the cleanup function 2522 atexit(cleanUp); 2508 2523 2509 2524 // Parse command line options and if present create respective UI … … 2557 2572 } 2558 2573 2559 cleanUp();2560 Memory::getState();2561 2574 return (0); 2562 2575 } -
src/config.cpp
r60f50a r9757d9 1680 1680 Walker = Walker->next; 1681 1681 *output << Walker->nr << "\t"; 1682 *output << Walker-> Name<< "\t";1682 *output << Walker->getName() << "\t"; 1683 1683 *output << mol->name << "\t"; 1684 1684 *output << 0 << "\t"; … … 1756 1756 Walker = Walker->next; 1757 1757 *output << AtomNo+1 << "\t"; 1758 *output << Walker-> Name<< "\t";1758 *output << Walker->getName() << "\t"; 1759 1759 *output << (*MolWalker)->name << "\t"; 1760 1760 *output << MolCounter+1 << "\t"; -
src/elements.db
-
Property mode
changed from
100755
to100644
r60f50a r9757d9 2 2 #Element Name Symbol Period Group Block Atomic Number AtomicWeight Covalent Radius vdW Radius 3 3 Hydrogen H 1 1 s 1 1.008 0.23 1.09 4 Helium He 1 18 p 2 4.003 1.5 0 1.404 Helium He 1 18 p 2 4.003 1.5 1.4 5 5 Lithium Li 2 1 s 3 6.941 0.68 1.82 6 Beryllium Be 2 2 s 4 9.012 0.35 2 .007 Boron B 2 13 p 5 10.811 0.83 2 .008 Carbon C 2 14 p 6 12.011 0.68 1.7 06 Beryllium Be 2 2 s 4 9.012 0.35 2 7 Boron B 2 13 p 5 10.811 0.83 2 8 Carbon C 2 14 p 6 12.011 0.68 1.7 9 9 Nitrogen N 2 15 p 7 14.007 0.68 1.55 10 10 Oxygen O 2 16 p 8 15.999 0.68 1.52 11 11 Fluorine F 2 17 p 9 18.998 0.64 1.47 12 Neon Ne 2 18 p 10 20.18 0 1.501.5412 Neon Ne 2 18 p 10 20.18 1.5 1.54 13 13 Sodium Na 3 1 s 11 22.991 0.97 2.27 14 Magnesium Mg 3 2 s 12 24.305 1.1 01.7315 Aluminium Al 3 13 p 13 26.982 1.35 2 .0016 Silicon Si 3 14 p 14 28.086 1.2 0 2.1017 Phosphorus P 3 15 p 15 30.974 1.05 1.8 018 Sulphur S 3 16 p 16 32.066 1.02 1.8 014 Magnesium Mg 3 2 s 12 24.305 1.1 1.73 15 Aluminium Al 3 13 p 13 26.982 1.35 2 16 Silicon Si 3 14 p 14 28.086 1.2 2.1 17 Phosphorus P 3 15 p 15 30.974 1.05 1.8 18 Sulphur S 3 16 p 16 32.066 1.02 1.8 19 19 Chlorine Cl 3 17 p 17 35.453 0.99 1.75 20 20 Argon Ar 3 18 p 18 39.948 1.51 1.88 21 21 Potassium K 4 1 s 19 39.098 1.33 2.75 22 Calcium Ca 4 2 s 20 40.078 0.99 2 .0023 Scandium Sc 4 3 d 21 44.956 1.44 2 .0024 Titanium Ti 4 4 d 22 47.867 1.47 2 .0025 Vanadium V 4 5 d 23 50.942 1.33 2 .0026 Chromium Cr 4 6 d 24 51.996 1.35 2 .0027 Manganese Mn 4 7 d 25 54.938 1.35 2 .0028 Iron Fe 4 8 d 26 55.845 1.34 2 .0029 Cobalt Co 4 9 d 27 58.933 1.33 2 .0030 Nickel Ni 4 10 d 28 58.693 1.5 01.6331 Copper Cu 4 11 d 29 63.546 1.52 1.4 032 Zinc Zn 4 12 d 30 65.39 01.45 1.3922 Calcium Ca 4 2 s 20 40.078 0.99 2 23 Scandium Sc 4 3 d 21 44.956 1.44 2 24 Titanium Ti 4 4 d 22 47.867 1.47 2 25 Vanadium V 4 5 d 23 50.942 1.33 2 26 Chromium Cr 4 6 d 24 51.996 1.35 2 27 Manganese Mn 4 7 d 25 54.938 1.35 2 28 Iron Fe 4 8 d 26 55.845 1.34 2 29 Cobalt Co 4 9 d 27 58.933 1.33 2 30 Nickel Ni 4 10 d 28 58.693 1.5 1.63 31 Copper Cu 4 11 d 29 63.546 1.52 1.4 32 Zinc Zn 4 12 d 30 65.39 1.45 1.39 33 33 Gallium Ga 4 13 p 31 69.723 1.22 1.87 34 Germanium Ge 4 14 p 32 72.61 0 1.17 2.0034 Germanium Ge 4 14 p 32 72.61 1.17 2 35 35 Arsenic As 4 15 p 33 74.922 1.21 1.85 36 Selenium Se 4 16 p 34 78.96 0 1.22 1.9036 Selenium Se 4 16 p 34 78.96 1.22 1.9 37 37 Bromine Br 4 17 p 35 79.904 1.21 1.85 38 Krypton Kr 4 18 p 36 83.8 00 1.502.0239 Rubidium Rb 5 1 s 37 85.468 1.47 2 .0040 Strontium Sr 5 2 s 38 87.62 0 1.12 2.0041 Yttrium Y 5 3 d 39 88.906 1.78 2 .0042 Zirconium Zr 5 4 d 40 91.224 1.56 2 .0043 Niobium Nb 5 5 d 41 92.906 1.48 2 .0044 Molybdenum Mo 5 6 d 42 95.94 0 1.47 2.0045 Technetium Tc 5 7 d 43 98 1.35 2 .0046 Ruthenium Ru 5 8 d 44 101.07 0 1.40 2.0047 Rhodium Rh 5 9 d 45 102.906 1.45 2 .0048 Palladium Pd 5 10 d 46 106.42 0 1.501.6338 Krypton Kr 4 18 p 36 83.8 1.5 2.02 39 Rubidium Rb 5 1 s 37 85.468 1.47 2 40 Strontium Sr 5 2 s 38 87.62 1.12 2 41 Yttrium Y 5 3 d 39 88.906 1.78 2 42 Zirconium Zr 5 4 d 40 91.224 1.56 2 43 Niobium Nb 5 5 d 41 92.906 1.48 2 44 Molybdenum Mo 5 6 d 42 95.94 1.47 2 45 Technetium Tc 5 7 d 43 98 1.35 2 46 Ruthenium Ru 5 8 d 44 101.07 1.4 2 47 Rhodium Rh 5 9 d 45 102.906 1.45 2 48 Palladium Pd 5 10 d 46 106.42 1.5 1.63 49 49 Silver Ag 5 11 d 47 107.868 1.59 1.72 50 50 Cadmium Cd 5 12 d 48 112.411 1.69 1.58 51 51 Indium In 5 13 p 49 114.818 1.63 1.93 52 52 Tin Sn 5 14 p 50 118.71 1.46 2.17 53 Antimony Sb 5 15 p 51 121.760 1.46 2.00 54 Tellurium Te 5 16 p 52 127.600 1.47 2.06 55 Iodine I 5 17 p 53 126.904 1.40 1.98 56 Xenon Xe 5 18 p 54 131.290 1.50 2.16 57 Caesium Cs 6 1 s 55 132.905 1.67 2.00 58 Barium Ba 6 2 s 56 137.327 1.34 2.00 59 Lutetium Lu 6 3 d 71 174.967 1.72 2.00 60 Hafnium Hf 6 4 d 72 178.490 1.57 2.00 61 Tantalum Ta 6 5 d 73 180.948 1.43 2.00 62 Tungsten W 6 6 d 74 183.840 1.37 2.00 63 Rhenium Re 6 7 d 75 186.207 1.35 2.00 64 Osmium Os 6 8 d 76 190.230 1.37 2.00 65 Iridium Ir 6 9 d 77 192.217 1.32 2.00 66 Platinum Pt 6 10 d 78 195.078 1.50 1.72 67 Gold Au 6 11 d 79 196.967 1.50 1.66 68 Mercury Hg 6 12 d 80 200.590 1.70 1.55 53 Antimony Sb 5 15 p 51 121.76 1.46 2 54 Tellurium Te 5 16 p 52 127.6 1.47 2.06 55 Iodine I 5 17 p 53 126.904 1.4 1.98 56 Xenon Xe 5 18 p 54 131.29 1.5 2.16 57 Caesium Cs 6 1 s 55 132.905 1.67 2 58 Barium Ba 6 2 s 56 137.327 1.34 2 59 Lanthanum La 6Lan 19 f 57 138.906 1.87 2 60 Cerium Ce 6Lan 19 f 58 140.116 1.83 2 61 Praseodymium Pr 6Lan 19 f 59 140.908 1.82 2 62 Neodymium Nd 6Lan 19 f 60 144.24 1.81 2 63 Promethium Pm 6Lan 19 f 61 145 1.8 2 64 Samarium Sm 6Lan 19 f 62 150.36 1.8 2 65 Europium Eu 6Lan 19 f 63 151.964 1.99 2 66 Gadolinium Gd 6Lan 19 f 64 157.25 1.79 2 67 Terbium Tb 6Lan 19 f 65 158.925 1.76 2 68 Dysprosium Dy 6Lan 19 f 66 162.5 1.75 2 69 Holmium Ho 6Lan 19 f 67 164.93 1.74 2 70 Erbium Er 6Lan 19 f 68 167.26 1.73 2 71 Thulium Tm 6Lan 19 f 69 168.934 1.72 2 72 Ytterbium Yb 6Lan 19 f 70 173.04 1.94 2 73 Lutetium Lu 6 3 d 71 174.967 1.72 2 74 Hafnium Hf 6 4 d 72 178.49 1.57 2 75 Tantalum Ta 6 5 d 73 180.948 1.43 2 76 Tungsten W 6 6 d 74 183.84 1.37 2 77 Rhenium Re 6 7 d 75 186.207 1.35 2 78 Osmium Os 6 8 d 76 190.23 1.37 2 79 Iridium Ir 6 9 d 77 192.217 1.32 2 80 Platinum Pt 6 10 d 78 195.078 1.5 1.72 81 Gold Au 6 11 d 79 196.967 1.5 1.66 82 Mercury Hg 6 12 d 80 200.59 1.7 1.55 69 83 Thallium Tl 6 13 p 81 204.383 1.55 1.96 70 Lead Pb 6 14 p 82 207.200 1.54 2.02 71 Bismuth Bi 6 15 p 83 208.980 1.54 2.00 72 Polonium Po 6 16 p 84 210 1.68 2.00 73 Astatine At 6 17 p 85 210 1.21 2.00 74 Radon Rn 6 18 p 86 222 1.50 2.00 75 Cerium Ce 6Lan 19 f 58 140.116 1.83 2.00 76 Dysprosium Dy 6Lan 19 f 66 162.500 1.75 2.00 77 Erbium Er 6Lan 19 f 68 167.260 1.73 2.00 78 Europium Eu 6Lan 19 f 63 151.964 1.99 2.00 79 Gadolinium Gd 6Lan 19 f 64 157.250 1.79 2.00 80 Holmium Ho 6Lan 19 f 67 164.930 1.74 2.00 81 Lanthanum La 6Lan 19 f 57 138.906 1.87 2.00 82 Neodymium Nd 6Lan 19 f 60 144.240 1.81 2.00 83 Promethium Pm 6Lan 19 f 61 145 1.80 2.00 84 Praseodymium Pr 6Lan 19 f 59 140.908 1.82 2.00 85 Samarium Sm 6Lan 19 f 62 150.360 1.80 2.00 86 Terbium Tb 6Lan 19 f 65 158.925 1.76 2.00 87 Thulium Tm 6Lan 19 f 69 168.934 1.72 2.00 88 Ytterbium Yb 6Lan 19 f 70 173.040 1.94 2.00 89 Francium Fr 7 1 s 87 223 1.50 2.00 90 Radium Ra 7 2 s 88 226 1.90 2.00 91 Lawrencium Lr 7 3 d 103 262 1.50 2.00 92 Rutherfordium Rf 7 4 d 104 261 1.50 2.00 93 Dubnium Db 7 5 d 105 262 1.50 2.00 94 Seaborgium Sg 7 6 d 106 266 1.50 2.00 95 Bohrium Bh 7 7 d 107 264 1.50 2.00 96 Hassium Hs 7 8 d 108 269 1.50 2.00 97 Meitnerium Mt 7 9 d 109 268 1.50 2.00 98 Darmstadtium Ds 7 10 d 110 271 1.50 2.00 99 Actinium Ac 7Act 20 f 89 227 1.88 2.00 100 Americium Am 7Act 20 f 95 243 1.51 2.00 101 Berkelium Bk 7Act 20 f 97 247 1.54 2.00 102 Californium Cf 7Act 20 f 98 251 1.83 2.00 103 Curium Cm 7Act 20 f 96 247 0.99 2.00 104 Einsteinium Es 7Act 20 f 99 252 1.50 2.00 105 Fermium Fm 7Act 20 f 100 257 1.50 2.00 106 Mendelevium Md 7Act 20 f 101 258 1.50 2.00 107 Nobelium No 7Act 20 f 102 259 1.50 2.00 108 Neptunium Np 7Act 20 f 93 237 1.55 2.00 109 Protactinium Pa 7Act 20 f 91 231.036 1.61 2.00 110 Plutonium Pu 7Act 20 f 94 244 1.53 2.00 111 Thorium Th 7Act 20 f 90 232.038 1.79 2.00 84 Lead Pb 6 14 p 82 207.2 1.54 2.02 85 Bismuth Bi 6 15 p 83 208.98 1.54 2 86 Polonium Po 6 16 p 84 210 1.68 2 87 Astatine At 6 17 p 85 210 1.21 2 88 Radon Rn 6 18 p 86 222 1.5 2 89 Francium Fr 7 1 s 87 223 1.5 2 90 Radium Ra 7 2 s 88 226 1.9 2 91 Actinium Ac 7Act 20 f 89 227 1.88 2 92 Thorium Th 7Act 20 f 90 232.038 1.79 2 93 Protactinium Pa 7Act 20 f 91 231.036 1.61 2 112 94 Uranium U 7Act 20 f 92 238.029 1.58 1.86 95 Neptunium Np 7Act 20 f 93 237 1.55 2 96 Plutonium Pu 7Act 20 f 94 244 1.53 2 97 Americium Am 7Act 20 f 95 243 1.51 2 98 Curium Cm 7Act 20 f 96 247 0.99 2 99 Berkelium Bk 7Act 20 f 97 247 1.54 2 100 Californium Cf 7Act 20 f 98 251 1.83 2 101 Einsteinium Es 7Act 20 f 99 252 1.5 2 102 Fermium Fm 7Act 20 f 100 257 1.5 2 103 Mendelevium Md 7Act 20 f 101 258 1.5 2 104 Nobelium No 7Act 20 f 102 259 1.5 2 105 Lawrencium Lr 7 3 d 103 262 1.5 2 106 Rutherfordium Rf 7 4 d 104 261 1.5 2 107 Dubnium Db 7 5 d 105 262 1.5 2 108 Seaborgium Sg 7 6 d 106 266 1.5 2 109 Bohrium Bh 7 7 d 107 264 1.5 2 110 Hassium Hs 7 8 d 108 269 1.5 2 111 Meitnerium Mt 7 9 d 109 268 1.5 2 112 Darmstadtium Ds 7 10 d 110 271 1.5 2 -
Property mode
changed from
-
src/helpers.cpp
r60f50a r9757d9 209 209 */ 210 210 void performCriticalExit() { 211 map<void*, size_t> pointers = MemoryUsageObserver::getInstance()->getPointersToAllocatedMemory();212 for (map<void*, size_t>::iterator runner = pointers.begin(); runner != pointers.end(); runner++) {213 Free(((void**) &runner->first));214 }211 // map<void*, size_t> pointers = MemoryUsageObserver::getInstance()->getPointersToAllocatedMemory(); 212 // for (map<void*, size_t>::iterator runner = pointers.begin(); runner != pointers.end(); runner++) { 213 // Free(((void**) &runner->first)); 214 // } 215 215 216 216 exit(255); -
src/molecule.cpp
r60f50a r9757d9 135 135 if (pointer->type->Z != 1) 136 136 NoNonHydrogen++; 137 if (pointer->Name == NULL){138 Free(&pointer->Name);139 pointer->Name = Malloc<char>(6, "molecule::AddAtom: *pointer->Name");140 sprintf(pointer->Name, "%2s%02d", pointer->type->symbol, pointer->nr+1);137 if(pointer->getName() == "Unknown"){ 138 stringstream sstr; 139 sstr << pointer->type->symbol << pointer->nr+1; 140 pointer->setName(sstr.str()); 141 141 } 142 142 } … … 157 157 if (pointer != NULL) { 158 158 atom *walker = pointer->clone(); 159 walker->Name = Malloc<char>(strlen(pointer->Name) + 1, "atom::atom: *Name"); 160 strcpy (walker->Name, pointer->Name); 159 stringstream sstr; 160 sstr << pointer->getName(); 161 walker->setName(sstr.str()); 161 162 walker->nr = last_atom++; // increase number within molecule 162 163 add(walker, end); … … 252 253 BondRescale = TopOrigin->type->HBondDistance[TopBond->BondDegree-1]; 253 254 if (BondRescale == -1) { 254 DoeLog(1) && (eLog()<< Verbose(1) << "There is no typical hydrogen bond distance in replacing bond (" << TopOrigin-> Name << "<->" << TopReplacement->Name<< ") of degree " << TopBond->BondDegree << "!" << endl);255 DoeLog(1) && (eLog()<< Verbose(1) << "There is no typical hydrogen bond distance in replacing bond (" << TopOrigin->getName() << "<->" << TopReplacement->getName() << ") of degree " << TopBond->BondDegree << "!" << endl); 255 256 return false; 256 257 BondRescale = bondlength; … … 275 276 InBondvector *= BondRescale; // rescale the distance vector to Hydrogen bond length 276 277 FirstOtherAtom->x = TopOrigin->x; // set coordination to origin ... 277 FirstOtherAtom->x = InBondvector; // ... and add distance vector to replacement atom278 FirstOtherAtom->x += InBondvector; // ... and add distance vector to replacement atom 278 279 AllWentWell = AllWentWell && AddAtom(FirstOtherAtom); 279 280 // Log() << Verbose(4) << "Added " << *FirstOtherAtom << " at: "; … … 295 296 SecondOtherAtom = (*Runner)->GetOtherAtom(TopOrigin); 296 297 } else { 297 DoeLog(2) && (eLog()<< Verbose(2) << "Detected more than four bonds for atom " << TopOrigin-> Name);298 DoeLog(2) && (eLog()<< Verbose(2) << "Detected more than four bonds for atom " << TopOrigin->getName()); 298 299 } 299 300 } … … 339 340 bondangle = TopOrigin->type->HBondAngle[1]; 340 341 if (bondangle == -1) { 341 DoeLog(1) && (eLog()<< Verbose(1) << "There is no typical hydrogen bond angle in replacing bond (" << TopOrigin-> Name << "<->" << TopReplacement->Name<< ") of degree " << TopBond->BondDegree << "!" << endl);342 DoeLog(1) && (eLog()<< Verbose(1) << "There is no typical hydrogen bond angle in replacing bond (" << TopOrigin->getName() << "<->" << TopReplacement->getName() << ") of degree " << TopBond->BondDegree << "!" << endl); 342 343 return false; 343 344 bondangle = 0; … … 616 617 add(Binder, last); 617 618 } else { 618 DoeLog(1) && (eLog()<< Verbose(1) << "Could not add bond between " << atom1-> Name << " and " << atom2->Name<< " as one or both are not present in the molecule." << endl);619 DoeLog(1) && (eLog()<< Verbose(1) << "Could not add bond between " << atom1->getName() << " and " << atom2->getName() << " as one or both are not present in the molecule." << endl); 619 620 } 620 621 return Binder; … … 695 696 AtomCount--; 696 697 } else 697 DoeLog(1) && (eLog()<< Verbose(1) << "Atom " << pointer-> Name<< " is of element " << pointer->type->Z << " but the entry in the table of the molecule is 0!" << endl);698 DoeLog(1) && (eLog()<< Verbose(1) << "Atom " << pointer->getName() << " is of element " << pointer->type->Z << " but the entry in the table of the molecule is 0!" << endl); 698 699 if (ElementsInMolecule[pointer->type->Z] == 0) // was last atom of this element? 699 700 ElementCount--; … … 713 714 ElementsInMolecule[pointer->type->Z]--; // decrease number of atom of this element 714 715 else 715 DoeLog(1) && (eLog()<< Verbose(1) << "Atom " << pointer-> Name<< " is of element " << pointer->type->Z << " but the entry in the table of the molecule is 0!" << endl);716 DoeLog(1) && (eLog()<< Verbose(1) << "Atom " << pointer->getName() << " is of element " << pointer->type->Z << " but the entry in the table of the molecule is 0!" << endl); 716 717 if (ElementsInMolecule[pointer->type->Z] == 0) // was last atom of this element? 717 718 ElementCount--; … … 915 916 if (Walker->type->Z != 1) // count non-hydrogen atoms whilst at it 916 917 NoNonHydrogen++; 917 Free(&Walker->Name);918 Walker->Name = Malloc<char>(6, "molecule::CountAtoms: *walker->Name");919 sprintf(Walker->Name, "%2s%02d", Walker->type->symbol, Walker->nr+1);920 DoLog(3) && (Log() << Verbose(3) << "Naming atom nr. " << Walker->nr << " " << Walker-> Name<< "." << endl);918 stringstream sstr; 919 sstr << Walker->type->symbol << Walker->nr+1; 920 Walker->setName(sstr.str()); 921 DoLog(3) && (Log() << Verbose(3) << "Naming atom nr. " << Walker->nr << " " << Walker->getName() << "." << endl); 921 922 i++; 922 923 } -
src/molecule_fragmentation.cpp
r60f50a r9757d9 722 722 // free memory for bond part 723 723 DoLog(1) && (Log() << Verbose(1) << "Freeing bond memory" << endl); 724 delete(FragmentList); // remove bond molecule from memory724 Free(&FragmentList); // remove bond molecule from memory 725 725 Free(&SortIndex); 726 726 } else { … … 907 907 } 908 908 } else { 909 DoeLog(1) && (eLog()<< Verbose(1) << "Son " << Runner-> Name << " has father " << FatherOfRunner->Name<< " but its entry in SonList is " << SonList[FatherOfRunner->nr] << "!" << endl);909 DoeLog(1) && (eLog()<< Verbose(1) << "Son " << Runner->getName() << " has father " << FatherOfRunner->getName() << " but its entry in SonList is " << SonList[FatherOfRunner->nr] << "!" << endl); 910 910 } 911 911 if ((LonelyFlag) && (Leaf->AtomCount > 1)) { -
src/molecule_geometry.cpp
r60f50a r9757d9 109 109 110 110 if (ptr->next != end) { //list not empty? 111 while (ptr->next != end) { // continue with second if present111 while (ptr->next != end) { 112 112 ptr = ptr->next; 113 113 Num++; … … 125 125 Vector * molecule::DetermineCenterOfAll() const 126 126 { 127 atom *ptr = start ->next; // start at first in list127 atom *ptr = start; // start at first in list 128 128 Vector *a = new Vector(); 129 Vector tmp;130 129 double Num = 0; 131 130 132 131 a->Zero(); 133 132 134 if (ptr != end) { //list not empty?135 while (ptr->next != end) { // continue with second if present133 if (ptr->next != end) { //list not empty? 134 while (ptr->next != end) { 136 135 ptr = ptr->next; 137 136 Num += 1.; 138 tmp = ptr->x; 139 (*a) += tmp; 137 (*a) += ptr->x; 140 138 } 141 139 a->Scale(1./Num); // divide through total mass (and sign for direction) … … 284 282 if ((fabs(tmp)) > BondDistance) { 285 283 flag = false; 286 DoLog(0) && (Log() << Verbose(0) << "Hit: atom " << Walker-> Name<< " in bond " << *(*Runner) << " has to be shifted due to " << tmp << "." << endl);284 DoLog(0) && (Log() << Verbose(0) << "Hit: atom " << Walker->getName() << " in bond " << *(*Runner) << " has to be shifted due to " << tmp << "." << endl); 287 285 if (tmp > 0) 288 286 Translationvector[j] -= 1.; -
src/molecule_graph.cpp
r60f50a r9757d9 317 317 Walker->GraphNr = DFS.CurrentGraphNr; 318 318 Walker->LowpointNr = DFS.CurrentGraphNr; 319 DoLog(1) && (Log() << Verbose(1) << "Setting Walker[" << Walker-> Name<< "]'s number to " << Walker->GraphNr << " with Lowpoint " << Walker->LowpointNr << "." << endl);319 DoLog(1) && (Log() << Verbose(1) << "Setting Walker[" << Walker->getName() << "]'s number to " << Walker->GraphNr << " with Lowpoint " << Walker->LowpointNr << "." << endl); 320 320 DFS.AtomStack->Push(Walker); 321 321 DFS.CurrentGraphNr++; … … 348 348 Binder->MarkUsed(black); 349 349 OtherAtom = Binder->GetOtherAtom(Walker); 350 DoLog(2) && (Log() << Verbose(2) << "(4) OtherAtom is " << OtherAtom-> Name<< "." << endl);350 DoLog(2) && (Log() << Verbose(2) << "(4) OtherAtom is " << OtherAtom->getName() << "." << endl); 351 351 if (OtherAtom->GraphNr != -1) { 352 352 // (4a) ... if "other" atom has been visited (GraphNr != 0), set lowpoint to minimum of both, go to (3) … … 354 354 DFS.BackEdgeStack->Push(Binder); 355 355 Walker->LowpointNr = (Walker->LowpointNr < OtherAtom->GraphNr) ? Walker->LowpointNr : OtherAtom->GraphNr; 356 DoLog(3) && (Log() << Verbose(3) << "(4a) Visited: Setting Lowpoint of Walker[" << Walker-> Name<< "] to " << Walker->LowpointNr << "." << endl);356 DoLog(3) && (Log() << Verbose(3) << "(4a) Visited: Setting Lowpoint of Walker[" << Walker->getName() << "] to " << Walker->LowpointNr << "." << endl); 357 357 } else { 358 358 // (4b) ... otherwise set OtherAtom as Ancestor of Walker and Walker as OtherAtom, go to (2) … … 360 360 OtherAtom->Ancestor = Walker; 361 361 Walker = OtherAtom; 362 DoLog(3) && (Log() << Verbose(3) << "(4b) Not Visited: OtherAtom[" << OtherAtom-> Name << "]'s Ancestor is now " << OtherAtom->Ancestor->Name << ", Walker is OtherAtom " << OtherAtom->Name<< "." << endl);362 DoLog(3) && (Log() << Verbose(3) << "(4b) Not Visited: OtherAtom[" << OtherAtom->getName() << "]'s Ancestor is now " << OtherAtom->Ancestor->getName() << ", Walker is OtherAtom " << OtherAtom->getName() << "." << endl); 363 363 break; 364 364 } … … 382 382 383 383 // (5) if Ancestor of Walker is ... 384 DoLog(1) && (Log() << Verbose(1) << "(5) Number of Walker[" << Walker-> Name << "]'s Ancestor[" << Walker->Ancestor->Name<< "] is " << Walker->Ancestor->GraphNr << "." << endl);384 DoLog(1) && (Log() << Verbose(1) << "(5) Number of Walker[" << Walker->getName() << "]'s Ancestor[" << Walker->Ancestor->getName() << "] is " << Walker->Ancestor->GraphNr << "." << endl); 385 385 386 386 if (Walker->Ancestor->GraphNr != DFS.Root->GraphNr) { … … 389 389 // (6a) set Ancestor's Lowpoint number to minimum of of its Ancestor and itself, go to Step(8) 390 390 Walker->Ancestor->LowpointNr = (Walker->Ancestor->LowpointNr < Walker->LowpointNr) ? Walker->Ancestor->LowpointNr : Walker->LowpointNr; 391 DoLog(2) && (Log() << Verbose(2) << "(6) Setting Walker[" << Walker-> Name << "]'s Ancestor[" << Walker->Ancestor->Name<< "]'s Lowpoint to " << Walker->Ancestor->LowpointNr << "." << endl);391 DoLog(2) && (Log() << Verbose(2) << "(6) Setting Walker[" << Walker->getName() << "]'s Ancestor[" << Walker->Ancestor->getName() << "]'s Lowpoint to " << Walker->Ancestor->LowpointNr << "." << endl); 392 392 } else { 393 393 // (7) (Ancestor of Walker is a separating vertex, remove all from stack till Walker (including), these and Ancestor form a component 394 394 Walker->Ancestor->SeparationVertex = true; 395 DoLog(2) && (Log() << Verbose(2) << "(7) Walker[" << Walker-> Name << "]'s Ancestor[" << Walker->Ancestor->Name<< "]'s is a separating vertex, creating component." << endl);395 DoLog(2) && (Log() << Verbose(2) << "(7) Walker[" << Walker->getName() << "]'s Ancestor[" << Walker->Ancestor->getName() << "]'s is a separating vertex, creating component." << endl); 396 396 mol->SetNextComponentNumber(Walker->Ancestor, DFS.ComponentNumber); 397 DoLog(3) && (Log() << Verbose(3) << "(7) Walker[" << Walker-> Name<< "]'s Ancestor's Compont is " << DFS.ComponentNumber << "." << endl);397 DoLog(3) && (Log() << Verbose(3) << "(7) Walker[" << Walker->getName() << "]'s Ancestor's Compont is " << DFS.ComponentNumber << "." << endl); 398 398 mol->SetNextComponentNumber(Walker, DFS.ComponentNumber); 399 DoLog(3) && (Log() << Verbose(3) << "(7) Walker[" << Walker-> Name<< "]'s Compont is " << DFS.ComponentNumber << "." << endl);399 DoLog(3) && (Log() << Verbose(3) << "(7) Walker[" << Walker->getName() << "]'s Compont is " << DFS.ComponentNumber << "." << endl); 400 400 do { 401 401 OtherAtom = DFS.AtomStack->PopLast(); 402 402 LeafWalker->Leaf->AddCopyAtom(OtherAtom); 403 403 mol->SetNextComponentNumber(OtherAtom, DFS.ComponentNumber); 404 DoLog(3) && (Log() << Verbose(3) << "(7) Other[" << OtherAtom-> Name<< "]'s Compont is " << DFS.ComponentNumber << "." << endl);404 DoLog(3) && (Log() << Verbose(3) << "(7) Other[" << OtherAtom->getName() << "]'s Compont is " << DFS.ComponentNumber << "." << endl); 405 405 } while (OtherAtom != Walker); 406 406 DFS.ComponentNumber++; 407 407 } 408 408 // (8) Walker becomes its Ancestor, go to (3) 409 DoLog(2) && (Log() << Verbose(2) << "(8) Walker[" << Walker-> Name << "] is now its Ancestor " << Walker->Ancestor->Name<< ", backstepping. " << endl);409 DoLog(2) && (Log() << Verbose(2) << "(8) Walker[" << Walker->getName() << "] is now its Ancestor " << Walker->Ancestor->getName() << ", backstepping. " << endl); 410 410 Walker = Walker->Ancestor; 411 411 DFS.BackStepping = true; … … 431 431 //DFS.AtomStack->Output(out); 432 432 mol->SetNextComponentNumber(DFS.Root, DFS.ComponentNumber); 433 DoLog(3) && (Log() << Verbose(3) << "(9) Root[" << DFS.Root-> Name<< "]'s Component is " << DFS.ComponentNumber << "." << endl);433 DoLog(3) && (Log() << Verbose(3) << "(9) Root[" << DFS.Root->getName() << "]'s Component is " << DFS.ComponentNumber << "." << endl); 434 434 mol->SetNextComponentNumber(Walker, DFS.ComponentNumber); 435 DoLog(3) && (Log() << Verbose(3) << "(9) Walker[" << Walker-> Name<< "]'s Component is " << DFS.ComponentNumber << "." << endl);435 DoLog(3) && (Log() << Verbose(3) << "(9) Walker[" << Walker->getName() << "]'s Component is " << DFS.ComponentNumber << "." << endl); 436 436 do { 437 437 OtherAtom = DFS.AtomStack->PopLast(); 438 438 LeafWalker->Leaf->AddCopyAtom(OtherAtom); 439 439 mol->SetNextComponentNumber(OtherAtom, DFS.ComponentNumber); 440 DoLog(3) && (Log() << Verbose(3) << "(7) Other[" << OtherAtom-> Name<< "]'s Compont is " << DFS.ComponentNumber << "." << endl);440 DoLog(3) && (Log() << Verbose(3) << "(7) Other[" << OtherAtom->getName() << "]'s Compont is " << DFS.ComponentNumber << "." << endl); 441 441 } while (OtherAtom != Walker); 442 442 DFS.ComponentNumber++; … … 445 445 Walker = DFS.Root; 446 446 Binder = mol->FindNextUnused(Walker); 447 DoLog(1) && (Log() << Verbose(1) << "(10) Walker is Root[" << DFS.Root-> Name<< "], next Unused Bond is " << Binder << "." << endl);447 DoLog(1) && (Log() << Verbose(1) << "(10) Walker is Root[" << DFS.Root->getName() << "], next Unused Bond is " << Binder << "." << endl); 448 448 if (Binder != NULL) { // Root is separation vertex 449 449 DoLog(1) && (Log() << Verbose(1) << "(11) Root is a separation vertex." << endl); … … 692 692 if (OtherAtom->type->Z != 1) { 693 693 #endif 694 DoLog(2) && (Log() << Verbose(2) << "Current OtherAtom is: " << OtherAtom-> Name<< " for bond " << *(*Runner) << "." << endl);694 DoLog(2) && (Log() << Verbose(2) << "Current OtherAtom is: " << OtherAtom->getName() << " for bond " << *(*Runner) << "." << endl); 695 695 if (BFS.ColorList[OtherAtom->nr] == white) { 696 696 BFS.TouchedStack->Push(OtherAtom); … … 698 698 BFS.PredecessorList[OtherAtom->nr] = Walker; // Walker is the predecessor 699 699 BFS.ShortestPathList[OtherAtom->nr] = BFS.ShortestPathList[Walker->nr] + 1; 700 DoLog(2) && (Log() << Verbose(2) << "Coloring OtherAtom " << OtherAtom-> Name << " lightgray, its predecessor is " << Walker->Name<< " and its Shortest Path is " << BFS.ShortestPathList[OtherAtom->nr] << " egde(s) long." << endl);700 DoLog(2) && (Log() << Verbose(2) << "Coloring OtherAtom " << OtherAtom->getName() << " lightgray, its predecessor is " << Walker->getName() << " and its Shortest Path is " << BFS.ShortestPathList[OtherAtom->nr] << " egde(s) long." << endl); 701 701 //if (BFS.ShortestPathList[OtherAtom->nr] < MinimumRingSize[Walker->GetTrueFather()->nr]) { // Check for maximum distance 702 702 DoLog(3) && (Log() << Verbose(3) << "Putting OtherAtom into queue." << endl); … … 719 719 } 720 720 BFS.ColorList[Walker->nr] = black; 721 DoLog(1) && (Log() << Verbose(1) << "Coloring Walker " << Walker-> Name<< " black." << endl);721 DoLog(1) && (Log() << Verbose(1) << "Coloring Walker " << Walker->getName() << " black." << endl); 722 722 if (OtherAtom == BFS.Root) { // if we have found the root, check whether this cycle wasn't already found beforehand 723 723 // step through predecessor list … … 770 770 Walker = BFS.Root; 771 771 while (Walker != BackEdge->rightatom) { 772 DoLog(0) && (Log() << Verbose(0) << Walker-> Name<< " <-> ");772 DoLog(0) && (Log() << Verbose(0) << Walker->getName() << " <-> "); 773 773 Walker = BFS.PredecessorList[Walker->nr]; 774 774 Walker->GetTrueFather()->IsCyclic = true; 775 775 RingSize++; 776 776 } 777 DoLog(0) && (Log() << Verbose(0) << Walker-> Name<< " with a length of " << RingSize << "." << endl << endl);777 DoLog(0) && (Log() << Verbose(0) << Walker->getName() << " with a length of " << RingSize << "." << endl << endl); 778 778 // walk through all and set MinimumRingSize 779 779 Walker = BFS.Root; … … 1233 1233 BFS.PredecessorList[OtherAtom->nr] = Walker; // Walker is the predecessor 1234 1234 BFS.ShortestPathList[OtherAtom->nr] = BFS.ShortestPathList[Walker->nr] + 1; 1235 DoLog(2) && (Log() << Verbose(2) << "Coloring OtherAtom " << OtherAtom-> Name << " " << ((BFS.ColorList[OtherAtom->nr] == white) ? "white" : "lightgray") << ", its predecessor is " << Walker->Name<< " and its Shortest Path is " << BFS.ShortestPathList[OtherAtom->nr] << " egde(s) long." << endl);1235 DoLog(2) && (Log() << Verbose(2) << "Coloring OtherAtom " << OtherAtom->getName() << " " << ((BFS.ColorList[OtherAtom->nr] == white) ? "white" : "lightgray") << ", its predecessor is " << Walker->getName() << " and its Shortest Path is " << BFS.ShortestPathList[OtherAtom->nr] << " egde(s) long." << endl); 1236 1236 if ((((BFS.ShortestPathList[OtherAtom->nr] < BFS.BondOrder) && (Binder != Bond)))) { // Check for maximum distance 1237 1237 DoLog(3) && (Log() << Verbose(3)); 1238 1238 if (AddedAtomList[OtherAtom->nr] == NULL) { // add if it's not been so far 1239 1239 AddedAtomList[OtherAtom->nr] = Mol->AddCopyAtom(OtherAtom); 1240 DoLog(0) && (Log() << Verbose(0) << "Added OtherAtom " << OtherAtom-> Name);1240 DoLog(0) && (Log() << Verbose(0) << "Added OtherAtom " << OtherAtom->getName()); 1241 1241 AddedBondList[Binder->nr] = Mol->CopyBond(AddedAtomList[Walker->nr], AddedAtomList[OtherAtom->nr], Binder); 1242 1242 DoLog(0) && (Log() << Verbose(0) << " and bond " << *(AddedBondList[Binder->nr]) << ", "); 1243 1243 } else { // this code should actually never come into play (all white atoms are not yet present in BondMolecule, that's why they are white in the first place) 1244 DoLog(0) && (Log() << Verbose(0) << "Not adding OtherAtom " << OtherAtom-> Name);1244 DoLog(0) && (Log() << Verbose(0) << "Not adding OtherAtom " << OtherAtom->getName()); 1245 1245 if (AddedBondList[Binder->nr] == NULL) { 1246 1246 AddedBondList[Binder->nr] = Mol->CopyBond(AddedAtomList[Walker->nr], AddedAtomList[OtherAtom->nr], Binder); … … 1322 1322 // followed by n+1 till top of stack. 1323 1323 Walker = BFS.BFSStack->PopFirst(); // pop oldest added 1324 DoLog(1) && (Log() << Verbose(1) << "Current Walker is: " << Walker-> Name<< ", and has " << Walker->ListOfBonds.size() << " bonds." << endl);1324 DoLog(1) && (Log() << Verbose(1) << "Current Walker is: " << Walker->getName() << ", and has " << Walker->ListOfBonds.size() << " bonds." << endl); 1325 1325 for (BondList::const_iterator Runner = Walker->ListOfBonds.begin(); Runner != Walker->ListOfBonds.end(); (++Runner)) { 1326 1326 if ((*Runner) != NULL) { // don't look at bond equal NULL 1327 1327 Binder = (*Runner); 1328 1328 OtherAtom = (*Runner)->GetOtherAtom(Walker); 1329 DoLog(2) && (Log() << Verbose(2) << "Current OtherAtom is: " << OtherAtom-> Name<< " for bond " << *(*Runner) << "." << endl);1329 DoLog(2) && (Log() << Verbose(2) << "Current OtherAtom is: " << OtherAtom->getName() << " for bond " << *(*Runner) << "." << endl); 1330 1330 if (BFS.ColorList[OtherAtom->nr] == white) { 1331 1331 BreadthFirstSearchAdd_UnvisitedNode(Mol, BFS, Walker, OtherAtom, Binder, Bond, AddedAtomList, AddedBondList, IsAngstroem); … … 1336 1336 } 1337 1337 BFS.ColorList[Walker->nr] = black; 1338 DoLog(1) && (Log() << Verbose(1) << "Coloring Walker " << Walker-> Name<< " black." << endl);1338 DoLog(1) && (Log() << Verbose(1) << "Coloring Walker " << Walker->getName() << " black." << endl); 1339 1339 } 1340 1340 BreadthFirstSearchAdd_Free(BFS); … … 1403 1403 OtherAtom = (*Runner)->GetOtherAtom(Walker); 1404 1404 if (ParentList[OtherAtom->nr] != NULL) { // if otheratom is also a father of an atom on this molecule, create the bond 1405 DoLog(4) && (Log() << Verbose(4) << "Endpoints of Bond " << (*Runner) << " are both present: " << ParentList[Walker->nr]-> Name << " and " << ParentList[OtherAtom->nr]->Name<< "." << endl);1405 DoLog(4) && (Log() << Verbose(4) << "Endpoints of Bond " << (*Runner) << " are both present: " << ParentList[Walker->nr]->getName() << " and " << ParentList[OtherAtom->nr]->getName() << "." << endl); 1406 1406 mol->AddBond(ParentList[Walker->nr], ParentList[OtherAtom->nr], (*Runner)->BondDegree); 1407 1407 } -
src/moleculelist.cpp
r60f50a r9757d9 677 677 while (Walker->next != (*ListRunner)->end) { 678 678 Walker = Walker->next; 679 DoLog(0) && (Log() << Verbose(0) << Walker-> Name<< " ");679 DoLog(0) && (Log() << Verbose(0) << Walker->getName() << " "); 680 680 } 681 681 DoLog(0) && (Log() << Verbose(0) << endl); -
src/parser.cpp
r60f50a r9757d9 32 32 if (input == NULL) { 33 33 if (!test) 34 DoLog(0) && (Log() << Verbose(0) << endl << " Unable to open " << filename << ", is the directory correct?" << endl);34 DoLog(0) && (Log() << Verbose(0) << endl << "FilePresent: Unable to open " << filename << ", is the directory correct?" << endl); 35 35 return false; 36 36 } … … 160 160 //Log() << Verbose(1) << "Opening " << name << " ... " << input << endl; 161 161 if (input == NULL) { 162 DoeLog(1) && (eLog()<< Verbose(1) << endl << " Unable to open " << name << ", is the directory correct?" << endl);162 DoeLog(1) && (eLog()<< Verbose(1) << endl << "MatrixContainer::ParseMatrix: Unable to open " << name << ", is the directory correct?" << endl); 163 163 //performCriticalExit(); 164 164 return false; … … 269 269 input.open(file.str().c_str(), ios::in); 270 270 if (input == NULL) { 271 DoLog(0) && (Log() << Verbose(0) << endl << " Unable to open " << file.str() << ", is the directory correct?" << endl);271 DoLog(0) && (Log() << Verbose(0) << endl << "MatrixContainer::ParseFragmentMatrix: Unable to open " << file.str() << ", is the directory correct?" << endl); 272 272 return false; 273 273 } … … 477 477 output.open(line.str().c_str(), ios::out); 478 478 if (output == NULL) { 479 DoeLog(0) && (eLog()<< Verbose(0) << " Unable to open output energy file " << line.str() << "!" << endl);479 DoeLog(0) && (eLog()<< Verbose(0) << "MatrixContainer::WriteTotalFragments: Unable to open output energy file " << line.str() << "!" << endl); 480 480 performCriticalExit(); 481 481 return false; … … 507 507 output.open(line.str().c_str(), ios::out); 508 508 if (output == NULL) { 509 DoeLog(0) && (eLog()<< Verbose(0) << " Unable to open output matrix file " << line.str() << "!" << endl);509 DoeLog(0) && (eLog()<< Verbose(0) << "MatrixContainer::WriteLastMatrix: Unable to open output matrix file " << line.str() << "!" << endl); 510 510 performCriticalExit(); 511 511 return false; … … 621 621 //Log() << Verbose(0) << "Opening " << line.str() << " ... " << input << endl; 622 622 if (input == NULL) { 623 DoLog(0) && (Log() << Verbose(0) << endl << " Unable to open " << line.str() << ", is the directory correct?" << endl);623 DoLog(0) && (Log() << Verbose(0) << endl << "ForceMatrix::ParseIndices: Unable to open " << line.str() << ", is the directory correct?" << endl); 624 624 return false; 625 625 } … … 700 700 input.open(file.str().c_str(), ios::in); 701 701 if (input == NULL) { 702 DoLog(0) && (Log() << Verbose(0) << endl << " Unable to open " << file.str() << ", is the directory correct?" << endl);702 DoLog(0) && (Log() << Verbose(0) << endl << "ForceMatrix::ParseFragmentMatrix: Unable to open " << file.str() << ", is the directory correct?" << endl); 703 703 return false; 704 704 } … … 759 759 //Log() << Verbose(0) << "Opening " << line.str() << " ... " << input << endl; 760 760 if (input == NULL) { 761 DoLog(0) && (Log() << Verbose(0) << endl << " Unable to open " << line.str() << ", is the directory correct?" << endl);761 DoLog(0) && (Log() << Verbose(0) << endl << "HessianMatrix::ParseIndices: Unable to open " << line.str() << ", is the directory correct?" << endl); 762 762 return false; 763 763 } … … 930 930 input.open(file.str().c_str(), ios::in); 931 931 if (input == NULL) { 932 DoLog(0) && (Log() << Verbose(0) << endl << " Unable to open " << file.str() << ", is the directory correct?" << endl);932 DoLog(0) && (Log() << Verbose(0) << endl << "HessianMatrix::ParseFragmentMatrix: Unable to open " << file.str() << ", is the directory correct?" << endl); 933 933 return false; 934 934 } … … 1014 1014 input.open(file.str().c_str(), ios::in); 1015 1015 if (input == NULL) { 1016 DoLog(0) && (Log() << Verbose(0) << endl << " Unable to open " << file.str() << ", is the directory correct?" << endl);1016 DoLog(0) && (Log() << Verbose(0) << endl << "KeySetsContainer::ParseKeySets: Unable to open " << file.str() << ", is the directory correct?" << endl); 1017 1017 return false; 1018 1018 } -
src/periodentafel.cpp
r60f50a r9757d9 8 8 9 9 #include <iomanip> 10 #include <iostream> 10 11 #include <fstream> 11 12 #include <cstring> 12 #include <cassert> 13 13 14 #include "Helpers/Assert.hpp" 14 15 #include "element.hpp" 16 #include "elements_db.hpp" 15 17 #include "helpers.hpp" 16 18 #include "lists.hpp" … … 27 29 */ 28 30 periodentafel::periodentafel() 29 {}; 31 { 32 ASSERT(LoadElementsDatabase(new stringstream(elementsDB,ios_base::in)), "General element initialization failed"); 33 ASSERT(LoadValenceDatabase(new stringstream(valenceDB,ios_base::in)), "Valence entry of element initialization failed"); 34 ASSERT(LoadOrbitalsDatabase(new stringstream(orbitalsDB,ios_base::in)), "Orbitals entry of element initialization failed"); 35 ASSERT(LoadHBondAngleDatabase(new stringstream(HbondangleDB,ios_base::in)), "HBond angle entry of element initialization failed"); 36 ASSERT(LoadHBondLengthsDatabase(new stringstream(HbonddistanceDB,ios_base::in)), "HBond distance entry of element initialization failed"); 37 }; 30 38 31 39 /** destructor for class periodentafel … … 39 47 /** Adds element to period table list 40 48 * \param *pointer element to be added 41 * \return true - succeeded, false - does not occur49 * \return iterator to added element 42 50 */ 43 51 periodentafel::iterator periodentafel::AddElement(element * const pointer) 44 52 { 45 53 atomicNumber_t Z = pointer->getNumber(); 46 assert(!elements.count(Z));54 ASSERT(!elements.count(Z), "Element is already present."); 47 55 pointer->sort = &pointer->Z; 48 56 if (pointer->getNumber() < 1 && pointer->getNumber() >= MAX_ELEMENTS) … … 54 62 /** Removes element from list. 55 63 * \param *pointer element to be removed 56 * \return true - succeeded, false - element not found57 64 */ 58 65 void periodentafel::RemoveElement(element * const pointer) 59 66 { 60 atomicNumber_t Z = pointer->getNumber(); 67 RemoveElement(pointer->getNumber()); 68 }; 69 70 /** Removes element from list. 71 * \param Z element to be removed 72 */ 73 void periodentafel::RemoveElement(atomicNumber_t Z) 74 { 61 75 elements.erase(Z); 62 76 }; 63 77 64 78 /** Removes every element from the period table. 65 * \return true - succeeded, false - does not occur66 79 */ 67 80 void periodentafel::CleanupPeriodtable() … … 78 91 * \return pointer to element or NULL if not found 79 92 */ 80 const element *periodentafel::FindElement(atomicNumber_t Z) const93 element * const periodentafel::FindElement(atomicNumber_t Z) const 81 94 { 82 95 const_iterator res = elements.find(Z); … … 89 102 * \return pointer to element 90 103 */ 91 const element *periodentafel::FindElement(const char * const shorthand) const104 element * const periodentafel::FindElement(const char * const shorthand) const 92 105 { 93 106 element *res = 0; … … 102 115 103 116 /** Asks for element number and returns pointer to element 104 */ 105 const element * periodentafel::AskElement() const 106 { 107 const element *walker = NULL; 117 * \return desired element or NULL 118 */ 119 element * const periodentafel::AskElement() const 120 { 121 element * walker = NULL; 108 122 int Z; 109 123 do { … … 118 132 * \return pointer to either present or newly created element 119 133 */ 120 const element * periodentafel::EnterElement() 121 { 122 const element *res = NULL; 134 element * const periodentafel::EnterElement() 135 { 123 136 atomicNumber_t Z = 0; 124 137 DoLog(0) && (Log() << Verbose(0) << "Atomic number: " << Z << endl); 125 138 cin >> Z; 126 res = FindElement(Z);139 element * const res = FindElement(Z); 127 140 if (!res) { 128 141 // TODO: make this using the constructor 129 element *tmp;130 142 DoLog(0) && (Log() << Verbose(0) << "Element not found in database, please enter." << endl); 131 tmp = new element;143 element *tmp = new element; 132 144 tmp->Z = Z; 133 145 DoLog(0) && (Log() << Verbose(0) << "Mass: " << endl); … … 138 150 cin >> tmp->symbol; 139 151 AddElement(tmp); 140 re s =tmp;152 return tmp; 141 153 } 142 154 return res; … … 204 216 bool periodentafel::LoadPeriodentafel(const char *path) 205 217 { 206 ifstream infile; 207 element *ptr; 208 map<atomicNumber_t,element*> parsedElems; 218 ifstream input; 209 219 bool status = true; 210 220 bool otherstatus = true; … … 215 225 strncat(filename, "/", MAXSTRINGSIZE-strlen(filename)); 216 226 strncat(filename, STANDARDELEMENTSDB, MAXSTRINGSIZE-strlen(filename)); 217 infile.open(filename); 218 if (infile != NULL) { 219 infile.getline(header1, MAXSTRINGSIZE); 220 infile.getline(header2, MAXSTRINGSIZE); // skip first two header lines 227 input.open(filename); 228 status = status && LoadElementsDatabase(&input); 229 230 // fill valence DB per element 231 strncpy(filename, path, MAXSTRINGSIZE); 232 strncat(filename, "/", MAXSTRINGSIZE-strlen(filename)); 233 strncat(filename, STANDARDVALENCEDB, MAXSTRINGSIZE-strlen(filename)); 234 input.open(filename); 235 otherstatus = otherstatus && LoadValenceDatabase(&input); 236 237 // fill orbitals DB per element 238 strncpy(filename, path, MAXSTRINGSIZE); 239 strncat(filename, "/", MAXSTRINGSIZE-strlen(filename)); 240 strncat(filename, STANDARDORBITALDB, MAXSTRINGSIZE-strlen(filename)); 241 input.open(filename); 242 otherstatus = otherstatus && LoadOrbitalsDatabase(&input); 243 244 // fill H-BondAngle DB per element 245 strncpy(filename, path, MAXSTRINGSIZE); 246 strncat(filename, "/", MAXSTRINGSIZE-strlen(filename)); 247 strncat(filename, STANDARDHBONDANGLEDB, MAXSTRINGSIZE-strlen(filename)); 248 input.open(filename); 249 otherstatus = otherstatus && LoadHBondAngleDatabase(&input); 250 251 // fill H-BondDistance DB per element 252 strncpy(filename, path, MAXSTRINGSIZE); 253 strncat(filename, "/", MAXSTRINGSIZE-strlen(filename)); 254 strncat(filename, STANDARDHBONDDISTANCEDB, MAXSTRINGSIZE-strlen(filename)); 255 input.open(filename); 256 otherstatus = otherstatus && LoadHBondLengthsDatabase(&input); 257 258 if (!otherstatus){ 259 DoeLog(2) && (eLog()<< Verbose(2) << "Something went wrong while parsing the other databases!" << endl); 260 } 261 262 return status; 263 }; 264 265 /** load the element info. 266 * \param *input stream to parse from 267 * \return true - parsing successful, false - something went wrong 268 */ 269 bool periodentafel::LoadElementsDatabase(istream *input) 270 { 271 if ((*input) != NULL) { 272 (*input).getline(header1, MAXSTRINGSIZE); 273 (*input).getline(header2, MAXSTRINGSIZE); // skip first two header lines 221 274 DoLog(0) && (Log() << Verbose(0) << "Parsed elements:"); 222 while (! infile.eof()) {275 while (!(*input).eof()) { 223 276 element *neues = new element; 224 infile>> neues->name;225 // infile>> ws;226 infile>> neues->symbol;227 // infile>> ws;228 infile>> neues->period;229 // infile>> ws;230 infile>> neues->group;231 // infile>> ws;232 infile>> neues->block;233 // infile>> ws;234 infile>> neues->Z;235 // infile>> ws;236 infile>> neues->mass;237 // infile>> ws;238 infile>> neues->CovalentRadius;239 // infile>> ws;240 infile>> neues->VanDerWaalsRadius;241 // infile>> ws;242 infile>> ws;277 (*input) >> neues->name; 278 //(*input) >> ws; 279 (*input) >> neues->symbol; 280 //(*input) >> ws; 281 (*input) >> neues->period; 282 //(*input) >> ws; 283 (*input) >> neues->group; 284 //(*input) >> ws; 285 (*input) >> neues->block; 286 //(*input) >> ws; 287 (*input) >> neues->Z; 288 //(*input) >> ws; 289 (*input) >> neues->mass; 290 //(*input) >> ws; 291 (*input) >> neues->CovalentRadius; 292 //(*input) >> ws; 293 (*input) >> neues->VanDerWaalsRadius; 294 //(*input) >> ws; 295 (*input) >> ws; 243 296 DoLog(0) && (Log() << Verbose(0) << " " << neues->symbol); 297 if (elements.count(neues->Z)) {// if element already present, remove and delete it 298 element * const Elemental = FindElement(neues->Z); 299 ASSERT(Elemental != NULL, "element should be present but is not??"); 300 RemoveElement(Elemental); 301 delete(Elemental); 302 } 244 303 //neues->Output((ofstream *)&cout); 245 304 if ((neues->Z > 0) && (neues->Z < MAX_ELEMENTS)) 246 parsedElems[neues->getNumber()] = neues;305 elements[neues->getNumber()] = neues; 247 306 else { 248 307 DoLog(0) && (Log() << Verbose(0) << "Could not parse element: "); … … 252 311 } 253 312 DoLog(0) && (Log() << Verbose(0) << endl); 254 infile.close(); 255 infile.clear(); 256 } else 257 status = false; 258 259 // fill valence DB per element 260 strncpy(filename, path, MAXSTRINGSIZE); 261 strncat(filename, "/", MAXSTRINGSIZE-strlen(filename)); 262 strncat(filename, STANDARDVALENCEDB, MAXSTRINGSIZE-strlen(filename)); 263 infile.open(filename); 264 if (infile != NULL) { 265 while (!infile.eof()) { 313 return true; 314 } else 315 return false; 316 } 317 318 /** load the valence info. 319 * \param *input stream to parse from 320 * \return true - parsing successful, false - something went wrong 321 */ 322 bool periodentafel::LoadValenceDatabase(istream *input) 323 { 324 char dummy[MAXSTRINGSIZE]; 325 if ((*input) != NULL) { 326 (*input).getline(dummy, MAXSTRINGSIZE); 327 while (!(*input).eof()) { 266 328 atomicNumber_t Z; 267 infile >> Z; 268 infile >> ws; 269 infile >> parsedElems[Z]->Valence; 270 infile >> ws; 329 (*input) >> Z; 330 ASSERT(elements.count(Z), "Element not present"); 331 (*input) >> ws; 332 (*input) >> elements[Z]->Valence; 333 (*input) >> ws; 271 334 //Log() << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->Valence << " valence electrons." << endl; 272 335 } 273 infile.close(); 274 infile.clear(); 275 } else 276 otherstatus = false; 277 278 // fill valence DB per element 279 strncpy(filename, path, MAXSTRINGSIZE); 280 strncat(filename, "/", MAXSTRINGSIZE-strlen(filename)); 281 strncat(filename, STANDARDORBITALDB, MAXSTRINGSIZE-strlen(filename)); 282 infile.open(filename); 283 if (infile != NULL) { 284 while (!infile.eof()) { 336 return true; 337 } else 338 return false; 339 } 340 341 /** load the orbitals info. 342 * \param *input stream to parse from 343 * \return true - parsing successful, false - something went wrong 344 */ 345 bool periodentafel::LoadOrbitalsDatabase(istream *input) 346 { 347 char dummy[MAXSTRINGSIZE]; 348 if ((*input) != NULL) { 349 (*input).getline(dummy, MAXSTRINGSIZE); 350 while (!(*input).eof()) { 285 351 atomicNumber_t Z; 286 infile >> Z; 287 infile >> ws; 288 infile >> parsedElems[Z]->NoValenceOrbitals; 289 infile >> ws; 352 (*input) >> Z; 353 ASSERT(elements.count(Z), "Element not present"); 354 (*input) >> ws; 355 (*input) >> elements[Z]->NoValenceOrbitals; 356 (*input) >> ws; 290 357 //Log() << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->NoValenceOrbitals << " number of singly occupied valence orbitals." << endl; 291 358 } 292 infile.close(); 293 infile.clear(); 294 } else 295 otherstatus = false; 296 297 // fill H-BondDistance DB per element 298 strncpy(filename, path, MAXSTRINGSIZE); 299 strncat(filename, "/", MAXSTRINGSIZE-strlen(filename)); 300 strncat(filename, STANDARDHBONDDISTANCEDB, MAXSTRINGSIZE-strlen(filename)); 301 infile.open(filename); 302 if (infile != NULL) { 303 while (!infile.eof()) { 359 return true; 360 } else 361 return false; 362 } 363 364 /** load the hbond angles info. 365 * \param *input stream to parse from 366 * \return true - parsing successful, false - something went wrong 367 */ 368 bool periodentafel::LoadHBondAngleDatabase(istream *input) 369 { 370 char dummy[MAXSTRINGSIZE]; 371 if ((*input) != NULL) { 372 (*input).getline(dummy, MAXSTRINGSIZE); 373 while (!(*input).eof()) { 304 374 atomicNumber_t Z; 305 infile >> Z; 306 ptr = parsedElems[Z]; 307 infile >> ws; 308 infile >> ptr->HBondDistance[0]; 309 infile >> ptr->HBondDistance[1]; 310 infile >> ptr->HBondDistance[2]; 311 infile >> ws; 375 (*input) >> Z; 376 ASSERT(elements.count(Z), "Element not present"); 377 (*input) >> ws; 378 (*input) >> elements[Z]->HBondAngle[0]; 379 (*input) >> elements[Z]->HBondAngle[1]; 380 (*input) >> elements[Z]->HBondAngle[2]; 381 (*input) >> ws; 382 //Log() << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->HBondAngle[0] << ", " << FindElement((int)tmp)->HBondAngle[1] << ", " << FindElement((int)tmp)->HBondAngle[2] << " degrees bond angle for one, two, three connected hydrogens." << endl; 383 } 384 return true; 385 } else 386 return false; 387 } 388 389 /** load the hbond lengths info. 390 * \param *input stream to parse from 391 * \return true - parsing successful, false - something went wrong 392 */ 393 bool periodentafel::LoadHBondLengthsDatabase(istream *input) 394 { 395 char dummy[MAXSTRINGSIZE]; 396 if ((*input) != NULL) { 397 (*input).getline(dummy, MAXSTRINGSIZE); 398 while (!(*input).eof()) { 399 atomicNumber_t Z; 400 (*input) >> Z; 401 ASSERT(elements.count(Z), "Element not present"); 402 (*input) >> ws; 403 (*input) >> elements[Z]->HBondDistance[0]; 404 (*input) >> elements[Z]->HBondDistance[1]; 405 (*input) >> elements[Z]->HBondDistance[2]; 406 (*input) >> ws; 312 407 //Log() << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->HBondDistance[0] << " Angstrom typical distance to hydrogen." << endl; 313 408 } 314 infile.close(); 315 infile.clear(); 316 } else 317 otherstatus = false; 318 319 // fill H-BondAngle DB per element 320 strncpy(filename, path, MAXSTRINGSIZE); 321 strncat(filename, "/", MAXSTRINGSIZE-strlen(filename)); 322 strncat(filename, STANDARDHBONDANGLEDB, MAXSTRINGSIZE-strlen(filename)); 323 infile.open(filename); 324 if (infile != NULL) { 325 while (!infile.eof()) { 326 atomicNumber_t Z; 327 infile >> Z; 328 ptr = parsedElems[Z]; 329 infile >> ws; 330 infile >> ptr->HBondAngle[0]; 331 infile >> ptr->HBondAngle[1]; 332 infile >> ptr->HBondAngle[2]; 333 infile >> ws; 334 //Log() << Verbose(3) << "Element " << (int)tmp << " has " << FindElement((int)tmp)->HBondAngle[0] << ", " << FindElement((int)tmp)->HBondAngle[1] << ", " << FindElement((int)tmp)->HBondAngle[2] << " degrees bond angle for one, two, three connected hydrogens." << endl; 335 } 336 infile.close(); 337 } else 338 otherstatus = false; 339 340 if (otherstatus){ 341 map<atomicNumber_t,element*>::iterator iter; 342 for(iter=parsedElems.begin();iter!=parsedElems.end();++iter){ 343 AddElement((*iter).second); 344 } 345 } 346 else{ 347 DoeLog(2) && (eLog()<< Verbose(2) << "Something went wrong while parsing the other databases!" << endl); 348 map<atomicNumber_t,element*>::iterator iter; 349 for(iter=parsedElems.begin();iter!=parsedElems.end();++iter){ 350 AddElement((*iter).second); 351 } 352 } 353 354 return status; 355 }; 409 return true; 410 } else 411 return false; 412 } 356 413 357 414 /** Stores element list to file. … … 374 431 } 375 432 f.close(); 376 } else377 result = false;378 return result;379 }; 433 return true; 434 } else 435 return result; 436 }; -
src/periodentafel.hpp
r60f50a r9757d9 13 13 #include <iterator> 14 14 15 #include "unittests/periodentafelTest.hpp" 15 16 #include "defs.hpp" 16 17 #include "types.hpp" … … 27 28 class periodentafel { 28 29 /******* Types *********/ 30 friend class periodentafelTest; 29 31 private: 30 32 typedef std::map<atomicNumber_t,element*> elementSet; … … 43 45 iterator AddElement(element * const pointer); 44 46 void RemoveElement(element * const pointer); 47 void RemoveElement(atomicNumber_t); 45 48 void CleanupPeriodtable(); 46 const element *FindElement(atomicNumber_t) const;47 const element *FindElement(const char * const shorthand) const;48 const element *AskElement() const;49 const element *EnterElement();49 element * const FindElement(atomicNumber_t) const; 50 element * const FindElement(const char * const shorthand) const; 51 element * const AskElement() const; 52 element * const EnterElement(); 50 53 51 54 const_iterator begin(); … … 59 62 60 63 private: 64 65 bool LoadElementsDatabase(std::istream *input); 66 bool LoadValenceDatabase(std::istream *input); 67 bool LoadOrbitalsDatabase(std::istream *input); 68 bool LoadHBondAngleDatabase(std::istream *input); 69 bool LoadHBondLengthsDatabase(std::istream *input); 70 61 71 elementSet elements; 62 72 }; -
src/tesselation.cpp
r60f50a r9757d9 83 83 ostream & operator <<(ostream &ost, const BoundaryPointSet &a) 84 84 { 85 ost << "[" << a.Nr << "|" << a.node-> Name<< " at " << *a.node->node << "]";85 ost << "[" << a.Nr << "|" << a.node->getName() << " at " << *a.node->node << "]"; 86 86 return ost; 87 87 } … … 321 321 ostream & operator <<(ostream &ost, const BoundaryLineSet &a) 322 322 { 323 ost << "[" << a.Nr << "|" << a.endpoints[0]->node-> Name << " at " << *a.endpoints[0]->node->node << "," << a.endpoints[1]->node->Name<< " at " << *a.endpoints[1]->node->node << "]";323 ost << "[" << a.Nr << "|" << a.endpoints[0]->node->getName() << " at " << *a.endpoints[0]->node->node << "," << a.endpoints[1]->node->getName() << " at " << *a.endpoints[1]->node->node << "]"; 324 324 return ost; 325 325 } … … 688 688 ostream &operator <<(ostream &ost, const BoundaryTriangleSet &a) 689 689 { 690 ost << "[" << a.Nr << "|" << a.endpoints[0]->node-> Name << "," << a.endpoints[1]->node->Name << "," << a.endpoints[2]->node->Name<< "]";690 ost << "[" << a.Nr << "|" << a.endpoints[0]->node->getName() << "," << a.endpoints[1]->node->getName() << "," << a.endpoints[2]->node->getName() << "]"; 691 691 // ost << "[" << a.Nr << "|" << a.endpoints[0]->node->Name << " at " << *a.endpoints[0]->node->node << "," 692 692 // << a.endpoints[1]->node->Name << " at " << *a.endpoints[1]->node->node << "," << a.endpoints[2]->node->Name << " at " << *a.endpoints[2]->node->node << "]"; … … 948 948 ost << "[" << a.Nr << "|"; 949 949 for (PointSet::const_iterator Runner = a.endpoints.begin(); Runner != a.endpoints.end();) { 950 ost << (*Runner)->node-> Name;950 ost << (*Runner)->node->getName(); 951 951 Runner++; 952 952 if (Runner != a.endpoints.end()) … … 967 967 node = NULL; 968 968 nr = -1; 969 Name = NULL;970 969 } 971 970 ; … … 983 982 ostream & operator <<(ostream &ost, const TesselPoint &a) 984 983 { 985 ost << "[" << (a.Name) << "|" << a.Name << " at" << *a.node << "]";984 ost << "[" << a.getName() << "|" << *a.node << "]"; 986 985 return ost; 987 986 } … … 1135 1134 ostream & operator <<(ostream &ost, const CandidateForTesselation &a) 1136 1135 { 1137 ost << "[" << a.BaseLine->Nr << "|" << a.BaseLine->endpoints[0]->node-> Name << "," << a.BaseLine->endpoints[1]->node->Name<< "] with ";1136 ost << "[" << a.BaseLine->Nr << "|" << a.BaseLine->endpoints[0]->node->getName() << "," << a.BaseLine->endpoints[1]->node->getName() << "] with "; 1138 1137 if (a.pointlist.empty()) 1139 1138 ost << "no candidate."; … … 1348 1347 if (fabs(distance) < 1e-4) // we need to have a small epsilon around 0 which is still ok 1349 1348 continue; 1350 DoLog(2) && (Log() << Verbose(2) << "Projection of " << checker->second->node-> Name<< " yields distance of " << distance << "." << endl);1349 DoLog(2) && (Log() << Verbose(2) << "Projection of " << checker->second->node->getName() << " yields distance of " << distance << "." << endl); 1351 1350 tmp = distance / fabs(distance); 1352 1351 // 4b. Any have different sign to than before? (i.e. would lie outside convex hull with this starting triangle) 1353 1352 if ((sign != 0) && (tmp != sign)) { 1354 1353 // 4c. If so, break 4. loop and continue with next candidate in 1. loop 1355 DoLog(2) && (Log() << Verbose(2) << "Current candidates: " << A->second->node-> Name << "," << baseline->second.first->second->node->Name << "," << baseline->second.second->second->node->Name << " leaves " << checker->second->node->Name<< " outside the convex hull." << endl);1354 DoLog(2) && (Log() << Verbose(2) << "Current candidates: " << A->second->node->getName() << "," << baseline->second.first->second->node->getName() << "," << baseline->second.second->second->node->getName() << " leaves " << checker->second->node->getName() << " outside the convex hull." << endl); 1356 1355 break; 1357 1356 } else { // note the sign for later 1358 DoLog(2) && (Log() << Verbose(2) << "Current candidates: " << A->second->node-> Name << "," << baseline->second.first->second->node->Name << "," << baseline->second.second->second->node->Name << " leave " << checker->second->node->Name<< " inside the convex hull." << endl);1357 DoLog(2) && (Log() << Verbose(2) << "Current candidates: " << A->second->node->getName() << "," << baseline->second.first->second->node->getName() << "," << baseline->second.second->second->node->getName() << " leave " << checker->second->node->getName() << " inside the convex hull." << endl); 1359 1358 sign = tmp; 1360 1359 } … … 4292 4291 DoLog(2) && (Log() << Verbose(2) << "INFO: MiddleNode is " << **MiddleNode << "." << endl); 4293 4292 DoLog(2) && (Log() << Verbose(2) << "INFO: EndNode is " << **EndNode << "." << endl); 4294 DoLog(1) && (Log() << Verbose(1) << "INFO: Attempting to create triangle " << (*StartNode)-> Name << ", " << (*MiddleNode)->Name << " and " << (*EndNode)->Name<< "." << endl);4293 DoLog(1) && (Log() << Verbose(1) << "INFO: Attempting to create triangle " << (*StartNode)->getName() << ", " << (*MiddleNode)->getName() << " and " << (*EndNode)->getName() << "." << endl); 4295 4294 TriangleCandidates[0] = *StartNode; 4296 4295 TriangleCandidates[1] = *MiddleNode; … … 4714 4713 return; 4715 4714 } 4716 DoLog(0) && (Log() << Verbose(0) << "Nearest point on boundary is " << NearestPoint-> Name<< "." << endl);4715 DoLog(0) && (Log() << Verbose(0) << "Nearest point on boundary is " << NearestPoint->getName() << "." << endl); 4717 4716 4718 4717 // go through its lines and find the best one to split … … 4799 4798 ofstream *tempstream = NULL; 4800 4799 string NameofTempFile; 4801 char NumberName[255];4800 string NumberName; 4802 4801 4803 4802 if (LastTriangle != NULL) { 4804 sprintf(NumberName, "-%04d-%s_%s_%s", (int) TrianglesOnBoundary.size(), LastTriangle->endpoints[0]->node->Name, LastTriangle->endpoints[1]->node->Name, LastTriangle->endpoints[2]->node->Name); 4803 stringstream sstr; 4804 sstr << "-"<< TrianglesOnBoundary.size() << "-" << LastTriangle->endpoints[0]->node->getName() << "_" << LastTriangle->endpoints[1]->node->getName() << "_" << LastTriangle->endpoints[2]->node->getName(); 4805 NumberName = sstr.str(); 4805 4806 if (DoTecplotOutput) { 4806 4807 string NameofTempFile(filename); -
src/tesselationhelpers.cpp
r60f50a r9757d9 829 829 if (TesselStruct->LastTriangle != NULL) { 830 830 for (int i=0;i<3;i++) 831 *tecplot << (i==0 ? "" : "_") << TesselStruct->LastTriangle->endpoints[i]->node-> Name;831 *tecplot << (i==0 ? "" : "_") << TesselStruct->LastTriangle->endpoints[i]->node->getName(); 832 832 } else { 833 833 *tecplot << "none"; … … 852 852 DoLog(1) && (Log() << Verbose(1) << "The following triangles were created:" << endl); 853 853 for (TriangleMap::const_iterator runner = TesselStruct->TrianglesOnBoundary.begin(); runner != TesselStruct->TrianglesOnBoundary.end(); runner++) { 854 DoLog(1) && (Log() << Verbose(1) << " " << runner->second->endpoints[0]->node-> Name << "<->" << runner->second->endpoints[1]->node->Name << "<->" << runner->second->endpoints[2]->node->Name<< endl);854 DoLog(1) && (Log() << Verbose(1) << " " << runner->second->endpoints[0]->node->getName() << "<->" << runner->second->endpoints[1]->node->getName() << "<->" << runner->second->endpoints[2]->node->getName() << endl); 855 855 *tecplot << LookupList[runner->second->endpoints[0]->node->nr] << " " << LookupList[runner->second->endpoints[1]->node->nr] << " " << LookupList[runner->second->endpoints[2]->node->nr] << endl; 856 856 } -
src/unittests/AnalysisCorrelationToPointUnitTest.cpp
r60f50a r9757d9 17 17 #include "AnalysisCorrelationToPointUnitTest.hpp" 18 18 19 #include "World.hpp"20 19 #include "atom.hpp" 21 #include "boundary.hpp"22 20 #include "element.hpp" 23 21 #include "molecule.hpp" 24 22 #include "linkedcell.hpp" 25 23 #include "periodentafel.hpp" 26 #include "tesselation.hpp"27 24 #include "World.hpp" 28 25 … … 43 40 TestList = NULL; 44 41 TestMolecule = NULL; 45 hydrogen = NULL;46 tafel = NULL;47 42 pointmap = NULL; 48 43 binmap = NULL; 49 44 point = NULL; 50 45 51 // construct element52 hydrogen = new element;53 hydrogen->Z = 1;54 strcpy(hydrogen->name, "hydrogen");55 strcpy(hydrogen->symbol, "H");56 57 58 // construct periodentafel59 tafel = World::getInstance().getPeriode();60 tafel->AddElement(hydrogen);61 62 46 // construct molecule (tetraeder of hydrogens) 47 hydrogen = World::getInstance().getPeriode()->FindElement(1); 48 CPPUNIT_ASSERT(hydrogen != NULL && "hydrogen element not found"); 63 49 TestMolecule = World::getInstance().createMolecule(); 64 50 Walker = World::getInstance().createAtom(); -
src/unittests/AnalysisCorrelationToPointUnitTest.hpp
r60f50a r9757d9 12 12 13 13 class element; 14 class LinkedCell;15 14 class molecule; 16 15 class MoleculeListClass; 17 class periodentafel;18 class Tesselation;19 16 class Vector; 20 17 … … 40 37 MoleculeListClass *TestList; 41 38 molecule *TestMolecule; 42 element *hydrogen; 43 periodentafel *tafel; 39 const element *hydrogen; 44 40 45 41 CorrelationToPointMap *pointmap; -
src/unittests/AnalysisCorrelationToSurfaceUnitTest.cpp
r60f50a r9757d9 17 17 #include "AnalysisCorrelationToSurfaceUnitTest.hpp" 18 18 19 #include "World.hpp"20 19 #include "atom.hpp" 21 20 #include "boundary.hpp" … … 47 46 TestList = NULL; 48 47 TestSurfaceMolecule = NULL; 49 hydrogen = NULL;50 tafel = NULL;51 48 surfacemap = NULL; 52 49 binmap = NULL; … … 54 51 LC = NULL; 55 52 56 // construct element57 hydrogen = new element;58 hydrogen->Z = 1;59 strcpy(hydrogen->name, "hydrogen");60 strcpy(hydrogen->symbol, "H");61 carbon = new element;62 carbon->Z = 6;63 strcpy(carbon->name, "carbon");64 strcpy(carbon->symbol, "C");65 66 // construct periodentafel67 tafel = World::getInstance().getPeriode();68 tafel->AddElement(hydrogen);69 tafel->AddElement(carbon);70 71 53 // construct molecule (tetraeder of hydrogens) base 54 hydrogen = World::getInstance().getPeriode()->FindElement(1); 72 55 TestSurfaceMolecule = World::getInstance().createMolecule(); 73 56 Walker = World::getInstance().createAtom(); … … 102 85 103 86 // add outer atoms 87 carbon = World::getInstance().getPeriode()->FindElement(6); 104 88 TestSurfaceMolecule = World::getInstance().createMolecule(); 105 89 Walker = World::getInstance().createAtom(); -
src/unittests/AnalysisCorrelationToSurfaceUnitTest.hpp
r60f50a r9757d9 45 45 MoleculeListClass *TestList; 46 46 molecule *TestSurfaceMolecule; 47 element *hydrogen; 48 element *carbon; 49 periodentafel *tafel; 47 const element *hydrogen; 48 const element *carbon; 50 49 51 50 CorrelationToSurfaceMap *surfacemap; -
src/unittests/AnalysisPairCorrelationUnitTest.cpp
r60f50a r9757d9 44 44 TestList = NULL; 45 45 TestMolecule = NULL; 46 hydrogen = NULL;47 tafel = NULL;48 46 correlationmap = NULL; 49 47 binmap = NULL; 50 48 51 // construct element52 hydrogen = new element;53 hydrogen->Z = 1;54 strcpy(hydrogen->name, "hydrogen");55 strcpy(hydrogen->symbol, "H");56 57 // construct periodentafel58 tafel = World::getInstance().getPeriode();59 tafel->AddElement(hydrogen);60 61 49 // construct molecule (tetraeder of hydrogens) 50 hydrogen = World::getInstance().getPeriode()->FindElement(1); 62 51 TestMolecule = World::getInstance().createMolecule(); 63 52 Walker = World::getInstance().createAtom(); -
src/unittests/AnalysisPairCorrelationUnitTest.hpp
r60f50a r9757d9 12 12 13 13 class element; 14 class LinkedCell;15 14 class molecule; 16 15 class MoleculeListClass; 17 class periodentafel;18 class Tesselation;19 16 class Vector; 20 17 … … 40 37 MoleculeListClass *TestList; 41 38 molecule *TestMolecule; 42 element *hydrogen; 43 periodentafel *tafel; 39 const element *hydrogen; 44 40 45 41 PairCorrelationMap *correlationmap; -
src/unittests/CountBondsUnitTest.cpp
r60f50a r9757d9 16 16 #include <stdio.h> 17 17 #include <cstring> 18 19 #include "Helpers/Assert.hpp" 18 20 19 21 #include "analysis_bonds.hpp" … … 40 42 { 41 43 atom *Walker = NULL; 42 BG = NULL;43 filename = NULL;44 45 // init private all pointers to zero46 molecules = NULL;47 TestMolecule1 = NULL;48 TestMolecule2 = NULL;49 hydrogen = NULL;50 oxygen = NULL;51 tafel = NULL;52 44 53 45 // construct element 54 hydrogen = new element; 55 hydrogen->Z = 1; 56 hydrogen->CovalentRadius = 0.23; 57 strcpy(hydrogen->name, "hydrogen"); 58 strcpy(hydrogen->symbol, "H"); 59 oxygen = new element; 60 oxygen->Z = 8; 61 oxygen->CovalentRadius = 0.68; 62 strcpy(oxygen->name, "oxygen"); 63 strcpy(oxygen->symbol, "O"); 64 65 // construct periodentafel 66 tafel = World::getInstance().getPeriode(); 67 tafel->AddElement(hydrogen); 68 tafel->AddElement(oxygen); 46 hydrogen = World::getInstance().getPeriode()->FindElement(1); 47 oxygen = World::getInstance().getPeriode()->FindElement(8); 48 CPPUNIT_ASSERT(hydrogen != NULL && "could not find element hydrogen"); 49 CPPUNIT_ASSERT(oxygen != NULL && "could not find element oxygen"); 69 50 70 51 // construct molecule (water molecule) 71 52 TestMolecule1 = World::getInstance().createMolecule(); 72 Walker = World::getInstance().createAtom(); 53 CPPUNIT_ASSERT(TestMolecule1 != NULL && "could not create first molecule"); 54 Walker = World::getInstance().createAtom(); 55 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 73 56 Walker->type = hydrogen; 74 57 *Walker->node = Vector(-0.2418, 0.9350, 0. ); 75 58 TestMolecule1->AddAtom(Walker); 76 59 Walker = World::getInstance().createAtom(); 60 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 77 61 Walker->type = hydrogen; 78 62 *Walker->node = Vector(0.9658, 0., 0. ); 79 63 TestMolecule1->AddAtom(Walker); 80 64 Walker = World::getInstance().createAtom(); 65 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 81 66 Walker->type = oxygen; 82 67 *Walker->node = Vector(0., 0., 0. ); … … 84 69 85 70 TestMolecule2 = World::getInstance().createMolecule(); 86 Walker = World::getInstance().createAtom(); 71 CPPUNIT_ASSERT(TestMolecule2 != NULL && "could not create second molecule"); 72 Walker = World::getInstance().createAtom(); 73 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 87 74 Walker->type = hydrogen; 88 75 *Walker->node = Vector(-0.2418, 0.9350, 0. ); 89 76 TestMolecule2->AddAtom(Walker); 90 77 Walker = World::getInstance().createAtom(); 78 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 91 79 Walker->type = hydrogen; 92 80 *Walker->node = Vector(0.9658, 0., 0. ); 93 81 TestMolecule2->AddAtom(Walker); 94 82 Walker = World::getInstance().createAtom(); 83 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 95 84 Walker->type = oxygen; 96 85 *Walker->node = Vector(0., 0., 0. ); … … 98 87 99 88 molecules = World::getInstance().getMolecules(); 89 CPPUNIT_ASSERT(molecules != NULL && "could not obtain list of molecules"); 100 90 molecules->insert(TestMolecule1); 101 91 molecules->insert(TestMolecule2); … … 111 101 // create a small file with table 112 102 BG = new BondGraph(true); 103 CPPUNIT_ASSERT(BG != NULL && "could not create BondGraph"); 113 104 114 105 // construct bond graphs … … 158 149 { 159 150 double *mirror = new double[3]; 151 CPPUNIT_ASSERT(mirror != NULL && "could not create array of doubles"); 160 152 for (int i=0;i<3;i++) 161 153 mirror[i] = -1.; -
src/unittests/CountBondsUnitTest.hpp
r60f50a r9757d9 39 39 molecule *TestMolecule1; 40 40 molecule *TestMolecule2; 41 element *hydrogen; 42 element *oxygen; 43 periodentafel *tafel; 41 const element *hydrogen; 42 const element *oxygen; 44 43 45 44 BondGraph *BG; -
src/unittests/LinkedCellUnitTest.cpp
r60f50a r9757d9 38 38 atom *Walker = NULL; 39 39 40 // init private all pointers to zero41 TestMolecule = NULL;42 hydrogen = NULL;43 tafel = NULL;44 45 40 // construct element 46 hydrogen = new element; 47 hydrogen->Z = 1; 48 hydrogen->CovalentRadius = 0.23; 49 strcpy(hydrogen->name, "hydrogen"); 50 strcpy(hydrogen->symbol, "H"); 51 52 // construct periodentafel 53 tafel = World::getInstance().getPeriode(); 54 tafel->AddElement(hydrogen); 41 hydrogen = World::getInstance().getPeriode()->FindElement(1); 42 CPPUNIT_ASSERT(hydrogen != NULL && "could not find element hydrogen"); 55 43 56 44 // construct molecule (water molecule) 57 45 TestMolecule = World::getInstance().createMolecule(); 46 CPPUNIT_ASSERT(TestMolecule != NULL && "could not create molecule"); 58 47 for (double x=0.5;x<3;x+=1.) 59 48 for (double y=0.5;y<3;y+=1.) 60 49 for (double z=0.5;z<3;z+=1.) { 61 50 Walker = World::getInstance().createAtom(); 51 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 62 52 Walker->type = hydrogen; 63 53 *Walker->node = Vector(x, y, z ); … … 67 57 // construct linked cell 68 58 LC = new LinkedCell (TestMolecule, 1.); 59 CPPUNIT_ASSERT(LC != NULL && "could not create LinkedCell"); 69 60 70 61 // check that TestMolecule was correctly constructed … … 205 196 // check internal vectors, returns false, because this atom is not in LC-list! 206 197 Walker = World::getInstance().createAtom(); 207 Walker->Name = Malloc<char>(6, "LinkedCellTest::SetIndexToNodeTest - Walker"); 208 strcpy(Walker->Name, "test"); 198 Walker->setName("test"); 209 199 Walker->x= Vector(1,1,1); 210 200 CPPUNIT_ASSERT_EQUAL( false, LC->SetIndexToNode(Walker) ); … … 213 203 // check out of bounds vectors 214 204 Walker = World::getInstance().createAtom(); 215 Walker->Name = Malloc<char>(6, "LinkedCellTest::SetIndexToNodeTest - Walker"); 216 strcpy(Walker->Name, "test"); 205 Walker->setName("test"); 217 206 Walker->x = Vector(0,-1,0); 218 207 CPPUNIT_ASSERT_EQUAL( false, LC->SetIndexToNode(Walker) ); -
src/unittests/LinkedCellUnitTest.hpp
r60f50a r9757d9 48 48 49 49 molecule *TestMolecule; 50 element *hydrogen; 51 periodentafel *tafel; 50 const element *hydrogen; 52 51 LinkedCell *LC; 53 52 }; -
src/unittests/Makefile.am
r60f50a r9757d9 33 33 MemoryAllocatorUnitTest \ 34 34 MoleculeDescriptorTest \ 35 PlaneUnittest \36 35 ObserverTest \ 37 36 ParserUnitTest \ 37 periodentafelTest \ 38 PlaneUnittest \ 38 39 SingletonTest \ 39 40 StackClassUnitTest \ … … 75 76 memoryusageobserverunittest.cpp \ 76 77 MoleculeDescriptorTest.cpp \ 77 PlaneUnittest.cpp \78 78 ObserverTest.cpp \ 79 79 ParserUnitTest.cpp \ 80 periodentafelTest.cpp \ 81 PlaneUnittest.cpp \ 80 82 SingletonTest.cpp \ 81 83 stackclassunittest.cpp \ … … 109 111 memoryusageobserverunittest.hpp \ 110 112 MoleculeDescriptorTest.hpp \ 113 periodentafelTest.hpp \ 111 114 PlaneUnittest.hpp \ 112 115 ObserverTest.hpp \ … … 194 197 ParserUnitTest_LDADD = ${ALLLIBS} 195 198 199 periodentafelTest_SOURCES = UnitTestMain.cpp periodentafelTest.cpp periodentafelTest.hpp 200 periodentafelTest_LDADD = ${ALLLIBS} 201 196 202 PlaneUnittest_SOURCES = UnitTestMain.cpp PlaneUnittest.cpp PlaneUnittest.hpp 197 203 PlaneUnittest_LDADD = ${ALLLIBS} -
src/unittests/ParserUnitTest.cpp
r60f50a r9757d9 31 31 32 32 void ParserUnitTest::setUp() { 33 element* oxygen = new element(); 34 oxygen->symbol[0] = 'O'; 35 oxygen->Z = 8; 36 World::getInstance().getPeriode()->AddElement(oxygen); 37 38 element* hydrogen = new element(); 39 hydrogen->symbol[0] = 'H'; 40 hydrogen->Z = 1; 41 World::getInstance().getPeriode()->AddElement(hydrogen); 33 World::getInstance(); 42 34 } 43 35 -
src/unittests/analysisbondsunittest.cpp
r60f50a r9757d9 40 40 atom *Walker = NULL; 41 41 42 // init private all pointers to zero 43 TestMolecule = NULL; 44 hydrogen = NULL; 45 tafel = NULL; 46 47 // construct element 48 hydrogen = new element; 49 hydrogen->Z = 1; 50 hydrogen->Valence = 1; 51 hydrogen->NoValenceOrbitals = 1; 52 strcpy(hydrogen->name, "hydrogen"); 53 strcpy(hydrogen->symbol, "H"); 54 carbon = new element; 55 carbon->Z = 2; 56 carbon->Valence = 4; 57 carbon->NoValenceOrbitals = 4; 58 strcpy(carbon->name, "carbon"); 59 strcpy(carbon->symbol, "C"); 60 61 62 // construct periodentafel 63 tafel = World::getInstance().getPeriode(); 64 tafel->AddElement(hydrogen); 65 tafel->AddElement(carbon); 42 // get elements 43 hydrogen = World::getInstance().getPeriode()->FindElement(1); 44 carbon = World::getInstance().getPeriode()->FindElement(6); 45 CPPUNIT_ASSERT(hydrogen != NULL && "could not find element hydrogen"); 46 CPPUNIT_ASSERT(carbon != NULL && "could not find element carbon"); 66 47 67 48 // construct molecule (tetraeder of hydrogens) 68 49 TestMolecule = World::getInstance().createMolecule(); 50 CPPUNIT_ASSERT(TestMolecule != NULL && "could not create molecule"); 69 51 Walker = World::getInstance().createAtom(); 52 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 70 53 Walker->type = hydrogen; 71 54 *Walker->node = Vector(1.5, 0., 1.5 ); 72 55 TestMolecule->AddAtom(Walker); 73 56 Walker = World::getInstance().createAtom(); 57 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 74 58 Walker->type = hydrogen; 75 59 *Walker->node = Vector(0., 1.5, 1.5 ); 76 60 TestMolecule->AddAtom(Walker); 77 61 Walker = World::getInstance().createAtom(); 62 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 78 63 Walker->type = hydrogen; 79 64 *Walker->node = Vector(1.5, 1.5, 0. ); 80 65 TestMolecule->AddAtom(Walker); 81 66 Walker = World::getInstance().createAtom(); 67 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 82 68 Walker->type = hydrogen; 83 69 *Walker->node = Vector(0., 0., 0. ); 84 70 TestMolecule->AddAtom(Walker); 85 71 Walker = World::getInstance().createAtom(); 72 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 86 73 Walker->type = carbon; 87 74 *Walker->node = Vector(0.5, 0.5, 0.5 ); … … 93 80 // create a small file with table 94 81 filename = new string("test.dat"); 82 CPPUNIT_ASSERT(filename != NULL && "could not create string"); 95 83 ofstream test(filename->c_str()); 96 test << ".\tH\tC\n"; 97 test << "H\t1.\t1.2\n"; 98 test << "C\t1.2\t1.5\n"; 84 test << ".\tH\tHe\tLi\tBe\tB\tC\n"; 85 test << "H\t1.\t1.\t1.\t1.\t1.\t1.2\n"; 86 test << "He\t1.\t1.\t1.\t1.\t1.\t1.\n"; 87 test << "Li\t1.\t1.\t1.\t1.\t1.\t1.\n"; 88 test << "Be\t1.\t1.\t1.\t1.\t1.\t1.\n"; 89 test << "B\t1.\t1.\t1.\t1.\t1.\t1.\n"; 90 test << "C\t1.2\t1.\t1.\t1.\t1.\t1.5\n"; 99 91 test.close(); 100 92 BG = new BondGraph(true); 93 CPPUNIT_ASSERT(BG != NULL && "could not create BondGraph"); 101 94 102 95 CPPUNIT_ASSERT_EQUAL( true , BG->LoadBondLengthTable(*filename) ); 103 96 CPPUNIT_ASSERT_EQUAL( 1., BG->GetBondLength(0,0) ); 104 CPPUNIT_ASSERT_EQUAL( 1.2, BG->GetBondLength(0, 1) );105 CPPUNIT_ASSERT_EQUAL( 1.5, BG->GetBondLength( 1,1) );97 CPPUNIT_ASSERT_EQUAL( 1.2, BG->GetBondLength(0,5) ); 98 CPPUNIT_ASSERT_EQUAL( 1.5, BG->GetBondLength(5,5) ); 106 99 107 100 BG->ConstructBondGraph(TestMolecule); -
src/unittests/analysisbondsunittest.hpp
r60f50a r9757d9 34 34 35 35 molecule *TestMolecule; 36 element *hydrogen; 37 element *carbon; 38 periodentafel *tafel; 36 const element *hydrogen; 37 const element *carbon; 39 38 40 39 BondGraph *BG; -
src/unittests/bondgraphunittest.cpp
r60f50a r9757d9 15 15 #include <stdio.h> 16 16 #include <cstring> 17 18 #include "Helpers/Assert.hpp" 17 19 18 20 #include "World.hpp" … … 41 43 atom *Walker = NULL; 42 44 43 // init private all pointers to zero44 TestMolecule = NULL;45 hydrogen = NULL;46 tafel = NULL;47 48 45 // construct element 49 hydrogen = new element; 50 hydrogen->Z = 1; 51 hydrogen->CovalentRadius = 0.23; 52 hydrogen->VanDerWaalsRadius = 1.09; 53 strcpy(hydrogen->name, "hydrogen"); 54 strcpy(hydrogen->symbol, "H"); 55 carbon = new element; 56 carbon->Z = 2; 57 carbon->CovalentRadius = 0.68; 58 carbon->VanDerWaalsRadius = 1.7; 59 strcpy(carbon->name, "carbon"); 60 strcpy(carbon->symbol, "C"); 61 62 63 // construct periodentafel 64 tafel = World::getInstance().getPeriode(); 65 tafel->AddElement(hydrogen); 66 tafel->AddElement(carbon); 46 hydrogen = World::getInstance().getPeriode()->FindElement(1); 47 carbon = World::getInstance().getPeriode()->FindElement(6); 48 CPPUNIT_ASSERT(hydrogen != NULL && "could not find element hydrogen"); 49 CPPUNIT_ASSERT(carbon != NULL && "could not find element carbon"); 67 50 68 51 // construct molecule (tetraeder of hydrogens) 69 52 TestMolecule = World::getInstance().createMolecule(); 53 CPPUNIT_ASSERT(TestMolecule != NULL && "could not create molecule"); 70 54 Walker = World::getInstance().createAtom(); 55 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 71 56 Walker->type = carbon; 72 57 *Walker->node = Vector(1., 0., 1. ); … … 74 59 75 60 Walker = World::getInstance().createAtom(); 61 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 76 62 Walker->type = carbon; 77 63 *Walker->node = Vector(0., 1., 1. ); … … 79 65 80 66 Walker = World::getInstance().createAtom(); 67 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 81 68 Walker->type = carbon; 82 69 *Walker->node = Vector(1., 1., 0. ); … … 84 71 85 72 Walker = World::getInstance().createAtom(); 73 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 86 74 Walker->type = carbon; 87 75 *Walker->node = Vector(0., 0., 0. ); … … 93 81 // create a small file with table 94 82 dummyname = new string("dummy.dat"); 83 CPPUNIT_ASSERT(dummyname != NULL && "could not create string"); 95 84 filename = new string("test.dat"); 85 CPPUNIT_ASSERT(filename != NULL && "could not create string"); 96 86 ofstream test(filename->c_str()); 97 test << ".\tH\tC\n"; 98 test << "H\t1.\t1.2\n"; 99 test << "C\t1.2\t1.5\n"; 87 test << ".\tH\tHe\tLi\tBe\tB\tC\n"; 88 test << "H\t1.\t1.\t1.\t1.\t1.\t1.2\n"; 89 test << "He\t1.\t1.\t1.\t1.\t1.\t1.\n"; 90 test << "Li\t1.\t1.\t1.\t1.\t1.\t1.\n"; 91 test << "Be\t1.\t1.\t1.\t1.\t1.\t1.\n"; 92 test << "B\t1.\t1.\t1.\t1.\t1.\t1.\n"; 93 test << "C\t1.2\t1.\t1.\t1.\t1.\t1.5\n"; 100 94 test.close(); 101 95 BG = new BondGraph(true); 96 CPPUNIT_ASSERT(BG != NULL && "could not create BondGraph"); 102 97 }; 103 98 … … 126 121 CPPUNIT_ASSERT_EQUAL( true , BG->LoadBondLengthTable(*filename) ); 127 122 CPPUNIT_ASSERT_EQUAL( 1., BG->GetBondLength(0,0) ); 128 CPPUNIT_ASSERT_EQUAL( 1.2, BG->GetBondLength(0, 1) );129 CPPUNIT_ASSERT_EQUAL( 1.5, BG->GetBondLength( 1,1) );123 CPPUNIT_ASSERT_EQUAL( 1.2, BG->GetBondLength(0,5) ); 124 CPPUNIT_ASSERT_EQUAL( 1.5, BG->GetBondLength(5,5) ); 130 125 }; 131 126 -
src/unittests/bondgraphunittest.hpp
r60f50a r9757d9 37 37 38 38 molecule *TestMolecule; 39 element *hydrogen; 40 element *carbon; 41 periodentafel *tafel; 39 const element *hydrogen; 40 const element *carbon; 42 41 43 42 BondGraph *BG; -
src/unittests/listofbondsunittest.cpp
r60f50a r9757d9 38 38 atom *Walker = NULL; 39 39 40 // init private all pointers to zero41 TestMolecule = NULL;42 hydrogen = NULL;43 tafel = NULL;44 45 40 // construct element 46 hydrogen = new element; 47 hydrogen->Z = 1; 48 strcpy(hydrogen->name, "hydrogen"); 49 strcpy(hydrogen->symbol, "H"); 50 51 52 // construct periodentafel 53 tafel = World::getInstance().getPeriode(); 54 tafel->AddElement(hydrogen); 41 hydrogen = World::getInstance().getPeriode()->FindElement(1); 42 CPPUNIT_ASSERT(hydrogen != NULL && "could not find element hydrogen"); 55 43 56 44 // construct molecule (tetraeder of hydrogens) 57 45 TestMolecule = World::getInstance().createMolecule(); 58 Walker = World::getInstance().createAtom(); 46 CPPUNIT_ASSERT(TestMolecule != NULL && "could not create molecule"); 47 Walker = World::getInstance().createAtom(); 48 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 59 49 Walker->type = hydrogen; 60 50 *Walker->node = Vector(1., 0., 1. ); 61 51 TestMolecule->AddAtom(Walker); 62 52 Walker = World::getInstance().createAtom(); 53 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 63 54 Walker->type = hydrogen; 64 55 *Walker->node = Vector(0., 1., 1. ); 65 56 TestMolecule->AddAtom(Walker); 66 57 Walker = World::getInstance().createAtom(); 58 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 67 59 Walker->type = hydrogen; 68 60 *Walker->node = Vector(1., 1., 0. ); 69 61 TestMolecule->AddAtom(Walker); 70 62 Walker = World::getInstance().createAtom(); 63 CPPUNIT_ASSERT(Walker != NULL && "could not create atom"); 71 64 Walker->type = hydrogen; 72 65 *Walker->node = Vector(0., 0., 0. ); … … 75 68 // check that TestMolecule was correctly constructed 76 69 CPPUNIT_ASSERT_EQUAL( TestMolecule->AtomCount, 4 ); 77 78 70 }; 79 71 -
src/unittests/listofbondsunittest.hpp
r60f50a r9757d9 41 41 42 42 molecule *TestMolecule; 43 element *hydrogen; 44 periodentafel *tafel; 43 const element *hydrogen; 45 44 }; 46 45 -
src/unittests/tesselation_boundarytriangleunittest.cpp
r60f50a r9757d9 37 37 tesselpoints[0] = new TesselPoint; 38 38 tesselpoints[0]->node = new Vector(0., 0., 0.); 39 tesselpoints[0]->Name = Malloc<char>(3, "TesselationBoundaryTriangleTest::setUp - *Name"); 40 strcpy(tesselpoints[0]->Name, "1"); 39 tesselpoints[0]->setName("1"); 41 40 tesselpoints[0]->nr = 1; 42 41 points[0] = new BoundaryPointSet(tesselpoints[0]); 43 42 tesselpoints[1] = new TesselPoint; 44 43 tesselpoints[1]->node = new Vector(0., 1., 0.); 45 tesselpoints[1]->Name = Malloc<char>(3, "TesselationBoundaryTriangleTest::setUp - *Name"); 46 strcpy(tesselpoints[1]->Name, "2"); 44 tesselpoints[1]->setName("2"); 47 45 tesselpoints[1]->nr = 2; 48 46 points[1] = new BoundaryPointSet(tesselpoints[1]); 49 47 tesselpoints[2] = new TesselPoint; 50 tesselpoints[2] ->node = new Vector(1., 0., 0.); 51 tesselpoints[2] ->Name = Malloc<char>(3, "TesselationBoundaryTriangleTest::setUp - *Name"); 52 strcpy(tesselpoints[2] ->Name, "3"); 53 tesselpoints[2] ->nr = 3; 48 tesselpoints[2]->node = new Vector(1., 0., 0.); 49 tesselpoints[2]->setName("3"); 50 tesselpoints[2]->nr = 3; 54 51 points[2] = new BoundaryPointSet(tesselpoints[2] ); 55 52 -
src/unittests/tesselation_insideoutsideunittest.cpp
r60f50a r9757d9 38 38 Walker = new TesselPoint; 39 39 Walker->node = new Vector(0., 0., 0.); 40 Walker->Name = Malloc<char>(3, "TesselationInOutsideTest::setUp - *Name"); 41 strcpy(Walker->Name, "1"); 40 Walker->setName("1"); 42 41 Walker->nr = 1; 43 42 Corners.push_back(Walker); 44 43 Walker = new TesselPoint; 45 44 Walker->node = new Vector(0., 1., 0.); 46 Walker->Name = Malloc<char>(3, "TesselationInOutsideTest::setUp - *Name"); 47 strcpy(Walker->Name, "2"); 45 Walker->setName("2"); 48 46 Walker->nr = 2; 49 47 Corners.push_back(Walker); 50 48 Walker = new TesselPoint; 51 49 Walker->node = new Vector(1., 0., 0.); 52 Walker->Name = Malloc<char>(3, "TesselationInOutsideTest::setUp - *Name"); 53 strcpy(Walker->Name, "3"); 50 Walker->setName("3"); 54 51 Walker->nr = 3; 55 52 Corners.push_back(Walker); 56 53 Walker = new TesselPoint; 57 54 Walker->node = new Vector(1., 1., 0.); 58 Walker->Name = Malloc<char>(3, "TesselationInOutsideTest::setUp - *Name"); 59 strcpy(Walker->Name, "4"); 55 Walker->setName("4"); 60 56 Walker->nr = 4; 61 57 Corners.push_back(Walker); 62 58 Walker = new TesselPoint; 63 59 Walker->node = new Vector(0., 0., 1.); 64 Walker->Name = Malloc<char>(3, "TesselationInOutsideTest::setUp - *Name"); 65 strcpy(Walker->Name, "5"); 60 Walker->setName("5"); 66 61 Walker->nr = 5; 67 62 Corners.push_back(Walker); 68 63 Walker = new TesselPoint; 69 64 Walker->node = new Vector(0., 1., 1.); 70 Walker->Name = Malloc<char>(3, "TesselationInOutsideTest::setUp - *Name"); 71 strcpy(Walker->Name, "6"); 65 Walker->setName("6"); 72 66 Walker->nr = 6; 73 67 Corners.push_back(Walker); 74 68 Walker = new TesselPoint; 75 69 Walker->node = new Vector(1., 0., 1.); 76 Walker->Name = Malloc<char>(3, "TesselationInOutsideTest::setUp - *Name"); 77 strcpy(Walker->Name, "7"); 70 Walker->setName("7"); 78 71 Walker->nr = 7; 79 72 Corners.push_back(Walker); 80 73 Walker = new TesselPoint; 81 74 Walker->node = new Vector(1., 1., 1.); 82 Walker->Name = Malloc<char>(3, "TesselationInOutsideTest::setUp - *Name"); 83 strcpy(Walker->Name, "8"); 75 Walker->setName("8"); 84 76 Walker->nr = 8; 85 77 Corners.push_back(Walker); -
src/unittests/tesselationunittest.cpp
r60f50a r9757d9 37 37 Walker = new TesselPoint; 38 38 Walker->node = new Vector(1., 0., -1.); 39 Walker->Name = Malloc<char>(3, "TesselationTest::setUp"); 40 strcpy(Walker->Name, "1"); 39 Walker->setName("1"); 41 40 Walker->nr = 1; 42 41 Corners.push_back(Walker); 43 42 Walker = new TesselPoint; 44 43 Walker->node = new Vector(-1., 1., -1.); 45 Walker->Name = Malloc<char>(3, "TesselationTest::setUp"); 46 strcpy(Walker->Name, "2"); 44 Walker->setName("2"); 47 45 Walker->nr = 2; 48 46 Corners.push_back(Walker); 49 47 Walker = new TesselPoint; 50 48 Walker->node = new Vector(-1., -1., -1.); 51 Walker->Name = Malloc<char>(3, "TesselationTest::setUp"); 52 strcpy(Walker->Name, "3"); 49 Walker->setName("3"); 53 50 Walker->nr = 3; 54 51 Corners.push_back(Walker); 55 52 Walker = new TesselPoint; 56 53 Walker->node = new Vector(-1., 0., 1.); 57 Walker->Name = Malloc<char>(3, "TesselationTest::setUp"); 58 strcpy(Walker->Name, "4"); 54 Walker->setName("4"); 59 55 Walker->nr = 4; 60 56 Corners.push_back(Walker); -
tests/testsuite.at
r60f50a r9757d9 11 11 AT_KEYWORDS([options]) 12 12 AT_CHECK([pwd],[ignore],[ignore]) 13 AT_CHECK([../../molecuilder -v ], 0, [stdout], [ignore])13 AT_CHECK([../../molecuilder -v 1], 0, [stdout], [ignore]) 14 14 AT_CHECK([fgrep olecuilder stdout], 0, [ignore], [ignore]) 15 15 AT_CHECK([../../molecuilder -h], 0, [stdout], [ignore]) … … 17 17 AT_CHECK([../../molecuilder -e], 255, [ignore], [stderr]) 18 18 AT_CHECK([fgrep "Not enough or invalid arguments" stderr], 0, [ignore], [ignore]) 19 AT_CHECK([../../molecuilder test.conf], 0, [stdout], [stderr])20 AT_CHECK([fgrep "Element list loading failed" stdout], 0, [ignore], [ignore])21 19 AT_CLEANUP 22 20 … … 105 103 AT_KEYWORDS([graph]) 106 104 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/regression/Graph/1/pre/test.conf .], 0) 107 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v vv-D 2.], 0, [stdout], [stderr])105 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -D 2.], 0, [stdout], [stderr]) 108 106 AT_CHECK([fgrep -c "No rings were detected in the molecular structure." stdout], 0, [1 109 107 ], [ignore])
Note:
See TracChangeset
for help on using the changeset viewer.