Changes in / [752bb4:360c8b]


Ignore:
Files:
501 added
167 deleted
123 edited

Legend:

Unmodified
Added
Removed
  • configure.ac

    r752bb4 r360c8b  
    138138
    139139
    140 # CodePatterns library (needs Observer::Channels )
    141 AM_PATH_CODEPATTERNS([1.1.5], $have_debug,,[AC_MSG_ERROR([Missing CodePatterns library, please specify PKG_CONFIG_PATH or use --with-codepatterns...])])
     140# CodePatterns library (needs valarray in MemDebug )
     141AM_PATH_CODEPATTERNS([1.1.6], $have_debug,,[AC_MSG_ERROR([Missing CodePatterns library, please specify PKG_CONFIG_PATH or use --with-codepatterns...])])
    142142
    143143# Checks for header files.
     
    219219
    220220# test suite
     221
    221222AC_CONFIG_FILES([
    222223        tests/Makefile])
     
    231232        tests/Fragmentations/atlocal
    232233        tests/Fragmentations/Makefile])
     234AC_CONFIG_FILES([tests/Fragmentations/analyzer], [chmod +x tests/Fragmentations/analyzer])
     235AC_CONFIG_FILES([tests/Fragmentations/joiner], [chmod +x tests/Fragmentations/joiner])
    233236AC_CONFIG_FILES([tests/Fragmentations/molecuilder], [chmod +x tests/Fragmentations/molecuilder])
    234237
     
    248251        doc/molecuilder.xml])
    249252AC_CONFIG_FILES([
    250   MoleCuilder.pc:MoleCuilder.pc.in])
     253        MoleCuilder.pc:MoleCuilder.pc.in])
    251254AC_CONFIG_FILES([
    252255        Makefile
     
    255258])
    256259AC_CONFIG_FILES([
    257   src/unittests/Makefile
     260        src/unittests/Makefile
    258261])
    259262AC_OUTPUT
  • src/Actions/AnalysisAction/DipoleAngularCorrelationAction.cpp

    r752bb4 r360c8b  
    2020#include "CodePatterns/MemDebug.hpp"
    2121
    22 #include "analysis_correlation.hpp"
    23 #include "boundary.hpp"
     22#include "Analysis/analysis_correlation.hpp"
     23#include "Tesselation/boundary.hpp"
    2424#include "linkedcell.hpp"
    2525#include "CodePatterns/Verbose.hpp"
    2626#include "CodePatterns/Log.hpp"
    27 #include "element.hpp"
     27#include "Element/element.hpp"
    2828#include "molecule.hpp"
    29 #include "periodentafel.hpp"
     29#include "Element/periodentafel.hpp"
    3030#include "LinearAlgebra/Vector.hpp"
    3131#include "World.hpp"
  • src/Actions/AnalysisAction/MolecularVolumeAction.cpp

    r752bb4 r360c8b  
    2020#include "CodePatterns/MemDebug.hpp"
    2121
    22 #include "boundary.hpp"
     22#include "Tesselation/boundary.hpp"
    2323#include "config.hpp"
    2424#include "molecule.hpp"
     
    2727#include "CodePatterns/Verbose.hpp"
    2828#include "PointCloudAdaptor.hpp"
    29 #include "tesselation.hpp"
     29#include "Tesselation/tesselation.hpp"
    3030#include "World.hpp"
    3131
  • src/Actions/AnalysisAction/PairCorrelationAction.cpp

    r752bb4 r360c8b  
    2020#include "CodePatterns/MemDebug.hpp"
    2121
    22 #include "analysis_correlation.hpp"
    23 #include "boundary.hpp"
     22#include "Analysis/analysis_correlation.hpp"
     23#include "Tesselation/boundary.hpp"
    2424#include "linkedcell.hpp"
    2525#include "CodePatterns/Verbose.hpp"
    2626#include "CodePatterns/Log.hpp"
    27 #include "element.hpp"
     27#include "Element/element.hpp"
    2828#include "molecule.hpp"
    29 #include "periodentafel.hpp"
     29#include "Element/periodentafel.hpp"
    3030#include "LinearAlgebra/Vector.hpp"
    3131#include "World.hpp"
  • src/Actions/AnalysisAction/PointCorrelationAction.cpp

    r752bb4 r360c8b  
    2020#include "CodePatterns/MemDebug.hpp"
    2121
    22 #include "analysis_correlation.hpp"
    23 #include "boundary.hpp"
     22#include "Analysis/analysis_correlation.hpp"
     23#include "Tesselation/boundary.hpp"
    2424#include "linkedcell.hpp"
    2525#include "CodePatterns/Verbose.hpp"
    2626#include "CodePatterns/Log.hpp"
    27 #include "element.hpp"
     27#include "Element/element.hpp"
    2828#include "molecule.hpp"
    29 #include "periodentafel.hpp"
     29#include "Element/periodentafel.hpp"
    3030#include "LinearAlgebra/Vector.hpp"
    3131#include "World.hpp"
  • src/Actions/AnalysisAction/PrincipalAxisSystemAction.cpp

    r752bb4 r360c8b  
    2424#include "LinearAlgebra/RealSpaceMatrix.hpp"
    2525#include "LinearAlgebra/Vector.hpp"
    26 #include "element.hpp"
     26#include "Element/element.hpp"
    2727#include "molecule.hpp"
    2828
  • src/Actions/AnalysisAction/SurfaceCorrelationAction.cpp

    r752bb4 r360c8b  
    2020#include "CodePatterns/MemDebug.hpp"
    2121
    22 #include "analysis_correlation.hpp"
    23 #include "boundary.hpp"
     22#include "Analysis/analysis_correlation.hpp"
     23#include "Tesselation/boundary.hpp"
    2424#include "linkedcell.hpp"
    2525#include "CodePatterns/Verbose.hpp"
    2626#include "CodePatterns/Log.hpp"
    2727#include "Descriptors/MoleculeIdDescriptor.hpp"
    28 #include "element.hpp"
     28#include "Element/element.hpp"
    2929#include "LinearAlgebra/Vector.hpp"
    3030#include "molecule.hpp"
    31 #include "periodentafel.hpp"
     31#include "Element/periodentafel.hpp"
    3232#include "PointCloudAdaptor.hpp"
    33 #include "tesselation.hpp"
     33#include "Tesselation/tesselation.hpp"
    3434#include "World.hpp"
    3535
  • src/Actions/AtomAction/AddAction.cpp

    r752bb4 r360c8b  
    2222#include "Descriptors/AtomIdDescriptor.hpp"
    2323#include "atom.hpp"
    24 #include "element.hpp"
     24#include "Element/element.hpp"
    2525#include "CodePatterns/Log.hpp"
    2626#include "molecule.hpp"
  • src/Actions/AtomAction/ChangeElementAction.cpp

    r752bb4 r360c8b  
    2222#include "Descriptors/AtomIdDescriptor.hpp"
    2323#include "atom.hpp"
    24 #include "element.hpp"
     24#include "Element/element.hpp"
    2525#include "CodePatterns/Log.hpp"
    2626#include "LinearAlgebra/Vector.hpp"
  • src/Actions/CommandAction/BondLengthTableAction.cpp

    r752bb4 r360c8b  
    1717#include <config.h>
    1818#endif
     19
     20// include headers that implement a archive in simple text format
     21#include <boost/archive/text_oarchive.hpp>
     22#include <boost/archive/text_iarchive.hpp>
    1923
    2024#include "CodePatterns/MemDebug.hpp"
     
    4448
    4549  DoLog(0) && (Log() << Verbose(0) << "Using " << params.BondGraphFileName << " as bond length table." << endl);
    46   config *configuration = World::getInstance().getConfig();
    47   BondGraph *OldBG = World::getInstance().getBondGraph();
     50  BondGraph *&BG = World::getInstance().getBondGraph();
    4851
    49   BondGraph *BG = new BondGraph(configuration->GetIsAngstroem());
     52  // create undo state
     53  std::stringstream undostream;
     54  boost::archive::text_oarchive oa(undostream);
     55  oa << BG;
     56  CommandBondLengthTableState *UndoState =
     57      new CommandBondLengthTableState(
     58          undostream.str(),
     59          params
     60      );
     61
     62  BG->CleanupBondLengthTable();
    5063  if ((!params.BondGraphFileName.empty())
    5164      && boost::filesystem::exists(params.BondGraphFileName)) {
     
    5467      DoLog(0) && (Log() << Verbose(0) << "Bond length table parsed successfully." << endl);
    5568      input.close();
    56       CommandBondLengthTableState *state = new CommandBondLengthTableState(*OldBG, params);
    57       World::getInstance().setBondGraph(BG);  // Changes OldBG, hence have to copy beforehand
    58       return Action::state_ptr(state);
     69      return Action::state_ptr(UndoState);
    5970    } else {
    6071      DoeLog(1) && (eLog()<< Verbose(1) << "Bond length table parsing failed." << endl);
    6172      input.close();
    62       return Action::failure;
    6373    }
    6474  } else {
    6575    DoeLog(1) && (eLog()<< Verbose(1) << "Bond length table loading failed." << endl);
    66     return Action::failure;
    6776  }
     77  // recover bond graph
     78  boost::archive::text_iarchive ia(undostream);
     79  delete BG;
     80  ia >> BG;
     81  delete UndoState;
     82  return Action::failure;
    6883}
    6984
     
    7186  CommandBondLengthTableState *state = assert_cast<CommandBondLengthTableState*>(_state.get());
    7287
    73   BondGraph *OldBG = World::getInstance().getBondGraph();
    74   CommandBondLengthTableState *restate = new CommandBondLengthTableState(*OldBG, params);
    75   World::getInstance().setBondGraph(new BondGraph(state->OldBG));  // Changes OldBG, hence have to copy beforehand
     88  BondGraph *BG;
     89  std::stringstream undostream(state->undostring);
     90  boost::archive::text_iarchive ia(undostream);
     91  ia >> BG;
     92  World::getInstance().setBondGraph(BG);
    7693
    77   return Action::state_ptr(restate);
     94  return Action::state_ptr(_state);
    7895}
    7996
     
    8198  CommandBondLengthTableState *state = assert_cast<CommandBondLengthTableState*>(_state.get());
    8299
    83   BondGraph *OldBG = World::getInstance().getBondGraph();
    84   CommandBondLengthTableState *restate = new CommandBondLengthTableState(*OldBG, params);
    85   World::getInstance().setBondGraph(new BondGraph(state->OldBG));  // Changes OldBG, hence have to copy beforehand
     100  BondGraph *&BG = World::getInstance().getBondGraph();
     101  BG->CleanupBondLengthTable();
     102  std::ifstream input(state->params.BondGraphFileName.string().c_str());
     103  if ((input.good()) && (BG->LoadBondLengthTable(input))) {
     104    DoLog(0) && (Log() << Verbose(0) << "Bond length table parsed successfully." << endl);
     105    input.close();
     106  }
    86107
    87   return Action::state_ptr(restate);
     108  return Action::state_ptr(_state);
    88109}
    89110
    90111bool CommandBondLengthTableAction::canUndo() {
    91   return false;
     112  return true;
    92113}
    93114
    94115bool CommandBondLengthTableAction::shouldUndo() {
    95   return false;
     116  return true;
    96117}
    97118/** =========== end of function ====================== */
  • src/Actions/CommandAction/BondLengthTableAction.def

    r752bb4 r360c8b  
    1919#define paramreferences (BondGraphFileName)
    2020
    21 #define statetypes (BondGraph)
    22 #define statereferences (OldBG)
     21#define statetypes (std::string)
     22#define statereferences (undostring)
    2323
    2424// some defines for all the names, you may use ACTION, STATE and PARAMS
  • src/Actions/CommandAction/ElementDbAction.cpp

    r752bb4 r360c8b  
    2525
    2626#include "config.hpp"
    27 #include "element.hpp"    // we need element because of serialization!
    28 #include "periodentafel.hpp"
     27#include "Element/element.hpp"    // we need element because of serialization!
     28#include "Element/periodentafel.hpp"
    2929#include "CodePatterns/Log.hpp"
    3030#include "CodePatterns/Verbose.hpp"
     
    4747  // obtain information
    4848  getParametersfromValueStorage();
    49   periodentafel *periode = World::getInstance().getPeriode();
     49  periodentafel *&periode = World::getInstance().getPeriode();
    5050
    5151  // create undo state
     
    6565
    6666  // load table
     67  periode->CleanupPeriodtable();
    6768  if (periode->LoadPeriodentafel(configuration->databasepath)) {
    6869    DoLog(0) && (Log() << Verbose(0) << "Element list loaded successfully." << endl);
     
    7172  } else {
    7273    DoLog(0) && (Log() << Verbose(0) << "Element list loading failed." << endl);
     74    delete UndoState;
    7375    return Action::failure;
    7476  }
     
    99101
    100102  // load table
    101   periodentafel *periode = World::getInstance().getPeriode();
     103  periodentafel *&periode = World::getInstance().getPeriode();
     104  periode->CleanupPeriodtable();
    102105  if (periode->LoadPeriodentafel(configuration->databasepath)) {
    103106    DoLog(0) && (Log() << Verbose(0) << "Element list loaded successfully." << endl);
  • src/Actions/GraphAction/CreateAdjacencyAction.cpp

    r752bb4 r360c8b  
    2020#include "CodePatterns/MemDebug.hpp"
    2121
    22 #include "Descriptors/AtomIdDescriptor.hpp"
    23 #include "Descriptors/MoleculeDescriptor.hpp"
     22#include "CodePatterns/Log.hpp"
    2423
    25 #include "atom.hpp"
    26 #include "Bond/bond.hpp"
    27 #include "CodePatterns/Log.hpp"
    28 #include "CodePatterns/Range.hpp"
    29 #include "CodePatterns/Verbose.hpp"
    30 #include "config.hpp"
     24#include "Descriptors/AtomSelectionDescriptor.hpp"
    3125#include "Graph/BondGraph.hpp"
    32 #include "linkedcell.hpp"
    3326#include "molecule.hpp"
    34 #include "PointCloudAdaptor.hpp"
    3527#include "World.hpp"
    36 #include "WorldTime.hpp"
    3728
    3829#include <iostream>
    3930#include <list>
    4031#include <string>
    41 
    42 typedef std::map< moleculeId_t, std::vector<atomId_t> > MolAtomList;
    4332
    4433#include "Actions/GraphAction/CreateAdjacencyAction.hpp"
     
    5443  getParametersfromValueStorage();
    5544
    56   DoLog(1) && (Log() << Verbose(1) << "Constructing bond graph for selected atoms ... " << endl);
    57 
    5845  BondGraph *BG = World::getInstance().getBondGraph();
    5946  ASSERT(BG != NULL, "GraphCreateAdjacencyAction: BondGraph is NULL.");
    60   double BondDistance = BG->getMaxPossibleBondDistance(AtomSetMixin<std::vector<atom *> >(World::getInstance().getSelectedAtoms()));
    6147
    62   atom *Walker = NULL;
    63   atom *OtherWalker = NULL;
    64   int n[NDIM];
    65   LinkedCell *LC = NULL;
    66   Box &domain = World::getInstance().getDomain();
     48  World::AtomComposite Set = World::getInstance().getAllAtoms(AtomsBySelection());
     49  BG->CreateAdjacency(Set);
    6750
    68   // remove every bond from the selected atoms' list
    69   int AtomCount = 0;
    70   for (World::AtomSelectionIterator AtomRunner = World::getInstance().beginAtomSelection();
    71       AtomRunner != World::getInstance().endAtomSelection();
    72       ++AtomRunner) {
    73     AtomCount++;
    74     (AtomRunner->second)->removeAllBonds();
    75 //    BondList& ListOfBonds = (AtomRunner->second)->getListOfBonds();
    76 //    for(BondList::iterator BondRunner = ListOfBonds.begin();
    77 //        !ListOfBonds.empty();
    78 //        BondRunner = ListOfBonds.begin())
    79 //      if ((*BondRunner)->leftatom == AtomRunner->second)
    80 //        delete((*BondRunner));
    81   }
    82   int BondCount = 0;
    83 
    84   // count atoms in molecule = dimension of matrix (also give each unique name and continuous numbering)
    85   DoLog(1) && (Log() << Verbose(1) << "AtomCount " << AtomCount << " and bonddistance is " << BondDistance << "." << endl);
    86 
    87   if ((AtomCount > 1) && (BondDistance > 1.)) {
    88     DoLog(2) && (Log() << Verbose(2) << "Creating Linked Cell structure ... " << endl);
    89     TesselPointSTLList list;
    90     for (World::AtomSelectionIterator AtomRunner = World::getInstance().beginAtomSelection();
    91         AtomRunner != World::getInstance().endAtomSelection();
    92         ++AtomRunner) {
    93       list.push_back(AtomRunner->second);
    94     }
    95     PointCloudAdaptor< TesselPointSTLList > cloud(&list, "AtomSelection");
    96     LC = new LinkedCell(cloud, BondDistance);
    97 
    98     // create a list to map Tesselpoint::Nr to atom *
    99     DoLog(2) && (Log() << Verbose(2) << "Creating TesselPoint to atom map ... " << endl);
    100 
    101     // set numbers for atoms that can later be used
    102     std::map<TesselPoint *, int> AtomIds;
    103     int i=0;
    104     for (World::AtomSelectionIterator AtomRunner = World::getInstance().beginAtomSelection();
    105         AtomRunner != World::getInstance().endAtomSelection();
    106         ++AtomRunner) {
    107       AtomIds.insert(pair<TesselPoint *, int> (AtomRunner->second, i++) );
    108     }
    109 
    110     // 3a. go through every cell
    111     DoLog(2) && (Log() << Verbose(2) << "Celling ... " << endl);
    112     for (LC->n[0] = 0; LC->n[0] < LC->N[0]; LC->n[0]++)
    113       for (LC->n[1] = 0; LC->n[1] < LC->N[1]; LC->n[1]++)
    114         for (LC->n[2] = 0; LC->n[2] < LC->N[2]; LC->n[2]++) {
    115           const TesselPointSTLList *List = LC->GetCurrentCell();
    116 //          Log() << Verbose(2) << "Current cell is " << LC->n[0] << ", " << LC->n[1] << ", " << LC->n[2] << " with No. " << LC->index << " containing " << List->size() << " points." << endl;
    117           if (List != NULL) {
    118             for (TesselPointSTLList::const_iterator Runner = List->begin();
    119                 Runner != List->end();
    120                 Runner++) {
    121               Walker = dynamic_cast<atom*>(*Runner);
    122               ASSERT(Walker,"Tesselpoint that was not an atom retrieved from LinkedNode");
    123               //Log() << Verbose(0) << "Current Atom is " << *Walker << "." << endl;
    124               // 3c. check for possible bond between each atom in this and every one in the 27 cells
    125               for (n[0] = -1; n[0] <= 1; n[0]++)
    126                 for (n[1] = -1; n[1] <= 1; n[1]++)
    127                   for (n[2] = -1; n[2] <= 1; n[2]++) {
    128                     const TesselPointSTLList *OtherList = LC->GetRelativeToCurrentCell(n);
    129 //                    Log() << Verbose(2) << "Current relative cell is " << LC->n[0] << ", " << LC->n[1] << ", " << LC->n[2] << " with No. " << LC->index << " containing " << List->size() << " points." << endl;
    130                     if (OtherList != NULL) {
    131                       for (TesselPointSTLList::const_iterator OtherRunner = OtherList->begin(); OtherRunner != OtherList->end(); OtherRunner++) {
    132                         if (AtomIds.find(*OtherRunner)->second > AtomIds.find(Walker)->second) {
    133                           OtherWalker = dynamic_cast<atom*>(*OtherRunner);
    134                           ASSERT(OtherWalker,"TesselPoint that was not an atom retrieved from LinkedNode");
    135                           //Log() << Verbose(1) << "Checking distance " << OtherWalker->x.PeriodicDistanceSquared(&(Walker->x), cell_size) << " against typical bond length of " << bonddistance*bonddistance << "." << endl;
    136                           const range<double> MinMaxDistanceSquared(
    137                               BG->getMinMaxDistanceSquared(Walker, OtherWalker));
    138                           const double distance = domain.periodicDistanceSquared(OtherWalker->getPosition(),Walker->getPosition());
    139                           const bool status = MinMaxDistanceSquared.isInRange(distance);
    140 //                          LOG3, "INFO: MinMaxDistanceSquared interval is " << MinMaxDistanceSquared << ".");
    141                           if (AtomIds[OtherWalker->father] > AtomIds[Walker->father]) {
    142                             if (status) { // create bond if distance is smaller
    143 //                              Log() << Verbose(1) << "Adding Bond between " << *Walker << " and " << *OtherWalker << " in distance " << sqrt(distance) << "." << endl;
    144                               //const bond * Binder =
    145                                   Walker->father->addBond(WorldTime::getTime(), OtherWalker->father);
    146                               BondCount++;
    147                             } else {
    148 //                              Log() << Verbose(1) << "Not Adding: distance too great." << endl;
    149                             }
    150                           } else {
    151 //                            Log() << Verbose(1) << "Not Adding: Wrong order of labels." << endl;
    152                           }
    153                         }
    154                       }
    155                     }
    156                   }
    157             }
    158           }
    159         }
    160     delete (LC);
    161     DoLog(1) && (Log() << Verbose(1) << "I detected " << BondCount << " bonds in the molecule with distance " << BondDistance << "." << endl);
    162 
    163     // correct bond degree by comparing valence and bond degree
    164     DoLog(2) && (Log() << Verbose(2) << "Correcting bond degree ... " << endl);
    165     //CorrectBondDegree();
    166 
    167   } else
    168     DoLog(1) && (Log() << Verbose(1) << "AtomCount is " << AtomCount << ", thus no bonds, no connections!." << endl);
    169   DoLog(0) && (Log() << Verbose(0) << "End of CreateAdjacencyList." << endl);
     51  size_t BondCount = 0;
     52  std::vector<molecule *> molecules = World::getInstance().getAllMolecules();
     53  for (std::vector<molecule *>::const_iterator iter = molecules.begin();
     54      iter != molecules.end(); ++iter)
     55    BondCount += (*iter)->getBondCount();
     56  LOG(0, "STATUS: Recognized " << BondCount << " bonds.");
    17057
    17158  return Action::success;
  • src/Actions/GraphAction/SubgraphDissectionAction.cpp

    r752bb4 r360c8b  
    7474  }
    7575
    76   // 0b. remove all bonds and construct a molecule with all atoms
    77   molecule *mol = World::getInstance().createMolecule();
    78   {
    79     vector <atom *> allatoms = World::getInstance().getAllAtoms();
    80     for(vector<atom *>::iterator AtomRunner = allatoms.begin(); AtomRunner != allatoms.end(); ++AtomRunner) {
    81 //      const BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
    82 //      for(BondList::iterator BondRunner = ListOfBonds.begin();
    83 //          !ListOfBonds.empty();
    84 //          BondRunner = ListOfBonds.begin()) {
    85 //        delete(*BondRunner);
    86 //      }
    87       mol->AddAtom(*AtomRunner);
    88     }
    89   }
    90 
    9176  // 1. create the bond structure of the single molecule
    9277  LOG(0, "STATUS: (Re-)constructing adjacency.");
    93   if (mol->getBondCount() == 0) {
    94     BondGraph *BG = World::getInstance().getBondGraph();
    95     molecule::atomVector Set = mol->getAtomSet();
    96     BG->CreateAdjacency(Set);
    97 //    if (mol->getBondCount() == 0) {
    98 //      World::getInstance().destroyMolecule(mol);
    99 //      ELOG(1, "There are no bonds.");
    100 //      return Action::failure;
    101 //    }
    102   }
     78  BondGraph *BG = World::getInstance().getBondGraph();
     79  World::AtomComposite Set = World::getInstance().getAllAtoms();
     80  BG->CreateAdjacency(Set);
    10381
    10482  // 2. scan for connected subgraphs
     
    10886  if (!World::getInstance().numMolecules()) {
    10987    //World::getInstance().destroyMolecule(mol);
    110     DoeLog(1) && (eLog()<< Verbose(1) << "There are no atoms." << endl);
     88    DoeLog(1) && (eLog()<< Verbose(1) << "There are no molecules." << endl);
    11189    return Action::failure;
    11290  }
  • src/Actions/MoleculeAction/BondFileAction.cpp

    r752bb4 r360c8b  
    5050        << ", adding " << params.id_offset << " to each id.");
    5151    ifstream input(params.bondfile.string().c_str());
    52     molecule::atomVector Set = mol->getAtomSet();
     52    World::AtomComposite Set = mol->getAtomSet();
    5353    World::getInstance().getBondGraph()->CreateAdjacencyListFromDbondFile(Set, &input, params.skiplines, params.id_offset);
    5454    input.close();
  • src/Actions/MoleculeAction/CopyAction.cpp

    r752bb4 r360c8b  
    5959  MoleculeCopyState *state = assert_cast<MoleculeCopyState*>(_state.get());
    6060
    61   for (molecule::iterator AtomRunner = state->copy->begin();
    62       !state->copy->empty();
    63       AtomRunner = state->copy->begin()) {
    64     (*AtomRunner)->removeAllBonds();
    65 //    BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
    66 //    for(BondList::iterator BondRunner = ListOfBonds.begin();
    67 //        !ListOfBonds.empty();
    68 //        BondRunner = ListOfBonds.begin()) {
    69 //      delete(*BondRunner);
    70 //    }
    71     atom *Walker = *AtomRunner;
    72     World::getInstance().destroyAtom(Walker);
    73   }
     61  state->copy->removeAtomsinMolecule();
    7462  World::getInstance().destroyMolecule(state->copy);
    7563
  • src/Actions/MoleculeAction/FillVoidWithMoleculeAction.cpp

    r752bb4 r360c8b  
    2222#include "atom.hpp"
    2323#include "Graph/BondGraph.hpp"
    24 #include "boundary.hpp"
     24#include "Tesselation/boundary.hpp"
    2525#include "CodePatterns/Verbose.hpp"
    2626#include "config.hpp"
     
    7474  molecule *filler = World::getInstance().getMolecule(MoleculeByOrder(-1)); // get last molecule
    7575  filler->SetNameFromFilename(params.fillername.string().c_str());
    76   molecule::atomVector Set = filler->getAtomSet();
     76  World::AtomComposite Set = filler->getAtomSet();
    7777  World::getInstance().getBondGraph()->CreateAdjacency(Set);
    7878
  • src/Actions/MoleculeAction/FillWithMoleculeAction.cpp

    r752bb4 r360c8b  
    2222#include "atom.hpp"
    2323#include "Graph/BondGraph.hpp"
    24 #include "boundary.hpp"
     24#include "Tesselation/boundary.hpp"
    2525#include "CodePatterns/Verbose.hpp"
    2626#include "config.hpp"
     
    8484//    filler->AddBond(first, third, 1);
    8585//    filler->AddBond(second, third, 1);
    86   molecule::atomVector Set = filler->getAtomSet();
     86  World::AtomComposite Set = filler->getAtomSet();
    8787  World::getInstance().getBondGraph()->CreateAdjacency(Set);
    8888//    filler->SetNameFromFilename("water");
  • src/Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.cpp

    r752bb4 r360c8b  
    2525#include "LinearAlgebra/RealSpaceMatrix.hpp"
    2626#include "LinearAlgebra/Vector.hpp"
    27 #include "element.hpp"
     27#include "Element/element.hpp"
    2828#include "molecule.hpp"
    2929
  • src/Actions/MoleculeAction/SuspendInWaterAction.cpp

    r752bb4 r360c8b  
    2020#include "CodePatterns/MemDebug.hpp"
    2121
    22 #include "boundary.hpp"
     22#include "Tesselation/boundary.hpp"
    2323#include "config.hpp"
    2424#include "CodePatterns/Log.hpp"
  • src/Actions/SelectionAction/Atoms/AtomByElementAction.cpp

    r752bb4 r360c8b  
    2323#include "Descriptors/AtomSelectionDescriptor.hpp"
    2424#include "atom.hpp"
    25 #include "element.hpp"
     25#include "Element/element.hpp"
    2626#include "CodePatterns/Log.hpp"
    2727#include "CodePatterns/Verbose.hpp"
  • src/Actions/SelectionAction/Atoms/NotAtomByElementAction.cpp

    r752bb4 r360c8b  
    2323#include "Descriptors/AtomTypeDescriptor.hpp"
    2424#include "atom.hpp"
    25 #include "element.hpp"
     25#include "Element/element.hpp"
    2626#include "CodePatterns/Log.hpp"
    2727#include "CodePatterns/Verbose.hpp"
  • src/Actions/TesselationAction/ConvexEnvelopeAction.cpp

    r752bb4 r360c8b  
    2020#include "CodePatterns/MemDebug.hpp"
    2121
    22 #include "boundary.hpp"
     22#include "Tesselation/boundary.hpp"
    2323#include "CodePatterns/Log.hpp"
    2424#include "CodePatterns/Verbose.hpp"
     
    2727#include "molecule.hpp"
    2828#include "PointCloudAdaptor.hpp"
    29 #include "tesselation.hpp"
     29#include "Tesselation/tesselation.hpp"
    3030#include "World.hpp"
    3131
  • src/Actions/TesselationAction/NonConvexEnvelopeAction.cpp

    r752bb4 r360c8b  
    2020#include "CodePatterns/MemDebug.hpp"
    2121
    22 #include "boundary.hpp"
     22#include "Tesselation/boundary.hpp"
    2323#include "CodePatterns/Log.hpp"
    2424#include "CodePatterns/Verbose.hpp"
     
    2626#include "molecule.hpp"
    2727#include "PointCloudAdaptor.hpp"
    28 #include "tesselation.hpp"
     28#include "Tesselation/tesselation.hpp"
    2929#include "World.hpp"
    3030
  • src/Actions/ValueStorage.cpp

    r752bb4 r360c8b  
    3737#include "atom.hpp"
    3838#include "Box.hpp"
    39 #include "element.hpp"
     39#include "Element/element.hpp"
    4040#include "molecule.hpp"
    41 #include "periodentafel.hpp"
     41#include "Element/periodentafel.hpp"
    4242#include "World.hpp"
    4343
  • src/Actions/WorldAction/AddEmptyBoundaryAction.cpp

    r752bb4 r360c8b  
    1818#endif
    1919
     20// include headers that implement a archive in simple text format
     21#include <boost/archive/text_oarchive.hpp>
     22#include <boost/archive/text_iarchive.hpp>
     23#include "boost/serialization/vector.hpp"
     24
    2025#include "CodePatterns/MemDebug.hpp"
    2126
    2227#include "atom.hpp"
     28#include "Box.hpp"
    2329#include "CodePatterns/Log.hpp"
     30#include "LinearAlgebra/MatrixContent.hpp"
    2431#include "LinearAlgebra/RealSpaceMatrix.hpp"
    2532#include "LinearAlgebra/Vector.hpp"
     
    4653  getParametersfromValueStorage();
    4754
     55  // create undo domain
     56  std::stringstream undostream;
     57  boost::archive::text_oarchive oa(undostream);
     58  const RealSpaceMatrix &matrix = World::getInstance().getDomain().getM();
     59  oa << matrix;
     60
    4861  // get maximum and minimum
    49   vector<atom *> AllAtoms = World::getInstance().getAllAtoms();
     62  std::vector<atom *> AllAtoms = World::getInstance().getAllAtoms();
    5063  ASSERT(AllAtoms.size() > 0, "There must be atoms present for AddingEmptyBoundary.");
    51   vector<atom *>::iterator AtomRunner = AllAtoms.begin();
     64  std::vector<atom *>::iterator AtomRunner = AllAtoms.begin();
    5265  Min = (*AtomRunner)->getPosition();
    5366  Max = (*AtomRunner)->getPosition();
     
    7386  // translate all atoms, such that Min is aty (0,0,0)
    7487  AtomRunner = AllAtoms.begin();
    75   for (; AtomRunner != AllAtoms.end(); ++AtomRunner)
     88  for (std::vector<atom *>::iterator AtomRunner = AllAtoms.begin();
     89      AtomRunner != AllAtoms.end();
     90      ++AtomRunner)
    7691    *(*AtomRunner) -= Min - params.boundary;
    7792
     
    7994  LOG(0, "Box domain is now " << World::getInstance().getDomain().getM());
    8095
    81   return Action::success;
     96  // create undo state
     97  WorldAddEmptyBoundaryState *UndoState =
     98      new WorldAddEmptyBoundaryState(
     99          undostream.str(),
     100          World::getInstance().getDomain().getM(),
     101          Min,
     102          params
     103          );
     104
     105  return Action::state_ptr(UndoState);
    82106}
    83107
    84108Action::state_ptr WorldAddEmptyBoundaryAction::performUndo(Action::state_ptr _state) {
    85 //  ParserLoadXyzState *state = assert_cast<ParserLoadXyzState*>(_state.get());
     109  WorldAddEmptyBoundaryState *state = assert_cast<WorldAddEmptyBoundaryState*>(_state.get());
    86110
    87   return Action::failure;
    88 //  string newName = state->mol->getName();
    89 //  state->mol->setName(state->lastName);
    90 //
    91 //  return Action::state_ptr(new ParserLoadXyzState(state->mol,newName));
     111  // restore domain
     112  RealSpaceMatrix matrix;
     113  std::stringstream undostream(state->undostring);
     114  boost::archive::text_iarchive ia(undostream);
     115  ia >> matrix;
     116  World::getInstance().setDomain(matrix);
     117
     118  // give final box size
     119  LOG(0, "Box domain restored to " << World::getInstance().getDomain().getM());
     120
     121  // restore atoms
     122  std::vector<atom *> AllAtoms = World::getInstance().getAllAtoms();
     123  for (std::vector<atom *>::iterator AtomRunner = AllAtoms.begin();
     124      AtomRunner != AllAtoms.end();
     125      ++AtomRunner)
     126    *(*AtomRunner) += state->Min - state->params.boundary;
     127
     128  return Action::state_ptr(_state);
    92129}
    93130
    94131Action::state_ptr WorldAddEmptyBoundaryAction::performRedo(Action::state_ptr _state){
    95   return Action::failure;
     132  WorldAddEmptyBoundaryState *state = assert_cast<WorldAddEmptyBoundaryState*>(_state.get());
     133
     134  World::getInstance().setDomain(state->newdomain);
     135
     136  // give final box size
     137  LOG(0, "Box domain is again " << World::getInstance().getDomain().getM());
     138
     139  // shift atoms
     140  std::vector<atom *> AllAtoms = World::getInstance().getAllAtoms();
     141  for (std::vector<atom *>::iterator AtomRunner = AllAtoms.begin();
     142      AtomRunner != AllAtoms.end();
     143      ++AtomRunner)
     144    *(*AtomRunner) -= state->Min - state->params.boundary;
     145
     146  return Action::state_ptr(_state);
    96147}
    97148
    98149bool WorldAddEmptyBoundaryAction::canUndo() {
    99   return false;
     150  return true;
    100151}
    101152
    102153bool WorldAddEmptyBoundaryAction::shouldUndo() {
    103   return false;
     154  return true;
    104155}
    105156/** =========== end of function ====================== */
  • src/Actions/WorldAction/AddEmptyBoundaryAction.def

    r752bb4 r360c8b  
    88// all includes and forward declarations necessary for non-integral types below
    99#include "Actions/Values.hpp"
     10#include "LinearAlgebra/RealSpaceMatrix.hpp"
    1011#include "LinearAlgebra/Vector.hpp"
    1112
     
    1920#define paramreferences (boundary)
    2021
    21 #undef statetypes
    22 #undef statereferences
     22#define statetypes (std::string)(RealSpaceMatrix)(Vector)
     23#define statereferences (undostring)(newdomain)(Min)
    2324
    2425// some defines for all the names, you may use ACTION, STATE and PARAMS
  • src/Actions/WorldAction/BoundInBoxAction.cpp

    r752bb4 r360c8b  
    2020#include "CodePatterns/MemDebug.hpp"
    2121
     22#include <boost/shared_ptr.hpp>
     23
    2224#include "CodePatterns/Log.hpp"
    2325#include "molecule.hpp"
     
    4042  getParametersfromValueStorage();
    4143
     44  // create undo state
     45  std::vector< boost::shared_ptr<Vector> > OldPositions;
     46  std::vector<molecule*> AllMolecules = World::getInstance().getAllMolecules();
     47  for (vector<molecule*>::iterator MolRunner = AllMolecules.begin();
     48      MolRunner != AllMolecules.end();
     49      ++MolRunner) {
     50    for(molecule::const_iterator AtomRunner = (*MolRunner)->begin();
     51        AtomRunner != (*MolRunner)->end();
     52        ++AtomRunner) {
     53      OldPositions.push_back(
     54          boost::shared_ptr<Vector>(new Vector(
     55              (*AtomRunner)->getPosition()
     56              ))
     57          );
     58    }
     59  }
     60  WorldBoundInBoxState *undoState = new WorldBoundInBoxState(OldPositions, params);
     61
    4262  // center
    43   vector<molecule*> AllMolecules = World::getInstance().getAllMolecules();
    44   for (vector<molecule*>::iterator MolRunner = AllMolecules.begin(); MolRunner != AllMolecules.end(); ++MolRunner) {
     63  for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin(); MolRunner != AllMolecules.end(); ++MolRunner) {
    4564    (*MolRunner)->BoundInBox();
    4665  }
    47   return Action::success;
     66  return Action::state_ptr(undoState);
    4867}
    4968
    5069Action::state_ptr WorldBoundInBoxAction::performUndo(Action::state_ptr _state) {
    51 //  ParserLoadXyzState *state = assert_cast<ParserLoadXyzState*>(_state.get());
     70  WorldBoundInBoxState *state = assert_cast<WorldBoundInBoxState*>(_state.get());
    5271
    53   return Action::failure;
    54 //  string newName = state->mol->getName();
    55 //  state->mol->setName(state->lastName);
    56 //
    57 //  return Action::state_ptr(new ParserLoadXyzState(state->mol,newName));
     72  // place atoms on old positions
     73  std::vector< boost::shared_ptr<Vector> >::const_iterator OldPositionsIter = state->OldPositions.begin();
     74  std::vector<molecule*> AllMolecules = World::getInstance().getAllMolecules();
     75  for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin();
     76      MolRunner != AllMolecules.end();
     77      ++MolRunner) {
     78    for(molecule::const_iterator AtomRunner = (*MolRunner)->begin();
     79        AtomRunner != (*MolRunner)->end();
     80        ++AtomRunner) {
     81      ASSERT(OldPositionsIter != state->OldPositions.end(),
     82          "WorldBoundInBoxAction::performUndo() - too few positions stored in UndoState.");
     83      (*AtomRunner)->setPosition(**(OldPositionsIter++));
     84    }
     85  }
     86
     87  return Action::state_ptr(_state);
    5888}
    5989
    6090Action::state_ptr WorldBoundInBoxAction::performRedo(Action::state_ptr _state){
    61   return Action::failure;
     91//  WorldBoundInBoxState *state = assert_cast<WorldBoundInBoxState*>(_state.get());
     92
     93  // center
     94  std::vector<molecule*> AllMolecules = World::getInstance().getAllMolecules();
     95  for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin();
     96      MolRunner != AllMolecules.end();
     97      ++MolRunner) {
     98    (*MolRunner)->BoundInBox();
     99  }
     100
     101  return Action::state_ptr(_state);
    62102}
    63103
    64104bool WorldBoundInBoxAction::canUndo() {
    65   return false;
     105  return true;
    66106}
    67107
    68108bool WorldBoundInBoxAction::shouldUndo() {
    69   return false;
     109  return true;
    70110}
    71111/** =========== end of function ====================== */
  • src/Actions/WorldAction/BoundInBoxAction.def

    r752bb4 r360c8b  
    77
    88// all includes and forward declarations necessary for non-integral types below
     9#include <boost/shared_ptr.hpp>
     10#include "LinearAlgebra/Vector.hpp"
    911
    1012
     
    1820#undef paramreferences
    1921
    20 #undef statetypes
    21 #undef statereferences
     22#define statetypes (std::vector< boost::shared_ptr<Vector> >)
     23#define statereferences (OldPositions)
    2224
    2325// some defines for all the names, you may use ACTION, STATE and PARAMS
  • src/Actions/WorldAction/CenterInBoxAction.cpp

    r752bb4 r360c8b  
    1818#endif
    1919
     20// include headers that implement a archive in simple text format
     21#include <boost/archive/text_oarchive.hpp>
     22#include <boost/archive/text_iarchive.hpp>
     23#include "boost/serialization/vector.hpp"
     24
    2025#include "CodePatterns/MemDebug.hpp"
     26
     27#include <boost/shared_ptr.hpp>
    2128
    2229#include "Box.hpp"
    2330#include "CodePatterns/Log.hpp"
     31#include "LinearAlgebra/MatrixContent.hpp"
    2432#include "LinearAlgebra/RealSpaceMatrix.hpp"
    2533#include "molecule.hpp"
     
    2836#include <iostream>
    2937#include <string>
     38#include <vector>
    3039
    3140#include "Actions/WorldAction/CenterInBoxAction.hpp"
     
    4150  getParametersfromValueStorage();
    4251
     52  // create undo state
     53  std::stringstream undostream;
     54  boost::archive::text_oarchive oa(undostream);
     55  RealSpaceMatrix matrix(World::getInstance().getDomain().getM());
     56  oa << matrix;
     57  std::vector< boost::shared_ptr<Vector> > OldPositions;
     58  std::vector<molecule*> AllMolecules = World::getInstance().getAllMolecules();
     59  for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin();
     60      MolRunner != AllMolecules.end();
     61      ++MolRunner) {
     62    for(molecule::const_iterator AtomRunner = (*MolRunner)->begin();
     63        AtomRunner != (*MolRunner)->end();
     64        ++AtomRunner) {
     65      OldPositions.push_back(
     66          boost::shared_ptr<Vector>(new Vector(
     67              (*AtomRunner)->getPosition()
     68              ))
     69          );
     70    }
     71  }
     72
     73  // set new domain
    4374  World::getInstance().setDomain(params.cell_size.getM());
    4475
    45   // center
    46   vector<molecule *> AllMolecules = World::getInstance().getAllMolecules();
    47   for (vector<molecule*>::iterator MolRunner = AllMolecules.begin(); MolRunner != AllMolecules.end(); ++MolRunner) {
     76  // center atoms
     77  for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin(); MolRunner != AllMolecules.end(); ++MolRunner) {
    4878    (*MolRunner)->CenterInBox();
    4979  }
     
    5282  LOG(0, "Box domain is now " << World::getInstance().getDomain().getM());
    5383
    54   return Action::success;
     84  // create undo state
     85  WorldCenterInBoxState *UndoState =
     86      new WorldCenterInBoxState(
     87          undostream.str(),
     88          OldPositions,
     89          params
     90          );
     91
     92  return Action::state_ptr(UndoState);
    5593}
    5694
    5795Action::state_ptr WorldCenterInBoxAction::performUndo(Action::state_ptr _state) {
    58 //  ParserLoadXyzState *state = assert_cast<ParserLoadXyzState*>(_state.get());
     96  WorldCenterInBoxState *state = assert_cast<WorldCenterInBoxState*>(_state.get());
    5997
    60   return Action::failure;
    61 //  string newName = state->mol->getName();
    62 //  state->mol->setName(state->lastName);
    63 //
    64 //  return Action::state_ptr(new ParserLoadXyzState(state->mol,newName));
     98  // restore domain
     99  RealSpaceMatrix matrix;
     100  std::stringstream undostream(state->undostring);
     101  boost::archive::text_iarchive ia(undostream);
     102  ia >> matrix;
     103  World::getInstance().setDomain(matrix);
     104
     105  // place atoms on old positions
     106  std::vector< boost::shared_ptr<Vector> >::const_iterator OldPositionsIter = state->OldPositions.begin();
     107  std::vector<molecule*> AllMolecules = World::getInstance().getAllMolecules();
     108  for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin();
     109      MolRunner != AllMolecules.end();
     110      ++MolRunner) {
     111    for(molecule::const_iterator AtomRunner = (*MolRunner)->begin();
     112        AtomRunner != (*MolRunner)->end();
     113        ++AtomRunner) {
     114      ASSERT(OldPositionsIter != state->OldPositions.end(),
     115          "WorldBoundInBoxAction::performUndo() - too few positions stored in UndoState.");
     116      (*AtomRunner)->setPosition(**(OldPositionsIter++));
     117    }
     118  }
     119
     120  // give final box size
     121  LOG(0, "Box domain restored to " << World::getInstance().getDomain().getM());
     122
     123  return Action::state_ptr(_state);
    65124}
    66125
    67126Action::state_ptr WorldCenterInBoxAction::performRedo(Action::state_ptr _state){
    68   return Action::failure;
     127  WorldCenterInBoxState *state = assert_cast<WorldCenterInBoxState*>(_state.get());
     128
     129  // set new domain
     130  World::getInstance().setDomain(state->params.cell_size.getM());
     131
     132  // center atoms
     133  std::vector<molecule *> AllMolecules = World::getInstance().getAllMolecules();
     134  for (std::vector<molecule*>::iterator MolRunner = AllMolecules.begin(); MolRunner != AllMolecules.end(); ++MolRunner) {
     135    (*MolRunner)->CenterInBox();
     136  }
     137
     138  // give final box size
     139  LOG(0, "Box domain is again " << World::getInstance().getDomain().getM());
     140
     141  return Action::state_ptr(_state);
    69142}
    70143
    71144bool WorldCenterInBoxAction::canUndo() {
    72   return false;
     145  return true;
    73146}
    74147
    75148bool WorldCenterInBoxAction::shouldUndo() {
    76   return false;
     149  return true;
    77150}
    78151/** =========== end of function ====================== */
  • src/Actions/WorldAction/CenterInBoxAction.def

    r752bb4 r360c8b  
    99#include "Actions/Values.hpp"
    1010#include "Box.hpp"
     11#include "LinearAlgebra/Vector.hpp"
     12#include <boost/shared_ptr.hpp>
    1113
    1214// i.e. there is an integer with variable name Z that can be found in
     
    1921#define paramreferences (cell_size)
    2022
    21 #undef statetypes
    22 #undef statereferences
     23#define statetypes (std::string)(std::vector< boost::shared_ptr<Vector> >)
     24#define statereferences (undostring)(OldPositions)
    2325
    2426// some defines for all the names, you may use ACTION, STATE and PARAMS
  • src/Actions/WorldAction/CenterOnEdgeAction.cpp

    r752bb4 r360c8b  
    1818#endif
    1919
     20// include headers that implement a archive in simple text format
     21#include <boost/archive/text_oarchive.hpp>
     22#include <boost/archive/text_iarchive.hpp>
     23#include "boost/serialization/vector.hpp"
     24
    2025#include "CodePatterns/MemDebug.hpp"
    2126
    2227#include "atom.hpp"
    2328#include "CodePatterns/Log.hpp"
     29#include "LinearAlgebra/MatrixContent.hpp"
     30#include "LinearAlgebra/RealSpaceMatrix.hpp"
    2431#include "LinearAlgebra/Vector.hpp"
     32#include "molecule.hpp"
    2533#include "World.hpp"
    26 #include "LinearAlgebra/RealSpaceMatrix.hpp"
    2734
    2835#include <iostream>
    2936#include <string>
     37#include <vector>
    3038
    3139#include "Actions/WorldAction/CenterOnEdgeAction.hpp"
     
    4452  getParametersfromValueStorage();
    4553
     54  // create undo state
     55  std::stringstream undostream;
     56  boost::archive::text_oarchive oa(undostream);
     57  const RealSpaceMatrix &matrix = World::getInstance().getDomain().getM();
     58  oa << matrix;
     59  std::vector< boost::shared_ptr<Vector> > OldPositions;
     60  std::vector<atom *> AllAtoms = World::getInstance().getAllAtoms();
     61  for (std::vector<atom *>::iterator AtomRunner = AllAtoms.begin(); AtomRunner != AllAtoms.end(); ++AtomRunner)
     62    OldPositions.push_back(
     63        boost::shared_ptr<Vector>(new Vector(
     64            (*AtomRunner)->getPosition()
     65            ))
     66        );
     67
    4668  // get maximum and minimum
    47   vector<atom *> AllAtoms = World::getInstance().getAllAtoms();
    4869  ASSERT(AllAtoms.size() > 0, "For CenteronEdge atoms must be present.");
    49   vector<atom *>::iterator AtomRunner = AllAtoms.begin();
     70  std::vector<atom *>::iterator AtomRunner = AllAtoms.begin();
    5071  Min = (*AtomRunner)->getPosition();
    5172  Max = (*AtomRunner)->getPosition();
     
    6788  World::getInstance().setDomain(domain);
    6889  // translate all atoms, such that Min is aty (0,0,0)
    69   for (vector<atom*>::iterator AtomRunner = AllAtoms.begin(); AtomRunner != AllAtoms.end(); ++AtomRunner)
     90  for (std::vector<atom*>::iterator AtomRunner = AllAtoms.begin(); AtomRunner != AllAtoms.end(); ++AtomRunner)
    7091    *(*AtomRunner) -= Min;
    7192
     
    7394  LOG(0, "Box domain is now " << World::getInstance().getDomain().getM());
    7495
    75   return Action::success;
     96  // create undo state
     97  WorldCenterOnEdgeState *UndoState =
     98      new WorldCenterOnEdgeState(
     99          undostream.str(),
     100          Min,
     101          Max,
     102          params
     103          );
     104
     105  return Action::state_ptr(UndoState);
    76106}
    77107
    78108Action::state_ptr WorldCenterOnEdgeAction::performUndo(Action::state_ptr _state) {
    79 //  ParserLoadXyzState *state = assert_cast<ParserLoadXyzState*>(_state.get());
     109  WorldCenterOnEdgeState *state = assert_cast<WorldCenterOnEdgeState*>(_state.get());
    80110
    81   return Action::failure;
    82 //  string newName = state->mol->getName();
    83 //  state->mol->setName(state->lastName);
    84 //
    85 //  return Action::state_ptr(new ParserLoadXyzState(state->mol,newName));
     111  // restore domain
     112  RealSpaceMatrix matrix;
     113  std::stringstream undostream(state->undostring);
     114  boost::archive::text_iarchive ia(undostream);
     115  ia >> matrix;
     116  World::getInstance().setDomain(matrix);
     117
     118  // translate all atoms back
     119  std::vector<atom *> AllAtoms = World::getInstance().getAllAtoms();
     120  for (vector<atom*>::iterator AtomRunner = AllAtoms.begin();
     121      AtomRunner != AllAtoms.end();
     122      ++AtomRunner)
     123    *(*AtomRunner) += state->Min;
     124
     125  // give final box size
     126  LOG(0, "Box domain restored to " << World::getInstance().getDomain().getM());
     127
     128  return Action::state_ptr(_state);
    86129}
    87130
    88131Action::state_ptr WorldCenterOnEdgeAction::performRedo(Action::state_ptr _state){
    89   return Action::failure;
     132  WorldCenterOnEdgeState *state = assert_cast<WorldCenterOnEdgeState*>(_state.get());
     133
     134  // set new box size
     135  RealSpaceMatrix rmatrix;
     136  for (int i=0;i<NDIM;i++) {
     137    double tmp = state->Max[i]-state->Min[i];
     138    tmp = fabs(tmp)>=1. ? tmp : 1.0;
     139    rmatrix.at(i,i) = tmp;
     140  }
     141  World::getInstance().setDomain(rmatrix);
     142  // translate all atoms, such that Min is aty (0,0,0)
     143  std::vector<atom *> AllAtoms = World::getInstance().getAllAtoms();
     144  for (vector<atom*>::iterator AtomRunner = AllAtoms.begin();
     145      AtomRunner != AllAtoms.end();
     146      ++AtomRunner)
     147    *(*AtomRunner) -= state->Min;
     148
     149  // give final box size
     150  LOG(0, "Box domain is again " << World::getInstance().getDomain().getM());
     151
     152  return Action::state_ptr(_state);
    90153}
    91154
    92155bool WorldCenterOnEdgeAction::canUndo() {
    93   return false;
     156  return true;
    94157}
    95158
    96159bool WorldCenterOnEdgeAction::shouldUndo() {
    97   return false;
     160  return true;
    98161}
    99162/** =========== end of function ====================== */
  • src/Actions/WorldAction/CenterOnEdgeAction.def

    r752bb4 r360c8b  
    77
    88// all includes and forward declarations necessary for non-integral types below
    9 
     9#include "LinearAlgebra/Vector.hpp"
    1010
    1111// i.e. there is an integer with variable name Z that can be found in
     
    1818#undef paramreferences
    1919
    20 #undef statetypes
    21 #undef statereferences
     20#define statetypes (std::string)(Vector)(Vector)
     21#define statereferences (undostring)(Min)(Max)
    2222
    2323// some defines for all the names, you may use ACTION, STATE and PARAMS
  • src/Actions/WorldAction/ChangeBoxAction.cpp

    r752bb4 r360c8b  
    1818#endif
    1919
     20// include headers that implement a archive in simple text format
     21#include <boost/archive/text_oarchive.hpp>
     22#include <boost/archive/text_iarchive.hpp>
     23#include "boost/serialization/vector.hpp"
     24
    2025#include "CodePatterns/MemDebug.hpp"
    2126
    2227#include "CodePatterns/Log.hpp"
    2328#include "CodePatterns/Verbose.hpp"
     29#include "LinearAlgebra/MatrixContent.hpp"
     30#include "LinearAlgebra/RealSpaceMatrix.hpp"
    2431#include "World.hpp"
    2532#include "Box.hpp"
    26 #include "LinearAlgebra/RealSpaceMatrix.hpp"
    2733
    2834#include <iostream>
     
    4147  getParametersfromValueStorage();
    4248
     49  // create undo state
     50  std::stringstream undostream;
     51  boost::archive::text_oarchive oa(undostream);
     52  const RealSpaceMatrix &matrix = World::getInstance().getDomain().getM();
     53  oa << matrix;
     54
    4355  World::getInstance().setDomain(params.cell_size.getM()); // this is needed as only this function is OBSERVEd.
    4456
     
    4658  LOG(0, "Box domain is now " << World::getInstance().getDomain().getM());
    4759
    48   return Action::success;
     60  // create undo state
     61  WorldChangeBoxState *UndoState =
     62      new WorldChangeBoxState(
     63          undostream.str(),
     64          params
     65          );
     66
     67  return Action::state_ptr(UndoState);
    4968}
    5069
    5170Action::state_ptr WorldChangeBoxAction::performUndo(Action::state_ptr _state) {
    52 //  ParserLoadXyzState *state = assert_cast<ParserLoadXyzState*>(_state.get());
     71  WorldChangeBoxState *state = assert_cast<WorldChangeBoxState*>(_state.get());
    5372
    54   return Action::failure;
    55 //  string newName = state->mol->getName();
    56 //  state->mol->setName(state->lastName);
    57 //
    58 //  return Action::state_ptr(new ParserLoadXyzState(state->mol,newName));
     73  // restore domain
     74  RealSpaceMatrix matrix;
     75  std::stringstream undostream(state->undostring);
     76  boost::archive::text_iarchive ia(undostream);
     77  ia >> matrix;
     78  World::getInstance().setDomain(matrix);
     79
     80  // give final box size
     81  LOG(0, "Box domain restored to " << World::getInstance().getDomain().getM());
     82
     83  return Action::state_ptr(_state);
    5984}
    6085
    6186Action::state_ptr WorldChangeBoxAction::performRedo(Action::state_ptr _state){
    62   return Action::failure;
     87  World::getInstance().setDomain(params.cell_size.getM()); // this is needed as only this function is OBSERVEd.
     88
     89  // give final box size
     90  LOG(0, "Box domain is again " << World::getInstance().getDomain().getM());
     91
     92  return Action::state_ptr(_state);
    6393}
    6494
    6595bool WorldChangeBoxAction::canUndo() {
    66   return false;
     96  return true;
    6797}
    6898
    6999bool WorldChangeBoxAction::shouldUndo() {
    70   return false;
     100  return true;
    71101}
    72102/** =========== end of function ====================== */
  • src/Actions/WorldAction/ChangeBoxAction.def

    r752bb4 r360c8b  
    1919#define paramreferences (cell_size)
    2020
    21 #undef statetypes
    22 #undef statereferences
     21#define statetypes (std::string)
     22#define statereferences (undostring)
    2323
    2424// some defines for all the names, you may use ACTION, STATE and PARAMS
  • src/Actions/WorldAction/RepeatBoxAction.cpp

    r752bb4 r360c8b  
    3131
    3232#include <iostream>
     33#include <set>
    3334#include <string>
    3435#include <vector>
     
    4243#include "Action_impl_pre.hpp"
    4344/** =========== define the function ====================== */
    44 Action::state_ptr WorldRepeatBoxAction::performCall() {
     45
     46void repeatMoleculesinDomain(Vector Repeater, const std::vector<molecule *> &AllMolecules)
     47{
    4548  int count;
    4649  const element ** Elements;
    47   molecule *mol = NULL;
    4850  int j = 0;
    4951  atom *Walker = NULL;
    5052  MoleculeListClass *molecules = World::getInstance().getMolecules();
    5153
    52   // obtain information
    53   getParametersfromValueStorage();
    54 
    55   vector<molecule *> AllMolecules;
    56   if (mol != NULL) {
    57     DoLog(0) && (Log() << Verbose(0) << "Using molecule " << mol->name << "." << endl);
    58     AllMolecules = World::getInstance().getAllMolecules(MoleculeByPtr(mol));
    59   } else {
    60     DoLog(0) && (Log() << Verbose(0) << "Using all molecules." << endl);
    61     AllMolecules = World::getInstance().getAllMolecules();
    62   }
    63 
    64   (cout << "Repeating box " << params.Repeater << " times for (x,y,z) axis." << endl);
     54  LOG(0, "STATUS: Repeating box " << Repeater << " times for (x,y,z) axis.");
     55
     56  // set new domain
    6557  RealSpaceMatrix M = World::getInstance().getDomain().getM();
    6658  RealSpaceMatrix newM = M;
     
    6961  RealSpaceMatrix repMat;
    7062  for (int axis = 0; axis < NDIM; axis++) {
    71     params.Repeater[axis] = floor(params.Repeater[axis]);
    72     if (params.Repeater[axis] < 1) {
    73       DoeLog(1) && (eLog()<< Verbose(1) << "Repetition factor must be greater than 1!" << endl);
    74       params.Repeater[axis] = 1;
     63    Repeater[axis] = floor(Repeater[axis]);
     64    if (Repeater[axis] < 1) {
     65      ELOG(1, "Repetition factor must be greater than 1!");
     66      Repeater[axis] = 1;
    7567    }
    76     repMat.at(axis,axis) = params.Repeater[axis];
     68    repMat.at(axis,axis) = Repeater[axis];
    7769  }
    7870  newM *= repMat;
    7971  World::getInstance().setDomain(newM);
    8072
     73  // add molecules in each repeated domain part
    8174  molecule *newmol = NULL;
    8275  std::vector<Vector> vectors;
    83   for (n[0] = 0; n[0] < params.Repeater[0]; n[0]++) {
     76  for (n[0] = 0; n[0] < Repeater[0]; n[0]++) {
    8477    y[0] = n[0];
    85     for (n[1] = 0; n[1] < params.Repeater[1]; n[1]++) {
     78    for (n[1] = 0; n[1] < Repeater[1]; n[1]++) {
    8679      y[1] = n[1];
    87       for (n[2] = 0; n[2] < params.Repeater[2]; n[2]++) {
     80      for (n[2] = 0; n[2] < Repeater[2]; n[2]++) {
    8881        y[2] = n[2];
    8982        if ((n[0] == 0) && (n[1] == 0) && (n[2] == 0))
    9083          continue;
    91         for (vector<molecule *>::iterator MolRunner = AllMolecules.begin(); MolRunner != AllMolecules.end(); ++MolRunner) {
    92           mol = *MolRunner;
    93           DoLog(1) && (Log() << Verbose(1) << "Current mol is " << mol->name << "." << endl);
     84        for (vector<molecule *>::const_iterator MolRunner = AllMolecules.begin(); MolRunner != AllMolecules.end(); ++MolRunner) {
     85          const molecule *mol = *MolRunner;
     86          LOG(2, "INFO: Current mol is " << mol->name << ".");
    9487          count = mol->getAtomCount();   // is changed becausing of adding, thus has to be stored away beforehand
    9588          if (count != 0) {  // if there is more than none
     
    9790            vectors.resize(count);
    9891            j = 0;
    99             for(molecule::iterator AtomRunner = mol->begin(); AtomRunner != mol->end(); ++AtomRunner) {
     92            for(molecule::const_iterator AtomRunner = mol->begin(); AtomRunner != mol->end(); ++AtomRunner) {
    10093              Elements[j] = (*AtomRunner)->getType();
    10194              vectors[j] = (*AtomRunner)->getPosition();
     
    10396            }
    10497            if (count != j)
    105               DoeLog(1) && (eLog()<< Verbose(1) << "AtomCount " << count << " is not equal to number of atoms in molecule " << j << "!" << endl);
     98              ELOG(1, "AtomCount " << count << " is not equal to number of atoms in molecule " << j << "!");
    10699            x = y;
    107100            x *= M;
    108101            newmol = World::getInstance().createMolecule();
     102            // TODO: Remove this when World don't has deprecated MoleculeListClass anymore
    109103            molecules->insert(newmol);
    110104            for (int k=count;k--;) { // go through every atom of the original cell
     
    118112            delete[](Elements);
    119113          } else {
    120             DoLog(1) && (Log() << Verbose(1) << "\t ... is empty." << endl);
     114            LOG(1, "\t ... is empty.");
    121115          }
    122116        }
     
    124118    }
    125119  }
     120}
     121
     122Action::state_ptr WorldRepeatBoxAction::performCall() {
     123  molecule *mol = NULL;
     124
     125  // obtain information
     126  getParametersfromValueStorage();
     127
     128  std::vector<molecule *> AllMolecules;
     129  if (mol != NULL) {
     130    DoLog(0) && (Log() << Verbose(0) << "Using molecule " << mol->name << "." << endl);
     131    AllMolecules = World::getInstance().getAllMolecules(MoleculeByPtr(mol));
     132  } else {
     133    DoLog(0) && (Log() << Verbose(0) << "Using all molecules." << endl);
     134    AllMolecules = World::getInstance().getAllMolecules();
     135  }
     136
     137  // prepare undo state
     138  RealSpaceMatrix olddomain = World::getInstance().getDomain().getM();
     139  std::set<molecule *> oldmolecules;
     140  for(std::vector<molecule *>::const_iterator iter = AllMolecules.begin();
     141      iter != AllMolecules.end();
     142      ++iter)
     143    oldmolecules.insert(*iter);
     144  WorldRepeatBoxState *undostate = new WorldRepeatBoxState(olddomain, oldmolecules, params);
     145
     146  repeatMoleculesinDomain(params.Repeater, AllMolecules);
    126147
    127148  // give final box size
    128149  LOG(0, "Box domain is now " << World::getInstance().getDomain().getM());
    129150
    130   return Action::success;
     151  return Action::state_ptr(undostate);
    131152}
    132153
    133154Action::state_ptr WorldRepeatBoxAction::performUndo(Action::state_ptr _state) {
    134 //  ParserLoadXyzState *state = assert_cast<ParserLoadXyzState*>(_state.get());
    135 
    136   return Action::failure;
    137 //  string newName = state->mol->getName();
    138 //  state->mol->setName(state->lastName);
    139 //
    140 //  return Action::state_ptr(new ParserLoadXyzState(state->mol,newName));
     155  WorldRepeatBoxState *state = assert_cast<WorldRepeatBoxState*>(_state.get());
     156  MoleculeListClass *molecules = World::getInstance().getMolecules();
     157
     158  // set old domain
     159  World::getInstance().setDomain(state->olddomain);
     160
     161  // remove all added molecules (and their atoms)
     162  std::vector<molecule *> allmolecules = World::getInstance().getAllMolecules();
     163  for (std::vector<molecule *>::iterator iter = allmolecules.begin();
     164      iter != allmolecules.end();
     165      ++iter) {
     166    if (state->oldmolecules.find(*iter) == state->oldmolecules.end()) {
     167      (*iter)->removeAtomsinMolecule();
     168      // TODO: Remove this when World don't has deprecated MoleculeListClass anymore
     169      molecules->erase(*iter);
     170      World::getInstance().destroyMolecule(*iter);
     171    }
     172  }
     173
     174  // give final box size
     175  LOG(0, "Box domain restored to " << World::getInstance().getDomain().getM());
     176
     177  return Action::state_ptr(_state);
    141178}
    142179
    143180Action::state_ptr WorldRepeatBoxAction::performRedo(Action::state_ptr _state){
    144   return Action::failure;
     181  WorldRepeatBoxState *state = assert_cast<WorldRepeatBoxState*>(_state.get());
     182
     183  std::vector<molecule *> originalmolecules;
     184  for(std::set<molecule *>::const_iterator iter = state->oldmolecules.begin();
     185      iter != state->oldmolecules.end();
     186      ++iter)
     187    originalmolecules.push_back(*iter);
     188  repeatMoleculesinDomain(state->params.Repeater, originalmolecules);
     189
     190  // give final box size
     191  LOG(0, "Box domain is again " << World::getInstance().getDomain().getM());
     192
     193  return Action::state_ptr(_state);
    145194}
    146195
    147196bool WorldRepeatBoxAction::canUndo() {
    148   return false;
     197  return true;
    149198}
    150199
    151200bool WorldRepeatBoxAction::shouldUndo() {
    152   return false;
     201  return true;
    153202}
    154203/** =========== end of function ====================== */
  • src/Actions/WorldAction/RepeatBoxAction.def

    r752bb4 r360c8b  
    88// all includes and forward declarations necessary for non-integral types below
    99#include "Actions/Values.hpp"
     10#include "LinearAlgebra/RealSpaceMatrix.hpp"
    1011#include "LinearAlgebra/Vector.hpp"
     12#include <set>
     13
     14class molecule;
    1115
    1216// i.e. there is an integer with variable name Z that can be found in
     
    1923#define paramreferences (Repeater)
    2024
    21 #undef statetypes
    22 #undef statereferences
     25#define statetypes (RealSpaceMatrix)(std::set< molecule *>)
     26#define statereferences (olddomain)(oldmolecules)
    2327
    2428// some defines for all the names, you may use ACTION, STATE and PARAMS
  • src/Actions/WorldAction/ScaleBoxAction.cpp

    r752bb4 r360c8b  
    2222#include "atom.hpp"
    2323#include "CodePatterns/Log.hpp"
     24#include "LinearAlgebra/RealSpaceMatrix.hpp"
    2425#include "LinearAlgebra/Vector.hpp"
    25 #include "CodePatterns/Verbose.hpp"
    2626#include "World.hpp"
    2727#include "Box.hpp"
    28 #include "LinearAlgebra/RealSpaceMatrix.hpp"
    2928
    3029#include <iostream>
    3130#include <string>
     31#include <vector>
    3232
    3333#include "Actions/WorldAction/ScaleBoxAction.hpp"
     
    4545  getParametersfromValueStorage();
    4646
    47   DoLog(1) && (Log() << Verbose(1) << "Scaling all atomic positions by factor." << endl);
     47  // scale atoms
    4848  for (int i=0;i<NDIM;i++)
    4949    x[i] = params.Scaler[i];
    50   vector<atom*> AllAtoms = World::getInstance().getAllAtoms();
    51   for(vector<atom*>::iterator AtomRunner = AllAtoms.begin(); AtomRunner != AllAtoms.end(); ++AtomRunner) {
     50  std::vector<atom*> AllAtoms = World::getInstance().getAllAtoms();
     51  for(std::vector<atom*>::iterator AtomRunner = AllAtoms.begin(); AtomRunner != AllAtoms.end(); ++AtomRunner) {
    5252    (*AtomRunner)->ScaleAll(x);
    5353  }
    5454
     55  // scale box
    5556  RealSpaceMatrix M = World::getInstance().getDomain().getM();
    5657  RealSpaceMatrix scale;
    57 
    5858  for (int i=0;i<NDIM;i++) {
    59     scale.at(i,i) = x[i];
     59    scale.at(i,i) = params.Scaler[i];
    6060  }
    6161  M *= scale;
     
    6565  LOG(0, "Box domain is now " << World::getInstance().getDomain().getM());
    6666
    67   return Action::success;
     67  // create undo state
     68  WorldScaleBoxState *UndoState = new WorldScaleBoxState(params);
     69
     70  return Action::state_ptr(UndoState);
    6871}
    6972
    7073Action::state_ptr WorldScaleBoxAction::performUndo(Action::state_ptr _state) {
    71 //  ParserLoadXyzState *state = assert_cast<ParserLoadXyzState*>(_state.get());
     74  WorldScaleBoxState *state = assert_cast<WorldScaleBoxState*>(_state.get());
    7275
    73   return Action::failure;
    74 //  string newName = state->mol->getName();
    75 //  state->mol->setName(state->lastName);
    76 //
    77 //  return Action::state_ptr(new ParserLoadXyzState(state->mol,newName));
     76  // scale back atoms
     77  double x[NDIM];
     78  for (int i=0;i<NDIM;i++)
     79    x[i] = 1./state->params.Scaler[i];
     80  vector<atom*> AllAtoms = World::getInstance().getAllAtoms();
     81  for(vector<atom*>::iterator AtomRunner = AllAtoms.begin(); AtomRunner != AllAtoms.end(); ++AtomRunner) {
     82    (*AtomRunner)->ScaleAll(x);
     83  }
     84
     85  // scale back box
     86  RealSpaceMatrix M = World::getInstance().getDomain().getM();
     87  RealSpaceMatrix scale;
     88  for (int i=0;i<NDIM;i++) {
     89    scale.at(i,i) = 1./state->params.Scaler[i];
     90  }
     91  M *= scale;
     92  World::getInstance().setDomain(M);
     93
     94  // give final box size
     95  LOG(0, "Box domain restored to " << World::getInstance().getDomain().getM());
     96
     97  return Action::state_ptr(_state);
    7898}
    7999
    80100Action::state_ptr WorldScaleBoxAction::performRedo(Action::state_ptr _state){
    81   return Action::failure;
     101  WorldScaleBoxState *state = assert_cast<WorldScaleBoxState*>(_state.get());
     102
     103  // scale atoms
     104  double x[NDIM];
     105  for (int i=0;i<NDIM;i++)
     106    x[i] = state->params.Scaler[i];
     107  vector<atom*> AllAtoms = World::getInstance().getAllAtoms();
     108  for(vector<atom*>::iterator AtomRunner = AllAtoms.begin(); AtomRunner != AllAtoms.end(); ++AtomRunner) {
     109    (*AtomRunner)->ScaleAll(x);
     110  }
     111
     112  // scale box
     113  RealSpaceMatrix M = World::getInstance().getDomain().getM();
     114  RealSpaceMatrix scale;
     115  for (int i=0;i<NDIM;i++) {
     116    scale.at(i,i) = state->params.Scaler[i];
     117  }
     118  M *= scale;
     119  World::getInstance().setDomain(M);
     120
     121  // give final box size
     122  LOG(0, "Box domain is again " << World::getInstance().getDomain().getM());
     123
     124  return Action::state_ptr(_state);
    82125}
    83126
    84127bool WorldScaleBoxAction::canUndo() {
    85   return false;
     128  return true;
    86129}
    87130
    88131bool WorldScaleBoxAction::shouldUndo() {
    89   return false;
     132  return true;
    90133}
    91134/** =========== end of function ====================== */
  • src/AtomicInfo.cpp

    r752bb4 r360c8b  
    2222#include "atom.hpp"
    2323#include "AtomicInfo.hpp"
    24 #include "element.hpp"
     24#include "Element/element.hpp"
    2525#include "LinearAlgebra/Vector.hpp"
    2626
  • src/Bond/bond.cpp

    r752bb4 r360c8b  
    2323#include "atom.hpp"
    2424#include "Bond/bond.hpp"
    25 #include "element.hpp"
     25#include "Element/element.hpp"
    2626
    2727
  • src/Box.cpp

    r752bb4 r360c8b  
    3838
    3939using namespace std;
     40
     41VECTORSET(std::list) Box::internal_list;
    4042
    4143Box::Box() :
     
    135137VECTORSET(std::list) Box::explode(const Vector &point,int n) const{
    136138  ASSERT(isInside(point),"Exploded point not inside Box");
    137   VECTORSET(std::list) res;
     139  internal_explode(point, n);
     140  VECTORSET(std::list) res(internal_list);
     141  return res;
     142}
     143
     144void Box::internal_explode(const Vector &point,int n) const{
     145  internal_list.clear();
    138146
    139147  Vector translater = translateOut(point);
     
    156164  if(!dims){
    157165    // all boundaries are ignored
    158     res.push_back(point);
    159     return res;
     166    internal_list.push_back(point);
     167    return;
    160168  }
    161169
     
    189197        case Ignore:
    190198          ASSERT(0,"Ignored coordinate handled in generation loop");
     199          break;
    191200        default:
    192201          ASSERT(0,"No default case for this switch-case");
     202          break;
    193203      }
    194204
     
    196206    // add back all ignored coordinates (not handled in above loop)
    197207    helper+=mask;
    198     res.push_back(translateIn(helper));
     208    internal_list.push_back(translateIn(helper));
    199209    // set the new indexes
    200210    int pos=0;
     
    209219    }
    210220  }
    211   return res;
    212221}
    213222
     
    218227
    219228double Box::periodicDistanceSquared(const Vector &point1,const Vector &point2) const{
    220   Vector helper1 = WrapPeriodically(point1);
    221   Vector helper2 = WrapPeriodically(point2);
    222   VECTORSET(std::list) expansion = explode(helper1);
    223   double res = expansion.minDistSquared(helper2);
     229  Vector helper1(!isInside(point1) ? WrapPeriodically(point1) : point1);
     230  Vector helper2(!isInside(point2) ? WrapPeriodically(point2) : point2);
     231  internal_explode(helper1,1);
     232  double res = internal_list.minDistSquared(helper2);
    224233  return res;
    225234}
  • src/Box.hpp

    r752bb4 r360c8b  
    122122
    123123private:
     124  /** Internal explode function that works on the staticly present internal_list
     125   *
     126   * \todo Note that is not thread-safe!
     127   *
     128   * Most of the time of explode is consumed by memory allocation if it is called
     129   * repeatedly.
     130   *
     131   * @param point point to explode
     132   * @param n neighbour shells to explode
     133   */
     134  void internal_explode(const Vector &point,int n) const;
     135
     136  //!> Internal vector list for exploding vectors and checking.
     137  static VECTORSET(std::list) internal_list;
     138
    124139  Conditions_t conditions;
    125140  RealSpaceMatrix *M;    //!< Defines the layout of the box
  • src/Descriptors/AtomIdDescriptor.hpp

    r752bb4 r360c8b  
    1515
    1616
    17 #include "Helpers/defs.hpp"
     17#include "types.hpp"
    1818#include "Descriptors/AtomDescriptor.hpp"
    1919
  • src/Descriptors/AtomTypeDescriptor.cpp

    r752bb4 r360c8b  
    2525#include "atom.hpp"
    2626#include "World.hpp"
    27 #include "periodentafel.hpp"
     27#include "Element/periodentafel.hpp"
    2828
    2929AtomTypeDescriptor_impl::AtomTypeDescriptor_impl(const element* _type) :
  • src/Dynamics/LinearInterpolationBetweenSteps.hpp

    r752bb4 r360c8b  
    2525#include "Dynamics/MinimiseConstrainedPotential.hpp"
    2626#include "molecule.hpp"
    27 #include "parser.hpp"
    2827#include "World.hpp"
    2928
  • src/Dynamics/MinimiseConstrainedPotential.cpp

    r752bb4 r360c8b  
    2626#include "atom.hpp"
    2727#include "config.hpp"
    28 #include "element.hpp"
     28#include "Element/element.hpp"
    2929#include "CodePatterns/enumeration.hpp"
    3030#include "CodePatterns/Info.hpp"
    3131#include "CodePatterns/Verbose.hpp"
    3232#include "CodePatterns/Log.hpp"
     33#include "Fragmentation/ForceMatrix.hpp"
    3334#include "Helpers/helpers.hpp"
    3435#include "molecule.hpp"
    35 #include "parser.hpp"
    3636#include "LinearAlgebra/Plane.hpp"
    3737#include "World.hpp"
  • src/Dynamics/VerletForceIntegration.hpp

    r752bb4 r360c8b  
    2121#include "CodePatterns/Verbose.hpp"
    2222#include "Dynamics/MinimiseConstrainedPotential.hpp"
     23#include "Fragmentation/ForceMatrix.hpp"
    2324#include "Helpers/helpers.hpp"
    2425#include "LinearAlgebra/Vector.hpp"
    25 #include "parser.hpp"
    2626#include "ThermoStatContainer.hpp"
    2727#include "Thermostats/Berendsen.hpp"
  • src/Formula.cpp

    r752bb4 r360c8b  
    2525
    2626#include "World.hpp"
    27 #include "periodentafel.hpp"
    28 #include "element.hpp"
     27#include "Element/periodentafel.hpp"
     28#include "Element/element.hpp"
    2929#include "CodePatterns/Assert.hpp"
    3030#include "CodePatterns/Range.hpp"
  • src/Graph/BondGraph.cpp

    r752bb4 r360c8b  
    2626#include "Graph/BondGraph.hpp"
    2727#include "Box.hpp"
    28 #include "element.hpp"
     28#include "Element/element.hpp"
    2929#include "CodePatterns/Info.hpp"
    3030#include "CodePatterns/Log.hpp"
     
    3232#include "CodePatterns/Verbose.hpp"
    3333#include "molecule.hpp"
    34 #include "parser.hpp"
    35 #include "periodentafel.hpp"
     34#include "Element/periodentafel.hpp"
     35#include "Fragmentation/MatrixContainer.hpp"
    3636#include "LinearAlgebra/Vector.hpp"
    3737#include "World.hpp"
     
    3939
    4040const double BondGraph::BondThreshold = 0.4;   //!< CSD threshold in bond check which is the width of the interval whose center is the sum of the covalent radii
     41
     42BondGraph::BondGraph() :
     43    BondLengthMatrix(NULL),
     44    IsAngstroem(true)
     45{}
    4146
    4247BondGraph::BondGraph(bool IsA) :
     
    4752BondGraph::~BondGraph()
    4853{
     54  CleanupBondLengthTable();
     55}
     56
     57void BondGraph::CleanupBondLengthTable()
     58{
    4959  if (BondLengthMatrix != NULL) {
    5060    delete(BondLengthMatrix);
     
    6373    LOG(1, "MatrixContainer for Bond length already present, removing.");
    6474    delete(BondLengthMatrix);
     75    BondLengthMatrix = NULL;
    6576  }
    6677  TempContainer = new MatrixContainer;
     
    164175  int n[NDIM];
    165176  Box &domain = World::getInstance().getDomain();
     177  size_t CurrentTime = WorldTime::getTime();
    166178
    167179  unsigned int BondCount = 0;
     
    191203                        ASSERT(OtherWalker != NULL,
    192204                            "BondGraph::CreateAdjacency() - TesselPoint that was not an atom retrieved from LinkedNode");
    193                         const range<double> MinMaxDistanceSquared(
    194                             getMinMaxDistanceSquared(Walker, OtherWalker));
    195                         const double distance = domain.periodicDistanceSquared(OtherWalker->getPosition(),Walker->getPosition());
    196                         LOG(2, "INFO: Checking squared distance " << distance << " against typical bond length of " << MinMaxDistanceSquared << ".");
    197                         const bool status = MinMaxDistanceSquared.isInRange(distance);
    198205                        if (OtherWalker->father > Walker->father ) { // just to not add bonds from both sides
     206                          const range<double> MinMaxDistanceSquared(
     207                              getMinMaxDistanceSquared(Walker, OtherWalker));
     208                          const double distance = domain.periodicDistanceSquared(OtherWalker->getPosition(),Walker->getPosition());
     209                          LOG(3, "INFO: Checking squared distance " << distance << " against typical bond length of " << MinMaxDistanceSquared << ".");
     210                          const bool status = MinMaxDistanceSquared.isInRange(distance);
    199211                          if (status) { // create bond if distance is smaller
    200212                            LOG(1, "ACCEPT: Adding Bond between " << *Walker << " and " << *OtherWalker << " in distance " << sqrt(distance) << ".");
    201213                            //const bond * Binder =
    202                               Walker->father->addBond(WorldTime::getTime(), OtherWalker->father);
     214                              Walker->father->addBond(CurrentTime, OtherWalker->father);
    203215                            BondCount++;
    204216                          } else {
    205                             LOG(1, "REJECT: Squared distance "
     217                            LOG(2, "REJECT: Squared distance "
    206218                                << distance << " is out of squared covalent bounds "
    207219                                << MinMaxDistanceSquared << ".");
     
    222234}
    223235
     236bool BondGraph::operator==(const BondGraph &other) const
     237{
     238  if (IsAngstroem != other.IsAngstroem)
     239    return false;
     240  if (((BondLengthMatrix != NULL) && (other.BondLengthMatrix == NULL))
     241      || ((BondLengthMatrix == NULL) && (other.BondLengthMatrix != NULL)))
     242    return false;
     243  if ((BondLengthMatrix != NULL) && (other.BondLengthMatrix != NULL))
     244    if (*BondLengthMatrix != *other.BondLengthMatrix)
     245      return false;
     246  return true;
     247}
  • src/Graph/BondGraph.hpp

    r752bb4 r360c8b  
    2020#include <iosfwd>
    2121
     22#include <boost/serialization/array.hpp>
     23
    2224#include "AtomSet.hpp"
    2325#include "Bond/bond.hpp"
     
    2628#include "CodePatterns/Range.hpp"
    2729#include "CodePatterns/Verbose.hpp"
    28 #include "element.hpp"
     30#include "Element/element.hpp"
     31#include "Fragmentation/MatrixContainer.hpp"
    2932#include "linkedcell.hpp"
    3033#include "IPointCloud.hpp"
     
    6568   */
    6669  bool LoadBondLengthTable(std::istream &input);
     70
     71  /** Removes allocated bond length table.
     72   *
     73   */
     74  void CleanupBondLengthTable();
    6775
    6876  /** Determines the maximum of all element::CovalentRadius for elements present in \a &Set.
     
    300308  }
    301309
     310  /** Equality comparator for class BondGraph.
     311   *
     312   * @param other other instance to compare to
     313   * @return true - if equal in every member variable, except static
     314   *         \a BondGraph::BondThreshold.
     315   */
     316  bool operator==(const BondGraph &other) const;
     317
     318  /** Unequality comparator for class BondGraph.
     319   *
     320   * @param other other instance to compare to
     321   * @return false - if equal in every member variable, except static
     322   *         \a BondGraph::BondThreshold.
     323   */
     324  bool operator!=(const BondGraph &other) const {
     325    return !(*this == other);
     326  }
     327
    302328private:
    303   static const double BondThreshold;
    304329
    305330  /** Returns the BondLengthMatrix entry for a given index pair.
     
    383408  }
    384409
     410  bool operator==(const periodentafel &other) const;
     411
     412  bool operator!=(const periodentafel &other) const {
     413    return !(*this == other);
     414  }
     415
     416private:
     417  // default constructor for serialization
     418  BondGraph();
     419
     420  friend class boost::serialization::access;
     421  // serialization
     422  template<class Archive>
     423  void serialize(Archive & ar, const unsigned int version)
     424  {
     425    //ar & const_cast<double &>(BondThreshold);
     426    ar & BondLengthMatrix;
     427    ar & IsAngstroem;
     428  }
     429
     430  //!> half width of the interval for allowed bond distances
     431  static const double BondThreshold;
    385432  //!> Matrix with bond lenth per two elements
    386433  MatrixContainer *BondLengthMatrix;
  • src/Graph/CyclicStructureAnalysis.cpp

    r752bb4 r360c8b  
    2828#include "CodePatterns/Log.hpp"
    2929#include "CodePatterns/Verbose.hpp"
    30 #include "element.hpp"
     30#include "Element/element.hpp"
    3131#include "molecule.hpp"
    3232
  • src/Helpers/defs.hpp

    r752bb4 r360c8b  
    55 */
    66
    7 #ifndef DEFS_HPP_
    8 #define DEFS_HPP_
     7#ifndef HELPERS_DEFS_HPP_
     8#define HELPERS_DEFS_HPP_
    99
    1010// include config.h
     
    8989const extern unsigned int MAX_FRAGMENTATION_SKIPS;
    9090
    91 #endif /*DEFS_HPP_*/
     91#endif /* HELPERS_DEFS_HPP_*/
  • src/Helpers/helpers.hpp

    r752bb4 r360c8b  
    44 */
    55
    6 #ifndef HELPERS_HPP_
    7 #define HELPERS_HPP_
     6#ifndef HELPERS_HELPERS_HPP_
     7#define HELPERS_HELPERS_HPP_
    88
    99using namespace std;
     
    5151};
    5252
    53 #endif /*HELPERS_HPP_*/
     53#endif /* HELPERS_HELPERS_HPP_*/
  • src/Makefile.am

    r752bb4 r360c8b  
    88
    99include Actions/Makefile.am
     10include Analysis/Makefile.am
     11include Element/Makefile.am
    1012include Graph/Makefile.am
     13include Helpers/Makefile.am
     14include Fragmentation/Makefile.am
    1115include Parser/Makefile.am
    1216include RandomNumbers/Makefile.am
     
    3842  AtomicInfo.hpp \
    3943  AtomSet.hpp
    40 
    41 ANALYSISSOURCE = \
    42   analysis_bonds.cpp \
    43   analysis_correlation.cpp
    44 ANALYSISHEADER = \
    45   analysis_bonds.hpp \
    46   analysis_correlation.hpp
    4744
    4845BONDSOURCE = \
     
    116113        Dynamics/VerletForceIntegration.hpp
    117114
    118 HELPERSSOURCE = \
    119         Helpers/defs.cpp
    120 
    121 HELPERSHEADER = \
    122         Helpers/defs.hpp \
    123         Helpers/helpers.hpp
    124 
    125115THERMOSTATSOURCE = \
    126116  Thermostats/Berendsen.cpp \
     
    142132
    143133TESSELATIONSOURCE = \
    144   BoundaryLineSet.cpp \
    145   BoundaryPointSet.cpp \
    146   BoundaryPolygonSet.cpp \
    147   BoundaryTriangleSet.cpp \
    148   CandidateForTesselation.cpp \
    149   tesselation.cpp \
    150   tesselationhelpers.cpp \
    151   TesselPoint.cpp
     134  Tesselation/boundary.cpp \
     135  Tesselation/BoundaryLineSet.cpp \
     136  Tesselation/BoundaryPointSet.cpp \
     137  Tesselation/BoundaryPolygonSet.cpp \
     138  Tesselation/BoundaryTriangleSet.cpp \
     139  Tesselation/CandidateForTesselation.cpp \
     140  Tesselation/ellipsoid.cpp \
     141  Tesselation/tesselation.cpp \
     142  Tesselation/tesselationhelpers.cpp \
     143  Tesselation/TesselPoint.cpp \
     144  Tesselation/triangleintersectionlist.cpp
    152145 
    153146TESSELATIONHEADER = \
    154   BoundaryLineSet.hpp \
    155   BoundaryMaps.hpp \
    156   BoundaryPointSet.hpp \
    157   BoundaryPolygonSet.hpp \
    158   BoundaryTriangleSet.hpp \
    159   CandidateForTesselation.hpp \
     147  Tesselation/boundary.hpp \
     148  Tesselation/BoundaryLineSet.hpp \
     149  Tesselation/BoundaryMaps.hpp \
     150  Tesselation/BoundaryPointSet.hpp \
     151  Tesselation/BoundaryPolygonSet.hpp \
     152  Tesselation/BoundaryTriangleSet.hpp \
     153  Tesselation/CandidateForTesselation.hpp \
     154  Tesselation/ellipsoid.hpp \
    160155  IPointCloud.hpp \
    161156  PointCloudAdaptor.hpp \
    162   tesselation.hpp \
    163   tesselationhelpers.hpp \
    164   TesselPoint.hpp
     157  Tesselation/tesselation.hpp \
     158  Tesselation/tesselationhelpers.hpp \
     159  Tesselation/TesselPoint.hpp \
     160  Tesselation/triangleintersectionlist.hpp
    165161
    166162MOLECUILDERSOURCE = \
    167   ${ANALYSISSOURCE} \
    168163  ${ATOMSOURCE} \
    169164  ${BONDSOURCE} \
    170165  ${DESCRIPTORSOURCE} \
    171166  ${DYNAMICSSOURCE} \
    172   ${HELPERSSOURCE} \
    173167  ${THERMOSTATSOURCE} \
    174168  ${TESSELATIONSOURCE} \
    175   boundary.cpp \
    176169  Box.cpp \
    177170  config.cpp \
    178171  ConfigFileBuffer.cpp \
    179   element.cpp \
    180   elements_db.cpp \
    181   ellipsoid.cpp \
    182172  Formula.cpp \
    183173  graph.cpp \
     
    188178  molecule_geometry.cpp \
    189179  molecule_graph.cpp \
    190   parser.cpp \
    191   periodentafel.cpp \
    192180  ThermoStatContainer.cpp \
    193   triangleintersectionlist.cpp \
    194181  UIElements/UIFactory.cpp \
    195182  version.c \
     
    198185
    199186MOLECUILDERHEADER = \
    200   ${ANALYSISHEADER} \
    201187  ${ATOMHEADER} \
    202188  ${BONDHEADER} \
     
    204190  ${DESCRIPTORIMPLHEADER} \
    205191  ${DYNAMICSHEADER} \
    206   ${HELPERSHEADER} \
    207192  ${THERMOSTATHEADER} \
    208193  ${TESSELATIONHEADER} \
    209   boundary.hpp \
    210194  Box.hpp \
    211195  config.hpp \
    212196  ConfigFileBuffer.hpp \
    213   element.hpp \
    214   elements_db.hpp \
    215   ellipsoid.hpp \
    216197  Formula.hpp \
    217198  graph.hpp \
    218199  linkedcell.hpp \
    219200  molecule.hpp \
    220   parser.hpp \
    221   periodentafel.hpp \
    222201  ThermoStatContainer.hpp \
    223   triangleintersectionlist.hpp \
    224202  types.hpp \
    225203  UIElements/UIFactory.hpp \
     
    281259libmenu_a_SOURCES = ${UISOURCE} ${UIHEADER}
    282260
    283 molecuilder_DATA = elements.db valence.db orbitals.db Hbonddistance.db Hbondangle.db
     261molecuilder_DATA = Element/elements.db Element/valence.db Element/orbitals.db Element/Hbonddistance.db Element/Hbondangle.db
    284262
    285263molecuilder_CXXFLAGS = $(AM_CPPFLAGS)
     
    313291        $(GUI_LIBS)
    314292
    315 joiner_SOURCES = joiner.cpp datacreator.cpp datacreator.hpp periodentafel.hpp
     293joiner_SOURCES = Fragmentation/joiner.cpp Fragmentation/datacreator.cpp Fragmentation/datacreator.hpp
    316294joiner_LDADD = \
    317         libMolecuilder.la \
    318         libMolecuilderParser.la \
    319         libMolecuilderShapes.la \
    320         libMolecuilderRandomNumbers.la \
     295        libMolecuilderFragmentation.la \
     296        libMolecuilderHelpers.la \
     297        libMolecuilderElement.la \
    321298        $(top_builddir)/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
    322299        ${CodePatterns_LIBS} \
    323300        $(BOOST_THREAD_LIBS)
    324301
    325 analyzer_SOURCES = analyzer.cpp datacreator.cpp periodentafel.hpp datacreator.hpp
     302analyzer_SOURCES = Fragmentation/analyzer.cpp Fragmentation/datacreator.cpp Fragmentation/datacreator.hpp
    326303analyzer_LDADD = \
    327         libMolecuilder.la \
    328         libMolecuilderParser.la \
    329         libMolecuilderShapes.la \
    330         libMolecuilderRandomNumbers.la \
     304        libMolecuilderFragmentation.la \
     305        libMolecuilderHelpers.la \
     306        libMolecuilderElement.la \
    331307        $(top_builddir)/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
    332308        ${CodePatterns_LIBS} \
  • src/Parser/MpqcParser.cpp

    r752bb4 r360c8b  
    2929#include "atom.hpp"
    3030#include "config.hpp"
    31 #include "element.hpp"
     31#include "Element/element.hpp"
    3232#include "molecule.hpp"
    3333#include "CodePatterns/Log.hpp"
     
    3535#include "CodePatterns/Verbose.hpp"
    3636#include "LinearAlgebra/Vector.hpp"
    37 #include "periodentafel.hpp"
     37#include "Element/periodentafel.hpp"
    3838#include "World.hpp"
    3939
  • src/Parser/PcpParser.cpp

    r752bb4 r360c8b  
    2727#include "config.hpp"
    2828#include "ConfigFileBuffer.hpp"
    29 #include "element.hpp"
     29#include "Element/element.hpp"
    3030#include "CodePatterns/Assert.hpp"
    3131#include "CodePatterns/Log.hpp"
     
    3434#include "molecule.hpp"
    3535#include "PcpParser.hpp"
    36 #include "periodentafel.hpp"
     36#include "Element/periodentafel.hpp"
    3737#include "ThermoStatContainer.hpp"
    3838#include "World.hpp"
  • src/Parser/PdbParser.cpp

    r752bb4 r360c8b  
    2828#include "atom.hpp"
    2929#include "Bond/bond.hpp"
    30 #include "element.hpp"
     30#include "Element/element.hpp"
    3131#include "molecule.hpp"
    32 #include "periodentafel.hpp"
     32#include "Element/periodentafel.hpp"
    3333#include "Descriptors/AtomIdDescriptor.hpp"
    3434#include "Parser/PdbParser.hpp"
  • src/Parser/Psi3Parser.cpp

    r752bb4 r360c8b  
    2929#include "atom.hpp"
    3030#include "config.hpp"
    31 #include "element.hpp"
     31#include "Element/element.hpp"
     32#include "Element/periodentafel.hpp"
    3233#include "molecule.hpp"
    3334#include "CodePatterns/Log.hpp"
     
    3536#include "CodePatterns/Verbose.hpp"
    3637#include "LinearAlgebra/Vector.hpp"
    37 #include "periodentafel.hpp"
    3838#include "World.hpp"
    3939
  • src/Parser/TremoloParser.cpp

    r752bb4 r360c8b  
    2929#include "atom.hpp"
    3030#include "Bond/bond.hpp"
    31 #include "element.hpp"
     31#include "Element/element.hpp"
    3232#include "molecule.hpp"
    33 #include "periodentafel.hpp"
     33#include "Element/periodentafel.hpp"
    3434#include "Descriptors/AtomIdDescriptor.hpp"
    3535#include <map>
  • src/Parser/XyzParser.cpp

    r752bb4 r360c8b  
    2828#include "atom.hpp"
    2929#include "molecule.hpp"
    30 #include "element.hpp"
    31 #include "periodentafel.hpp"
     30#include "Element/element.hpp"
     31#include "Element/periodentafel.hpp"
    3232
    3333using namespace std;
  • src/Parser/unittests/ParserMpqcUnitTest.cpp

    r752bb4 r360c8b  
    2828#include "World.hpp"
    2929#include "atom.hpp"
    30 #include "element.hpp"
    31 #include "periodentafel.hpp"
     30#include "Element/element.hpp"
     31#include "Element/periodentafel.hpp"
    3232#include "Descriptors/AtomTypeDescriptor.hpp"
    3333#include "CodePatterns/Assert.hpp"
  • src/Parser/unittests/ParserPcpUnitTest.cpp

    r752bb4 r360c8b  
    2626#include "World.hpp"
    2727#include "atom.hpp"
    28 #include "element.hpp"
    29 #include "periodentafel.hpp"
     28#include "Element/element.hpp"
     29#include "Element/periodentafel.hpp"
    3030#include "CodePatterns/Log.hpp"
    3131#include "Descriptors/AtomTypeDescriptor.hpp"
  • src/Parser/unittests/ParserPdbUnitTest.cpp

    r752bb4 r360c8b  
    2626#include "World.hpp"
    2727#include "atom.hpp"
    28 #include "element.hpp"
    29 #include "periodentafel.hpp"
     28#include "Element/element.hpp"
     29#include "Element/periodentafel.hpp"
    3030#include "CodePatterns/Log.hpp"
    3131#include "Descriptors/AtomTypeDescriptor.hpp"
  • src/Parser/unittests/ParserPsi3UnitTest.cpp

    r752bb4 r360c8b  
    2626#include <boost/any.hpp>
    2727
    28 #include "World.hpp"
     28#include "CodePatterns/Assert.hpp"
     29
    2930#include "atom.hpp"
    30 #include "element.hpp"
    31 #include "periodentafel.hpp"
    3231#include "Descriptors/AtomTypeDescriptor.hpp"
    33 #include "CodePatterns/Assert.hpp"
     32#include "Element/element.hpp"
     33#include "Element/periodentafel.hpp"
    3434#include "Parser/ChangeTracker.hpp"
    3535#include "Parser/Psi3Parser.hpp"
     36#include "World.hpp"
    3637
    3738#ifdef HAVE_TESTRUNNER
  • src/Parser/unittests/ParserTremoloUnitTest.cpp

    r752bb4 r360c8b  
    2626#include "atom.hpp"
    2727#include "Descriptors/AtomTypeDescriptor.hpp"
    28 #include "element.hpp"
     28#include "Element/element.hpp"
     29#include "Element/periodentafel.hpp"
    2930#include "Parser/TremoloParser.hpp"
    3031#include "Parser/ChangeTracker.hpp"
    31 #include "periodentafel.hpp"
    3232#include "World.hpp"
    3333#include "WorldTime.hpp"
  • src/Parser/unittests/ParserXyzUnitTest.cpp

    r752bb4 r360c8b  
    2626#include "World.hpp"
    2727#include "atom.hpp"
    28 #include "element.hpp"
    29 #include "periodentafel.hpp"
     28#include "Element/element.hpp"
     29#include "Element/periodentafel.hpp"
    3030#include "CodePatterns/Log.hpp"
    3131#include "Descriptors/AtomTypeDescriptor.hpp"
  • src/PointCloudAdaptor.hpp

    r752bb4 r360c8b  
    1616#include "CodePatterns/Assert.hpp"
    1717#include "IPointCloud.hpp"
    18 #include "TesselPoint.hpp"
     18#include "Tesselation/TesselPoint.hpp"
    1919#include "LinearAlgebra/Vector.hpp"
    2020
  • src/RandomNumbers/unittests/Makefile.am

    r752bb4 r360c8b  
    3030
    3131RANDOMNUMBERLIBS = \
    32         ${CodePatterns_LIBS}
    33 #       $(BOOST_LIB)
     32        ../libMolecuilderRandomNumbers.la \
     33        ${CodePatterns_LIBS} \
     34        $(BOOST_LIB)
    3435
    3536RandomNumberDistributionFactoryUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    3637        ../RandomNumbers/unittests/RandomNumberDistributionFactoryUnitTest.cpp \
    3738        ../RandomNumbers/unittests/RandomNumberDistributionFactoryUnitTest.hpp
    38 RandomNumberDistributionFactoryUnitTest_LDADD = ${RANDOMNUMBERLIBS} \
    39         ../libMolecuilderRandomNumbers.la
     39RandomNumberDistributionFactoryUnitTest_LDADD = ${RANDOMNUMBERLIBS}
    4040
    4141RandomNumberEngineFactoryUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    4242        ../RandomNumbers/unittests/RandomNumberEngineFactoryUnitTest.cpp \
    4343        ../RandomNumbers/unittests/RandomNumberEngineFactoryUnitTest.hpp
    44 RandomNumberEngineFactoryUnitTest_LDADD = ${RANDOMNUMBERLIBS} \
    45         ../libMolecuilderRandomNumbers.la
     44RandomNumberEngineFactoryUnitTest_LDADD = ${RANDOMNUMBERLIBS}
    4645
    4746RandomNumberGeneratorFactoryUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    4847        ../RandomNumbers/unittests/RandomNumberGeneratorFactoryUnitTest.cpp \
    4948        ../RandomNumbers/unittests/RandomNumberGeneratorFactoryUnitTest.hpp
    50 RandomNumberGeneratorFactoryUnitTest_LDADD = ${RANDOMNUMBERLIBS} \
    51         ../libMolecuilderRandomNumbers.la
     49RandomNumberGeneratorFactoryUnitTest_LDADD = ${RANDOMNUMBERLIBS}
    5250
    5351RandomNumberGeneratorUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    5452        ../RandomNumbers/unittests/RandomNumberGeneratorUnitTest.cpp \
    5553        ../RandomNumbers/unittests/RandomNumberGeneratorUnitTest.hpp
    56 RandomNumberGeneratorUnitTest_LDADD = ${RANDOMNUMBERLIBS} \
    57         ../libMolecuilderRandomNumbers.la
     54RandomNumberGeneratorUnitTest_LDADD = ${RANDOMNUMBERLIBS}
    5855
    5956
  • src/Thermostats/Berendsen.cpp

    r752bb4 r360c8b  
    1414
    1515#include "Berendsen.hpp"
    16 #include "element.hpp"
     16#include "Element/element.hpp"
    1717#include "config.hpp"
    1818#include "CodePatterns/Verbose.hpp"
  • src/Thermostats/GaussianThermostat.cpp

    r752bb4 r360c8b  
    1919#include "LinearAlgebra/Vector.hpp"
    2020#include "AtomSet.hpp"
    21 #include "element.hpp"
     21#include "Element/element.hpp"
    2222#include "config.hpp"
    2323#include "World.hpp"
  • src/Thermostats/Langevin.cpp

    r752bb4 r360c8b  
    1414
    1515#include "Langevin.hpp"
    16 #include "element.hpp"
     16#include "Element/element.hpp"
    1717#include "config.hpp"
    1818#include "CodePatterns/Verbose.hpp"
  • src/Thermostats/NoseHoover.cpp

    r752bb4 r360c8b  
    1515#include "NoseHoover.hpp"
    1616
    17 #include "element.hpp"
     17#include "Element/element.hpp"
    1818#include "config.hpp"
    1919#include "CodePatterns/Verbose.hpp"
  • src/Thermostats/Woodcock.cpp

    r752bb4 r360c8b  
    1515#include "Woodcock.hpp"
    1616
    17 #include "element.hpp"
     17#include "Element/element.hpp"
    1818#include "config.hpp"
    1919#include "CodePatterns/Verbose.hpp"
  • src/UIElements/CommandLineUI/Query/AtomCommandLineQuery.cpp

    r752bb4 r360c8b  
    3030#include "CodePatterns/Verbose.hpp"
    3131#include "World.hpp"
    32 #include "Box.hpp"
    3332
    3433using namespace std;
  • src/UIElements/CommandLineUI/Query/ElementCommandLineQuery.cpp

    r752bb4 r360c8b  
    2424#include "CodePatterns/Log.hpp"
    2525#include "CodePatterns/Verbose.hpp"
    26 #include "element.hpp"
    27 #include "periodentafel.hpp"
     26#include "Element/element.hpp"
     27#include "Element/periodentafel.hpp"
    2828#include "World.hpp"
    2929
  • src/UIElements/CommandLineUI/Query/ElementsCommandLineQuery.cpp

    r752bb4 r360c8b  
    2424#include "CodePatterns/Log.hpp"
    2525#include "CodePatterns/Verbose.hpp"
    26 #include "element.hpp"
    27 #include "periodentafel.hpp"
     26#include "Element/element.hpp"
     27#include "Element/periodentafel.hpp"
    2828#include "World.hpp"
    2929
  • src/UIElements/CommandLineUI/TypeEnumContainer.cpp

    r752bb4 r360c8b  
    3434#include "LinearAlgebra/BoxVector.hpp"
    3535#include "LinearAlgebra/Vector.hpp"
    36 #include "element.hpp"
     36#include "Element/element.hpp"
    3737#include "molecule.hpp"
    3838#include "RandomNumbers/RandomNumberDistribution_Parameters.hpp"
  • src/UIElements/Makefile.am

    r752bb4 r360c8b  
    264264        libMolecuilderActionPrototypes.la \
    265265        libMolecuilderActions.la \
     266        libMolecuilderAnalysis.la \
    266267        libMolecuilderGraph.la \
    267268        libMolecuilder.la \
     269        libMolecuilderFragmentation.la \
    268270        libMolecuilderParser.la \
    269271        libMolecuilderShapes.la \
     272        libMolecuilderHelpers.la \
     273        libMolecuilderElement.la \
    270274        $(top_builddir)/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
    271275        libMolecuilderRandomNumbers.la \
  • src/UIElements/Qt4/Pipe/ElementQtQueryPipe.cpp

    r752bb4 r360c8b  
    2424
    2525#include "CodePatterns/MemDebug.hpp"
    26 #include "element.hpp"
    27 #include "periodentafel.hpp"
     26#include "Element/element.hpp"
     27#include "Element/periodentafel.hpp"
    2828#include "World.hpp"
    2929
  • src/UIElements/Qt4/Pipe/ElementsQtQueryPipe.cpp

    r752bb4 r360c8b  
    2626
    2727#include "CodePatterns/MemDebug.hpp"
    28 #include "element.hpp"
    29 #include "periodentafel.hpp"
     28#include "Element/element.hpp"
     29#include "Element/periodentafel.hpp"
    3030#include "World.hpp"
    3131
  • src/UIElements/Qt4/Query/ElementQtQuery.cpp

    r752bb4 r360c8b  
    2727#include "UIElements/Qt4/Pipe/ElementQtQueryPipe.hpp"
    2828
    29 #include "element.hpp"
    30 #include "periodentafel.hpp"
     29#include "Element/element.hpp"
     30#include "Element/periodentafel.hpp"
    3131#include "World.hpp"
    3232
  • src/UIElements/Qt4/Query/ElementsQtQuery.cpp

    r752bb4 r360c8b  
    2727#include "UIElements/Qt4/Pipe/ElementsQtQueryPipe.hpp"
    2828
    29 #include "element.hpp"
    30 #include "periodentafel.hpp"
     29#include "Element/element.hpp"
     30#include "Element/periodentafel.hpp"
    3131#include "World.hpp"
    3232
  • src/UIElements/TextUI/Query/ElementTextQuery.cpp

    r752bb4 r360c8b  
    2626#include "CodePatterns/Log.hpp"
    2727#include "CodePatterns/Verbose.hpp"
    28 #include "element.hpp"
    29 #include "periodentafel.hpp"
     28#include "Element/element.hpp"
     29#include "Element/periodentafel.hpp"
    3030#include "World.hpp"
    3131
  • src/UIElements/TextUI/Query/ElementsTextQuery.cpp

    r752bb4 r360c8b  
    2727#include "CodePatterns/Log.hpp"
    2828#include "CodePatterns/Verbose.hpp"
    29 #include "element.hpp"
    30 #include "periodentafel.hpp"
     29#include "Element/element.hpp"
     30#include "Element/periodentafel.hpp"
    3131#include "World.hpp"
    3232
  • src/UIElements/TextUI/TextWindow.cpp

    r752bb4 r360c8b  
    4545// all needed due to config::SaveAll()
    4646#include "config.hpp"
    47 #include "periodentafel.hpp"
     47#include "Element/periodentafel.hpp"
    4848
    4949// config::SaveAll() and enumerate()
  • src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject.cpp

    r752bb4 r360c8b  
    3333
    3434#include "Helpers/defs.hpp"
    35 #include "element.hpp"
    36 #include "periodentafel.hpp"
     35#include "Element/element.hpp"
     36#include "Element/periodentafel.hpp"
    3737#include "World.hpp"
    3838
  • src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_atom.cpp

    r752bb4 r360c8b  
    3030
    3131#include "Descriptors/AtomIdDescriptor.hpp"
    32 #include "element.hpp"
     32#include "Element/element.hpp"
    3333#include "LinearAlgebra/Vector.hpp"
    3434#include "World.hpp"
  • src/UIElements/Views/Qt4/Qt3D/GLMoleculeObject_bond.cpp

    r752bb4 r360c8b  
    3232#include "atom.hpp"
    3333#include "Bond/bond.hpp"
    34 #include "element.hpp"
     34#include "Element/element.hpp"
    3535#include "Helpers/defs.hpp"
    3636#include "LinearAlgebra/Line.hpp"
  • src/UIElements/Views/Qt4/Qt3D/GLWorldView.cpp

    r752bb4 r360c8b  
    145145//#include "atom.hpp"
    146146//#include "Bond/bond.hpp"
    147 //#include "element.hpp"
     147//#include "Element/element.hpp"
    148148//#include "molecule.hpp"
    149 //#include "periodentafel.hpp"
     149//#include "Element/periodentafel.hpp"
    150150//#include "World.hpp"
    151151//
  • src/World.cpp

    r752bb4 r360c8b  
    4040#include "LinearAlgebra/RealSpaceMatrix.hpp"
    4141#include "molecule.hpp"
    42 #include "periodentafel.hpp"
     42#include "Element/periodentafel.hpp"
    4343#include "ThermoStatContainer.hpp"
    4444#include "WorldTime.hpp"
     
    802802    Observable("World"),
    803803    BG(new BondGraph(true)),  // assume Angstroem for the moment
    804     periode(new periodentafel),
     804    periode(new periodentafel(true)),
    805805    configuration(new config),
    806806    Thermostats(new ThermoStatContainer),
  • src/atom.cpp

    r752bb4 r360c8b  
    2323#include "CodePatterns/Log.hpp"
    2424#include "config.hpp"
    25 #include "element.hpp"
    26 #include "parser.hpp"
     25#include "Element/element.hpp"
    2726#include "LinearAlgebra/Vector.hpp"
    2827#include "World.hpp"
  • src/atom.hpp

    r752bb4 r360c8b  
    2626#include "atom_graphnode.hpp"
    2727#include "atom_particleinfo.hpp"
    28 #include "TesselPoint.hpp"
     28#include "Tesselation/TesselPoint.hpp"
    2929#include "types.hpp"
    3030
  • src/atom_atominfo.cpp

    r752bb4 r360c8b  
    2323#include "CodePatterns/Verbose.hpp"
    2424#include "config.hpp"
    25 #include "element.hpp"
    26 #include "parser.hpp"
    27 #include "periodentafel.hpp"
     25#include "Element/element.hpp"
     26#include "Element/periodentafel.hpp"
     27#include "Fragmentation/ForceMatrix.hpp"
    2828#include "World.hpp"
    2929#include "WorldTime.hpp"
  • src/atom_bondedparticle.cpp

    r752bb4 r360c8b  
    2626#include "CodePatterns/Log.hpp"
    2727#include "CodePatterns/Verbose.hpp"
    28 #include "element.hpp"
     28#include "Element/element.hpp"
    2929#include "WorldTime.hpp"
    3030
  • src/builder_init.cpp

    r752bb4 r360c8b  
    2626#include "CodePatterns/Log.hpp"
    2727#include "molecule.hpp"
    28 #include "periodentafel.hpp"
    29 #include "tesselationhelpers.hpp"
     28#include "Element/periodentafel.hpp"
     29#include "Tesselation/tesselationhelpers.hpp"
    3030#include "UIElements/UIFactory.hpp"
    3131#include "UIElements/Menu/MenuDescription.hpp"
  • src/config.cpp

    r752bb4 r360c8b  
    3434#include "config.hpp"
    3535#include "ConfigFileBuffer.hpp"
    36 #include "element.hpp"
     36#include "Element/element.hpp"
    3737#include "Graph/BondGraph.hpp"
    3838#include "Helpers/helpers.hpp"
     
    4040#include "molecule.hpp"
    4141#include "molecule.hpp"
    42 #include "periodentafel.hpp"
     42#include "Element/periodentafel.hpp"
    4343#include "ThermoStatContainer.hpp"
    4444#include "World.hpp"
  • src/linkedcell.cpp

    r752bb4 r360c8b  
    2626#include "molecule.hpp"
    2727#include "IPointCloud.hpp"
    28 #include "tesselation.hpp"
     28#include "Tesselation/tesselation.hpp"
    2929#include "LinearAlgebra/Vector.hpp"
    3030
  • src/molecule.cpp

    r752bb4 r360c8b  
    3232#include "CodePatterns/Log.hpp"
    3333#include "config.hpp"
    34 #include "element.hpp"
     34#include "Element/element.hpp"
    3535#include "graph.hpp"
    3636#include "Graph/BondGraph.hpp"
     
    4242#include "linkedcell.hpp"
    4343#include "molecule.hpp"
    44 #include "periodentafel.hpp"
    45 #include "tesselation.hpp"
     44#include "Element/periodentafel.hpp"
     45#include "Tesselation/tesselation.hpp"
    4646#include "World.hpp"
    4747#include "WorldTime.hpp"
     
    233233}
    234234
    235 molecule::atomVector molecule::getAtomSet() const
    236 {
    237   atomVector vector_of_atoms;
     235World::AtomComposite molecule::getAtomSet() const
     236{
     237  World::AtomComposite vector_of_atoms;
    238238  BOOST_FOREACH(atom *_atom, atoms)
    239239    vector_of_atoms.push_back(_atom);
  • src/molecule.hpp

    r752bb4 r360c8b  
    6969public:
    7070  typedef ATOMSET(std::list) atomSet;
    71   typedef ATOMSET(std::vector) atomVector;
    7271  typedef std::set<atomId_t> atomIdSet;
    7372  typedef ObservedIterator<atomSet> iterator;
     
    125124  virtual bool changeId(atomId_t newId);
    126125
    127   atomVector getAtomSet() const;
     126  World::AtomComposite getAtomSet() const;
    128127
    129128  iterator begin();
  • src/molecule_fragmentation.cpp

    r752bb4 r360c8b  
    2828#include "CodePatterns/Log.hpp"
    2929#include "config.hpp"
    30 #include "element.hpp"
     30#include "Element/element.hpp"
    3131#include "Graph/BondGraph.hpp"
    3232#include "Graph/CheckAgainstAdjacencyFile.hpp"
     
    3636#include "LinearAlgebra/RealSpaceMatrix.hpp"
    3737#include "molecule.hpp"
    38 #include "periodentafel.hpp"
     38#include "Element/periodentafel.hpp"
    3939#include "World.hpp"
    4040
     
    681681      ++iter) {
    682682    // correct bond degree
    683     molecule::atomVector Set = (*iter)->getAtomSet();
     683    World::AtomComposite Set = (*iter)->getAtomSet();
    684684    World::getInstance().getBondGraph()->CorrectBondDegree(Set);
    685685  }
  • src/molecule_geometry.cpp

    r752bb4 r360c8b  
    2626#include "CodePatterns/Verbose.hpp"
    2727#include "config.hpp"
    28 #include "element.hpp"
     28#include "Element/element.hpp"
    2929#include "Graph/BondGraph.hpp"
    3030#include "LinearAlgebra/leastsquaremin.hpp"
  • src/molecule_graph.cpp

    r752bb4 r360c8b  
    3131#include "config.hpp"
    3232#include "Graph/DepthFirstSearchAnalysis.hpp"
    33 #include "element.hpp"
     33#include "Element/element.hpp"
    3434#include "Graph/BondGraph.hpp"
    3535#include "Helpers/defs.hpp"
  • src/moleculelist.cpp

    r752bb4 r360c8b  
    2626#include "atom.hpp"
    2727#include "Bond/bond.hpp"
    28 #include "boundary.hpp"
     28#include "Tesselation/boundary.hpp"
    2929#include "Box.hpp"
    3030#include "CodePatterns/Assert.hpp"
     
    3232#include "CodePatterns/Verbose.hpp"
    3333#include "config.hpp"
    34 #include "element.hpp"
     34#include "Element/element.hpp"
    3535#include "Graph/BondGraph.hpp"
    3636#include "Helpers/helpers.hpp"
     
    4040#include "Parser/MpqcParser.hpp"
    4141#include "Parser/FormatParserStorage.hpp"
    42 #include "periodentafel.hpp"
    43 #include "tesselation.hpp"
     42#include "Element/periodentafel.hpp"
     43#include "Tesselation/tesselation.hpp"
    4444#include "World.hpp"
    4545#include "WorldTime.hpp"
  • src/unittests/LinkedCellUnitTest.cpp

    r752bb4 r360c8b  
    3030#include "atom.hpp"
    3131#include "Descriptors/MoleculeDescriptor.hpp"
    32 #include "element.hpp"
     32#include "Element/element.hpp"
    3333#include "linkedcell.hpp"
    3434#include "molecule.hpp"
    35 #include "periodentafel.hpp"
     35#include "Element/periodentafel.hpp"
    3636#include "PointCloudAdaptor.hpp"
    3737#include "World.hpp"
  • src/unittests/ListOfBondsUnitTest.cpp

    r752bb4 r360c8b  
    3030#include "atom.hpp"
    3131#include "Bond/bond.hpp"
    32 #include "element.hpp"
     32#include "Element/element.hpp"
    3333#include "molecule.hpp"
    34 #include "periodentafel.hpp"
     34#include "Element/periodentafel.hpp"
    3535#include "World.hpp"
    3636#include "WorldTime.hpp"
  • src/unittests/Makefile.am

    r752bb4 r360c8b  
    77
    88include ../../src/Actions/unittests/Makefile.am
     9include ../../src/Analysis/unittests/Makefile.am
    910include ../../src/Descriptors/unittests/Makefile.am
     11include ../../src/Element/unittests/Makefile.am
     12include ../../src/Fragmentation/unittests/Makefile.am
     13include ../../src/Graph/unittests/Makefile.am
    1014include ../../src/Parser/unittests/Makefile.am
    1115include ../../src/RandomNumbers/unittests/Makefile.am
    1216include ../../src/Shapes/unittests/Makefile.am
     17include ../../src/Tesselation/unittests/Makefile.am
    1318include ../../src/UIElements/CommandLineUI/unittests/Makefile.am
    1419include ../../src/UIElements/Menu/unittests/Makefile.am
     
    2025
    2126GENERALTESTS = \
    22   AnalysisBondsUnitTest \
    23   AnalysisCorrelationToPointUnitTest \
    24   AnalysisCorrelationToSurfaceUnitTest \
    25   AnalysisPairCorrelationUnitTest \
    26   BondGraphUnitTest \
    2727  BoxUnitTest \
    28   CountBondsUnitTest \
    29   ElementUnitTest \
    3028  FormulaUnittest \
    3129  LinkedCellUnitTest \
    3230  ListOfBondsUnitTest \
    33   PeriodentafelUnitTest \
    34   TesselationUnitTest \
    35   Tesselation_BoundaryTriangleUnitTest \
    36   Tesselation_InOutsideUnitTest \
    3731  WorldTimeUnitTest
    3832
     
    4943        $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_SERIALIZATION_LIBS)
    5044
     45GENERALLIBS = \
     46        ../libMolecuilder.la \
     47        ../libMolecuilderHelpers.la \
     48        $(top_builddir)/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \
     49        ${CodePatterns_LIBS} \
     50        $(BOOST_LIB)
     51
    5152ALLLIBS = \
    5253        ../libMolecuilderUI.la \
     
    5859TESTSOURCES = \
    5960        ${ACTIONTESTSSOURCES} \
     61        ${ANALYSISTESTSSOURCES} \
    6062        ${DESCRIPTORTESTSSOURCES} \
     63        ${ELEMENTTESTSSOURCES} \
     64        ${FRAGMENTATIONTESTSSOURCES} \
     65        ${GRAPHTESTSSOURCES} \
    6166        ${LINEARALGEBRATESTSSOURCES} \
    6267        ${PARSERTESTSSOURCES} \
    6368        ${RANDOMNUMBERTESTSSOURCES} \
    6469        ${SHAPETESTSSOURCES} \
     70        ${TESSELATIONTESTSSOURCES} \
    6571        $(UIELEMENTSCOMMANDLINEPARSERTESTSSOURCES) \
    6672        ${UIELEMENTSMENUTESTSSOURCES} \
    67   AnalysisBondsUnitTest.cpp \
    68   AnalysisCorrelationToPointUnitTest.cpp \
    69   AnalysisCorrelationToSurfaceUnitTest.cpp  \
    70   AnalysisPairCorrelationUnitTest.cpp \
    71   BondGraphUnitTest.cpp \
    7273  BoxUnitTest.cpp \
    73   CountBondsUnitTest.cpp \
    74   ElementUnitTest.cpp \
    7574  FormulaUnitTest.cpp \
    7675  LinkedCellUnitTest.cpp \
    7776  ListOfBondsUnitTest.cpp \
    78   PeriodentafelUnitTest.cpp \
    79   TesselationUnitTest.cpp \
    80   Tesselation_BoundaryTriangleUnitTest.cpp \
    81   Tesselation_InsideOutsideUnitTest.cpp \
    8277  WorldTimeUnitTest.cpp
    8378
    8479TESTHEADERS = \
    8580        ${ACTIONTESTSHEADERS} \
     81        ${ANALYSISTESTSHEADERS} \
    8682        ${DESCRIPTORTESTSHEADERS} \
     83        ${ELEMENTTESTSHEADERS} \
     84        ${FRAGMENTATIONTESTSHEADERS} \
     85        ${GRAPHTESTSHEADERS} \
    8786        ${LINEARALGEBRATESTSHEADERS} \
    8887        ${PARSERTESTSHEADERS} \
    8988        ${RANDOMNUMBERTESTSHEADERS} \
    9089        ${SHAPETESTSHEADERS} \
     90        ${TESSELATIONTESTSHEADERS} \
    9191        $(UIELEMENTSCOMMANDLINEPARSERTESTSHEADERS) \
    9292        ${UIELEMENTSMENUTESTSHEADERS} \
    93   AnalysisBondsUnitTest.hpp \
    94   AnalysisCorrelationToPointUnitTest.hpp \
    95   AnalysisCorrelationToSurfaceUnitTest.hpp  \
    96   AnalysisPairCorrelationUnitTest.hpp \
    97   BondGraphUnitTest.hpp \
    9893  BoxUnitTest.hpp \
    99   CountBondsUnitTest.hpp \
    100   ElementUnitTest.hpp \
    10194  FormulaUnitTest.hpp \
    10295  LinkedCellUnitTest.hpp \
    10396  ListOfBondsUnitTest.hpp \
    104   PeriodentafelUnitTest.hpp \
    105   TesselationUnitTest.hpp \
    106   Tesselation_BoundaryTriangleUnitTest.hpp \
    107   Tesselation_InsideOutsideUnitTest.hpp \
    10897  WorldTimeUnitTest.hpp
    10998 
    110 
    111 AnalysisBondsUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    112         AnalysisBondsUnitTest.cpp \
    113         AnalysisBondsUnitTest.hpp
    114 AnalysisBondsUnitTest_LDADD = ${ALLLIBS}
    115 
    116 AnalysisCorrelationToPointUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    117         AnalysisCorrelationToPointUnitTest.cpp \
    118         AnalysisCorrelationToPointUnitTest.hpp
    119 AnalysisCorrelationToPointUnitTest_LDADD = ${ALLLIBS}
    120 
    121 AnalysisCorrelationToSurfaceUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    122         AnalysisCorrelationToSurfaceUnitTest.cpp \
    123         AnalysisCorrelationToSurfaceUnitTest.hpp
    124 AnalysisCorrelationToSurfaceUnitTest_LDADD = ${ALLLIBS}
    125 
    126 AnalysisPairCorrelationUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    127         AnalysisPairCorrelationUnitTest.cpp \
    128         AnalysisPairCorrelationUnitTest.hpp
    129 AnalysisPairCorrelationUnitTest_LDADD = ${ALLLIBS}
    130 
    131 BondGraphUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    132         BondGraphUnitTest.cpp \
    133         BondGraphUnitTest.hpp
    134 BondGraphUnitTest_LDADD = ${ALLLIBS}
    13599
    136100BoxUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    137101        BoxUnitTest.cpp \
    138102        BoxUnitTest.hpp
    139 BoxUnitTest_LDADD = ${ALLLIBS}
    140 
    141 CountBondsUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    142         CountBondsUnitTest.cpp \
    143         CountBondsUnitTest.hpp
    144 CountBondsUnitTest_LDADD = ${ALLLIBS}
    145 
    146 ElementUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    147         ElementUnitTest.cpp \
    148         ../element.cpp \
    149         ElementUnitTest.hpp \
    150         ../element.hpp
    151 ElementUnitTest_LDADD = \
    152         $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_SERIALIZATION_LIBS)
     103BoxUnitTest_LDADD = \
     104        ../libMolecuilder.la \
     105        ../libMolecuilderShapes.la \
     106        ../libMolecuilderHelpers.la \
     107        $(top_builddir)/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la
    153108
    154109FormulaUnittest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    155110        FormulaUnitTest.cpp \
    156111        FormulaUnitTest.hpp
    157 FormulaUnittest_LDADD = ${ALLLIBS}
     112FormulaUnittest_LDADD = $(ALLLIBS)
    158113
    159114LinkedCellUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    160115        LinkedCellUnitTest.cpp \
    161116        LinkedCellUnitTest.hpp
    162 LinkedCellUnitTest_LDADD = ${ALLLIBS}
     117LinkedCellUnitTest_LDADD = $(ALLLIBS)
    163118
    164119ListOfBondsUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    165120        ListOfBondsUnitTest.cpp \
    166121        ListOfBondsUnitTest.hpp
    167 ListOfBondsUnitTest_LDADD = ${ALLLIBS}
    168 
    169 PeriodentafelUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    170         PeriodentafelUnitTest.cpp \
    171         PeriodentafelUnitTest.hpp
    172 PeriodentafelUnitTest_LDADD = ${ALLLIBS}
    173 
    174 TesselationUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    175         TesselationUnitTest.cpp \
    176         TesselationUnitTest.hpp
    177 TesselationUnitTest_LDADD = ${ALLLIBS}
    178 
    179 Tesselation_BoundaryTriangleUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    180         Tesselation_BoundaryTriangleUnitTest.cpp \
    181         Tesselation_BoundaryTriangleUnitTest.hpp
    182 Tesselation_BoundaryTriangleUnitTest_LDADD = ${ALLLIBS}
    183 
    184 Tesselation_InOutsideUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
    185         Tesselation_InsideOutsideUnitTest.cpp \
    186         Tesselation_InsideOutsideUnitTest.hpp
    187 Tesselation_InOutsideUnitTest_LDADD = ${ALLLIBS}
     122ListOfBondsUnitTest_LDADD = $(ALLLIBS)
    188123
    189124WorldTimeUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
  • tests/Fragmentations/Makefile.am

    r752bb4 r360c8b  
    44        testsuite.at \
    55        $(TESTSUITE) \
     6        analyzer.in \
    67        atlocal.in \
     8        joiner.in \
    79        molecuilder.in \
    810        $(srcdir)/package.m4 \
    9         $(srcdir)/1_2-dimethoxyethane \
    10         $(srcdir)/1_2-dimethylbenzene \
    11         $(srcdir)/2-methylcyclohexanone \
    12         $(srcdir)/benzene \
    13         $(srcdir)/cholesterol \
    14         $(srcdir)/cycloheptane \
    15         $(srcdir)/dimethyl_bromomalonate \
    16         $(srcdir)/glucose \
    17         $(srcdir)/heptan \
    18         $(srcdir)/isoleucine \
    19         $(srcdir)/neohexane \
    20         $(srcdir)/N_N-dimethylacetamide \
    21         $(srcdir)/proline \
    22         $(srcdir)/putrescine \
    23         $(srcdir)/tartaric_acid
     11        $(srcdir)/Analyzing/heptan \
     12        $(srcdir)/Fragmenting/1_2-dimethoxyethane \
     13        $(srcdir)/Fragmenting/1_2-dimethylbenzene \
     14        $(srcdir)/Fragmenting/2-methylcyclohexanone \
     15        $(srcdir)/Fragmenting/benzene \
     16        $(srcdir)/Fragmenting/cholesterol \
     17        $(srcdir)/Fragmenting/cycloheptane \
     18        $(srcdir)/Fragmenting/dimethyl_bromomalonate \
     19        $(srcdir)/Fragmenting/glucose \
     20        $(srcdir)/Fragmenting/heptan \
     21        $(srcdir)/Fragmenting/isoleucine \
     22        $(srcdir)/Fragmenting/neohexane \
     23        $(srcdir)/Fragmenting/N_N-dimethylacetamide \
     24        $(srcdir)/Fragmenting/proline \
     25        $(srcdir)/Fragmenting/putrescine \
     26        $(srcdir)/Fragmenting/tartaric_acid \
     27        $(srcdir)/Joining/heptan
    2428
    2529TESTSUITE = $(srcdir)/testsuite
     
    2832
    2933TESTSCRIPTS = \
    30         1_2-dimethoxyethane/testsuite-1_2-dimethoxyethane-order1.at \
    31         1_2-dimethoxyethane/testsuite-1_2-dimethoxyethane-order2.at \
    32         1_2-dimethoxyethane/testsuite-1_2-dimethoxyethane-order3.at \
    33         1_2-dimethoxyethane/testsuite-1_2-dimethoxyethane-order4.at \
    34         1_2-dimethylbenzene/testsuite-1_2-dimethylbenzene-order1.at \
    35         1_2-dimethylbenzene/testsuite-1_2-dimethylbenzene-order2.at \
    36         1_2-dimethylbenzene/testsuite-1_2-dimethylbenzene-order3.at \
    37         1_2-dimethylbenzene/testsuite-1_2-dimethylbenzene-order4.at \
    38         2-methylcyclohexanone/testsuite-2-methylcyclohexanone-order1.at \
    39         2-methylcyclohexanone/testsuite-2-methylcyclohexanone-order2.at \
    40         2-methylcyclohexanone/testsuite-2-methylcyclohexanone-order3.at \
    41         2-methylcyclohexanone/testsuite-2-methylcyclohexanone-order4.at \
    42         benzene/testsuite-benzene-order1.at \
    43         benzene/testsuite-benzene-order2.at \
    44         benzene/testsuite-benzene-order3.at \
    45         benzene/testsuite-benzene-order4.at \
    46         benzene/testsuite-benzene-order5.at \
    47         benzene/testsuite-benzene-order6.at \
    48         cholesterol/testsuite-cholesterol-order1.at \
    49         cholesterol/testsuite-cholesterol-order2.at \
    50         cholesterol/testsuite-cholesterol-order3.at \
    51         cholesterol/testsuite-cholesterol-order4.at \
    52         cycloheptane/testsuite-cycloheptane-order1.at \
    53         cycloheptane/testsuite-cycloheptane-order2.at \
    54         cycloheptane/testsuite-cycloheptane-order3.at \
    55         cycloheptane/testsuite-cycloheptane-order4.at \
    56         cycloheptane/testsuite-cycloheptane-order5.at \
    57         cycloheptane/testsuite-cycloheptane-order6.at \
    58         dimethyl_bromomalonate/testsuite-dimethyl_bromomalonate-order1.at \
    59         dimethyl_bromomalonate/testsuite-dimethyl_bromomalonate-order2.at \
    60         dimethyl_bromomalonate/testsuite-dimethyl_bromomalonate-order3.at \
    61         dimethyl_bromomalonate/testsuite-dimethyl_bromomalonate-order4.at \
    62         dimethyl_bromomalonate/testsuite-dimethyl_bromomalonate-order5.at \
    63         dimethyl_bromomalonate/testsuite-dimethyl_bromomalonate-order6.at \
    64         glucose/testsuite-glucose-order1.at \
    65         glucose/testsuite-glucose-order2.at \
    66         glucose/testsuite-glucose-order3.at \
    67         glucose/testsuite-glucose-order4.at \
    68         glucose/testsuite-glucose-order5.at \
    69         glucose/testsuite-glucose-order6.at \
    70         heptan/testsuite-heptan-order1.at \
    71         heptan/testsuite-heptan-order2.at \
    72         heptan/testsuite-heptan-order3.at \
    73         heptan/testsuite-heptan-order4.at \
    74         isoleucine/testsuite-isoleucine-order1.at \
    75         isoleucine/testsuite-isoleucine-order2.at \
    76         isoleucine/testsuite-isoleucine-order3.at \
    77         isoleucine/testsuite-isoleucine-order4.at \
    78         isoleucine/testsuite-isoleucine-order5.at \
    79         isoleucine/testsuite-isoleucine-order6.at \
    80         neohexane/testsuite-neohexane-order1.at \
    81         neohexane/testsuite-neohexane-order2.at \
    82         neohexane/testsuite-neohexane-order3.at \
    83         neohexane/testsuite-neohexane-order4.at \
    84         neohexane/testsuite-neohexane-order5.at \
    85         neohexane/testsuite-neohexane-order6.at \
    86         N_N-dimethylacetamide/testsuite-N_N-dimethylacetamide-order1.at \
    87         N_N-dimethylacetamide/testsuite-N_N-dimethylacetamide-order2.at \
    88         N_N-dimethylacetamide/testsuite-N_N-dimethylacetamide-order3.at \
    89         N_N-dimethylacetamide/testsuite-N_N-dimethylacetamide-order4.at \
    90         N_N-dimethylacetamide/testsuite-N_N-dimethylacetamide-order5.at \
    91         N_N-dimethylacetamide/testsuite-N_N-dimethylacetamide-order6.at \
    92         proline/testsuite-proline-order1.at \
    93         proline/testsuite-proline-order2.at \
    94         proline/testsuite-proline-order3.at \
    95         proline/testsuite-proline-order4.at \
    96         proline/testsuite-proline-order5.at \
    97         proline/testsuite-proline-order6.at \
    98         putrescine/testsuite-putrescine-order1.at \
    99         putrescine/testsuite-putrescine-order2.at \
    100         putrescine/testsuite-putrescine-order3.at \
    101         putrescine/testsuite-putrescine-order4.at \
    102         putrescine/testsuite-putrescine-order5.at \
    103         putrescine/testsuite-putrescine-order6.at \
    104         tartaric_acid/testsuite-tartaric_acid-order1.at \
    105         tartaric_acid/testsuite-tartaric_acid-order2.at \
    106         tartaric_acid/testsuite-tartaric_acid-order3.at \
    107         tartaric_acid/testsuite-tartaric_acid-order4.at \
    108         tartaric_acid/testsuite-tartaric_acid-order5.at \
    109         tartaric_acid/testsuite-tartaric_acid-order6.at
     34        Fragmenting/1_2-dimethoxyethane/testsuite-fragmenting-1_2-dimethoxyethane-order1.at \
     35        Fragmenting/1_2-dimethoxyethane/testsuite-fragmenting-1_2-dimethoxyethane-order2.at \
     36        Fragmenting/1_2-dimethoxyethane/testsuite-fragmenting-1_2-dimethoxyethane-order3.at \
     37        Fragmenting/1_2-dimethoxyethane/testsuite-fragmenting-1_2-dimethoxyethane-order4.at \
     38        Fragmenting/1_2-dimethylbenzene/testsuite-fragmenting-1_2-dimethylbenzene-order1.at \
     39        Fragmenting/1_2-dimethylbenzene/testsuite-fragmenting-1_2-dimethylbenzene-order2.at \
     40        Fragmenting/1_2-dimethylbenzene/testsuite-fragmenting-1_2-dimethylbenzene-order3.at \
     41        Fragmenting/1_2-dimethylbenzene/testsuite-fragmenting-1_2-dimethylbenzene-order4.at \
     42        Fragmenting/2-methylcyclohexanone/testsuite-fragmenting-2-methylcyclohexanone-order1.at \
     43        Fragmenting/2-methylcyclohexanone/testsuite-fragmenting-2-methylcyclohexanone-order2.at \
     44        Fragmenting/2-methylcyclohexanone/testsuite-fragmenting-2-methylcyclohexanone-order3.at \
     45        Fragmenting/2-methylcyclohexanone/testsuite-fragmenting-2-methylcyclohexanone-order4.at \
     46        Fragmenting/benzene/testsuite-fragmenting-benzene-order1.at \
     47        Fragmenting/benzene/testsuite-fragmenting-benzene-order2.at \
     48        Fragmenting/benzene/testsuite-fragmenting-benzene-order3.at \
     49        Fragmenting/benzene/testsuite-fragmenting-benzene-order4.at \
     50        Fragmenting/benzene/testsuite-fragmenting-benzene-order5.at \
     51        Fragmenting/benzene/testsuite-fragmenting-benzene-order6.at \
     52        Fragmenting/cholesterol/testsuite-fragmenting-cholesterol-order1.at \
     53        Fragmenting/cholesterol/testsuite-fragmenting-cholesterol-order2.at \
     54        Fragmenting/cholesterol/testsuite-fragmenting-cholesterol-order3.at \
     55        Fragmenting/cholesterol/testsuite-fragmenting-cholesterol-order4.at \
     56        Fragmenting/cycloheptane/testsuite-fragmenting-cycloheptane-order1.at \
     57        Fragmenting/cycloheptane/testsuite-fragmenting-cycloheptane-order2.at \
     58        Fragmenting/cycloheptane/testsuite-fragmenting-cycloheptane-order3.at \
     59        Fragmenting/cycloheptane/testsuite-fragmenting-cycloheptane-order4.at \
     60        Fragmenting/cycloheptane/testsuite-fragmenting-cycloheptane-order5.at \
     61        Fragmenting/cycloheptane/testsuite-fragmenting-cycloheptane-order6.at \
     62        Fragmenting/dimethyl_bromomalonate/testsuite-fragmenting-dimethyl_bromomalonate-order1.at \
     63        Fragmenting/dimethyl_bromomalonate/testsuite-fragmenting-dimethyl_bromomalonate-order2.at \
     64        Fragmenting/dimethyl_bromomalonate/testsuite-fragmenting-dimethyl_bromomalonate-order3.at \
     65        Fragmenting/dimethyl_bromomalonate/testsuite-fragmenting-dimethyl_bromomalonate-order4.at \
     66        Fragmenting/dimethyl_bromomalonate/testsuite-fragmenting-dimethyl_bromomalonate-order5.at \
     67        Fragmenting/dimethyl_bromomalonate/testsuite-fragmenting-dimethyl_bromomalonate-order6.at \
     68        Fragmenting/glucose/testsuite-fragmenting-glucose-order1.at \
     69        Fragmenting/glucose/testsuite-fragmenting-glucose-order2.at \
     70        Fragmenting/glucose/testsuite-fragmenting-glucose-order3.at \
     71        Fragmenting/glucose/testsuite-fragmenting-glucose-order4.at \
     72        Fragmenting/glucose/testsuite-fragmenting-glucose-order5.at \
     73        Fragmenting/glucose/testsuite-fragmenting-glucose-order6.at \
     74        Fragmenting/heptan/testsuite-fragmenting-heptan-order1.at \
     75        Fragmenting/heptan/testsuite-fragmenting-heptan-order2.at \
     76        Fragmenting/heptan/testsuite-fragmenting-heptan-order3.at \
     77        Fragmenting/heptan/testsuite-fragmenting-heptan-order4.at \
     78        Fragmenting/isoleucine/testsuite-fragmenting-isoleucine-order1.at \
     79        Fragmenting/isoleucine/testsuite-fragmenting-isoleucine-order2.at \
     80        Fragmenting/isoleucine/testsuite-fragmenting-isoleucine-order3.at \
     81        Fragmenting/isoleucine/testsuite-fragmenting-isoleucine-order4.at \
     82        Fragmenting/isoleucine/testsuite-fragmenting-isoleucine-order5.at \
     83        Fragmenting/isoleucine/testsuite-fragmenting-isoleucine-order6.at \
     84        Fragmenting/neohexane/testsuite-fragmenting-neohexane-order1.at \
     85        Fragmenting/neohexane/testsuite-fragmenting-neohexane-order2.at \
     86        Fragmenting/neohexane/testsuite-fragmenting-neohexane-order3.at \
     87        Fragmenting/neohexane/testsuite-fragmenting-neohexane-order4.at \
     88        Fragmenting/neohexane/testsuite-fragmenting-neohexane-order5.at \
     89        Fragmenting/neohexane/testsuite-fragmenting-neohexane-order6.at \
     90        Fragmenting/N_N-dimethylacetamide/testsuite-fragmenting-N_N-dimethylacetamide-order1.at \
     91        Fragmenting/N_N-dimethylacetamide/testsuite-fragmenting-N_N-dimethylacetamide-order2.at \
     92        Fragmenting/N_N-dimethylacetamide/testsuite-fragmenting-N_N-dimethylacetamide-order3.at \
     93        Fragmenting/N_N-dimethylacetamide/testsuite-fragmenting-N_N-dimethylacetamide-order4.at \
     94        Fragmenting/N_N-dimethylacetamide/testsuite-fragmenting-N_N-dimethylacetamide-order5.at \
     95        Fragmenting/N_N-dimethylacetamide/testsuite-fragmenting-N_N-dimethylacetamide-order6.at \
     96        Fragmenting/proline/testsuite-fragmenting-proline-order1.at \
     97        Fragmenting/proline/testsuite-fragmenting-proline-order2.at \
     98        Fragmenting/proline/testsuite-fragmenting-proline-order3.at \
     99        Fragmenting/proline/testsuite-fragmenting-proline-order4.at \
     100        Fragmenting/proline/testsuite-fragmenting-proline-order5.at \
     101        Fragmenting/proline/testsuite-fragmenting-proline-order6.at \
     102        Fragmenting/putrescine/testsuite-fragmenting-putrescine-order1.at \
     103        Fragmenting/putrescine/testsuite-fragmenting-putrescine-order2.at \
     104        Fragmenting/putrescine/testsuite-fragmenting-putrescine-order3.at \
     105        Fragmenting/putrescine/testsuite-fragmenting-putrescine-order4.at \
     106        Fragmenting/putrescine/testsuite-fragmenting-putrescine-order5.at \
     107        Fragmenting/putrescine/testsuite-fragmenting-putrescine-order6.at \
     108        Fragmenting/tartaric_acid/testsuite-fragmenting-tartaric_acid-order1.at \
     109        Fragmenting/tartaric_acid/testsuite-fragmenting-tartaric_acid-order2.at \
     110        Fragmenting/tartaric_acid/testsuite-fragmenting-tartaric_acid-order3.at \
     111        Fragmenting/tartaric_acid/testsuite-fragmenting-tartaric_acid-order4.at \
     112        Fragmenting/tartaric_acid/testsuite-fragmenting-tartaric_acid-order5.at \
     113        Fragmenting/tartaric_acid/testsuite-fragmenting-tartaric_acid-order6.at \
     114        Joining/heptan/testsuite-joining-heptan.at \
     115        Analyzing/heptan/testsuite-analyzing-heptan.at
    110116
    111117max_jobs = 4
  • tests/Fragmentations/testsuite.at

    r752bb4 r360c8b  
    44# In pre initial files are placed, in post results can be found to be checked by diff in this testsuite.
    55
    6 AT_INIT([Molecular Builder - Tesselations])
     6AT_INIT([Molecular Builder - Fragmentation])
    77AT_TESTED(diff grep egrep fgrep)
    88
     
    1111
    1212# fragmentation of 1_2-dimethoxyethane
    13 m4_include(1_2-dimethoxyethane/testsuite-1_2-dimethoxyethane-order1.at)
    14 m4_include(1_2-dimethoxyethane/testsuite-1_2-dimethoxyethane-order2.at)
    15 m4_include(1_2-dimethoxyethane/testsuite-1_2-dimethoxyethane-order3.at)
    16 m4_include(1_2-dimethoxyethane/testsuite-1_2-dimethoxyethane-order4.at)
     13m4_include(Fragmenting/1_2-dimethoxyethane/testsuite-fragmenting-1_2-dimethoxyethane-order1.at)
     14m4_include(Fragmenting/1_2-dimethoxyethane/testsuite-fragmenting-1_2-dimethoxyethane-order2.at)
     15m4_include(Fragmenting/1_2-dimethoxyethane/testsuite-fragmenting-1_2-dimethoxyethane-order3.at)
     16m4_include(Fragmenting/1_2-dimethoxyethane/testsuite-fragmenting-1_2-dimethoxyethane-order4.at)
    1717
    1818# fragmentation of 1_2-dimethylbenzene
    19 m4_include(1_2-dimethylbenzene/testsuite-1_2-dimethylbenzene-order1.at)
    20 m4_include(1_2-dimethylbenzene/testsuite-1_2-dimethylbenzene-order2.at)
    21 m4_include(1_2-dimethylbenzene/testsuite-1_2-dimethylbenzene-order3.at)
    22 m4_include(1_2-dimethylbenzene/testsuite-1_2-dimethylbenzene-order4.at)
     19m4_include(Fragmenting/1_2-dimethylbenzene/testsuite-fragmenting-1_2-dimethylbenzene-order1.at)
     20m4_include(Fragmenting/1_2-dimethylbenzene/testsuite-fragmenting-1_2-dimethylbenzene-order2.at)
     21m4_include(Fragmenting/1_2-dimethylbenzene/testsuite-fragmenting-1_2-dimethylbenzene-order3.at)
     22m4_include(Fragmenting/1_2-dimethylbenzene/testsuite-fragmenting-1_2-dimethylbenzene-order4.at)
    2323
    2424# fragmentation of 2-methylcyclohexanone
    25 m4_include(2-methylcyclohexanone/testsuite-2-methylcyclohexanone-order1.at)
    26 m4_include(2-methylcyclohexanone/testsuite-2-methylcyclohexanone-order2.at)
    27 m4_include(2-methylcyclohexanone/testsuite-2-methylcyclohexanone-order3.at)
    28 m4_include(2-methylcyclohexanone/testsuite-2-methylcyclohexanone-order4.at)
     25m4_include(Fragmenting/2-methylcyclohexanone/testsuite-fragmenting-2-methylcyclohexanone-order1.at)
     26m4_include(Fragmenting/2-methylcyclohexanone/testsuite-fragmenting-2-methylcyclohexanone-order2.at)
     27m4_include(Fragmenting/2-methylcyclohexanone/testsuite-fragmenting-2-methylcyclohexanone-order3.at)
     28m4_include(Fragmenting/2-methylcyclohexanone/testsuite-fragmenting-2-methylcyclohexanone-order4.at)
    2929
    3030# fragmentation of benzene
    31 m4_include(benzene/testsuite-benzene-order1.at)
    32 m4_include(benzene/testsuite-benzene-order2.at)
    33 m4_include(benzene/testsuite-benzene-order3.at)
    34 m4_include(benzene/testsuite-benzene-order4.at)
    35 m4_include(benzene/testsuite-benzene-order5.at)
    36 m4_include(benzene/testsuite-benzene-order6.at)
     31m4_include(Fragmenting/benzene/testsuite-fragmenting-benzene-order1.at)
     32m4_include(Fragmenting/benzene/testsuite-fragmenting-benzene-order2.at)
     33m4_include(Fragmenting/benzene/testsuite-fragmenting-benzene-order3.at)
     34m4_include(Fragmenting/benzene/testsuite-fragmenting-benzene-order4.at)
     35m4_include(Fragmenting/benzene/testsuite-fragmenting-benzene-order5.at)
     36m4_include(Fragmenting/benzene/testsuite-fragmenting-benzene-order6.at)
    3737
    3838# fragmentation of cholesterol
    39 m4_include(cholesterol/testsuite-cholesterol-order1.at)
    40 m4_include(cholesterol/testsuite-cholesterol-order2.at)
    41 m4_include(cholesterol/testsuite-cholesterol-order3.at)
    42 m4_include(cholesterol/testsuite-cholesterol-order4.at)
     39m4_include(Fragmenting/cholesterol/testsuite-fragmenting-cholesterol-order1.at)
     40m4_include(Fragmenting/cholesterol/testsuite-fragmenting-cholesterol-order2.at)
     41m4_include(Fragmenting/cholesterol/testsuite-fragmenting-cholesterol-order3.at)
     42m4_include(Fragmenting/cholesterol/testsuite-fragmenting-cholesterol-order4.at)
    4343
    4444# fragmentation of cycloheptane
    45 m4_include(cycloheptane/testsuite-cycloheptane-order1.at)
    46 m4_include(cycloheptane/testsuite-cycloheptane-order2.at)
    47 m4_include(cycloheptane/testsuite-cycloheptane-order3.at)
    48 m4_include(cycloheptane/testsuite-cycloheptane-order4.at)
    49 m4_include(cycloheptane/testsuite-cycloheptane-order5.at)
    50 m4_include(cycloheptane/testsuite-cycloheptane-order6.at)
     45m4_include(Fragmenting/cycloheptane/testsuite-fragmenting-cycloheptane-order1.at)
     46m4_include(Fragmenting/cycloheptane/testsuite-fragmenting-cycloheptane-order2.at)
     47m4_include(Fragmenting/cycloheptane/testsuite-fragmenting-cycloheptane-order3.at)
     48m4_include(Fragmenting/cycloheptane/testsuite-fragmenting-cycloheptane-order4.at)
     49m4_include(Fragmenting/cycloheptane/testsuite-fragmenting-cycloheptane-order5.at)
     50m4_include(Fragmenting/cycloheptane/testsuite-fragmenting-cycloheptane-order6.at)
    5151
    5252# fragmentation of dimethyl_bromomalonate
    53 m4_include(dimethyl_bromomalonate/testsuite-dimethyl_bromomalonate-order1.at)
    54 m4_include(dimethyl_bromomalonate/testsuite-dimethyl_bromomalonate-order2.at)
    55 m4_include(dimethyl_bromomalonate/testsuite-dimethyl_bromomalonate-order3.at)
    56 m4_include(dimethyl_bromomalonate/testsuite-dimethyl_bromomalonate-order4.at)
    57 m4_include(dimethyl_bromomalonate/testsuite-dimethyl_bromomalonate-order5.at)
    58 m4_include(dimethyl_bromomalonate/testsuite-dimethyl_bromomalonate-order6.at)
     53m4_include(Fragmenting/dimethyl_bromomalonate/testsuite-fragmenting-dimethyl_bromomalonate-order1.at)
     54m4_include(Fragmenting/dimethyl_bromomalonate/testsuite-fragmenting-dimethyl_bromomalonate-order2.at)
     55m4_include(Fragmenting/dimethyl_bromomalonate/testsuite-fragmenting-dimethyl_bromomalonate-order3.at)
     56m4_include(Fragmenting/dimethyl_bromomalonate/testsuite-fragmenting-dimethyl_bromomalonate-order4.at)
     57m4_include(Fragmenting/dimethyl_bromomalonate/testsuite-fragmenting-dimethyl_bromomalonate-order5.at)
     58m4_include(Fragmenting/dimethyl_bromomalonate/testsuite-fragmenting-dimethyl_bromomalonate-order6.at)
    5959
    6060# fragmentation of glucose
    61 m4_include(glucose/testsuite-glucose-order1.at)
    62 m4_include(glucose/testsuite-glucose-order2.at)
    63 m4_include(glucose/testsuite-glucose-order3.at)
    64 m4_include(glucose/testsuite-glucose-order4.at)
    65 m4_include(glucose/testsuite-glucose-order5.at)
    66 m4_include(glucose/testsuite-glucose-order6.at)
     61m4_include(Fragmenting/glucose/testsuite-fragmenting-glucose-order1.at)
     62m4_include(Fragmenting/glucose/testsuite-fragmenting-glucose-order2.at)
     63m4_include(Fragmenting/glucose/testsuite-fragmenting-glucose-order3.at)
     64m4_include(Fragmenting/glucose/testsuite-fragmenting-glucose-order4.at)
     65m4_include(Fragmenting/glucose/testsuite-fragmenting-glucose-order5.at)
     66m4_include(Fragmenting/glucose/testsuite-fragmenting-glucose-order6.at)
    6767
    6868# fragmentation of heptan
    69 m4_include(heptan/testsuite-heptan-order1.at)
    70 m4_include(heptan/testsuite-heptan-order2.at)
    71 m4_include(heptan/testsuite-heptan-order3.at)
    72 m4_include(heptan/testsuite-heptan-order4.at)
     69m4_include(Fragmenting/heptan/testsuite-fragmenting-heptan-order1.at)
     70m4_include(Fragmenting/heptan/testsuite-fragmenting-heptan-order2.at)
     71m4_include(Fragmenting/heptan/testsuite-fragmenting-heptan-order3.at)
     72m4_include(Fragmenting/heptan/testsuite-fragmenting-heptan-order4.at)
    7373
    7474# fragmentation of isoleucine
    75 m4_include(isoleucine/testsuite-isoleucine-order1.at)
    76 m4_include(isoleucine/testsuite-isoleucine-order2.at)
    77 m4_include(isoleucine/testsuite-isoleucine-order3.at)
    78 m4_include(isoleucine/testsuite-isoleucine-order4.at)
    79 m4_include(isoleucine/testsuite-isoleucine-order5.at)
    80 m4_include(isoleucine/testsuite-isoleucine-order6.at)
     75m4_include(Fragmenting/isoleucine/testsuite-fragmenting-isoleucine-order1.at)
     76m4_include(Fragmenting/isoleucine/testsuite-fragmenting-isoleucine-order2.at)
     77m4_include(Fragmenting/isoleucine/testsuite-fragmenting-isoleucine-order3.at)
     78m4_include(Fragmenting/isoleucine/testsuite-fragmenting-isoleucine-order4.at)
     79m4_include(Fragmenting/isoleucine/testsuite-fragmenting-isoleucine-order5.at)
     80m4_include(Fragmenting/isoleucine/testsuite-fragmenting-isoleucine-order6.at)
    8181
    8282# fragmentation of neohexane
    83 m4_include(neohexane/testsuite-neohexane-order1.at)
    84 m4_include(neohexane/testsuite-neohexane-order2.at)
    85 m4_include(neohexane/testsuite-neohexane-order3.at)
    86 m4_include(neohexane/testsuite-neohexane-order4.at)
    87 m4_include(neohexane/testsuite-neohexane-order5.at)
    88 m4_include(neohexane/testsuite-neohexane-order6.at)
     83m4_include(Fragmenting/neohexane/testsuite-fragmenting-neohexane-order1.at)
     84m4_include(Fragmenting/neohexane/testsuite-fragmenting-neohexane-order2.at)
     85m4_include(Fragmenting/neohexane/testsuite-fragmenting-neohexane-order3.at)
     86m4_include(Fragmenting/neohexane/testsuite-fragmenting-neohexane-order4.at)
     87m4_include(Fragmenting/neohexane/testsuite-fragmenting-neohexane-order5.at)
     88m4_include(Fragmenting/neohexane/testsuite-fragmenting-neohexane-order6.at)
    8989
    9090# fragmentation of N_N-dimethylacetamide
    91 m4_include(N_N-dimethylacetamide/testsuite-N_N-dimethylacetamide-order1.at)
    92 m4_include(N_N-dimethylacetamide/testsuite-N_N-dimethylacetamide-order2.at)
    93 m4_include(N_N-dimethylacetamide/testsuite-N_N-dimethylacetamide-order3.at)
    94 m4_include(N_N-dimethylacetamide/testsuite-N_N-dimethylacetamide-order4.at)
    95 m4_include(N_N-dimethylacetamide/testsuite-N_N-dimethylacetamide-order5.at)
    96 m4_include(N_N-dimethylacetamide/testsuite-N_N-dimethylacetamide-order6.at)
     91m4_include(Fragmenting/N_N-dimethylacetamide/testsuite-fragmenting-N_N-dimethylacetamide-order1.at)
     92m4_include(Fragmenting/N_N-dimethylacetamide/testsuite-fragmenting-N_N-dimethylacetamide-order2.at)
     93m4_include(Fragmenting/N_N-dimethylacetamide/testsuite-fragmenting-N_N-dimethylacetamide-order3.at)
     94m4_include(Fragmenting/N_N-dimethylacetamide/testsuite-fragmenting-N_N-dimethylacetamide-order4.at)
     95m4_include(Fragmenting/N_N-dimethylacetamide/testsuite-fragmenting-N_N-dimethylacetamide-order5.at)
     96m4_include(Fragmenting/N_N-dimethylacetamide/testsuite-fragmenting-N_N-dimethylacetamide-order6.at)
    9797
    9898# fragmentation of proline
    99 m4_include(proline/testsuite-proline-order1.at)
    100 m4_include(proline/testsuite-proline-order2.at)
    101 m4_include(proline/testsuite-proline-order3.at)
    102 m4_include(proline/testsuite-proline-order4.at)
    103 m4_include(proline/testsuite-proline-order5.at)
    104 m4_include(proline/testsuite-proline-order6.at)
     99m4_include(Fragmenting/proline/testsuite-fragmenting-proline-order1.at)
     100m4_include(Fragmenting/proline/testsuite-fragmenting-proline-order2.at)
     101m4_include(Fragmenting/proline/testsuite-fragmenting-proline-order3.at)
     102m4_include(Fragmenting/proline/testsuite-fragmenting-proline-order4.at)
     103m4_include(Fragmenting/proline/testsuite-fragmenting-proline-order5.at)
     104m4_include(Fragmenting/proline/testsuite-fragmenting-proline-order6.at)
    105105
    106106# fragmentation of putrescine
    107 m4_include(putrescine/testsuite-putrescine-order1.at)
    108 m4_include(putrescine/testsuite-putrescine-order2.at)
    109 m4_include(putrescine/testsuite-putrescine-order3.at)
    110 m4_include(putrescine/testsuite-putrescine-order4.at)
    111 m4_include(putrescine/testsuite-putrescine-order5.at)
    112 m4_include(putrescine/testsuite-putrescine-order6.at)
     107m4_include(Fragmenting/putrescine/testsuite-fragmenting-putrescine-order1.at)
     108m4_include(Fragmenting/putrescine/testsuite-fragmenting-putrescine-order2.at)
     109m4_include(Fragmenting/putrescine/testsuite-fragmenting-putrescine-order3.at)
     110m4_include(Fragmenting/putrescine/testsuite-fragmenting-putrescine-order4.at)
     111m4_include(Fragmenting/putrescine/testsuite-fragmenting-putrescine-order5.at)
     112m4_include(Fragmenting/putrescine/testsuite-fragmenting-putrescine-order6.at)
    113113
    114114# fragmentation of tartaric_acid
    115 m4_include(tartaric_acid/testsuite-tartaric_acid-order1.at)
    116 m4_include(tartaric_acid/testsuite-tartaric_acid-order2.at)
    117 m4_include(tartaric_acid/testsuite-tartaric_acid-order3.at)
    118 m4_include(tartaric_acid/testsuite-tartaric_acid-order4.at)
    119 m4_include(tartaric_acid/testsuite-tartaric_acid-order5.at)
    120 m4_include(tartaric_acid/testsuite-tartaric_acid-order6.at)
     115m4_include(Fragmenting/tartaric_acid/testsuite-fragmenting-tartaric_acid-order1.at)
     116m4_include(Fragmenting/tartaric_acid/testsuite-fragmenting-tartaric_acid-order2.at)
     117m4_include(Fragmenting/tartaric_acid/testsuite-fragmenting-tartaric_acid-order3.at)
     118m4_include(Fragmenting/tartaric_acid/testsuite-fragmenting-tartaric_acid-order4.at)
     119m4_include(Fragmenting/tartaric_acid/testsuite-fragmenting-tartaric_acid-order5.at)
     120m4_include(Fragmenting/tartaric_acid/testsuite-fragmenting-tartaric_acid-order6.at)
     121
     122# Joining of heptan
     123m4_include(Joining/heptan/testsuite-joining-heptan.at)
     124
     125# Analyzing of heptan
     126m4_include(Analyzing/heptan/testsuite-analyzing-heptan.at)
  • tests/Makefile.am

    r752bb4 r360c8b  
    1 SUBDIRS = CodeChecks regression Fragmentations Tesselations
     1SUBDIRS = \
     2        CodeChecks \
     3        regression \
     4        Fragmentations \
     5        Tesselations
    26
  • tests/regression/Domain/AddEmptyBoundary/testsuite-domain-add-empty-boundary.at

    r752bb4 r360c8b  
    1515
    1616AT_SETUP([Domain - center and add empty boundary with Undo])
    17 AT_XFAIL_IF([/bin/true])
    18 AT_KEYWORDS([domain add-empty-boundar undo])
     17AT_KEYWORDS([domain add-empty-boundary undo])
    1918
    2019file=test.conf
     
    2221AT_CHECK([chmod u+w $file], 0)
    2322AT_CHECK([../../molecuilder -i $file  -c "5, 10, 15" --undo], 0, [stdout], [stderr])
    24 AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
    25 AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/AddEmptyBoundary/post/test.conf], 0, [stdout], [stderr])
     23AT_CHECK([fgrep "Box domain restored to" stdout], 0, [ignore], [ignore])
     24AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/AddEmptyBoundary/post/test-undo.conf], 0, [stdout], [stderr])
    2625
    2726AT_CLEANUP
     
    2928
    3029AT_SETUP([Domain - center and add empty boundary with Redo])
    31 AT_XFAIL_IF([/bin/true])
    3230AT_KEYWORDS([domain add-empty-boundary redo])
    3331
  • tests/regression/Domain/CenterInBox/testsuite-domain-center-in-box.at

    r752bb4 r360c8b  
    1515
    1616AT_SETUP([Domain - setting and centering in domain with Undo])
    17 AT_XFAIL_IF([/bin/true])
    1817AT_KEYWORDS([domain center-in-box undo])
    1918
     
    2221AT_CHECK([chmod u+w $file], 0)
    2322AT_CHECK([../../molecuilder -i $file  -b "15, 0, 15, 0, 0, 15" --undo], 0, [stdout], [stderr])
    24 AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
    25 AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/CenterInBox/post/test.conf], 0, [stdout], [stderr])
     23AT_CHECK([fgrep "Box domain restored to" stdout], 0, [ignore], [ignore])
     24AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/CenterInBox/post/test-undo.conf], 0, [stdout], [stderr])
    2625
    2726AT_CLEANUP
     
    2928
    3029AT_SETUP([Domain - setting and centering in domain with Redo])
    31 AT_XFAIL_IF([/bin/true])
    3230AT_KEYWORDS([domain center-in-box redo])
    3331
     
    3634AT_CHECK([chmod u+w $file], 0)
    3735AT_CHECK([../../molecuilder -i $file  -b "15, 0, 15, 0, 0, 15" --undo --redo], 0, [stdout], [stderr])
    38 AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
     36AT_CHECK([fgrep "Box domain is again" stdout], 0, [ignore], [ignore])
    3937AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/CenterInBox/post/test.conf], 0, [stdout], [stderr])
    4038
  • tests/regression/Domain/CenterOnEdge/testsuite-domain-center-on-edge.at

    r752bb4 r360c8b  
    77AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Domain/CenterOnEdge/pre/test.conf $file], 0)
    88AT_CHECK([chmod u+w $file], 0)
    9 AT_CHECK([../../molecuilder -i $file  -O], 0, [stdout], [stderr])
     9AT_CHECK([../../molecuilder -i $file -O], 0, [stdout], [stderr])
    1010AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
    1111AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/CenterOnEdge/post/test.conf], 0, [stdout], [stderr])
     
    1515
    1616AT_SETUP([Domain - set domain to minimum size with Undo])
    17 AT_XFAIL_IF([/bin/true])
    1817AT_KEYWORDS([domain center-edge undo])
    1918
     
    2120AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Domain/CenterOnEdge/pre/test.conf $file], 0)
    2221AT_CHECK([chmod u+w $file], 0)
    23 AT_CHECK([../../molecuilder -i $file  -O --undo], 0, [stdout], [stderr])
     22AT_CHECK([../../molecuilder -i $file -O --undo], 0, [stdout], [stderr])
    2423AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
    25 AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/CenterOnEdge/post/test.conf], 0, [stdout], [stderr])
     24AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/CenterOnEdge/post/test-undo.conf], 0, [stdout], [stderr])
    2625
    2726AT_CLEANUP
     
    2928
    3029AT_SETUP([Domain - set domain to minimum size with Redo])
    31 AT_XFAIL_IF([/bin/true])
    3230AT_KEYWORDS([domain center-edge redo])
    3331
     
    3533AT_CHECK([/bin/cp -f ${abs_top_srcdir}/tests/regression/Domain/CenterOnEdge/pre/test.conf $file], 0)
    3634AT_CHECK([chmod u+w $file], 0)
    37 AT_CHECK([../../molecuilder -i $file  -O --undo --redo], 0, [stdout], [stderr])
     35AT_CHECK([../../molecuilder -i $file -O --undo --redo], 0, [stdout], [stderr])
    3836AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
    3937AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/CenterOnEdge/post/test.conf], 0, [stdout], [stderr])
  • tests/regression/Domain/ChangeBox/testsuite-domain-change-box.at

    r752bb4 r360c8b  
    1313
    1414AT_SETUP([Domain - defining simulation domain])
    15 AT_XFAIL_IF([/bin/true])
    1615AT_KEYWORDS([domain change-box undo])
    1716
     
    2524
    2625AT_SETUP([Domain - defining simulation domain])
    27 AT_XFAIL_IF([/bin/true])
    2826AT_KEYWORDS([domain change-box redo])
    2927
  • tests/regression/Domain/RepeatBox/testsuite-domain-repeat-box.at

    r752bb4 r360c8b  
    4444
    4545AT_SETUP([Domain - duplicating box with Undo])
    46 AT_XFAIL_IF([/bin/true])
    4746AT_KEYWORDS([domain repeat-box undo])
    4847
     
    5150AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
    5251AT_CHECK([../../molecuilder -i $file  -o xyz -d "1, 1, 1" --undo], 0, [stdout], [stderr])
    53 AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
     52AT_CHECK([fgrep "Box domain restored to" stdout], 0, [ignore], [ignore])
    5453AT_CHECK([file=test.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    55 AT_CHECK([file=test.xyz;sort -n ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/post/test.xyz  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
     54AT_CHECK([file=test.xyz;sort -n ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/post/test-undo.xyz  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
    5655AT_CHECK([file=test.xyz; diff $file-sorted $file-sorted2], 0, [ignore], [ignore])
    5756
     
    6059AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
    6160AT_CHECK([../../molecuilder -i $file -o xyz -d "2, 1, 1" --undo], 0, [stdout], [stderr])
    62 AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
     61AT_CHECK([fgrep "Box domain restored to" stdout], 0, [ignore], [ignore])
    6362AT_CHECK([file=test-x.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    64 AT_CHECK([file=test-x.xyz;sort -n ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/post/test-x.xyz  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
     63AT_CHECK([file=test-x.xyz;sort -n ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/post/test-undo.xyz  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
    6564AT_CHECK([file=test-x.xyz; diff $file-sorted $file-sorted2], 0, [ignore], [ignore])
    6665
     
    6968AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
    7069AT_CHECK([../../molecuilder -i $file  -o xyz -d "1, 2, 1" --undo], 0, [stdout], [stderr])
    71 AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
     70AT_CHECK([fgrep "Box domain restored to" stdout], 0, [ignore], [ignore])
    7271AT_CHECK([file=test-y.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    73 AT_CHECK([file=test-y.xyz;sort -n ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/post/test-y.xyz  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
     72AT_CHECK([file=test-y.xyz;sort -n ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/post/test-undo.xyz  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
    7473AT_CHECK([file=test-y.xyz; diff $file-sorted $file-sorted2], 0, [ignore], [ignore])
    7574
     
    7877AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
    7978AT_CHECK([../../molecuilder -i $file  -o xyz -d "1, 1, 2" --undo], 0, [stdout], [stderr])
    80 AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
     79AT_CHECK([fgrep "Box domain restored to" stdout], 0, [ignore], [ignore])
    8180AT_CHECK([file=test-z.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    82 AT_CHECK([file=test-z.xyz;sort -n ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/post/test-z.xyz  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
     81AT_CHECK([file=test-z.xyz;sort -n ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/post/test-undo.xyz  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
    8382AT_CHECK([file=test-z.xyz; diff $file-sorted $file-sorted2], 0, [ignore], [ignore])
    8483
     
    8786
    8887AT_SETUP([Domain - duplicating box with Redo])
    89 AT_XFAIL_IF([/bin/true])
    9088AT_KEYWORDS([domain repeat-box redo])
    9189
     
    9492AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
    9593AT_CHECK([../../molecuilder -i $file  -o xyz -d "1, 1, 1" --undo --redo], 0, [stdout], [stderr])
    96 AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
     94AT_CHECK([fgrep "Box domain is again" stdout], 0, [ignore], [ignore])
    9795AT_CHECK([file=test.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    9896AT_CHECK([file=test.xyz;sort -n ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/post/test.xyz  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
     
    103101AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
    104102AT_CHECK([../../molecuilder -i $file -o xyz -d "2, 1, 1" --undo --redo], 0, [stdout], [stderr])
    105 AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
     103AT_CHECK([fgrep "Box domain is again" stdout], 0, [ignore], [ignore])
    106104AT_CHECK([file=test-x.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    107105AT_CHECK([file=test-x.xyz;sort -n ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/post/test-x.xyz  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
     
    112110AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
    113111AT_CHECK([../../molecuilder -i $file  -o xyz -d "1, 2, 1" --undo --redo], 0, [stdout], [stderr])
    114 AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
     112AT_CHECK([fgrep "Box domain is again" stdout], 0, [ignore], [ignore])
    115113AT_CHECK([file=test-y.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    116114AT_CHECK([file=test-y.xyz;sort -n ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/post/test-y.xyz  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
     
    121119AT_CHECK([chmod u+w $file], 0, [ignore], [ignore])
    122120AT_CHECK([../../molecuilder -i $file  -o xyz -d "1, 1, 2" --undo --redo], 0, [stdout], [stderr])
    123 AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
     121AT_CHECK([fgrep "Box domain is again" stdout], 0, [ignore], [ignore])
    124122AT_CHECK([file=test-z.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    125123AT_CHECK([file=test-z.xyz;sort -n ${abs_top_srcdir}/tests/regression/Domain/RepeatBox/post/test-z.xyz  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
  • tests/regression/Domain/ScaleBox/testsuite-domain-scale-box.at

    r752bb4 r360c8b  
    1515
    1616AT_SETUP([Domain - scaling box with Undo])
    17 AT_XFAIL_IF([/bin/true])
    1817AT_KEYWORDS([domain scale-box undo])
    1918
     
    2322AT_CHECK([../../molecuilder -i $file  --scale-box "0.5, 1., 0.9" --undo], 0, [stdout], [stderr])
    2423AT_CHECK([fgrep "Box domain is now" stdout], 0, [ignore], [ignore])
    25 AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/ScaleBox/post/test.conf], 0, [stdout], [stderr])
     24AT_CHECK([diff $file ${abs_top_srcdir}/tests/regression/Domain/ScaleBox/post/test-undo.conf], 0, [stdout], [stderr])
    2625
    2726AT_CLEANUP
     
    2928
    3029AT_SETUP([Domain - scaling box with Redo])
    31 AT_XFAIL_IF([/bin/true])
    3230AT_KEYWORDS([domain scale-box redo])
    3331
  • tests/regression/Domain/testsuite-domain.at

    r752bb4 r360c8b  
    33# define box setting
    44m4_include([Domain/ChangeBox/testsuite-domain-change-box.at])
     5
     6# bound atoms in defined domain
     7m4_include([Domain/BoundInBox/testsuite-domain-bound-in-box.at])
    58
    69# center atoms in defined domain
  • tests/regression/Makefile.am

    r752bb4 r360c8b  
    4141        $(srcdir)/Analysis/AngularDipoleCorrelation-DiscreteAngles/testsuite-analysis-angular-dipole-correlation-discrete-angles.at \
    4242        $(srcdir)/Domain/testsuite-domain.at \
     43        $(srcdir)/Domain/BoundInBox/testsuite-domain-bound-in-box.at \
    4344        $(srcdir)/Domain/ChangeBox/testsuite-domain-change-box.at \
    4445        $(srcdir)/Domain/CenterInBox/testsuite-domain-center-in-box.at \
  • tests/regression/Options/BondLengthTable/testsuite-options-bond-length-table.at

    r752bb4 r360c8b  
    1616
    1717AT_SETUP([Standard Options - bond length table with Undo])
    18 AT_XFAIL_IF([/bin/true])
    1918AT_KEYWORDS([options bond-table undo])
    2019
     
    3130
    3231AT_SETUP([Standard Options - bond length table with Redo])
    33 AT_XFAIL_IF([/bin/true])
    3432AT_KEYWORDS([options bond-table redo])
    3533
  • tests/regression/Selection/Atoms/AtomsInsideCuboid/testsuite-selection-select-atoms-inside-cuboid-with-defaults.at

    r752bb4 r360c8b  
    33
    44AT_SETUP([Selection - All atoms inside cuboid with defaults])
    5 AT_KEYWORDS([selection cuboid select-atoms-inside-cuboid])
     5AT_KEYWORDS([selection atom cuboid select-atoms-inside-cuboid])
    66
    77file=allatomsoutsidecuboid.xyz
     
    2424
    2525AT_SETUP([Selection - All atoms inside cuboid with defaults with Undo])
    26 AT_KEYWORDS([selection cuboid select-atoms-inside-cuboid undo])
     26AT_KEYWORDS([selection atom cuboid select-atoms-inside-cuboid undo])
    2727
    2828file=allatomsoutsidecuboid.xyz
     
    3636
    3737AT_SETUP([Selection - All atoms inside cuboid with defaults with Redo])
    38 AT_KEYWORDS([selection cuboid select-atoms-inside-cuboid redo])
     38AT_KEYWORDS([selection atom cuboid select-atoms-inside-cuboid redo])
    3939
    4040file=allatomsoutsidecuboid.xyz
  • tests/regression/Selection/Atoms/AtomsInsideCuboid/testsuite-selection-select-atoms-inside-cuboid.at

    r752bb4 r360c8b  
    22
    33AT_SETUP([Selection - All atoms inside cuboid])
    4 AT_KEYWORDS([selection cuboid select-atoms-inside-cuboid])
     4AT_KEYWORDS([selection atom cuboid select-atoms-inside-cuboid])
    55
    66file=allatomsoutsidecuboid.xyz
     
    2323
    2424AT_SETUP([Selection - All atoms inside cuboid with Undo])
    25 AT_KEYWORDS([selection cuboid select-atoms-inside-cuboid undo])
     25AT_KEYWORDS([selection atom cuboid select-atoms-inside-cuboid undo])
    2626
    2727file=allatomsoutsidecuboid.xyz
     
    3535
    3636AT_SETUP([Selection - All atoms inside cuboid with Redo])
    37 AT_KEYWORDS([selection cuboid select-atoms-inside-cuboid redo])
     37AT_KEYWORDS([selection atom cuboid select-atoms-inside-cuboid redo])
    3838
    3939file=allatomsoutsidecuboid.xyz
  • tests/regression/Selection/Atoms/AtomsInsideCuboid/testsuite-selection-unselect-atoms-inside-cuboid.at

    r752bb4 r360c8b  
    33
    44AT_SETUP([Unselection - All atoms inside cuboid])
    5 AT_KEYWORDS([unselection cuboid unselect-atoms-inside-cuboid])
     5AT_KEYWORDS([unselection atom cuboid unselect-atoms-inside-cuboid])
    66
    77file=allatomsinsidecuboid.xyz
     
    2424
    2525AT_SETUP([Unselection - All atoms inside cuboid with Undo])
    26 AT_KEYWORDS([unselection cuboid unselect-atoms-inside-cuboid undo])
     26AT_KEYWORDS([unselection atom cuboid unselect-atoms-inside-cuboid undo])
    2727
    2828file=allatomsinsidecuboid.xyz
     
    3636
    3737AT_SETUP([Unselection - All atoms inside cuboid with Redo])
    38 AT_KEYWORDS([unselection cuboid unselect-atoms-inside-cuboid redo])
     38AT_KEYWORDS([unselection atom cuboid unselect-atoms-inside-cuboid redo])
    3939
    4040file=allatomsinsidecuboid.xyz
  • tests/regression/Selection/Atoms/AtomsInsideSphere/testsuite-selection-select-atoms-inside-sphere.at

    r752bb4 r360c8b  
    22
    33AT_SETUP([Selection - All atoms inside sphere])
    4 AT_KEYWORDS([selection sphere select-atoms-inside-sphere])
     4AT_KEYWORDS([selection atom sphere select-atoms-inside-sphere])
    55
    66file=allatomsoutsidesphere.xyz
     
    2323
    2424AT_SETUP([Selection - All atoms inside sphere with Undo])
    25 AT_KEYWORDS([selection sphere select-atoms-inside-sphere undo])
     25AT_KEYWORDS([selection atom sphere select-atoms-inside-sphere undo])
    2626
    2727file=allatomsoutsidesphere.xyz
     
    3535
    3636AT_SETUP([Selection - All atoms inside sphere with Redo])
    37 AT_KEYWORDS([selection sphere select-atoms-inside-sphere redo])
     37AT_KEYWORDS([selection atom sphere select-atoms-inside-sphere redo])
    3838
    3939file=allatomsoutsidesphere.xyz
  • tests/regression/Selection/Atoms/AtomsInsideSphere/testsuite-selection-unselect-atoms-inside-sphere.at

    r752bb4 r360c8b  
    33
    44AT_SETUP([Unselection - All atoms inside sphere])
    5 AT_KEYWORDS([unselection sphere unselect-atoms-inside-sphere])
     5AT_KEYWORDS([unselection atom sphere unselect-atoms-inside-sphere])
    66
    77file=allatomsinsidesphere.xyz
     
    2424
    2525AT_SETUP([Unselection - All atoms inside sphere with Undo])
    26 AT_KEYWORDS([unselection sphere unselect-atoms-inside-sphere undo])
     26AT_KEYWORDS([unselection atom sphere unselect-atoms-inside-sphere undo])
    2727
    2828file=allatomsinsidesphere.xyz
     
    3636
    3737AT_SETUP([Unselection - All atoms inside sphere with Redo])
    38 AT_KEYWORDS([unselection sphere unselect-atoms-inside-sphere redo])
     38AT_KEYWORDS([unselection atom sphere unselect-atoms-inside-sphere redo])
    3939
    4040file=allatomsinsidesphere.xyz
Note: See TracChangeset for help on using the changeset viewer.