Changes in / [5630bd:4e10f5]


Ignore:
Files:
11 added
46 edited

Legend:

Unmodified
Added
Removed
  • README

    r5630bd r4e10f5  
    1313* GCC or alike
    1414* GSL (GNU Scientific Library, available at http://www.gnu.org/software/gsl)
     15* Boost 1.4 or newer
  • configure.ac

    r5630bd r4e10f5  
    7272
    7373# add replacement/saturation hydrogen or not
    74 AC_ARG_ENABLE([ecut],AS_HELP_STRING([--enable-ecut],[Use ECut TestRunnerClient (default is yes)]),
    75               [enable_ecut=$enableval], [enable_ecut=yes])
     74AC_ARG_ENABLE([ecut],AS_HELP_STRING([--enable-ecut],[Use ECut TestRunnerClient (default is no)]),
     75              [enable_ecut=$enableval], [enable_ecut=no])
    7676if test x"$enable_ecut" = xyes; then
    7777  AC_DEFINE(HAVE_ECUT,1, ["Use ECut TestRunnerClient instead of our own."])
  • src/Actions/AnalysisAction/MolecularVolumeAction.cpp

    r5630bd r4e10f5  
    4747    LCList = new LinkedCell(mol, 10.);
    4848    config * const configuration = World::getInstance().getConfig();
    49     //FindConvexBorder(mol, LCList, argv[argptr]);
     49    Boundaries *BoundaryPoints = NULL;
     50    //FindConvexBorder(mol, BoundaryPoints, TesselStruct, LCList, argv[argptr]);
    5051    FindNonConvexBorder(mol, TesselStruct, LCList, 5., NULL);
    5152    //RemoveAllBoundaryPoints(TesselStruct, mol, argv[argptr]);
  • src/Actions/AnalysisAction/PairCorrelationAction.cpp

    r5630bd r4e10f5  
    8282    output.open(outputname.c_str());
    8383    binoutput.open(binoutputname.c_str());
    84     PairCorrelationMap *correlationmap = NULL;
    8584    if (type == "E") {
    8685      PairCorrelationMap *correlationmap = NULL;
     
    8988      else
    9089        correlationmap = PairCorrelation(World::getInstance().getMolecules(), elements);
    91       //OutputCorrelationToSurface(&output, correlationmap);
     90      OutputPairCorrelation(&output, correlationmap);
    9291      binmap = BinData( correlationmap, BinWidth, BinStart, BinEnd );
     92      OutputCorrelation ( &binoutput, binmap );
     93      delete(binmap);
     94      delete(correlationmap);
    9395    } else if (type == "P")  {
    9496      cout << "Point to correlate to is  " << Point << endl;
     
    98100      else
    99101        correlationmap = CorrelationToPoint(molecules, elements, &Point);
    100       //OutputCorrelationToSurface(&output, correlationmap);
     102      OutputCorrelationToPoint(&output, correlationmap);
    101103      binmap = BinData( correlationmap, BinWidth, BinStart, BinEnd );
     104      OutputCorrelation ( &binoutput, binmap );
     105      delete(binmap);
     106      delete(correlationmap);
    102107    } else if (type == "S") {
    103108      ASSERT(Boundary != NULL, "No molecule specified for SurfaceCorrelation.");
     
    106111      if (BinEnd > 0) {
    107112        if (BinEnd > 2.*radius)
    108             LCWidth = BinEnd;
     113          LCWidth = BinEnd;
    109114        else
    110115          LCWidth = 2.*radius;
     
    129134      else
    130135        surfacemap = CorrelationToSurface( molecules, elements, TesselStruct, LCList);
     136      delete LCList;
    131137      OutputCorrelationToSurface(&output, surfacemap);
     138      // re-set ActiveFlag
     139      counter = 0;
     140      for (MoleculeList::iterator BigFinder = molecules->ListOfMolecules.begin(); BigFinder != molecules->ListOfMolecules.end(); BigFinder++) {
     141        (*BigFinder)->ActiveFlag = Actives[counter++];
     142      }
     143      delete[] Actives;
    132144      // check whether radius was appropriate
    133145      {
     
    138150      }
    139151      binmap = BinData( surfacemap, BinWidth, BinStart, BinEnd );
    140     } else
     152      OutputCorrelation ( &binoutput, binmap );
     153      delete TesselStruct;  // surfacemap contains refs to triangles! delete here, not earlier!
     154      delete(binmap);
     155      delete(surfacemap);
     156    } else {
    141157      return Action::failure;
    142     OutputCorrelation ( &binoutput, binmap );
     158    }
    143159    output.close();
    144160    binoutput.close();
    145     delete(binmap);
    146     delete(correlationmap);
    147161    delete dialog;
    148162    return Action::success;
  • src/Actions/FragmentationAction/DepthFirstSearchAction.cpp

    r5630bd r4e10f5  
    4949    MoleculeLeafClass *Subgraphs = NULL;      // list of subgraphs from DFS analysis
    5050    int *MinimumRingSize = new int[mol->getAtomCount()];
    51     atom ***ListOfLocalAtoms = NULL;
     51    atom **ListOfAtoms = NULL;
    5252    class StackClass<bond *> *BackEdgeStack = NULL;
    5353    class StackClass<bond *> *LocalBackEdgeStack = NULL;
     
    5858      while (Subgraphs->next != NULL) {
    5959        Subgraphs = Subgraphs->next;
    60         Subgraphs->FillBondStructureFromReference(mol, FragmentCounter, ListOfLocalAtoms, false);  // we want to keep the created ListOfLocalAtoms
     60        ListOfAtoms = NULL;
     61        Subgraphs->FillBondStructureFromReference(mol, ListOfAtoms, false);  // we want to keep the created ListOfLocalAtoms
    6162        LocalBackEdgeStack = new StackClass<bond *> (Subgraphs->Leaf->BondCount);
    62         Subgraphs->Leaf->PickLocalBackEdges(ListOfLocalAtoms[FragmentCounter], BackEdgeStack, LocalBackEdgeStack);
     63        Subgraphs->Leaf->PickLocalBackEdges(ListOfAtoms, BackEdgeStack, LocalBackEdgeStack);
    6364        Subgraphs->Leaf->CyclicStructureAnalysis(LocalBackEdgeStack, MinimumRingSize);
    6465        delete(LocalBackEdgeStack);
    6566        delete(Subgraphs->previous);
     67        delete[](ListOfAtoms);  // and here we remove it
    6668        FragmentCounter++;
    6769      }
    6870      delete(Subgraphs);
    69       for (int i=0;i<FragmentCounter;i++)
    70         delete[](ListOfLocalAtoms[i]);
    71       delete[](ListOfLocalAtoms);
    7271    }
    7372    delete(BackEdgeStack);
  • src/Actions/Makefile.am

    r5630bd r4e10f5  
    126126  WorldAction/ScaleBoxAction.cpp \
    127127  WorldAction/SetDefaultNameAction.cpp \
    128   WorldAction/SetGaussianBasisAction.cpp               
     128  WorldAction/SetGaussianBasisAction.cpp \
     129  WorldAction/SetOutputFormatsAction.cpp
    129130WORLDACTIONHEADER = \
    130131  WorldAction/AddEmptyBoundaryAction.hpp \
     
    139140  WorldAction/ScaleBoxAction.hpp \
    140141  WorldAction/SetDefaultNameAction.hpp \
    141   WorldAction/SetGaussianBasisAction.hpp
     142  WorldAction/SetGaussianBasisAction.hpp \
     143  WorldAction/SetOutputFormatsAction.hpp               
    142144
  • src/Actions/MapOfActions.cpp

    r5630bd r4e10f5  
    6767#include "Actions/WorldAction/SetDefaultNameAction.hpp"
    6868#include "Actions/WorldAction/SetGaussianBasisAction.hpp"
     69#include "Actions/WorldAction/SetOutputFormatsAction.hpp"
    6970#include "Actions/Values.hpp"
    7071
     
    7273{
    7374  VectorValue VV;
    74   if (values.size() != 3) {
    75     cerr <<  "Specified vector does not have three components but " << values.size() << endl;
     75  std::vector<std::string> components;
     76
     77  // split comma-separated values
     78  if (values.size() != 1) {
     79    cerr <<  "Not one vector but " << components.size() << " given " << endl;
     80    throw boost::program_options::validation_error("Unequal to one vector given");
     81  }
     82  std::string argument(values.at(0));
     83  std::string::iterator Aiter = argument.begin();
     84  std::string::iterator Biter = argument.begin();
     85  for (; Aiter != argument.end(); ++Aiter) {
     86    if (*Aiter == ',') {
     87      components.push_back(string(Biter,Aiter));
     88      do {
     89        Aiter++;
     90      } while (*Aiter == ' ' || *Aiter == '\t');
     91      Biter = Aiter;
     92    }
     93  }
     94  components.push_back(string(Biter,argument.end()));
     95
     96  if (components.size() != 3) {
     97    cerr <<  "Specified vector does not have three components but " << components.size() << endl;
    7698    throw boost::program_options::validation_error("Specified vector does not have three components");
    7799  }
    78   VV.x = boost::lexical_cast<double>(values.at(0));
    79   VV.y = boost::lexical_cast<double>(values.at(1));
    80   VV.z = boost::lexical_cast<double>(values.at(2));
     100  VV.x = boost::lexical_cast<double>(components.at(0));
     101  VV.y = boost::lexical_cast<double>(components.at(1));
     102  VV.z = boost::lexical_cast<double>(components.at(2));
    81103  v = boost::any(VectorValue(VV));
    82104}
     
    85107{
    86108  BoxValue BV;
    87   if (values.size() != 6) {
    88     cerr <<  "Specified vector does not have three components but " << values.size() << endl;
     109  std::vector<std::string> components;
     110
     111  // split comma-separated values
     112  if (values.size() != 1) {
     113    cerr <<  "Not one vector but " << components.size() << " given " << endl;
     114    throw boost::program_options::validation_error("Unequal to one vector given");
     115  }
     116  std::string argument(values.at(0));
     117  std::string::iterator Aiter = argument.begin();
     118  std::string::iterator Biter = argument.begin();
     119  for (; Aiter != argument.end(); ++Aiter) {
     120    if (*Aiter == ',') {
     121      components.push_back(string(Biter,Aiter));
     122      do {
     123        Aiter++;
     124      } while (*Aiter == ' ' || *Aiter == '\t');
     125      Biter = Aiter;
     126    }
     127  }
     128  components.push_back(string(Biter,argument.end()));
     129
     130  if (components.size() != 6) {
     131    cerr <<  "Specified vector does not have three components but " << components.size() << endl;
    89132    throw boost::program_options::validation_error("Specified symmetric box matrix does not have six components");
    90133  }
    91   BV.xx = boost::lexical_cast<double>(values.at(0));
    92   BV.xy = boost::lexical_cast<double>(values.at(1));
    93   BV.xz = boost::lexical_cast<double>(values.at(2));
    94   BV.yy = boost::lexical_cast<double>(values.at(3));
    95   BV.yz = boost::lexical_cast<double>(values.at(4));
    96   BV.zz = boost::lexical_cast<double>(values.at(5));
     134  BV.xx = boost::lexical_cast<double>(components.at(0));
     135  BV.xy = boost::lexical_cast<double>(components.at(1));
     136  BV.xz = boost::lexical_cast<double>(components.at(2));
     137  BV.yy = boost::lexical_cast<double>(components.at(3));
     138  BV.yz = boost::lexical_cast<double>(components.at(4));
     139  BV.zz = boost::lexical_cast<double>(components.at(5));
    97140  v = boost::any(BoxValue(BV));
    98141}
     
    130173  DescriptionMap["input"] = "specify input files";
    131174  DescriptionMap["linear-interpolate"] = "linear interpolation in discrete steps between start and end position of a molecule";
     175  DescriptionMap["molecular-volume"] = "calculate the volume of a given molecule";
    132176  DescriptionMap["nonconvex-envelope"] = "create the non-convex envelope for a molecule";
    133   DescriptionMap["molecular-volume"] = "calculate the volume of a given molecule";
    134   DescriptionMap["output"] = "specify output formats";
     177  DescriptionMap["output"] = "write output files";
     178  DescriptionMap["set-output"] = "specify output formats";
    135179  DescriptionMap["pair-correlation"] = "pair correlation analysis between two elements, element and point or element and surface";
    136180  DescriptionMap["parse-xyz"] = "parse xyz file into World";
     
    140184  DescriptionMap["repeat-box"] = "create periodic copies of the simulation box per axis";
    141185  DescriptionMap["rotate-to-pas"] = "calculate the principal axis system of the specified molecule and rotate specified axis to align with main axis";
    142   DescriptionMap["set-basis"] = "set the name of the gaussian basis set for MPQC";
    143186  DescriptionMap["save-adjacency"] = "name of the adjacency file to write to";
    144187  DescriptionMap["save-bonds"] = "name of the bonds file to write to";
     
    146189  DescriptionMap["SaveXyz"] = "save world as xyz file";
    147190  DescriptionMap["scale-box"] = "scale box and atomic positions inside";
     191  DescriptionMap["set-basis"] = "set the name of the gaussian basis set for MPQC";
     192  DescriptionMap["set-output"] = "specify output formats";
    148193  DescriptionMap["subgraph-dissect"] = "dissect the molecular system into molecules representing disconnected subgraphs";
    149194  DescriptionMap["suspend-in-water"] = "suspend the given molecule in water such that in the domain the mean density is as specified";
     
    189234  ShortFormMap["center-in-box"] = "b";
    190235  ShortFormMap["change-element"] = "E";
    191   ShortFormMap["convex-envelope"] = "o";
     236//  ShortFormMap["convex-envelope"] = "x";
    192237  ShortFormMap["default-molname"] = "X";
    193238  ShortFormMap["depth-first-search"] = "D";
     
    200245  ShortFormMap["linear-interpolate"] = "L";
    201246  ShortFormMap["nonconvex-envelope"] = "N";
     247//  ShortFormMap["output"] = "o";
    202248  ShortFormMap["pair-correlation"] = "C";
    203249  ShortFormMap["parse-xyz"] = "p";
     
    211257  ShortFormMap["scale-box"] = "s";
    212258  ShortFormMap["set-basis"] = "M";
     259  ShortFormMap["set-output"] = "o";
    213260  ShortFormMap["subgraph-dissect"] = "I";
    214261  ShortFormMap["suspend-in-water"] = "u";
     
    238285  TypeMap["molecular-volume"] = Molecule;
    239286  TypeMap["nonconvex-envelope"] = Molecule;
    240   TypeMap["output"] = String;
     287  TypeMap["output"] = None;
    241288  TypeMap["parse-xyz"] = String;
    242289  TypeMap["pair-correlation"] = String;
     
    251298  TypeMap["scale-box"] = Vector;
    252299  TypeMap["set-basis"] = String;
     300  TypeMap["set-output"] = ListOfString;
    253301  TypeMap["subgraph-dissect"] = None;
    254302  TypeMap["suspend-in-water"] = Double;
     
    349397  MenuContainsActionMap.insert( pair<std::string, std::string> ("world", "default-molname") );
    350398  MenuContainsActionMap.insert( pair<std::string, std::string> ("world", "set-basis") );
     399  MenuContainsActionMap.insert( pair<std::string, std::string> ("world", "set-output") );
    351400
    352401  // put actions into command line category
     
    386435  generic.insert("scale-box");
    387436  generic.insert("set-basis");
     437  generic.insert("set-output");
    388438        generic.insert("subgraph-dissect");
    389439  generic.insert("suspend-in-water");
     
    484534  new WorldSetDefaultNameAction();
    485535  new WorldSetGaussianBasisAction();
     536  new WorldSetOutputFormatsAction();
    486537}
    487538
     
    561612              ;
    562613            break;
     614          case ListOfString:
     615            ListRunner->second->add_options()
     616              (getKeyAndShortForm(*OptionRunner).c_str(),
     617                  po::value< vector<std::string> >()->multitoken(),
     618                  getDescription(*OptionRunner).c_str())
     619              ;
     620            break;
    563621          case Axis:
    564622            ListRunner->second->add_options()
     
    573631            ListRunner->second->add_options()
    574632              (getKeyAndShortForm(*OptionRunner).c_str(),
    575                   po::value<VectorValue>()->multitoken(),
     633                  po::value<VectorValue>(),
    576634                  getDescription(*OptionRunner).c_str())
    577635              ;
  • src/Actions/MapOfActions.hpp

    r5630bd r4e10f5  
    123123  friend class MapOfActionsTest;
    124124public:
    125   enum OptionTypes { None, Boolean, Integer, ListOfInts, Double, ListOfDoubles, String, Axis, Vector, Box, Molecule, ListOfMolecules, Atom, ListOfAtoms, Element, ListOfElements };
     125  enum OptionTypes { None, Boolean, Integer, ListOfInts, Double, ListOfDoubles, String, ListOfString, Axis, Vector, Box, Molecule, ListOfMolecules, Atom, ListOfAtoms, Element, ListOfElements };
    126126
    127127  // getter for the action descriptions and short forms
  • src/Actions/TesselationAction/ConvexEnvelopeAction.cpp

    r5630bd r4e10f5  
    7070    DoLog(1) && (Log() << Verbose(1) << "Storing tecplot non-convex data in " << filenameNonConvex << "." << endl);
    7171    LCList = new LinkedCell(mol, 100.);
    72     //FindConvexBorder(mol, LCList, argv[argptr]);
     72    Boundaries *BoundaryPoints = NULL;
     73    //FindConvexBorder(mol, BoundaryPoints, TesselStruct, LCList, argv[argptr]);
    7374    // TODO: Beide Funktionen sollten streams anstelle des Filenamen benutzen, besser fuer unit tests
    7475    FindNonConvexBorder(mol, TesselStruct, LCList, 50., filenameNonConvex.c_str());
  • src/Actions/WorldAction/CenterOnEdgeAction.cpp

    r5630bd r4e10f5  
    6363      domain.at(i,i) = tmp;
    6464    }
    65     cout << "new domain is: " << domain << endl;
    6665    World::getInstance().setDomain(domain);
    6766    // translate all atoms, such that Min is aty (0,0,0)
  • src/Actions/WorldAction/OutputAction.cpp

    r5630bd r4e10f5  
    99
    1010#include "Actions/WorldAction/OutputAction.hpp"
     11#include "Parser/ChangeTracker.hpp"
    1112#include "log.hpp"
    1213#include "verbose.hpp"
     
    3334Action::state_ptr WorldOutputAction::performCall() {
    3435  Dialog *dialog = UIFactory::getInstance().makeDialog();
    35   string defaultname;
    3636
    37   defaultname = World::getInstance().getDefaultName();
    38   dialog->queryString(NAME, &defaultname, MapOfActions::getInstance().getDescription(NAME));
     37  dialog->queryEmpty(NAME, MapOfActions::getInstance().getDescription(NAME));
    3938
    4039  if(dialog->display()) {
    41     World::getInstance().setDefaultName(defaultname);
    42     DoLog(0) && (Log() << Verbose(0) << "Default name of new molecules set to " << World::getInstance().getDefaultName() << "." << endl);
     40    DoLog(0) && (Log() << Verbose(0) << "Saving world to files." << endl);
     41    ChangeTracker::getInstance().saveStatus();
    4342    delete dialog;
    4443    return Action::success;
  • src/CommandLineParser.cpp

    r5630bd r4e10f5  
    4141void CommandLineParser::Parse()
    4242{
    43   po::store(po::command_line_parser(argc,argv).options(cmdline_options).options(visible).positional(inputfile).run(), vm);
     43  po::store(po::command_line_parser(argc,argv).options(cmdline_options).options(visible).run(), vm);
    4444  ifstream input;
    4545  input.open("example.cfg");
     
    5656{
    5757  // go through all arguments
    58   cout << Verbose(1) << "By default putting input into the sequence." << endl;
    59   // TODO: This may be bad, because const string "input" is destroyed at end of function
    60   SequenceOfActions.push_back("input");
    6158  for (int i=1;i<argc;i++) {
    6259    (cout << Verbose(1) << "Checking on " << argv[i] << endl);
  • src/Legacy/oldmenu.cpp

    r5630bd r4e10f5  
    576576        const LinkedCell *LCList = NULL;
    577577        LCList = new LinkedCell(mol, 10.);
    578         FindConvexBorder(mol, TesselStruct, LCList, NULL);
     578        Boundaries *BoundaryPoints = NULL;
     579        FindConvexBorder(mol, BoundaryPoints TesselStruct, LCList, NULL);
    579580        double clustervolume = VolumeOfConvexEnvelope(TesselStruct, configuration);
    580581        Log() << Verbose(0) << "The tesselated surface area is " << clustervolume << "." << endl;\
  • src/Makefile.am

    r5630bd r4e10f5  
    329329FORCE:
    330330$(srcdir)/.git-version: FORCE
    331         @if (test -d $(top_srcdir)/../.git && cd $(srcdir) && git describe HEAD) > .git-version-t 2>/dev/null \
     331        @if (test -d $(top_srcdir)/.git && cd $(srcdir) \
     332             && { git describe --dirty --always || git describe; } ) > .git-version-t 2>/dev/null \
    332333          && ! diff .git-version-t $(srcdir)/.git-version >/dev/null 2>&1; then \
    333334          mv -f .git-version-t $(srcdir)/.git-version; \
  • src/UIElements/CommandLineUI/CommandLineDialog.cpp

    r5630bd r4e10f5  
    6666}
    6767
     68void CommandLineDialog::queryStrings(const char* title, vector<string> * target, string _description){
     69  registerQuery(new StringsCommandLineQuery(title,target, _description));
     70}
     71
    6872void CommandLineDialog::queryAtom(const char* title, atom **target, string _description) {
    6973  registerQuery(new AtomCommandLineQuery(title,target, _description));
     
    140144  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    141145    tmp = CommandLineParser::getInstance().vm[getTitle()].as<string>();
     146    return true;
     147  } else {
     148    DoeLog(1) && (eLog() << Verbose(1) << "CommandLineUI parsing error: Missing string for " << getTitle() << "." << endl);
     149    return false;
     150  }
     151}
     152
     153CommandLineDialog::StringsCommandLineQuery::StringsCommandLineQuery(string title,vector<string> *_target, string _description) :
     154    Dialog::StringsQuery(title,_target, _description)
     155{}
     156
     157CommandLineDialog::StringsCommandLineQuery::~StringsCommandLineQuery() {}
     158
     159bool CommandLineDialog::StringsCommandLineQuery::handle() {
     160  if (CommandLineParser::getInstance().vm.count(getTitle())) {
     161    tmp = CommandLineParser::getInstance().vm[getTitle()].as< vector<string> >();
    142162    return true;
    143163  } else {
  • src/UIElements/CommandLineUI/CommandLineDialog.hpp

    r5630bd r4e10f5  
    3131  virtual void queryBoolean(const char *, bool *, std::string = "");
    3232  virtual void queryString(const char*, std::string *, std::string = "");
     33  virtual void queryStrings(const char*, std::vector<std::string> *, std::string = "");
    3334  virtual void queryDouble(const char*, double*, std::string = "");
    3435  virtual void queryAtom(const char*,atom**, std::string = "");
     
    7576  };
    7677
     78  class StringsCommandLineQuery : public Dialog::StringsQuery {
     79  public:
     80    StringsCommandLineQuery(std::string title, std::vector<std::string> *_target, std::string _description = "");
     81    virtual ~StringsCommandLineQuery();
     82    virtual bool handle();
     83  };
     84
    7785  class AtomCommandLineQuery : public Dialog::AtomQuery {
    7886  public:
  • src/UIElements/Dialog.cpp

    r5630bd r4e10f5  
    131131}
    132132
     133// Strings Queries
     134
     135Dialog::StringsQuery::StringsQuery(string title,vector<string> *_target, std::string _description) :
     136    Query(title, _description), target(_target)
     137{}
     138
     139Dialog::StringsQuery::~StringsQuery() {};
     140
     141void Dialog::StringsQuery::setResult() {
     142  *target = tmp;
     143}
     144
    133145// Double Queries
    134146
  • src/UIElements/Dialog.hpp

    r5630bd r4e10f5  
    4141  virtual void queryDouble(const char*,double *, std::string = "")=0;
    4242  virtual void queryString(const char*, std::string *, std::string = "")=0;
     43  virtual void queryStrings(const char*, std::vector<std::string> *, std::string = "")=0;
    4344  virtual void queryAtom(const char*,atom**,std::string = "")=0;
    4445  virtual void queryMolecule(const char*,molecule**, std::string = "")=0;
     
    135136  private:
    136137    std::string *target;
     138  };
     139
     140  class StringsQuery : public Query {
     141  public:
     142    StringsQuery(std::string title,std::vector<std::string> *_target, std::string _description = "");
     143    virtual ~StringsQuery();
     144    virtual bool handle()=0;
     145    virtual void setResult();
     146  protected:
     147    std::string temp;
     148    std::vector<std::string> tmp;
     149  private:
     150    std::vector<std::string> *target;
    137151  };
    138152
  • src/UIElements/QT4/QTDialog.cpp

    r5630bd r4e10f5  
    115115}
    116116
     117void QTDialog::queryStrings(const char* title, std::vector<std::string> *target,string)
     118{
     119  registerQuery(new StringsQTQuery(title,target,inputLayout,this));
     120}
     121
    117122void QTDialog::queryMolecule(const char *title,molecule **target,string)
    118123{
     
    212217{
    213218  return tmp!="";
     219}
     220
     221QTDialog::StringsQTQuery::StringsQTQuery(string _title,vector<string> *_target,QBoxLayout *_parent,QTDialog *_dialog) :
     222    Dialog::StringsQuery(_title,_target),
     223    parent(_parent)
     224{
     225  thisLayout = new QHBoxLayout();
     226  titleLabel = new QLabel(QString(getTitle().c_str()));
     227  inputBox = new QLineEdit();
     228  parent->addLayout(thisLayout);
     229  thisLayout->addWidget(titleLabel);
     230  thisLayout->addWidget(inputBox);
     231
     232  pipe = new StringQTQueryPipe(&temp,_dialog);
     233  pipe->update(inputBox->text());
     234  connect(inputBox,SIGNAL(textChanged(const QString&)),pipe,SLOT(update(const QString&)));
     235}
     236
     237QTDialog::StringsQTQuery::~StringsQTQuery()
     238{
     239  delete pipe;
     240}
     241
     242// All values besides the empty string are valid
     243bool QTDialog::StringsQTQuery::handle()
     244{
     245  // dissect by ","
     246  string::iterator olditer = temp.begin();
     247  for(string::iterator iter = temp.begin(); iter != temp.end(); ++iter) {
     248    if (*iter == ' ') {
     249      tmp.push_back(string(iter, olditer));
     250      olditer = iter;
     251    }
     252  }
     253  if (olditer != temp.begin())  // insert last part also
     254    tmp.push_back(string(olditer, temp.end()));
     255
     256  return temp!="";
    214257}
    215258
  • src/UIElements/QT4/QTDialog.hpp

    r5630bd r4e10f5  
    4040  virtual void queryDouble(const char*,double *,std::string = "");
    4141  virtual void queryString(const char*, std::string *,std::string = "");
     42  virtual void queryStrings(const char*, std::vector<std::string> *,std::string = "");
    4243  virtual void queryAtom(const char*,atom**,std::string = "");
    4344  virtual void queryMolecule(const char*,molecule**,std::string = "");
     
    9394    };
    9495
     96    class StringsQTQuery : public Dialog::StringsQuery {
     97    public:
     98      StringsQTQuery(std::string _title, std::vector<std::string> *_target, QBoxLayout *_parent,QTDialog *_dialog);
     99      virtual ~StringsQTQuery();
     100      virtual bool handle();
     101    private:
     102      QBoxLayout *parent;
     103      QBoxLayout *thisLayout;
     104      QLabel *titleLabel;
     105      QLineEdit *inputBox;
     106
     107      StringQTQueryPipe *pipe;
     108    };
     109
    95110    class MoleculeQTQuery : public Dialog::MoleculeQuery {
    96111    public:
  • src/UIElements/TextUI/TextDialog.cpp

    r5630bd r4e10f5  
    5858void TextDialog::queryString(const char* title, string* target, string description){
    5959  registerQuery(new StringTextQuery(title,target,description));
     60}
     61
     62void TextDialog::queryStrings(const char* title, vector<string>* target, string description){
     63  registerQuery(new StringsTextQuery(title,target,description));
    6064}
    6165
     
    155159  Log() << Verbose(0) << getTitle();
    156160  getline(cin,tmp);
     161  return true;
     162}
     163
     164TextDialog::StringsTextQuery::StringsTextQuery(string title,vector<string> *_target, std::string _description) :
     165    Dialog::StringsQuery(title,_target,_description)
     166{}
     167
     168TextDialog::StringsTextQuery::~StringsTextQuery() {}
     169
     170bool TextDialog::StringsTextQuery::handle() {
     171  Log() << Verbose(0) << getTitle();
     172  getline(cin,temp);
     173  // dissect by ","
     174  string::iterator olditer = temp.begin();
     175  for(string::iterator iter = temp.begin(); iter != temp.end(); ++iter) {
     176    if (*iter == ' ') {
     177      tmp.push_back(string(iter, olditer));
     178      olditer = iter;
     179    }
     180  }
     181  if (olditer != temp.begin())  // insert last part also
     182    tmp.push_back(string(olditer, temp.end()));
     183
    157184  return true;
    158185}
  • src/UIElements/TextUI/TextDialog.hpp

    r5630bd r4e10f5  
    2828  virtual void queryInt(const char *, int *, std::string = "");
    2929  virtual void queryString(const char*, std::string *, std::string = "");
     30  virtual void queryStrings(const char*, std::vector<std::string> *, std::string = "");
    3031  virtual void queryDouble(const char*, double*, std::string = "");
    3132  virtual void queryAtom(const char*,atom**,std::string = "");
     
    7273  };
    7374
     75  class StringsTextQuery : public Dialog::StringsQuery {
     76  public:
     77    StringsTextQuery(std::string title, std::vector<std::string> *_target, std::string _description = NULL);
     78    virtual ~StringsTextQuery();
     79    virtual bool handle();
     80  };
     81
    7482  class AtomTextQuery : public Dialog::AtomQuery {
    7583  public:
  • src/UIElements/TextUI/TextWindow.cpp

    r5630bd r4e10f5  
    2222#include "Actions/ErrorAction.hpp"
    2323#include "Actions/ActionRegistry.hpp"
     24#include "Parser/ChangeTracker.hpp"
    2425#include "Views/StreamStringView.hpp"
    2526#include "Views/MethodStringView.hpp"
     
    4344TextWindow::TextWindow()
    4445{
    45   char ConfigFileName[MAXSTRINGSIZE];
    4646  map <std::string, TextMenu *> NametoTextMenuMap;
    4747
     
    7878  new SeperatorItem(main_menu);
    7979
    80   Action *saveConfigAction = new MethodAction("saveConfigAction",boost::bind(&config::SaveAll,World::getInstance().getConfig(), ConfigFileName, World::getInstance().getPeriode(), World::getInstance().getMolecules()));
    81   new ActionMenuItem('s',"save current setup to config file",main_menu,saveConfigAction);
     80  Action *saveConfigAction = ActionRegistry::getInstance().getActionByName("output");
     81  new ActionMenuItem('s',"save current setup to config files",main_menu,saveConfigAction);
    8282
    8383  quitAction = new MethodAction("quitAction",boost::bind(&TextMenu::doQuit,main_menu),false);
  • src/boundary.cpp

    r5630bd r4e10f5  
    301301 * \param *out output stream for debugging
    302302 * \param *mol molecule structure with Atom's and Bond's.
     303 * \param *BoundaryPts set of boundary points to use or NULL
    303304 * \param *TesselStruct Tesselation filled with points, lines and triangles on boundary on return
    304305 * \param *LCList atoms in LinkedCell list
     
    306307 * \return *TesselStruct is filled with convex boundary and tesselation is stored under \a *filename.
    307308 */
    308 void FindConvexBorder(const molecule* mol, Tesselation *&TesselStruct, const LinkedCell *LCList, const char *filename)
     309void FindConvexBorder(const molecule* mol, Boundaries *BoundaryPts, Tesselation *&TesselStruct, const LinkedCell *LCList, const char *filename)
    309310{
    310311        Info FunctionInfo(__func__);
     
    317318
    318319  // 1. Find all points on the boundary
    319   if (BoundaryPoints == NULL) {
    320       BoundaryFreeFlag = true;
    321       BoundaryPoints = GetBoundaryPoints(mol, TesselStruct);
     320  if (BoundaryPts == NULL) {
     321    BoundaryFreeFlag = true;
     322    BoundaryPoints = GetBoundaryPoints(mol, TesselStruct);
    322323  } else {
    323       DoLog(0) && (Log() << Verbose(0) << "Using given boundary points set." << endl);
     324    BoundaryPoints = BoundaryPts;
     325    DoLog(0) && (Log() << Verbose(0) << "Using given boundary points set." << endl);
    324326  }
    325327
    326328// printing all inserted for debugging
    327   for (int axis=0; axis < NDIM; axis++)
    328     {
    329       DoLog(1) && (Log() << Verbose(1) << "Printing list of candidates for axis " << axis << " which we have inserted so far." << endl);
    330       int i=0;
    331       for(Boundaries::iterator runner = BoundaryPoints[axis].begin(); runner != BoundaryPoints[axis].end(); runner++) {
    332         if (runner != BoundaryPoints[axis].begin())
    333           DoLog(0) && (Log() << Verbose(0) << ", " << i << ": " << *runner->second.second);
    334         else
    335           DoLog(0) && (Log() << Verbose(0) << i << ": " << *runner->second.second);
    336         i++;
    337       }
    338       DoLog(0) && (Log() << Verbose(0) << endl);
    339     }
     329  for (int axis=0; axis < NDIM; axis++) {
     330    DoLog(1) && (Log() << Verbose(1) << "Printing list of candidates for axis " << axis << " which we have inserted so far." << endl);
     331    int i=0;
     332    for(Boundaries::iterator runner = BoundaryPoints[axis].begin(); runner != BoundaryPoints[axis].end(); runner++) {
     333      if (runner != BoundaryPoints[axis].begin())
     334        DoLog(0) && (Log() << Verbose(0) << ", " << i << ": " << *runner->second.second);
     335      else
     336        DoLog(0) && (Log() << Verbose(0) << i << ": " << *runner->second.second);
     337      i++;
     338    }
     339    DoLog(0) && (Log() << Verbose(0) << endl);
     340  }
    340341
    341342  // 2. fill the boundary point list
     
    343344    for (Boundaries::iterator runner = BoundaryPoints[axis].begin(); runner != BoundaryPoints[axis].end(); runner++)
    344345        if (!TesselStruct->AddBoundaryPoint(runner->second.second, 0))
    345           DoeLog(2) && (eLog()<< Verbose(2) << "Point " << *(runner->second.second) << " is already present!" << endl);
     346          DoLog(2) && (Log()<< Verbose(2) << "Point " << *(runner->second.second) << " is already present." << endl);
    346347
    347348  DoLog(0) && (Log() << Verbose(0) << "I found " << TesselStruct->PointsOnBoundaryCount << " points on the convex boundary." << endl);
     
    677678
    678679  IsAngstroem = configuration->GetIsAngstroem();
     680  BoundaryPoints = GetBoundaryPoints(mol, TesselStruct);
    679681  GreatestDiameter = GetDiametersOfCluster(BoundaryPoints, mol, TesselStruct, IsAngstroem);
    680   BoundaryPoints = GetBoundaryPoints(mol, TesselStruct);
    681682  LinkedCell *LCList = new LinkedCell(mol, 10.);
    682   FindConvexBorder(mol, TesselStruct, (const LinkedCell *&)LCList, NULL);
     683  FindConvexBorder(mol, BoundaryPoints, TesselStruct, (const LinkedCell *&)LCList, NULL);
    683684  delete (LCList);
     685  delete[] BoundaryPoints;
    684686
    685687
     
    689691  else
    690692    clustervolume = ClusterVolume;
     693
     694  delete TesselStruct;
    691695
    692696  for (int i = 0; i < NDIM; i++)
     
    741745    mol->CenterInBox();
    742746  }
     747  delete GreatestDiameter;
    743748  // update Box of atoms by boundary
    744749  mol->SetBoxDimension(&BoxLengths);
     
    895900            }
    896901      }
     902  for (MoleculeList::iterator ListRunner = List->ListOfMolecules.begin(); ListRunner != List->ListOfMolecules.end(); ListRunner++) {
     903    delete LCList[*ListRunner];
     904    delete TesselStruct[(*ListRunner)];
     905  }
    897906
    898907  return Filling;
  • src/boundary.hpp

    r5630bd r4e10f5  
    5050double ConvexizeNonconvexEnvelope(class Tesselation *&TesselStruct, const molecule * const mol, const char * const filename);
    5151molecule * FillBoxWithMolecule(MoleculeListClass *List, molecule *filler, config &configuration, const double MaxDistance, const double distance[NDIM], const double boundary, const double RandomAtomDisplacement, const double RandomMolDisplacement, const bool DoRandomRotation);
    52 void FindConvexBorder(const molecule* const mol, Tesselation *&TesselStruct, const LinkedCell *LCList, const char *filename);
     52void FindConvexBorder(const molecule* const mol, Boundaries *BoundaryPts, Tesselation *&TesselStruct, const LinkedCell *LCList, const char *filename);
    5353Vector* FindEmbeddingHole(MoleculeListClass *mols, molecule *srcmol);
    5454void FindNextSuitablePoint(class BoundaryTriangleSet *BaseTriangle, class BoundaryLineSet *BaseLine, atom*& OptCandidate, Vector *OptCandidateCenter, double *ShortestAngle, const double RADIUS, LinkedCell *LC);
  • src/builder.cpp

    r5630bd r4e10f5  
    120120  bool ArgumentsCopied = false;
    121121  std::string BondGraphFileName("\n");
    122   FormatParserStorage::getInstance().addMpqc();
    123   FormatParserStorage::getInstance().addPcp();
    124   FormatParserStorage::getInstance().addXyz();
    125122
    126123  // print version check whether arguments are present at all
  • src/linkedcell.cpp

    r5630bd r4e10f5  
    188188    N[i] = 0;
    189189  index = -1;
    190   max.Zero();
    191   min.Zero();
    192190};
    193191
     
    200198  for(int i=0;i<NDIM;i++)
    201199    status = status && ((n[i] >=0) && (n[i] < N[i]));
    202   if (!status)
    203   DoeLog(1) && (eLog()<< Verbose(1) << "indices are out of bounds!" << endl);
     200//  if (!status)
     201//    DoeLog(1) && (eLog()<< Verbose(1) << "indices are out of bounds!" << endl);
    204202  return status;
    205203};
     
    280278
    281279/** Calculates the interval bounds of the linked cell grid.
    282  * \param *lower lower bounds
    283  * \param *upper upper bounds
     280 * \param lower lower bounds
     281 * \param upper upper bounds
    284282 * \param step how deep to check the neighbouring cells (i.e. number of layers to check)
    285283 */
     
    287285{
    288286  for (int i=0;i<NDIM;i++) {
    289     lower[i] = n[i];
    290     for (int s=step; s>0;--s)
    291       if ((n[i]-s) >= 0) {
    292         lower[i] = n[i]-s;
    293         break;
    294       }
    295     upper[i] = n[i];
    296     for (int s=step; s>0;--s)
    297       if ((n[i]+s) < N[i]) {
    298         upper[i] = n[i]+s;
    299         break;
    300       }
     287    lower[i] = n[i]-step;
     288    if (lower[i] < 0)
     289      lower[i] = 0;
     290    if (lower[i] >= N[i])
     291      lower[i] = N[i]-1;
     292    upper[i] = n[i]+step;
     293    if (upper[i] >= N[i])
     294      upper[i] = N[i]-1;
     295    if (upper[i] < 0)
     296      upper[i] = 0;
    301297    //Log() << Verbose(0) << "axis " << i << " has bounds [" << lower[i] << "," << upper[i] << "]" << endl;
    302298  }
  • src/molecule.hpp

    r5630bd r4e10f5  
    420420
    421421  bool AddLeaf(molecule *ptr, MoleculeLeafClass *Previous);
    422   bool FillBondStructureFromReference(const molecule * const reference, int &FragmentCounter, atom ***&ListOfLocalAtoms, bool FreeList = false);
     422  bool FillBondStructureFromReference(const molecule * const reference, atom **&ListOfLocalAtoms, bool FreeList = false);
    423423  bool FillRootStackForSubgraphs(KeyStack *&RootStack, bool *AtomMask, int &FragmentCounter);
    424424  bool AssignKeySetsToFragment(molecule *reference, Graph *KeySetList, atom ***&ListOfLocalAtoms, Graph **&FragmentList, int &FragmentCounter, bool FreeList = false);
    425   bool FillListOfLocalAtoms(atom ***&ListOfLocalAtoms, const int FragmentCounter, const int GlobalAtomCount, bool &FreeList);
     425  bool FillListOfLocalAtoms(atom **&ListOfLocalAtoms, const int GlobalAtomCount, bool &FreeList);
    426426  void TranslateIndicesToGlobalIDs(Graph **FragmentList, int &FragmentCounter, int &TotalNumberOfKeySets, Graph &TotalGraph);
    427427  int Count() const;
  • src/molecule_fragmentation.cpp

    r5630bd r4e10f5  
    632632    MinimumRingSize[i] = getAtomCount();
    633633  MolecularWalker = Subgraphs;
     634  const int LeafCount = Subgraphs->next->Count();
    634635  FragmentCounter = 0;
    635636  while (MolecularWalker->next != NULL) {
    636637    MolecularWalker = MolecularWalker->next;
    637638    // fill the bond structure of the individually stored subgraphs
    638     MolecularWalker->FillBondStructureFromReference(this, FragmentCounter, ListOfLocalAtoms, false);  // we want to keep the created ListOfLocalAtoms
     639    ListOfAtoms = NULL;
     640    MolecularWalker->FillBondStructureFromReference(this, ListOfAtoms, false);  // we want to keep the created ListOfLocalAtoms
    639641    DoLog(0) && (Log() << Verbose(0) << "Analysing the cycles of subgraph " << MolecularWalker->Leaf << " with nr. " << FragmentCounter << "." << endl);
    640642    LocalBackEdgeStack = new StackClass<bond *> (MolecularWalker->Leaf->BondCount);
     
    647649//        Log() << Verbose(0) << "\t" << ListOfLocalAtoms[FragmentCounter][i]->Name;
    648650    DoLog(0) && (Log() << Verbose(0) << "Gathering local back edges for subgraph " << MolecularWalker->Leaf << " with nr. " << FragmentCounter << "." << endl);
    649     MolecularWalker->Leaf->PickLocalBackEdges(ListOfLocalAtoms[FragmentCounter++], BackEdgeStack, LocalBackEdgeStack);
     651    MolecularWalker->Leaf->PickLocalBackEdges(ListOfAtoms, BackEdgeStack, LocalBackEdgeStack);
    650652    DoLog(0) && (Log() << Verbose(0) << "Analysing the cycles of subgraph " << MolecularWalker->Leaf << " with nr. " << FragmentCounter << "." << endl);
    651653    MolecularWalker->Leaf->CyclicStructureAnalysis(LocalBackEdgeStack, MinimumRingSize);
    652654    DoLog(0) && (Log() << Verbose(0) << "Done with Analysing the cycles of subgraph " << MolecularWalker->Leaf << " with nr. " << FragmentCounter << "." << endl);
    653655    delete(LocalBackEdgeStack);
     656    delete(ListOfAtoms);
     657    FragmentCounter++;
    654658  }
    655659  delete(BackEdgeStack);
     
    663667  // =================================== Begin of FRAGMENTATION ===============================
    664668  // ===== 6a. assign each keyset to its respective subgraph =====
    665   Subgraphs->next->AssignKeySetsToFragment(this, ParsedFragmentList, ListOfLocalAtoms, FragmentList, (FragmentCounter = 0), true);
     669  ListOfLocalAtoms = new atom **[LeafCount];
     670  for (int i=0;i<LeafCount;i++)
     671    ListOfLocalAtoms[i] = NULL;
     672  FragmentCounter = 0;
     673  Subgraphs->next->AssignKeySetsToFragment(this, ParsedFragmentList, ListOfLocalAtoms, FragmentList, FragmentCounter, true);
     674  delete[](ListOfLocalAtoms);
    666675
    667676  // ===== 6b. prepare and go into the adaptive (Order<0), single-step (Order==0) or incremental (Order>0) cycle
     
    698707  delete(ParsedFragmentList);
    699708  delete[](MinimumRingSize);
    700 
    701709
    702710  // ==================================== End of FRAGMENTATION ============================================
  • src/molecule_geometry.cpp

    r5630bd r4e10f5  
    125125      Center += (*iter)->x;
    126126    }
    127     Center.Scale(-1./Num); // divide through total number (and sign for direction)
     127    Center.Scale(-1./(double)Num); // divide through total number (and sign for direction)
    128128    Translate(&Center);
    129129    Center.Zero();
     
    147147      (*a) += (*iter)->x;
    148148    }
    149     a->Scale(1./Num); // divide through total mass (and sign for direction)
     149    a->Scale(1./(double)Num); // divide through total mass (and sign for direction)
    150150  }
    151151  return a;
     
    182182      (*a) += tmp;
    183183    }
    184     a->Scale(1./Num); // divide through total mass (and sign for direction)
     184    a->Scale(1./Num); // divide through total mass
    185185  }
    186186//  Log() << Verbose(1) << "Resulting center of gravity: ";
  • src/molecule_graph.cpp

    r5630bd r4e10f5  
    670670  BFS.ColorList = new enum Shading[AtomCount];
    671671  BFS.BFSStack = new StackClass<atom *> (AtomCount);
     672  BFS.TouchedStack = new StackClass<atom *> (AtomCount);
    672673
    673674  for (int i = AtomCount; i--;) {
    674675    BFS.ShortestPathList[i] = -1;
    675676    BFS.PredecessorList[i] = 0;
     677    BFS.ColorList[i] = white;
    676678  }
    677679};
     
    687689  delete[](BFS.ColorList);
    688690  delete (BFS.BFSStack);
     691  delete (BFS.TouchedStack);
    689692  BFS.AtomCount = 0;
    690693};
     
    831834      MinRingSize = RingSize;
    832835  } else {
    833     DoLog(1) && (Log() << Verbose(1) << "No ring containing " << *BFS.Root << " with length equal to or smaller than " << MinimumRingSize[Walker->GetTrueFather()->nr] << " found." << endl);
     836    DoLog(1) && (Log() << Verbose(1) << "No ring containing " << *BFS.Root << " with length equal to or smaller than " << MinimumRingSize[BFS.Root->GetTrueFather()->nr] << " found." << endl);
    834837  }
    835838};
  • src/moleculelist.cpp

    r5630bd r4e10f5  
    10201020 * \param *out output stream for debugging
    10211021 * \param *reference reference molecule with the bond structure to be copied
    1022  * \param &FragmentCounter Counter needed to address \a **ListOfLocalAtoms
    1023  * \param ***ListOfLocalAtoms Lookup table for each subgraph and index of each atom in \a *reference, may be NULL on start, then it is filled
     1022 * \param **&ListOfLocalAtoms Lookup table for this subgraph and index of each atom in \a *reference, may be NULL on start, then it is filled
    10241023 * \param FreeList true - ***ListOfLocalAtoms is free'd before return, false - it is not
    10251024 * \return true - success, false - faoilure
    10261025 */
    1027 bool MoleculeLeafClass::FillBondStructureFromReference(const molecule * const reference, int &FragmentCounter, atom ***&ListOfLocalAtoms, bool FreeList)
     1026bool MoleculeLeafClass::FillBondStructureFromReference(const molecule * const reference, atom **&ListOfLocalAtoms, bool FreeList)
    10281027{
    10291028  atom *OtherWalker = NULL;
     
    10341033  DoLog(1) && (Log() << Verbose(1) << "Begin of FillBondStructureFromReference." << endl);
    10351034  // fill ListOfLocalAtoms if NULL was given
    1036   if (!FillListOfLocalAtoms(ListOfLocalAtoms, FragmentCounter, reference->getAtomCount(), FreeList)) {
     1035  if (!FillListOfLocalAtoms(ListOfLocalAtoms, reference->getAtomCount(), FreeList)) {
    10371036    DoLog(1) && (Log() << Verbose(1) << "Filling of ListOfLocalAtoms failed." << endl);
    10381037    return false;
     
    10511050      AtomNo = Father->nr; // global id of the current walker
    10521051      for (BondList::const_iterator Runner = Father->ListOfBonds.begin(); Runner != Father->ListOfBonds.end(); (++Runner)) {
    1053         OtherWalker = ListOfLocalAtoms[FragmentCounter][(*Runner)->GetOtherAtom((*iter)->GetTrueFather())->nr]; // local copy of current bond partner of walker
     1052        OtherWalker = ListOfLocalAtoms[(*Runner)->GetOtherAtom((*iter)->GetTrueFather())->nr]; // local copy of current bond partner of walker
    10541053        if (OtherWalker != NULL) {
    10551054          if (OtherWalker->nr > (*iter)->nr)
    10561055            Leaf->AddBond((*iter), OtherWalker, (*Runner)->BondDegree);
    10571056        } else {
    1058           DoLog(1) && (Log() << Verbose(1) << "OtherWalker = ListOfLocalAtoms[" << FragmentCounter << "][" << (*Runner)->GetOtherAtom((*iter)->GetTrueFather())->nr << "] is NULL!" << endl);
     1057          DoLog(1) && (Log() << Verbose(1) << "OtherWalker = ListOfLocalAtoms[" << (*Runner)->GetOtherAtom((*iter)->GetTrueFather())->nr << "] is NULL!" << endl);
    10591058          status = false;
    10601059        }
     
    10651064  if ((FreeList) && (ListOfLocalAtoms != NULL)) {
    10661065    // free the index lookup list
    1067     delete[](ListOfLocalAtoms[FragmentCounter]);
    1068     if (FragmentCounter == 0) // first fragments frees the initial pointer to list
    1069       delete[](ListOfLocalAtoms);
     1066    delete[](ListOfLocalAtoms);
    10701067  }
    10711068  DoLog(1) && (Log() << Verbose(1) << "End of FillBondStructureFromReference." << endl);
     
    11131110/** Fills a lookup list of father's Atom::nr -> atom for each subgraph.
    11141111 * \param *out output stream from debugging
    1115  * \param ***ListOfLocalAtoms Lookup table for each subgraph and index of each atom in global molecule, may be NULL on start, then it is filled
    1116  * \param FragmentCounter counts the fragments as we move along the list
     1112 * \param **&ListOfLocalAtoms Lookup table for each subgraph and index of each atom in global molecule, may be NULL on start, then it is filled
    11171113 * \param GlobalAtomCount number of atoms in the complete molecule
    11181114 * \param &FreeList true - ***ListOfLocalAtoms is free'd before return, false - it is not
    1119  * \return true - success, false - failure
    1120  */
    1121 bool MoleculeLeafClass::FillListOfLocalAtoms(atom ***&ListOfLocalAtoms, const int FragmentCounter, const int GlobalAtomCount, bool &FreeList)
     1115 * \return true - success, false - failure (ListOfLocalAtoms != NULL)
     1116 */
     1117bool MoleculeLeafClass::FillListOfLocalAtoms(atom **&ListOfLocalAtoms, const int GlobalAtomCount, bool &FreeList)
    11221118{
    11231119  bool status = true;
    11241120
    1125   if (ListOfLocalAtoms == NULL) { // allocated initial pointer
    1126     // allocate and set each field to NULL
    1127     const int Counter = Count();
    1128     ASSERT(FragmentCounter < Counter, "FillListOfLocalAtoms: FragmenCounter greater than present fragments.");
    1129     ListOfLocalAtoms = new atom**[Counter];
    1130     if (ListOfLocalAtoms == NULL) {
    1131       FreeList = FreeList && false;
    1132       status = false;
    1133     }
    1134     for (int i=0;i<Counter;i++)
    1135       ListOfLocalAtoms[i] = NULL;
    1136   }
    1137 
    1138   if ((ListOfLocalAtoms != NULL) && (ListOfLocalAtoms[FragmentCounter] == NULL)) { // allocate and fill list of this fragment/subgraph
    1139     status = status && Leaf->CreateFatherLookupTable(ListOfLocalAtoms[FragmentCounter], GlobalAtomCount);
     1121  if (ListOfLocalAtoms == NULL) { // allocate and fill list of this fragment/subgraph
     1122    status = status && Leaf->CreateFatherLookupTable(ListOfLocalAtoms, GlobalAtomCount);
    11401123    FreeList = FreeList && true;
    1141   }
     1124  } else
     1125    return false;
    11421126
    11431127  return status;
     
    11611145  DoLog(1) && (Log() << Verbose(1) << "Begin of AssignKeySetsToFragment." << endl);
    11621146  // fill ListOfLocalAtoms if NULL was given
    1163   if (!FillListOfLocalAtoms(ListOfLocalAtoms, FragmentCounter, reference->getAtomCount(), FreeList)) {
     1147  if (!FillListOfLocalAtoms(ListOfLocalAtoms[FragmentCounter], reference->getAtomCount(), FreeList)) {
    11641148    DoLog(1) && (Log() << Verbose(1) << "Filling of ListOfLocalAtoms failed." << endl);
    11651149    return false;
     
    12061190    // free the index lookup list
    12071191    delete[](ListOfLocalAtoms[FragmentCounter]);
    1208     if (FragmentCounter == 0) // first fragments frees the initial pointer to list
    1209       delete[](ListOfLocalAtoms);
    12101192  }
    12111193  DoLog(1) && (Log() << Verbose(1) << "End of AssignKeySetsToFragment." << endl);
  • src/tesselation.cpp

    r5630bd r4e10f5  
    16491649  bool AddFlag = false;
    16501650  LinkedCell *BoundaryPoints = NULL;
     1651  bool SuccessFlag = true;
    16511652
    16521653  cloud->GoToFirst();
     
    16621663    // get the next triangle
    16631664    triangles = FindClosestTrianglesToVector(Walker->node, BoundaryPoints);
    1664     BTS = triangles->front();
    1665     if ((triangles == NULL) || (BTS->ContainsBoundaryPoint(Walker))) {
     1665    if (triangles != NULL)
     1666      BTS = triangles->front();
     1667    else
     1668      BTS = NULL;
     1669    delete triangles;
     1670    if ((BTS == NULL) || (BTS->ContainsBoundaryPoint(Walker))) {
    16661671      DoLog(0) && (Log() << Verbose(0) << "No triangles found, probably a tesselation point itself." << endl);
    16671672      cloud->GoToNext();
     
    17331738    } else { // something is wrong with FindClosestTriangleToPoint!
    17341739      DoeLog(1) && (eLog() << Verbose(1) << "The closest triangle did not produce an intersection!" << endl);
    1735       return false;
     1740      SuccessFlag = false;
     1741      break;
    17361742    }
    17371743    cloud->GoToNext();
     
    17401746  // exit
    17411747  delete (Center);
    1742   return true;
     1748  delete (BoundaryPoints);
     1749  return SuccessFlag;
    17431750}
    17441751;
     
    22432250  for (int i = 0; i < NDIM; i++) { // each axis
    22442251    LC->n[i] = LC->N[i] - 1; // current axis is topmost cell
    2245     for (LC->n[(i + 1) % NDIM] = 0; LC->n[(i + 1) % NDIM] < LC->N[(i + 1) % NDIM]; LC->n[(i + 1) % NDIM]++)
    2246       for (LC->n[(i + 2) % NDIM] = 0; LC->n[(i + 2) % NDIM] < LC->N[(i + 2) % NDIM]; LC->n[(i + 2) % NDIM]++) {
     2252    const int map[NDIM] = {i, (i + 1) % NDIM, (i + 2) % NDIM};
     2253    for (LC->n[map[1]] = 0; LC->n[map[1]] < LC->N[map[1]]; LC->n[map[1]]++)
     2254      for (LC->n[map[2]] = 0; LC->n[map[2]] < LC->N[map[2]]; LC->n[map[2]]++) {
    22472255        const LinkedCell::LinkedNodes *List = LC->GetCurrentCell();
    22482256        //Log() << Verbose(1) << "Current cell is " << LC->n[0] << ", " << LC->n[1] << ", " << LC->n[2] << " with No. " << LC->index << "." << endl;
    22492257        if (List != NULL) {
    22502258          for (LinkedCell::LinkedNodes::const_iterator Runner = List->begin(); Runner != List->end(); Runner++) {
    2251             if ((*Runner)->node->at(i) > maxCoordinate[i]) {
    2252               DoLog(1) && (Log() << Verbose(1) << "New maximal for axis " << i << " node is " << *(*Runner) << " at " << *(*Runner)->node << "." << endl);
    2253               maxCoordinate[i] = (*Runner)->node->at(i);
    2254               MaxPoint[i] = (*Runner);
     2259            if ((*Runner)->node->at(map[0]) > maxCoordinate[map[0]]) {
     2260              DoLog(1) && (Log() << Verbose(1) << "New maximal for axis " << map[0] << " node is " << *(*Runner) << " at " << *(*Runner)->node << "." << endl);
     2261              maxCoordinate[map[0]] = (*Runner)->node->at(map[0]);
     2262              MaxPoint[map[0]] = (*Runner);
    22552263            }
    22562264          }
  • src/tesselationhelpers.cpp

    r5630bd r4e10f5  
    425425          }
    426426        } else {
    427           eLog() << Verbose(1) << "The current cell " << LC->n[0] << "," << LC->n[1] << ","
    428             << LC->n[2] << " is invalid!" << endl;
     427          DoeLog(1) && (eLog() << Verbose(1) << "The current cell " << LC->n[0] << "," << LC->n[1] << "," << LC->n[2] << " is invalid!" << endl);
    429428        }
    430429      }
     
    481480          }
    482481        } else {
    483           eLog() << Verbose(1) << "The current cell " << LC->n[0] << "," << LC->n[1] << ","
    484             << LC->n[2] << " is invalid!" << endl;
     482          DoeLog(1) && (eLog() << Verbose(1) << "The current cell " << LC->n[0] << "," << LC->n[1] << "," << LC->n[2] << " is invalid!" << endl);
    485483        }
    486484      }
  • src/triangleintersectionlist.cpp

    r5630bd r4e10f5  
    1010
    1111#include "Helpers/MemDebug.hpp"
     12
     13#include <boost/scoped_ptr.hpp>
    1214
    1315#include "triangleintersectionlist.hpp"
     
    119121
    120122  // get closest points
    121   DistanceToPointMap * points = Tess->FindClosestBoundaryPointsToVector(Point,Vicinity);
     123  boost::scoped_ptr< DistanceToPointMap > points(Tess->FindClosestBoundaryPointsToVector(Point,Vicinity));
    122124  if (points == NULL) {
    123125    DoeLog(1) && (eLog()<< Verbose(1) << "There is no nearest point: too far away from the surface." << endl);
  • tests/Tesselations/defs.in

    r5630bd r4e10f5  
    6161        #cat stderr
    6262        #cat stdout
    63         grep -E "^[0-9]* [0-9]* [0-9]*$" ../../../../../molecuilder/tests/Tesselations/$mol/$2/${FILENAME}-$mol.dat | sort -n >reference-triangles.dat
     63        grep -E "^[0-9]* [0-9]* [0-9]*$" ../../@srcdir@/$mol/$2/${FILENAME}-$mol.dat | sort -n >reference-triangles.dat
    6464        grep -E "^[0-9]* [0-9]* [0-9]*$" ${FILENAME}.dat | sort -n >new-triangles.dat
    6565        diff reference-triangles.dat new-triangles.dat 2>diffstderr >diffstdout || exitcode=$?
  • tests/regression/testsuite-analysis.at

    r5630bd r4e10f5  
    44AT_KEYWORDS([analysis])
    55AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/1/pre/test.conf .], 0)
    6 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -C E --elements 1 8 --output-file output.csv --bin-output-file bin_output.csv --bin-start 0 --bin-end 20], 0, [stdout], [stderr])
     6AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 3 -C E --elements 1 8 --output-file output.csv --bin-output-file bin_output.csv --bin-start 0 --bin-end 20], 0, [stdout], [stderr])
    77AT_CHECK([fgrep "Begin of PairCorrelation" stdout], 0, [ignore], [ignore])
    88#AT_CHECK([file=output.csv; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/1/post/$file], 0, [ignore], [ignore])
     
    1414AT_KEYWORDS([analysis])
    1515AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/2/pre/test.conf .], 0)
    16 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -C E --elements 1 8 --output-file output-5.csv --bin-output-file bin_output-5.csv --bin-start 0 --bin-end 5], 0, [stdout], [stderr])
     16AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 3 -C E --elements 1 8 --output-file output-5.csv --bin-output-file bin_output-5.csv --bin-start 0 --bin-end 5], 0, [stdout], [stderr])
    1717#AT_CHECK([file=output-5.csv; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/2/post/$file], 0, [ignore], [ignore])
    1818AT_CHECK([file=bin_output-5.csv; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/2/post/$file], 0, [ignore], [ignore])
    19 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -C E --elements 1 8 --output-file output-10.csv --bin-output-file bin_output-10.csv --bin-start 5 --bin-end 10], 0, [stdout], [stderr])
     19AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 3 -C E --elements 1 8 --output-file output-10.csv --bin-output-file bin_output-10.csv --bin-start 5 --bin-end 10], 0, [stdout], [stderr])
    2020#AT_CHECK([file=output-10.csv; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/2/post/$file], 0, [ignore], [ignore])
    2121AT_CHECK([file=bin_output-10.csv; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/2/post/$file], 0, [ignore], [ignore])
    22 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -C E --elements 1 8 --output-file output-20.csv --bin-output-file bin_output-20.csv --bin-start 10 --bin-end 20], 0, [stdout], [stderr])
     22AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 3 -C E --elements 1 8 --output-file output-20.csv --bin-output-file bin_output-20.csv --bin-start 10 --bin-end 20], 0, [stdout], [stderr])
    2323#AT_CHECK([file=output-20.csv; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/2/post/$file], 0, [ignore], [ignore])
    2424AT_CHECK([file=bin_output-20.csv; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/2/post/$file], 0, [ignore], [ignore])
     
    2929AT_KEYWORDS([analysis])
    3030AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/3/pre/test.conf .], 0)
    31 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 7 -C P --elements 1 --position 10. 10. 10. --output-file output.csv --bin-output-file bin_output.csv --bin-start 0 --bin-end 20], 0, [stdout], [stderr])
     31AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 7 -C P --elements 1 --position "10., 10., 10." --output-file output.csv --bin-output-file bin_output.csv --bin-start 0 --bin-end 20], 0, [stdout], [stderr])
    3232AT_CHECK([fgrep "Begin of CorrelationToPoint" stdout], 0, [ignore], [ignore])
    3333#AT_CHECK([file=output.csv; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/3/post/$file], 0, [ignore], [ignore])
     
    3939AT_KEYWORDS([analysis])
    4040AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/4/pre/test.conf .], 0)
    41 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -I -C S --elements 1 --output-file output.csv --bin-output-file bin_output.csv --bin-start 0 --bin-width 1. --bin-end 20 --molecule-by-id 208], 0, [stdout], [stderr])
     41AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 3 -I -C S --elements 1 --output-file output.csv --bin-output-file bin_output.csv --bin-start 0 --bin-width 1. --bin-end 20 --molecule-by-id 208], 0, [stdout], [stderr])
    4242AT_CHECK([fgrep "Begin of CorrelationToSurface" stdout], 0, [ignore], [ignore])
    4343#AT_CHECK([file=output.csv; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/4/post/$file], 0, [ignore], [ignore])
     
    4949#AT_KEYWORDS([analysis])
    5050#AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/5/pre/test.conf .], 0)
    51 #AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -m 0], 0, [stdout], [stderr])
     51#AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 3 -m 0], 0, [stdout], [stderr])
    5252#AT_CHECK([fgrep "eigenvalue = 4382.53," stdout], 0, [ignore], [ignore])
    5353#AT_CHECK([fgrep "eigenvalue = 4369.24," stdout], 0, [ignore], [ignore])
  • tests/regression/testsuite-domain.at

    r5630bd r4e10f5  
    33AT_SETUP([Domain - defining simulation domain])
    44AT_KEYWORDS([domain])
    5 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -B 10 0 10 0 0 10], 0, [stdout], [stderr])
     5AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -o pcp -B "10, 0, 10, 0, 0, 10"], 0, [stdout], [stderr])
    66AT_CHECK([fgrep "BoxLength" test.conf], 0, [stdout], [stderr])
    77AT_CHECK([diff test.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/1/post/test.conf], 0, [stdout], [stderr])
     
    1212AT_KEYWORDS([domain])
    1313AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/2/pre/test.conf .], 0)
    14 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -b 15 0 15 0 0 15], 0, [stdout], [stderr])
     14AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -b "15, 0, 15, 0, 0, 15"], 0, [stdout], [stderr])
    1515AT_CHECK([diff test.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/2/post/test.conf], 0, [stdout], [stderr])
    1616AT_CLEANUP
     
    2020AT_KEYWORDS([domain])
    2121AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/3/pre/test.conf .], 0)
    22 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -c 5 10 15], 0, [stdout], [stderr])
     22AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -c "5, 10, 15"], 0, [stdout], [stderr])
    2323AT_CHECK([diff test.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/3/post/test.conf], 0, [stdout], [stderr])
    2424AT_CLEANUP
     
    2828AT_KEYWORDS([domain])
    2929AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/4/pre/test.conf .], 0)
    30 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -O], 0, [stdout], [stderr])
     30AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -O], 0, [stdout], [stderr])
    3131AT_CHECK([diff test.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/4/post/test.conf], 0, [stdout], [stderr])
    3232AT_CLEANUP
     
    3636AT_KEYWORDS([domain])
    3737AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/5/pre/test.conf .], 0)
    38 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -s 0.5 1. 0.9], 0, [stdout], [stderr])
     38AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -s "0.5, 1., 0.9"], 0, [stdout], [stderr])
    3939AT_CHECK([diff test.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/5/post/test.conf], 0, [stdout], [stderr])
    4040AT_CLEANUP
     
    4444AT_KEYWORDS([domain])
    4545AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/pre/test.conf .], 0)
    46 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -d 1 1 1], 0, [stdout], [stderr])
     46AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -o xyz -d "1, 1, 1"], 0, [stdout], [stderr])
    4747AT_CHECK([file=test.conf.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    4848AT_CHECK([file=test.conf.xyz;sort -n ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/post/$file  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
    4949AT_CHECK([file=test.conf.xyz; diff $file-sorted $file-sorted2], 0, [ignore], [ignore])
    5050AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/pre/test.conf test-x.conf], 0)
    51 AT_CHECK([../../molecuilder test-x.conf -e ${abs_top_srcdir}/src/ -d 2 1 1], 0, [stdout], [stderr])
     51AT_CHECK([../../molecuilder -i test-x.conf -e ${abs_top_srcdir}/src/ -o xyz -d "2, 1, 1"], 0, [stdout], [stderr])
    5252AT_CHECK([file=test-x.conf.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    5353AT_CHECK([file=test-x.conf.xyz;sort -n ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/post/$file  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
    5454AT_CHECK([file=test-x.conf.xyz; diff $file-sorted $file-sorted2], 0, [ignore], [ignore])
    5555AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/pre/test.conf test-y.conf], 0)
    56 AT_CHECK([../../molecuilder test-y.conf -e ${abs_top_srcdir}/src/ -d 1 2 1], 0, [stdout], [stderr])
     56AT_CHECK([../../molecuilder -i test-y.conf -e ${abs_top_srcdir}/src/ -o xyz -d "1, 2, 1"], 0, [stdout], [stderr])
    5757AT_CHECK([file=test-y.conf.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    5858AT_CHECK([file=test-y.conf.xyz;sort -n ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/post/$file  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
    5959AT_CHECK([file=test-y.conf.xyz; diff $file-sorted $file-sorted2], 0, [ignore], [ignore])
    6060AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/pre/test.conf test-z.conf], 0)
    61 AT_CHECK([../../molecuilder test-z.conf -e ${abs_top_srcdir}/src/ -d 1 1 2], 0, [stdout], [stderr])
     61AT_CHECK([../../molecuilder -i test-z.conf -e ${abs_top_srcdir}/src/ -o xyz -d "1, 1, 2"], 0, [stdout], [stderr])
    6262AT_CHECK([file=test-z.conf.xyz;sort -n $file | grep -v "Created by" >$file-sorted], 0, [ignore], [ignore])
    6363AT_CHECK([file=test-z.conf.xyz;sort -n ${abs_top_srcdir}/${AUTOTEST_PATH}/Domain/6/post/$file  | grep -v "Created by" >$file-sorted2], 0, [ignore], [ignore])
  • tests/regression/testsuite-filling.at

    r5630bd r4e10f5  
    1010H       0.758602 0.     -0.504284
    1111]])
    12 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -F water.xyz --MaxDistance -1 --distances 3.1 3.1 3.1  --lengths 2.1 0. 0. --DoRotate 0], 0, [stdout], [stderr])
     12AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 3 -F water.xyz --MaxDistance -1 --distances "3.1, 3.1, 3.1"  --lengths "2.1, 0., 0." --DoRotate 0], 0, [stdout], [stderr])
    1313AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Filling/1/post/$file], 0, [ignore], [ignore])
    1414AT_CLEANUP
     
    1818AT_KEYWORDS([filling])
    1919AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Filling/2/pre/test.conf .], 0)
    20 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -u 1.3 --molecule-by-id 0], 0, [stdout], [stderr])
     20AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 3 -u 1.3 --molecule-by-id 0], 0, [stdout], [stderr])
    2121#AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Filling/2/post/$file], 0, [ignore], [ignore])
    2222AT_CLEANUP
  • tests/regression/testsuite-fragmentation.at

    r5630bd r4e10f5  
    1212AT_SETUP([Fragmentation - Fragmentation])
    1313AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Fragmentation/2/pre/test.conf .], 0)
    14 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 1 -f ./BondFragment --molecule-by-id 0 --distance 1.55 --order 2], 0, [ignore], [ignore])
     14AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 1 -f ./BondFragment --molecule-by-id 0 --distance 1.55 --order 2], 0, [ignore], [ignore])
    1515AT_CHECK([ls -l BondFragment*.conf | wc -l], 0, [5
    1616], [ignore])
     
    2121AT_SETUP([Fragmentation - BROKEN: Fragmentation is at MaxOrder])
    2222AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Fragmentation/3/pre/test.conf .], 0)
    23 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 1 -f ./BondFragment --molecule-by-id 0 --distance 1.55 --order 2], 0, [ignore], [ignore])
    24 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 1 -f ./BondFragment --molecule-by-id 0 --distance 1.55 --order 2], [ignore], [ignore], [ignore])
     23AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 1 -f ./BondFragment --molecule-by-id 0 --distance 1.55 --order 2], 0, [ignore], [ignore])
     24AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 1 -f ./BondFragment --molecule-by-id 0 --distance 1.55 --order 2], [ignore], [ignore], [ignore])
    2525AT_CLEANUP
  • tests/regression/testsuite-graph.at

    r5630bd r4e10f5  
    44AT_KEYWORDS([graph])
    55AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Graph/1/pre/test.conf .], 0)
    6 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -D 2.], 0, [stdout], [stderr])
     6AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 3 -D 2.], 0, [stdout], [stderr])
    77AT_CHECK([fgrep -c "No rings were detected in the molecular structure." stdout], 0, [1
    88], [ignore])
     
    1212AT_KEYWORDS([graph])
    1313AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Graph/2/pre/test.conf .], 0)
    14 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 3 -I], 0, [stdout], [stderr])
     14AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 3 -I], 0, [stdout], [stderr])
    1515AT_CHECK([fgrep "I scanned 31 molecules." stdout], 0, [ignore], [ignore])
    1616AT_CLEANUP
  • tests/regression/testsuite-molecules.at

    r5630bd r4e10f5  
    44AT_KEYWORDS([Molecules])
    55AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/1/pre/test.* .], 0)
    6 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 4 -A test.dbond --molecule-by-id 0], 0, [stdout], [stderr])
     6AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 4 -A test.dbond --molecule-by-id 0], 0, [stdout], [stderr])
    77AT_CHECK([fgrep "Looking for atoms 2 and 9." stdout], 0, [ignore], [ignore])
    88AT_CLEANUP
     
    1212AT_KEYWORDS([Molecules])
    1313AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/2/pre/test.conf .], 0)
    14 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 1 -j test.dbond --molecule-by-id 0], 0, [stdout], [stderr])
     14AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 1 -j test.dbond --molecule-by-id 0], 0, [stdout], [stderr])
    1515AT_CHECK([file=test.dbond; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/2/post/$file], 0, [ignore], [ignore])
    16 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -v 1 -J test.adj --molecule-by-id 0], 0, [stdout], [stderr])
     16AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -v 1 -J test.adj --molecule-by-id 0], 0, [stdout], [stderr])
    1717AT_CHECK([file=test.adj; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/2/post/$file], 0, [ignore], [ignore])
    1818AT_CLEANUP
     
    2222AT_KEYWORDS([Molecules])
    2323AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/3/pre/test.conf .], 0)
    24 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -S test.ekin --molecule-by-id 0], 0, [stdout], [stderr])
     24AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -S test.ekin --molecule-by-id 0], 0, [stdout], [stderr])
    2525AT_CHECK([file=test.ekin; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/3/post/$file], 0, [ignore], [ignore])
    2626AT_CLEANUP
     
    3030AT_KEYWORDS([Molecules])
    3131AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/4/pre/test.conf .], 0)
    32 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -L teststep --start-step 0 --end-step 1 --molecule-by-id 0 --id-mapping 1], 0, [stdout], [stderr])
     32AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -L teststep --start-step 0 --end-step 1 --molecule-by-id 0 --id-mapping 1], 0, [stdout], [stderr])
    3333AT_CLEANUP
    3434
     
    3737AT_KEYWORDS([Molecules])
    3838AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/5/pre/test.* .], 0)
    39 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -P test.forces --molecule-by-id 0], 0, [stdout], [stderr])
     39AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -P test.forces --molecule-by-id 0], 0, [stdout], [stderr])
    4040#AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/5/post/$file], 0, [ignore], [ignore])
    4141AT_CLEANUP
     
    4545AT_KEYWORDS([Molecules])
    4646AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/6/pre/test.* .], 0)
    47 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -t 1. 1. 1. --molecule-by-id 0 --periodic 0], 0, [stdout], [stderr])
     47AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -t "1., 1., 1." --molecule-by-id 0 --periodic 0], 0, [stdout], [stderr])
    4848AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/6/post/$file], 0, [ignore], [ignore])
     49AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/6/pre/test2.* .], 0)
     50AT_CHECK([../../molecuilder -i test2.conf -e ${abs_top_srcdir}/src/ -t "-1., -1., -1." --molecule-by-id 0 --periodic 0], 0, [stdout], [stderr])
     51AT_CHECK([file=test2.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/6/post/$file], 0, [ignore], [ignore])
    4952AT_CLEANUP
    5053
     
    5356AT_KEYWORDS([Molecules])
    5457AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/7/pre/test.* .], 0)
    55 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -t 12. 12. 12. --molecule-by-id 0 --periodic 1], 0, [stdout], [stderr])
     58AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -t "12., 12., 12." --molecule-by-id 0 --periodic 1], 0, [stdout], [stderr])
    5659AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/7/post/$file], 0, [ignore], [ignore])
    5760AT_CLEANUP
     
    6164AT_KEYWORDS([Molecules])
    6265AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/8/pre/test.* .], 0)
    63 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -m 0], 0, [stdout], [stderr])
     66AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -m 0], 0, [stdout], [stderr])
    6467#AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Molecules/8/post/$file], 0, [ignore], [ignore])
    6568AT_CLEANUP
  • tests/regression/testsuite-simple_configuration.at

    r5630bd r4e10f5  
    1414AT_KEYWORDS([configuration])
    1515AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/2/pre/test.xyz .], 0)
    16 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -p test.xyz], 0, [ignore], [ignore])
     16AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -o mpqc pcp xyz -p test.xyz], 0, [ignore], [ignore])
    1717AT_CHECK([fgrep "Ion_Type1_1" test.conf], 0, [Ion_Type1_1       10.000000000    10.000000000    10.000000000    0 # molecule nr 0
    1818], [ignore])
     
    2222AT_CLEANUP
    2323
    24 # 3. add atom
     24# 3a. add atom
    2525AT_SETUP([Simple configuration - adding atom])
    2626AT_KEYWORDS([configuration])
    27 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -a 1 --position 10. 10. 10.], 0, [ignore], [ignore])
     27AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -o mpqc pcp xyz -a 1 --position "10., 10., 10."], 0, [ignore], [ignore])
    2828AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/3/post/$file], 0, [ignore], [ignore])
    2929AT_CHECK([file=test.conf.in; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/3/post/$file], 0, [ignore], [ignore])
    3030AT_CHECK([file=test.conf.xyz; diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/3/post/$file], 0, [ignore], [ignore])
     31AT_CHECK([../../molecuilder -i test2.conf -e ${abs_top_srcdir}/src/ -o mpqc pcp xyz -a 1 --position "0., 0., -1."], 0, [ignore], [ignore])
     32AT_CHECK([file=test2.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/3/post/$file], 0, [ignore], [ignore])
     33AT_CHECK([file=test2.conf.in; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/3/post/$file], 0, [ignore], [ignore])
     34AT_CHECK([file=test2.conf.xyz; diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/3/post/$file], 0, [ignore], [ignore])
    3135AT_CLEANUP
    3236
     
    3539AT_KEYWORDS([configuration])
    3640AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/4/pre/test.conf test.conf], 0)
    37 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -E 0 --element 6], 0, [ignore], [ignore])
     41AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -E 0 --element 6], 0, [ignore], [ignore])
    3842AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/4/post/$file], 0, [ignore], [ignore])
    3943AT_CLEANUP
     
    4347AT_KEYWORDS([configuration])
    4448AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/5/pre/test.conf .], 0)
    45 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -r 0], 0, [ignore], [ignore])
     49AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -o mpqc pcp xyz -r 0], 0, [ignore], [ignore])
    4650AT_CHECK([file=test.conf; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/5/post/$file], 0, [ignore], [ignore])
    4751AT_CHECK([file=test.conf.in; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/5/post/$file], 0, [ignore], [ignore])
     
    5256AT_SETUP([Simple configuration - invalid commands on empty configs])
    5357AT_KEYWORDS([configuration])
    54 AT_CHECK([../../molecuilder empty.conf -e ${abs_top_srcdir}/src/ -t -s -b -E -c -b -a -U -T -u], 134, [ignore], [stderr])
     58AT_CHECK([../../molecuilder -i empty.conf -e ${abs_top_srcdir}/src/ -t -s -b -E -c -b -a -U -T -u], 134, [ignore], [stderr])
    5559AT_CLEANUP
    5660
     
    5963AT_KEYWORDS([configuration])
    6064AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/7/pre/test.conf .], 0)
    61 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -t], 134, [ignore], [stderr])
    62 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -s -b -E -c -b -a -U -T -u], 134, [ignore], [stderr])
    63 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -b -E -c -b -a -U -T -u], 134, [ignore], [stderr])
    64 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -E -c -b -a -U -T -u], 134, [ignore], [stderr])
    65 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -c -b -a -U -T -u], 134, [ignore], [stderr])
    66 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -b -a -U -T -u], 134, [ignore], [stderr])
    67 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -a -U -T -u], 134, [ignore], [stderr])
    68 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -U -T -u], 134, [ignore], [stderr])
    69 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -T -u], 134, [ignore], [stderr])
    70 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -u], 134, [ignore], [stderr])
     65AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -t], 134, [ignore], [stderr])
     66AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -s -b -E -c -b -a -U -T -u], 134, [ignore], [stderr])
     67AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -b -E -c -b -a -U -T -u], 134, [ignore], [stderr])
     68AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -E -c -b -a -U -T -u], 134, [ignore], [stderr])
     69AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -c -b -a -U -T -u], 134, [ignore], [stderr])
     70AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -b -a -U -T -u], 134, [ignore], [stderr])
     71AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -a -U -T -u], 134, [ignore], [stderr])
     72AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -U -T -u], 134, [ignore], [stderr])
     73AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -T -u], 134, [ignore], [stderr])
     74AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -u], 134, [ignore], [stderr])
    7175AT_CLEANUP
    7276
     
    7579AT_KEYWORDS([configuration])
    7680AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/8/pre/test.* .], 0)
    77 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -R 7. --position 7.283585982 3.275186040 3.535886037], 0, [stdout], [stderr])
     81AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -o xyz -R 7. --position "7.283585982, 3.275186040, 3.535886037"], 0, [stdout], [stderr])
    7882AT_CHECK([sort -n test.conf.xyz | grep -v "Created by" >test.conf.xyz-sorted], 0, [ignore], [ignore])
    7983AT_CHECK([sort -n ${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/8/post/test.conf.xyz  | grep -v "Created by" >${abs_top_srcdir}/${AUTOTEST_PATH}/Simple_configuration/8/post/test.conf.xyz-sorted], 0, [ignore], [ignore])
  • tests/regression/testsuite-specifics.at

    r5630bd r4e10f5  
    44AT_KEYWORDS([options])
    55AT_CHECK([pwd],[ignore],[ignore])
    6 AT_CHECK([../../molecuilder test.conf -v 1 -M test], 0, [stdout], [ignore])
     6AT_CHECK([../../molecuilder -i test.conf -v 1 -M test], 0, [stdout], [ignore])
    77AT_CHECK([fgrep "Setting MPQC basis to test." stdout], 0, [ignore], [ignore])
    88AT_CLEANUP
  • tests/regression/testsuite-standard_options.at

    r5630bd r4e10f5  
    2929Helium  He      1       18      p       2       4.003   1.5     1.4
    3030]])
    31 AT_CHECK([../../molecuilder test.conf -e ./], 0, [stdout], [stderr])
     31AT_CHECK([../../molecuilder -i test.conf -e ./], 0, [stdout], [stderr])
    3232AT_CHECK([grep -E "Using.*as elements database." stdout], 0, [ignore], [ignore])
    3333AT_CHECK([fgrep "Element list loaded successfully." stdout], 0, [ignore], [ignore])
     
    43432       0.      0.
    4444]])
    45 AT_CHECK([../../molecuilder test.conf -g bondlength.db], 0, [stdout], [stderr])
     45AT_CHECK([../../molecuilder -i test.conf -g bondlength.db], 0, [stdout], [stderr])
    4646AT_CHECK([grep -E "Using.*as bond length table." stdout], 0, [ignore], [ignore])
    4747AT_CLEANUP
     
    5050AT_SETUP([Standard Options - fast trajectories])
    5151AT_KEYWORDS([options])
    52 AT_CHECK([../../molecuilder test.conf -n 1], 0, [stdout], [stderr])
     52AT_CHECK([../../molecuilder -i test.conf -n 1], 0, [stdout], [stderr])
    5353AT_CHECK([fgrep "I won't parse trajectories" stdout], 0, [ignore], [ignore])
    5454AT_CLEANUP
     
    5757AT_SETUP([Standard Options - molecule default name])
    5858AT_KEYWORDS([options])
    59 AT_CHECK([../../molecuilder test.conf -X test], 0, [stdout], [stderr])
     59AT_CHECK([../../molecuilder -i test.conf -X test], 0, [stdout], [stderr])
    6060AT_CHECK([fgrep "Default name of new molecules set to test." stdout], 0, [ignore], [ignore])
    6161AT_CLEANUP
  • tests/regression/testsuite-tesselation.at

    r5630bd r4e10f5  
    44AT_KEYWORDS([Tesselation])
    55AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Tesselation/1/pre/* .], 0)
    6 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -N 0 --sphere-radius 4. --nonconvex-file NonConvexEnvelope], 0, [stdout], [stderr])
     6AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -N 0 --sphere-radius 4. --nonconvex-file NonConvexEnvelope], 0, [stdout], [stderr])
    77AT_CHECK([file=NonConvexEnvelope.dat; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Tesselation/1/post/$file], 0, [ignore], [ignore])
    88#AT_CHECK([file=NonConvexEnvelope.r3d; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Tesselation/1/post/$file], 0, [ignore], [ignore])
     
    1212AT_SETUP([Tesselation - Convex Envelope])
    1313AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Tesselation/2/pre/* .], 0)
    14 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -o 0 --convex-file ConvexEnvelope --nonconvex-file NonConvexEnvelope], 0, [stdout], [stderr])
     14AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ --convex-envelope 0 --convex-file ConvexEnvelope --nonconvex-file NonConvexEnvelope], 0, [stdout], [stderr])
    1515AT_CHECK([file=ConvexEnvelope.dat; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Tesselation/2/post/$file], 0, [ignore], [ignore])
    1616#AT_CHECK([file=ConvexEnvelope.r3d; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Tesselation/2/post/$file], 0, [ignore], [ignore])
     
    2222AT_SETUP([Tesselation - Big non-Convex Envelope])
    2323AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Tesselation/3/pre/* .], 0)
    24 AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -N 0 --sphere-radius 4. --nonconvex-file NonConvexEnvelope], 0, [stdout], [stderr])
     24AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ -N 0 --sphere-radius 4. --nonconvex-file NonConvexEnvelope], 0, [stdout], [stderr])
    2525AT_CHECK([file=NonConvexEnvelope.dat; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Tesselation/3/post/$file], 0, [ignore], [ignore])
    2626#AT_CHECK([file=NonConvexEnvelope.r3d; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Tesselation/3/post/$file], 0, [ignore], [ignore])
     
    3030#AT_SETUP([Tesselation - big convex Envelope])
    3131#AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Tesselation/4/pre/* .], 0)
    32 #AT_CHECK([../../molecuilder test.conf -e ${abs_top_srcdir}/src/ -o ConvexEnvelope NonConvexEnvelope], 0, [stdout], [stderr])
     32#AT_CHECK([../../molecuilder -i test.conf -e ${abs_top_srcdir}/src/ --convex-envelope ConvexEnvelope NonConvexEnvelope], 0, [stdout], [stderr])
    3333#AT_CHECK([file=ConvexEnvelope.dat; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Tesselation/4/post/$file], 0, [ignore], [ignore])
    3434#AT_CHECK([file=ConvexEnvelope.r3d; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Tesselation/4/post/$file], 0, [ignore], [ignore])
Note: See TracChangeset for help on using the changeset viewer.