Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/analysis_correlation.cpp

    r790807 rbd61b41  
    267267        Log() << Verbose(3) << "Current atom is " << *Walker << "." << endl;
    268268        if ((type == NULL) || (Walker->type == type)) {
    269           triangle = Surface->FindClosestTriangleToVector(Walker->node, LC );
     269          triangle = Surface->FindClosestTriangleToPoint(Walker->node, LC );
    270270          if (triangle != NULL) {
    271271            distance = DistanceToTrianglePlane(Walker->node, triangle);
     
    308308  }
    309309  outmap = new CorrelationToSurfaceMap;
    310   double ShortestDistance = 0.;
    311   BoundaryTriangleSet *ShortestTriangle = NULL;
    312310  for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin(); MolWalker != molecules->ListOfMolecules.end(); MolWalker++)
    313311    if ((*MolWalker)->ActiveFlag) {
     
    323321          periodicX.MatrixMultiplication(FullInverseMatrix);  // x now in [0,1)^3
    324322          // go through every range in xyz and get distance
    325           ShortestDistance = -1.;
    326323          for (n[0]=-ranges[0]; n[0] <= ranges[0]; n[0]++)
    327324            for (n[1]=-ranges[1]; n[1] <= ranges[1]; n[1]++)
     
    330327                checkX.AddVector(&periodicX);
    331328                checkX.MatrixMultiplication(FullMatrix);
    332                 triangle = Surface->FindClosestTriangleToVector(&checkX, LC);
    333                 distance = Surface->GetDistanceSquaredToTriangle(checkX, triangle);
    334                 if ((ShortestDistance == -1.) || (distance < ShortestDistance)) {
    335                   ShortestDistance = distance;
    336                   ShortestTriangle = triangle;
     329                triangle = Surface->FindClosestTriangleToPoint(&checkX, LC );
     330                if (triangle != NULL) {
     331                  distance = DistanceToTrianglePlane(&checkX, triangle);
     332                  outmap->insert ( pair<double, pair<atom *, BoundaryTriangleSet*> >(distance, pair<atom *, BoundaryTriangleSet*> (Walker, triangle) ) );
    337333                }
    338               }
    339           // insert
    340           ShortestDistance = sqrt(ShortestDistance);
    341           outmap->insert ( pair<double, pair<atom *, BoundaryTriangleSet*> >(ShortestDistance, pair<atom *, BoundaryTriangleSet*> (Walker, ShortestTriangle) ) );
    342           //Log() << Verbose(1) << "INFO: Inserting " << Walker << " with distance " << ShortestDistance << " to " << *ShortestTriangle << "." << endl;
     334          }
    343335        }
    344336      }
     
    350342};
    351343
    352 /** Returns the start of the bin for a given value.
     344/** Returns the index of the bin for a given value.
    353345 * \param value value whose bin to look for
    354346 * \param BinWidth width of bin
    355347 * \param BinStart first bin
    356348 */
    357 double GetBin ( const double value, const double BinWidth, const double BinStart )
    358 {
    359   Info FunctionInfo(__func__);
    360   double bin =(double) (floor((value - BinStart)/BinWidth));
    361   return (bin*BinWidth+BinStart);
     349int GetBin ( const double value, const double BinWidth, const double BinStart )
     350{
     351  Info FunctionInfo(__func__);
     352  int bin =(int) (floor((value - BinStart)/BinWidth));
     353  return (bin);
    362354};
    363355
     
    370362{
    371363  Info FunctionInfo(__func__);
    372   *file << "BinStart\tCount" << endl;
     364  *file << "# BinStart\tCount" << endl;
    373365  for (BinPairMap::const_iterator runner = map->begin(); runner != map->end(); ++runner) {
    374366    *file << runner->first << "\t" << runner->second << endl;
     
    383375{
    384376  Info FunctionInfo(__func__);
    385   *file << "BinStart\tAtom1\tAtom2" << endl;
     377  *file << "# BinStart\tAtom1\tAtom2" << endl;
    386378  for (PairCorrelationMap::const_iterator runner = map->begin(); runner != map->end(); ++runner) {
    387379    *file << runner->first << "\t" << *(runner->second.first) << "\t" << *(runner->second.second) << endl;
     
    396388{
    397389  Info FunctionInfo(__func__);
    398   *file << "BinStart\tAtom::x[i]-point.x[i]" << endl;
     390  *file << "# BinStart\tAtom::x[i]-point.x[i]" << endl;
    399391  for (CorrelationToPointMap::const_iterator runner = map->begin(); runner != map->end(); ++runner) {
    400392    *file << runner->first;
     
    412404{
    413405  Info FunctionInfo(__func__);
    414   *file << "BinStart\tTriangle" << endl;
     406  *file << "# BinStart\tTriangle" << endl;
    415407  for (CorrelationToSurfaceMap::const_iterator runner = map->begin(); runner != map->end(); ++runner) {
    416     *file << runner->first << "\t" << *(runner->second.first) << "\t" << *(runner->second.second) << endl;
    417   }
    418 };
    419 
     408    *file << runner->first << "\t" << *(runner->second.second) << endl;
     409  }
     410};
     411
Note: See TracChangeset for help on using the changeset viewer.