Changes in / [bdb143:b2531f]


Ignore:
Files:
23 edited

Legend:

Unmodified
Added
Removed
  • src/Legacy/oldmenu.cpp

    rbdb143 rb2531f  
    1010
    1111#include "Legacy/oldmenu.hpp"
    12 #include "analysis_bonds.hpp"
    1312#include "analysis_correlation.hpp"
    1413#include "World.hpp"
     
    510509  Log() << Verbose(0) << " f - calculate temperature from current velocity" << endl;
    511510  Log() << Verbose(0) << " g - output all temperatures per step from velocities" << endl;
    512   Log() << Verbose(0) << " h - count the number of hydrogen bonds" << endl;
    513511  Log() << Verbose(0) << "all else - go back" << endl;
    514512  Log() << Verbose(0) << "===============================================" << endl;
     
    599597        output->close();
    600598        delete(output);
    601       }
    602       break;
    603     case 'h':
    604       {
    605         int Z1;
    606         cout << "Please enter first interface element: ";
    607         cin >> Z1;
    608         const element * InterfaceElement = World::getInstance().getPeriode()->FindElement(Z1);
    609         int Z2;
    610         cout << "Please enter second interface element: ";
    611         cin >> Z2;
    612         const element * InterfaceElement2 = World::getInstance().getPeriode()->FindElement(Z2);
    613         cout << endl << "There are " << CountHydrogenBridgeBonds(World::getInstance().getMolecules(), InterfaceElement, InterfaceElement2) << " hydrogen bridges with connections to " << (InterfaceElement != 0 ? InterfaceElement->name : "None") << " and " << (InterfaceElement2 != 0 ? InterfaceElement2->name : "None") << "." << endl;
    614599      }
    615600      break;
  • src/analysis_bonds.cpp

    rbdb143 rb2531f  
    121121 * \param *molecules molecules to count bonds
    122122 * \param *InterfaceElement or NULL
    123  * \param *Interface2Element or NULL
    124  */
    125 int CountHydrogenBridgeBonds(MoleculeListClass *molecules, const element * InterfaceElement = NULL, const element * Interface2Element = NULL)
     123 */
     124int CountHydrogenBridgeBonds(MoleculeListClass *molecules, const element * InterfaceElement = NULL)
    126125{
    127126  int count = 0;
     
    129128  double Otherangle = 0.;
    130129  bool InterfaceFlag = false;
    131   bool Interface2Flag = false;
    132130  bool OtherHydrogenFlag = true;
    133131  for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin();MolWalker != molecules->ListOfMolecules.end(); ++MolWalker) {
     
    147145              OtherHydrogens = 0;
    148146              InterfaceFlag = (InterfaceElement == NULL);
    149               Interface2Flag = (Interface2Element == NULL);
    150147              for (BondList::const_iterator BondRunner = (*Runner)->ListOfBonds.begin(); BondRunner != (*Runner)->ListOfBonds.end(); BondRunner++) {
    151148                atom * const OtherAtom = (*BondRunner)->GetOtherAtom(*Runner);
     
    158155                }
    159156                InterfaceFlag = InterfaceFlag || (OtherAtom->type == InterfaceElement);
    160                 Interface2Flag = Interface2Flag || (OtherAtom->type == Interface2Element);
    161157              }
    162158              DoLog(1) && (Log() << Verbose(1) << "Otherangle is " << Otherangle << " for " << OtherHydrogens << " hydrogens." << endl);
     
    172168                  break;
    173169              }
    174               if (InterfaceFlag && Interface2Flag && OtherHydrogenFlag) {
     170              if (InterfaceFlag && OtherHydrogenFlag) {
    175171                // on this element (Walker) we check for bond to hydrogen, i.e. part of water molecule
    176172                for (BondList::const_iterator BondRunner = (*Walker)->ListOfBonds.begin(); BondRunner != (*Walker)->ListOfBonds.end(); BondRunner++) {
  • src/analysis_bonds.hpp

    rbdb143 rb2531f  
    3333void MinMeanMaxBondDistanceBetweenElements(const molecule *mol, const element *type1, const element *type2, double &Min, double &Mean, double &Max);
    3434
    35 int CountHydrogenBridgeBonds(MoleculeListClass * const molecules, const element * InterfaceElement, const element * Interface2Element);
     35int CountHydrogenBridgeBonds(MoleculeListClass * const molecules, const element * InterfaceElement);
    3636int CountBondsOfTwo(MoleculeListClass * const molecules, const element * const first, const element * const second);
    3737int CountBondsOfThree(MoleculeListClass * const molecules, const element * const first, const element * const second, const element * const third);
  • src/boundary.cpp

    rbdb143 rb2531f  
    10041004//  // Purges surplus triangles.
    10051005//  TesselStruct->RemoveDegeneratedTriangles();
    1006 //
    1007 //  // check envelope for consistency
    1008 //  status = CheckListOfBaselines(TesselStruct);
     1006
     1007  // check envelope for consistency
     1008  status = CheckListOfBaselines(TesselStruct);
    10091009
    10101010  cout << "before correction" << endl;
  • src/builder.cpp

    rbdb143 rb2531f  
    6363#include "molecule.hpp"
    6464#include "periodentafel.hpp"
    65 #include "tesselationhelpers.hpp"
    6665#include "UIElements/UIFactory.hpp"
    6766#include "UIElements/TextUI/TextUIFactory.hpp"
  • src/tesselation.cpp

    rbdb143 rb2531f  
    231231{
    232232  Info FunctionInfo(__func__);
    233   double angle = CalculateConvexity();
    234   if (angle > -MYEPSILON) {
    235     DoLog(0) && (Log() << Verbose(0) << "ACCEPT: Angle is greater than pi: convex." << endl);
    236     return true;
    237   } else {
    238     DoLog(0) && (Log() << Verbose(0) << "REJECT: Angle is less than pi: concave." << endl);
    239     return false;
    240   }
    241 }
    242 
    243 
    244 /** Calculates the angle between two triangles with respect to their normal vector.
    245  * We sum the two angles of each height vector with respect to the center of the baseline.
    246  * \return angle > 0 then convex, if < 0 then concave
    247  */
    248 double BoundaryLineSet::CalculateConvexity() const
    249 {
    250   Info FunctionInfo(__func__);
    251233  Vector BaseLineCenter, BaseLineNormal, BaseLine, helper[2], NormalCheck;
    252234  // get the two triangles
     
    297279  BaseLineNormal.Scale(-1.);
    298280  double angle = GetAngle(helper[0], helper[1], BaseLineNormal);
    299   return (angle - M_PI);
     281  if ((angle - M_PI) > -MYEPSILON) {
     282    DoLog(0) && (Log() << Verbose(0) << "ACCEPT: Angle is greater than pi: convex." << endl);
     283    return true;
     284  } else {
     285    DoLog(0) && (Log() << Verbose(0) << "REJECT: Angle is less than pi: concave." << endl);
     286    return false;
     287  }
    300288}
    301289
     
    316304/** Returns other endpoint of the line.
    317305 * \param *point other endpoint
    318  * \return NULL - if endpoint not contained in BoundaryLineSet::lines, or pointer to BoundaryPointSet otherwise
     306 * \return NULL - if endpoint not contained in BoundaryLineSet, or pointer to BoundaryPointSet otherwise
    319307 */
    320308class BoundaryPointSet *BoundaryLineSet::GetOtherEndpoint(const BoundaryPointSet * const point) const
     
    327315  else
    328316    return NULL;
    329 }
    330 ;
    331 
    332 /** Returns other triangle of the line.
    333  * \param *point other endpoint
    334  * \return NULL - if triangle not contained in BoundaryLineSet::triangles, or pointer to BoundaryTriangleSet otherwise
    335  */
    336 class BoundaryTriangleSet *BoundaryLineSet::GetOtherTriangle(const BoundaryTriangleSet * const triangle) const
    337 {
    338   Info FunctionInfo(__func__);
    339   if (triangles.size() == 2) {
    340     for (TriangleMap::const_iterator TriangleRunner = triangles.begin(); TriangleRunner != triangles.end(); ++TriangleRunner)
    341       if (TriangleRunner->second != triangle)
    342         return TriangleRunner->second;
    343   }
    344   return NULL;
    345317}
    346318;
     
    689661;
    690662
    691 /** Returns the baseline which does not contain the given boundary point \a *point.
    692  * \param *point endpoint which is neither endpoint of the desired line
    693  * \return pointer to desired third baseline
    694  */
    695 class BoundaryLineSet *BoundaryTriangleSet::GetThirdLine(const BoundaryPointSet * const point) const
    696 {
    697   Info FunctionInfo(__func__);
    698   // sanity check
    699   if (!ContainsBoundaryPoint(point))
    700     return NULL;
    701   for (int i = 0; i < 3; i++)
    702     if (!lines[i]->ContainsBoundaryPoint(point))
    703       return lines[i];
    704   // actually, that' impossible :)
    705   return NULL;
    706 }
    707 ;
    708 
    709663/** Calculates the center point of the triangle.
    710664 * Is third of the sum of all endpoints.
     
    11561110    TesselPointList *ListofPoints = LC->GetPointsInsideSphere(RADIUS, (*VRunner));
    11571111
    1158     DoLog(1) && (Log() << Verbose(1) << "The following atoms are inside sphere at " << (*VRunner) << ":" << endl);
     1112    DoLog(1) && (Log() << Verbose(1) << "The following atoms are inside sphere at " << OtherOptCenter << ":" << endl);
    11591113    for (TesselPointList::const_iterator Runner = ListofPoints->begin(); Runner != ListofPoints->end(); ++Runner)
    1160       DoLog(1) && (Log() << Verbose(1) << "  " << *(*Runner) << " with distance " << (*Runner)->node->distance(*(*VRunner)) << "." << endl);
     1114      DoLog(1) && (Log() << Verbose(1) << "  " << *(*Runner) << " with distance " << (*Runner)->node->distance(OtherOptCenter) << "." << endl);
    11611115
    11621116    // remove baseline's endpoints and candidates
     
    11741128      DoeLog(1) && (eLog() << Verbose(1) << "External atoms inside of sphere at " << *(*VRunner) << ":" << endl);
    11751129      for (TesselPointList::const_iterator Runner = ListofPoints->begin(); Runner != ListofPoints->end(); ++Runner)
    1176         DoeLog(1) && (eLog() << Verbose(1) << "  " << *(*Runner) << " at distance " << setprecision(13) << (*Runner)->node->distance(*(*VRunner)) << setprecision(6) << "." << endl);
    1177 
    1178       // check with animate_sphere.tcl VMD script
    1179       if (ThirdPoint != NULL) {
    1180         DoeLog(1) && (eLog() << Verbose(1) << "Check by: animate_sphere 0 " << BaseLine->endpoints[0]->Nr + 1 << " " << BaseLine->endpoints[1]->Nr + 1 << " " << ThirdPoint->Nr + 1 << " " << RADIUS << " " << OldCenter[0] << " " << OldCenter[1] << " " << OldCenter[2] << " " << (*VRunner)->at(0) << " " << (*VRunner)->at(1) << " " << (*VRunner)->at(2) << endl);
    1181       } else {
    1182         DoeLog(1) && (eLog() << Verbose(1) << "Check by: ... missing third point ..." << endl);
    1183         DoeLog(1) && (eLog() << Verbose(1) << "Check by: animate_sphere 0 " << BaseLine->endpoints[0]->Nr + 1 << " " << BaseLine->endpoints[1]->Nr + 1 << " ??? " << RADIUS << " " << OldCenter[0] << " " << OldCenter[1] << " " << OldCenter[2] << " " << (*VRunner)->at(0) << " " << (*VRunner)->at(1) << " " << (*VRunner)->at(2) << endl);
    1184       }
     1130        DoeLog(1) && (eLog() << Verbose(1) << "  " << *(*Runner) << endl);
    11851131    }
    11861132    delete (ListofPoints);
    11871133
     1134    // check with animate_sphere.tcl VMD script
     1135    if (ThirdPoint != NULL) {
     1136      DoLog(1) && (Log() << Verbose(1) << "Check by: animate_sphere 0 " << BaseLine->endpoints[0]->Nr + 1 << " " << BaseLine->endpoints[1]->Nr + 1 << " " << ThirdPoint->Nr + 1 << " " << RADIUS << " " << OldCenter[0] << " " << OldCenter[1] << " " << OldCenter[2] << " " << (*VRunner)->at(0) << " " << (*VRunner)->at(1) << " " << (*VRunner)->at(2) << endl);
     1137    } else {
     1138      DoLog(1) && (Log() << Verbose(1) << "Check by: ... missing third point ..." << endl);
     1139      DoLog(1) && (Log() << Verbose(1) << "Check by: animate_sphere 0 " << BaseLine->endpoints[0]->Nr + 1 << " " << BaseLine->endpoints[1]->Nr + 1 << " ??? " << RADIUS << " " << OldCenter[0] << " " << OldCenter[1] << " " << OldCenter[2] << " " << (*VRunner)->at(0) << " " << (*VRunner)->at(1) << " " << (*VRunner)->at(2) << endl);
     1140    }
    11881141  }
    11891142  return flag;
     
    33373290                        }
    33383291                      } else {
    3339                         DoeLog(0) && (eLog() << Verbose(1) << "REJECT: Distance to center of circumcircle is not the same from each corner of the triangle: " << fabs(radius - otherradius) << endl);
     3292                        DoLog(1) && (Log() << Verbose(1) << "REJECT: Distance to center of circumcircle is not the same from each corner of the triangle: " << fabs(radius - otherradius) << endl);
    33403293                      }
    33413294                    } else {
     
    46374590
    46384591  DoLog(0) && (Log() << Verbose(0) << "FindAllDegeneratedTriangles() found " << DegeneratedTriangles->size() << " triangles:" << endl);
    4639   for (IndexToIndex::iterator it = DegeneratedTriangles->begin(); it != DegeneratedTriangles->end(); it++)
     4592  IndexToIndex::iterator it;
     4593  for (it = DegeneratedTriangles->begin(); it != DegeneratedTriangles->end(); it++)
    46404594    DoLog(0) && (Log() << Verbose(0) << (*it).first << " => " << (*it).second << endl);
    46414595
     
    46554609  int count = 0;
    46564610
    4657   // iterate over all degenerated triangles
    4658   for (IndexToIndex::iterator TriangleKeyRunner = DegeneratedTriangles->begin(); !DegeneratedTriangles->empty(); TriangleKeyRunner = DegeneratedTriangles->begin()) {
    4659     DoLog(0) && (Log() << Verbose(0) << "Checking presence of triangles " << TriangleKeyRunner->first << " and " << TriangleKeyRunner->second << "." << endl);
    4660     // both ways are stored in the map, only use one
    4661     if (TriangleKeyRunner->first > TriangleKeyRunner->second)
    4662       continue;
    4663 
    4664     // determine from the keys in the map the two _present_ triangles
     4611  for (IndexToIndex::iterator TriangleKeyRunner = DegeneratedTriangles->begin(); TriangleKeyRunner != DegeneratedTriangles->end(); ++TriangleKeyRunner) {
    46654612    finder = TrianglesOnBoundary.find(TriangleKeyRunner->first);
    46664613    if (finder != TrianglesOnBoundary.end())
    46674614      triangle = finder->second;
    46684615    else
    4669       continue;
     4616      break;
    46704617    finder = TrianglesOnBoundary.find(TriangleKeyRunner->second);
    46714618    if (finder != TrianglesOnBoundary.end())
    46724619      partnerTriangle = finder->second;
    46734620    else
    4674       continue;
    4675 
    4676     // determine which lines are shared by the two triangles
     4621      break;
     4622
    46774623    bool trianglesShareLine = false;
    46784624    for (int i = 0; i < 3; ++i)
  • src/tesselation.hpp

    rbdb143 rb2531f  
    138138    bool ContainsBoundaryPoint(const BoundaryPointSet * const point) const;
    139139    bool CheckConvexityCriterion() const;
    140     double CalculateConvexity() const;
    141140    class BoundaryPointSet *GetOtherEndpoint(const BoundaryPointSet * const point) const;
    142     class BoundaryTriangleSet *GetOtherTriangle(const BoundaryTriangleSet * const triangle) const;
    143141
    144142    class BoundaryPointSet *endpoints[2];
     
    166164    bool ContainsBoundaryPoint(const TesselPoint * const point) const;
    167165    class BoundaryPointSet *GetThirdEndpoint(const BoundaryLineSet * const line) const;
    168     class BoundaryLineSet *GetThirdLine(const BoundaryPointSet * const point) const;
    169166    bool IsPresentTupel(const BoundaryPointSet * const Points[3]) const;
    170167    bool IsPresentTupel(const BoundaryTriangleSet * const T) const;
  • src/tesselationhelpers.cpp

    rbdb143 rb2531f  
    1212#include "info.hpp"
    1313#include "linkedcell.hpp"
    14 #include "linearsystemofequations.hpp"
    1514#include "log.hpp"
    1615#include "tesselation.hpp"
     
    186185  beta = M_PI - SideC.Angle(SideA);
    187186  gamma = M_PI - SideA.Angle(SideB);
    188   Log() << Verbose(1) << "INFO: alpha = " << alpha/M_PI*180. << ", beta = " << beta/M_PI*180. << ", gamma = " << gamma/M_PI*180. << "." << endl;
     187  //Log() << Verbose(1) << "INFO: alpha = " << alpha/M_PI*180. << ", beta = " << beta/M_PI*180. << ", gamma = " << gamma/M_PI*180. << "." << endl;
    189188  if (fabs(M_PI - alpha - beta - gamma) > HULLEPSILON) {
    190189    DoeLog(2) && (eLog()<< Verbose(2) << "GetCenterofCircumcircle: Sum of angles " << (alpha+beta+gamma)/M_PI*180. << " > 180 degrees by " << fabs(M_PI - alpha - beta - gamma)/M_PI*180. << "!" << endl);
     
    199198  (*Center) += helper;
    200199  Center->Scale(1./(sin(2.*alpha) + sin(2.*beta) + sin(2.*gamma)));
    201   Log() << Verbose(1) << "INFO: Center (1st algo) is at " << *Center << "." << endl;
    202 
    203 //  LinearSystemOfEquations LSofEq(NDIM,NDIM);
    204 //  double *matrix = new double[NDIM*NDIM];
    205 //  matrix[0] = 0.;
    206 //  matrix[1] = a.DistanceSquared(b);
    207 //  matrix[2] = a.DistanceSquared(c);
    208 //  matrix[3] = a.DistanceSquared(b);
    209 //  matrix[4] = 0.;
    210 //  matrix[5] = b.DistanceSquared(c);
    211 //  matrix[6] = a.DistanceSquared(c);
    212 //  matrix[7] = b.DistanceSquared(c);
    213 //  matrix[8] = 0.;
    214 //  cout << "Matrix is: ";
    215 //  for (int i=0;i<NDIM*NDIM;i++)
    216 //    cout << matrix[i] << "\t";
    217 //  cout << endl;
    218 //  LSofEq.SetA(matrix);
    219 //  delete[](matrix);
    220 //  LSofEq.Setb(new Vector(1.,1.,1.));
    221 //  LSofEq.SetSymmetric(true);
    222 //  helper.Zero();
    223 //  if (!LSofEq.GetSolutionAsVector(helper)) {
    224 //    DoLog(0) && (eLog()<< Verbose(0) << "Could not solve the linear system in GetCenterofCircumCircle()!" << endl);
    225 //  }
    226 //  cout << "Solution is " << helper << endl;
    227   // is equivalent to the three lines below
    228   helper[0] = SideA.NormSquared()*(SideB.NormSquared()+SideC.NormSquared() - SideA.NormSquared());
    229   helper[1] = SideB.NormSquared()*(SideC.NormSquared()+SideA.NormSquared() - SideB.NormSquared());
    230   helper[2] = SideC.NormSquared()*(SideA.NormSquared()+SideB.NormSquared() - SideC.NormSquared());
    231 
    232   Center->Zero();
    233   *Center += helper[0] * a;
    234   *Center += helper[1] * b;
    235   *Center += helper[2] * c;
    236   Center->Scale(1./(helper[0]+helper[1]+helper[2]));
    237   Log() << Verbose(1) << "INFO: Center (2nd algo) is at " << *Center << "." << endl;
    238200};
    239201
     
    457419/** Calculates the volume of a general tetraeder.
    458420 * \param *a first vector
    459  * \param *b second vector
    460  * \param *c third vector
    461  * \param *d fourth vector
     421 * \param *a first vector
     422 * \param *a first vector
     423 * \param *a first vector
    462424 * \return \f$ \frac{1}{6} \cdot ((a-d) \times (a-c) \cdot  (a-b)) \f$
    463425 */
     
    477439  volume = 1./6. * fabs(Point.ScalarProduct(TetraederVector[2]));
    478440  return volume;
    479 };
    480 
    481 /** Calculates the area of a general triangle.
    482  * We use the Heron's formula of area, [Bronstein, S. 138]
    483  * \param &A first vector
    484  * \param &B second vector
    485  * \param &C third vector
    486  * \return \f$ \frac{1}{6} \cdot ((a-d) \times (a-c) \cdot  (a-b)) \f$
    487  */
    488 double CalculateAreaofGeneralTriangle(const Vector &A, const Vector &B, const Vector &C)
    489 {
    490   Info FunctionInfo(__func__);
    491 
    492   const double sidea = B.distance(C);
    493   const double sideb = A.distance(C);
    494   const double sidec = A.distance(B);
    495   const double s = (sidea+sideb+sidec)/2.;
    496 
    497   const double area = sqrt(s*(s-sidea)*(s-sideb)*(s-sidec));
    498   return area;
    499441};
    500442
     
    940882  class BoundaryPointSet *point = NULL;
    941883  class BoundaryLineSet *line = NULL;
    942   class BoundaryTriangleSet *triangle = NULL;
    943   double ConcavityPerLine = 0.;
    944   double ConcavityPerTriangle = 0.;
    945   double area = 0.;
    946   double totalarea = 0.;
    947 
     884
     885  // calculate remaining concavity
    948886  for (PointMap::const_iterator PointRunner = TesselStruct->PointsOnBoundary.begin(); PointRunner != TesselStruct->PointsOnBoundary.end(); PointRunner++) {
    949887    point = PointRunner->second;
    950888    DoLog(1) && (Log() << Verbose(1) << "INFO: Current point is " << *point << "." << endl);
    951 
    952     // calculate mean concavity over all connected line
    953     ConcavityPerLine = 0.;
     889    point->value = 0;
    954890    for (LineMap::iterator LineRunner = point->lines.begin(); LineRunner != point->lines.end(); LineRunner++) {
    955891      line = LineRunner->second;
    956892      //Log() << Verbose(1) << "INFO: Current line of point " << *point << " is " << *line << "." << endl;
    957       ConcavityPerLine -= line->CalculateConvexity();
    958     }
    959     ConcavityPerLine /= point->lines.size();
    960 
    961     // weigh with total area of the surrounding triangles
    962     totalarea  = 0.;
    963     TriangleSet *triangles = TesselStruct->GetAllTriangles(PointRunner->second);
    964     for (TriangleSet::iterator TriangleRunner = triangles->begin(); TriangleRunner != triangles->end(); ++TriangleRunner) {
    965       totalarea += CalculateAreaofGeneralTriangle(*(*TriangleRunner)->endpoints[0]->node->node, *(*TriangleRunner)->endpoints[1]->node->node, *(*TriangleRunner)->endpoints[2]->node->node);
    966     }
    967     ConcavityPerLine *= totalarea;
    968 
    969     // calculate mean concavity over all attached triangles
    970     ConcavityPerTriangle = 0.;
    971     for (TriangleSet::const_iterator TriangleRunner = triangles->begin(); TriangleRunner != triangles->end(); ++TriangleRunner) {
    972       line = (*TriangleRunner)->GetThirdLine(PointRunner->second);
    973       triangle = line->GetOtherTriangle(*TriangleRunner);
    974       area = CalculateAreaofGeneralTriangle(*triangle->endpoints[0]->node->node, *triangle->endpoints[1]->node->node, *triangle->endpoints[2]->node->node);
    975       area += CalculateAreaofGeneralTriangle(*(*TriangleRunner)->endpoints[0]->node->node, *(*TriangleRunner)->endpoints[1]->node->node, *(*TriangleRunner)->endpoints[2]->node->node);
    976       area *= -line->CalculateConvexity();
    977       if (area > 0)
    978         ConcavityPerTriangle += area;
    979 //      else
    980 //        ConcavityPerTriangle -= area;
    981     }
    982     ConcavityPerTriangle /= triangles->size()/totalarea;
    983     delete(triangles);
    984 
    985     // add up
    986     point->value = ConcavityPerLine + ConcavityPerTriangle;
    987   }
    988 };
    989 
    990 
    991 
    992 /** Calculates the concavity for each of the BoundaryPointSet's in a Tesselation.
    993  * Sets BoundaryPointSet::value equal to the nearest distance to convex envelope.
    994  * \param *out output stream for debugging
    995  * \param *TesselStruct pointer to Tesselation structure
    996  * \param *Convex pointer to convex Tesselation structure as reference
    997  */
    998 void CalculateConstrictionPerBoundaryPoint(const Tesselation * const TesselStruct, const Tesselation * const Convex)
    999 {
    1000   Info FunctionInfo(__func__);
    1001   double distance = 0.;
    1002 
    1003   for (PointMap::const_iterator PointRunner = TesselStruct->PointsOnBoundary.begin(); PointRunner != TesselStruct->PointsOnBoundary.end(); PointRunner++) {
    1004     DoeLog(1) && (eLog() << Verbose(1) << "INFO: Current point is " << * PointRunner->second << "." << endl);
    1005 
    1006     distance = 0.;
    1007     for (TriangleMap::const_iterator TriangleRunner = Convex->TrianglesOnBoundary.begin(); TriangleRunner != Convex->TrianglesOnBoundary.end(); TriangleRunner++) {
    1008       const double CurrentDistance = Convex->GetDistanceSquaredToTriangle(*PointRunner->second->node->node, TriangleRunner->second);
    1009       if (CurrentDistance < distance)
    1010         distance = CurrentDistance;
    1011     }
    1012 
    1013     PointRunner->second->value = distance;
    1014   }
    1015 };
     893      if (!line->CheckConvexityCriterion())
     894        point->value += 1;
     895    }
     896  }
     897};
     898
    1016899
    1017900/** Checks whether each BoundaryLineSet in the Tesselation has two triangles.
  • src/tesselationhelpers.hpp

    rbdb143 rb2531f  
    4343/********************************************** definitions *********************************/
    4444
    45 #define HULLEPSILON 1e-9 //!< TODO: Get rid of HULLEPSILON, points to numerical instabilities
     45#define HULLEPSILON 1e-10
    4646
    4747/********************************************** declarations *******************************/
     
    5555bool existsIntersection(const Vector &point1, const Vector &point2, const Vector &point3, const Vector &point4);
    5656double CalculateVolumeofGeneralTetraeder(const Vector &a, const Vector &b, const Vector &c, const Vector &d);
    57 double CalculateAreaofGeneralTriangle(const Vector &A, const Vector &B, const Vector &C);
    5857double GetAngle(const Vector &point, const Vector &reference, const Vector &OrthogonalVector);
    5958
     
    6968void WriteVrmlFile(ofstream * const vrmlfile, const Tesselation * const Tess, const PointCloud * const cloud);
    7069void CalculateConcavityPerBoundaryPoint(const Tesselation * const TesselStruct);
    71 void CalculateConstrictionPerBoundaryPoint(const Tesselation * const TesselStruct, const Tesselation * const Convex);
    7270double DistanceToTrianglePlane(const Vector *x, const BoundaryTriangleSet * const triangle);
    7371
  • src/unittests/CountBondsUnitTest.cpp

    rbdb143 rb2531f  
    154154  Translator  = Vector(3,0,0);
    155155  TestMolecule2->Translate(&Translator);
    156   CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL, NULL) );
    157   CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, oxygen, NULL) );
     156  CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL) );
     157  CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, oxygen) );
    158158  //OutputTestMolecule(TestMolecule2, "testmolecule2-1.xyz");
    159159  Translator = Vector(-3,0,0);
     
    163163  Translator = Vector(0,3,0);
    164164  TestMolecule2->Translate(&Translator);
    165   CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL, NULL) );
     165  CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL) );
    166166  //OutputTestMolecule(TestMolecule2, "testmolecule2-2.xyz");
    167167  Translator = Vector(0,-3,0);
     
    172172  TestMolecule2->Scale((const double ** const)&mirror);
    173173  TestMolecule2->Translate(&Translator);
    174   CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, NULL) );
     174  CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL) );
    175175  //OutputTestMolecule(TestMolecule2, "testmolecule2-3.xyz");
    176176  Translator = Vector(0,3,0);
     
    181181  Translator = Vector(2,1,0);
    182182  TestMolecule2->Translate(&Translator);
    183   CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL, NULL) );
     183  CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL) );
    184184  //OutputTestMolecule(TestMolecule2, "testmolecule2-4.xyz");
    185185  Translator = Vector(-2,-1,0);
     
    189189  Translator = Vector(0,0,3);
    190190  TestMolecule2->Translate(&Translator);
    191   CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, NULL) );
     191  CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL) );
    192192  //OutputTestMolecule(TestMolecule2, "testmolecule2-5.xyz");
    193193  Translator = Vector(0,0,-3);
     
    198198  TestMolecule2->Scale((const double ** const)&mirror);
    199199  TestMolecule2->Translate(&Translator);
    200   CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, NULL) );
     200  CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL) );
    201201  //OutputTestMolecule(TestMolecule2, "testmolecule2-6.xyz");
    202202  Translator = Vector(3,0,0);
     
    208208  TestMolecule2->Scale((const double ** const)&mirror);
    209209  TestMolecule2->Translate(&Translator);
    210   CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, NULL) );
     210  CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL) );
    211211  //OutputTestMolecule(TestMolecule2, "testmolecule2-7.xyz");
    212212  Translator = Vector(-3,0,0);
     
    219219  TestMolecule2->Translate(&Translator);
    220220  //OutputTestMolecule(TestMolecule2, "testmolecule2-8.xyz");
    221   CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, NULL) );
     221  CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL) );
    222222  Translator = Vector(0,-3,0);
    223223  TestMolecule2->Translate(&Translator);
  • src/unittests/TestRunnerMain.cpp

    rbdb143 rb2531f  
    1717#include "../../../TestRunnerClient.h"
    1818#include "../../../TestRunnerClient.cpp"
     19#else
     20#include "UnitTestMain.cpp"
     21#endif
    1922
    20 #else
    21 
    22 #include "unittests/UnitTestMain.cpp"
    23 
    24 #endif /* HAVE_ECUT */
  • src/unittests/UnitTestMain.cpp

    rbdb143 rb2531f  
    66 */
    77
     8#include <cppunit/CompilerOutputter.h>
     9#include <cppunit/extensions/TestFactoryRegistry.h>
     10#include <cppunit/ui/text/TestRunner.h>
     11
    812// include config.h
    913#ifdef HAVE_CONFIG_H
    1014#include <config.h>
    1115#endif
    12 
    13 #include <cppunit/CompilerOutputter.h>
    14 #include <cppunit/extensions/TestFactoryRegistry.h>
    15 #include <cppunit/ui/text/TestRunner.h>
    1616
    1717/********************************************** Main routine **************************************/
     
    3535  return wasSucessful ? 0 : 1;
    3636};
    37 
  • tests/Tesselations/heptan/1.5/NonConvexEnvelope-heptan.dat

    rbdb143 rb2531f  
    22VARIABLES = "X" "Y" "Z" "U"
    33ZONE T="heptan", N=23, E=64, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    4 -7.27e-07 -1.22006 0.930455 18.7229
    5 -7.27e-07 -1.22006 -0.849545 18.7229
    6 -1.2492 0.921941 0.930455 18.7227
    7 -1.2492 0.921941 -0.849545 18.7227
    8 1.2492 0.921941 -0.849545 18.7222
    9 1.2492 0.921941 0.930455 27.0641
    10 -2.4985 -1.22006 -0.849545 19.9769
    11 -2.4985 -1.22006 0.930455 27.4727
    12 2.4985 -1.22006 0.930455 19.9769
    13 2.4985 -1.22006 -0.849545 27.4727
    14 -4.6377 -0.336759 0.0404545 21.541
    15 -3.7477 0.921941 0.930455 18.8853
    16 -3.7477 0.921941 -0.849545 18.8853
    17 4.6377 -0.336759 0.0404545 10.6618
    18 3.7477 0.921941 -0.849545 18.5406
    19 3.7477 0.921941 0.930455 12.1988
    20 -7.27e-07 -0.590759 0.0404545 23.0174
    21 -1.2492 0.292641 0.0404545 23.0167
    22 1.2492 0.292641 0.0404545 20.1632
    23 -2.4985 -0.590759 0.0404545 18.9798
    24 2.4985 -0.590759 0.0404545 18.9798
    25 -3.7477 0.292641 0.0404545 39.5267
    26 3.7477 0.292641 0.0404545 23.2512
     4-7.27e-07 -1.22006 0.930455 3
     5-7.27e-07 -1.22006 -0.849545 3
     6-1.2492 0.921941 0.930455 3
     7-1.2492 0.921941 -0.849545 3
     81.2492 0.921941 -0.849545 3
     91.2492 0.921941 0.930455 3
     10-2.4985 -1.22006 -0.849545 4
     11-2.4985 -1.22006 0.930455 4
     122.4985 -1.22006 0.930455 4
     132.4985 -1.22006 -0.849545 4
     14-4.6377 -0.336759 0.0404545 6
     15-3.7477 0.921941 0.930455 5
     16-3.7477 0.921941 -0.849545 5
     174.6377 -0.336759 0.0404545 4
     183.7477 0.921941 -0.849545 4
     193.7477 0.921941 0.930455 4
     20-7.27e-07 -0.590759 0.0404545 6
     21-1.2492 0.292641 0.0404545 6
     221.2492 0.292641 0.0404545 6
     23-2.4985 -0.590759 0.0404545 6
     242.4985 -0.590759 0.0404545 6
     25-3.7477 0.292641 0.0404545 12
     263.7477 0.292641 0.0404545 12
    2727
    282814 15 23
     
    38385 18 19
    39394 5 18
    40 6 18 19
    41 3 6 18
    42403 4 18
    43413 4 18
     423 18 19
     433 6 19
    44444 18 22
    45454 13 22
     
    484812 13 22
    494912 13 22
    50 6 19 23
    51 6 16 23
     5016 19 23
     516 16 19
     5214 16 23
     5314 16 23
     549 14 23
     559 16 23
    525611 13 22
    535711 13 22
     
    58628 11 22
    59638 12 22
    60 14 16 23
    61 14 16 23
    62 9 14 23
    63 9 16 23
     644 7 13
     652 4 7
     662 4 5
     672 5 10
     685 10 15
    64693 8 12
    65701 3 8
     
    67721 6 9
    68736 9 16
    69 4 7 13
    70 2 4 7
    71 2 4 5
    72 2 5 10
    73 5 10 15
    747410 14 21
    75759 10 21
     
    84842 17 20
    85852 7 20
     861 17 20
     871 8 20
    86887 8 20
    87897 8 20
    88907 11 20
    89918 11 20
    90 8 17 20
    91 1 8 17
  • tests/Tesselations/heptan/2.5/NonConvexEnvelope-heptan.dat

    rbdb143 rb2531f  
    22VARIABLES = "X" "Y" "Z" "U"
    33ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    4 -7.27e-07 -1.22006 0.930455 -17.4952
    5 -7.27e-07 -1.22006 -0.849545 -17.4952
    6 -1.2492 0.921941 0.930455 -19.6818
    7 -1.2492 0.921941 -0.849545 -15.323
    8 1.2492 0.921941 -0.849545 -17.495
    9 1.2492 0.921941 0.930455 -17.4951
    10 -2.4985 -1.22006 -0.849545 -13.1263
    11 -2.4985 -1.22006 0.930455 -10.8961
    12 2.4985 -1.22006 0.930455 -13.1263
    13 2.4985 -1.22006 -0.849545 -10.8961
    14 -4.6377 -0.336759 0.0404545 -9.35471
    15 -3.7477 0.921941 0.930455 -9.24444
    16 -3.7477 0.921941 -0.849545 -11.4805
    17 4.6377 -0.336759 0.0404545 -9.35473
    18 3.7477 0.921941 -0.849545 -11.4805
    19 3.7477 0.921941 0.930455 -9.24445
     4-7.27e-07 -1.22006 0.930455 0
     5-7.27e-07 -1.22006 -0.849545 0
     6-1.2492 0.921941 0.930455 0
     7-1.2492 0.921941 -0.849545 0
     81.2492 0.921941 -0.849545 0
     91.2492 0.921941 0.930455 0
     10-2.4985 -1.22006 -0.849545 0
     11-2.4985 -1.22006 0.930455 0
     122.4985 -1.22006 0.930455 0
     132.4985 -1.22006 -0.849545 0
     14-4.6377 -0.336759 0.0404545 0
     15-3.7477 0.921941 0.930455 0
     16-3.7477 0.921941 -0.849545 0
     174.6377 -0.336759 0.0404545 0
     183.7477 0.921941 -0.849545 0
     193.7477 0.921941 0.930455 0
    2020
    212114 15 16
     
    27273 12 13
    282811 12 13
    29 7 11 13
    30 4 7 13
    31 2 4 7
    32 2 4 5
    33 2 5 10
    34 5 10 15
    35 10 14 15
     298 11 12
     303 8 12
     311 3 8
     321 3 6
     331 6 9
     346 9 16
     359 14 16
    36369 10 14
    37372 9 10
     
    40401 7 8
    41417 8 11
    42 9 14 16
    43 6 9 16
    44 1 6 9
    45 1 3 6
    46 1 3 8
    47 3 8 12
    48 8 11 12
     4210 14 15
     435 10 15
     442 5 10
     452 4 5
     462 4 7
     474 7 13
     487 11 13
  • tests/Tesselations/heptan/2/NonConvexEnvelope-heptan.dat

    rbdb143 rb2531f  
    22VARIABLES = "X" "Y" "Z" "U"
    33ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    4 -7.27e-07 -1.22006 0.930455 -17.4952
    5 -7.27e-07 -1.22006 -0.849545 -17.4952
    6 -1.2492 0.921941 0.930455 -19.6818
    7 -1.2492 0.921941 -0.849545 -15.323
    8 1.2492 0.921941 -0.849545 -17.495
    9 1.2492 0.921941 0.930455 -17.4951
    10 -2.4985 -1.22006 -0.849545 -13.1263
    11 -2.4985 -1.22006 0.930455 -10.8961
    12 2.4985 -1.22006 0.930455 -13.1263
    13 2.4985 -1.22006 -0.849545 -10.8961
    14 -4.6377 -0.336759 0.0404545 -9.35471
    15 -3.7477 0.921941 0.930455 -9.24444
    16 -3.7477 0.921941 -0.849545 -11.4805
    17 4.6377 -0.336759 0.0404545 -9.35473
    18 3.7477 0.921941 -0.849545 -11.4805
    19 3.7477 0.921941 0.930455 -9.24445
     4-7.27e-07 -1.22006 0.930455 0
     5-7.27e-07 -1.22006 -0.849545 0
     6-1.2492 0.921941 0.930455 0
     7-1.2492 0.921941 -0.849545 0
     81.2492 0.921941 -0.849545 0
     91.2492 0.921941 0.930455 0
     10-2.4985 -1.22006 -0.849545 0
     11-2.4985 -1.22006 0.930455 0
     122.4985 -1.22006 0.930455 0
     132.4985 -1.22006 -0.849545 0
     14-4.6377 -0.336759 0.0404545 0
     15-3.7477 0.921941 0.930455 0
     16-3.7477 0.921941 -0.849545 0
     174.6377 -0.336759 0.0404545 0
     183.7477 0.921941 -0.849545 0
     193.7477 0.921941 0.930455 0
    2020
    212114 15 16
     
    27273 12 13
    282811 12 13
    29 7 11 13
    30 4 7 13
    31 2 4 7
    32 2 4 5
    33 2 5 10
    34 5 10 15
    35 10 14 15
     298 11 12
     303 8 12
     311 3 8
     321 3 6
     331 6 9
     346 9 16
     359 14 16
    36369 10 14
    37372 9 10
     
    40401 7 8
    41417 8 11
    42 9 14 16
    43 6 9 16
    44 1 6 9
    45 1 3 6
    46 1 3 8
    47 3 8 12
    48 8 11 12
     4210 14 15
     435 10 15
     442 5 10
     452 4 5
     462 4 7
     474 7 13
     487 11 13
  • tests/Tesselations/heptan/25/NonConvexEnvelope-heptan.dat

    rbdb143 rb2531f  
    22VARIABLES = "X" "Y" "Z" "U"
    33ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    4 -7.27e-07 -1.22006 0.930455 -17.4952
    5 -7.27e-07 -1.22006 -0.849545 -17.4952
    6 -1.2492 0.921941 0.930455 -19.6818
    7 -1.2492 0.921941 -0.849545 -15.323
    8 1.2492 0.921941 -0.849545 -17.495
    9 1.2492 0.921941 0.930455 -17.4951
    10 -2.4985 -1.22006 -0.849545 -13.1263
    11 -2.4985 -1.22006 0.930455 -10.8961
    12 2.4985 -1.22006 0.930455 -13.1263
    13 2.4985 -1.22006 -0.849545 -10.8961
    14 -4.6377 -0.336759 0.0404545 -9.35471
    15 -3.7477 0.921941 0.930455 -9.24444
    16 -3.7477 0.921941 -0.849545 -11.4805
    17 4.6377 -0.336759 0.0404545 -9.35473
    18 3.7477 0.921941 -0.849545 -11.4805
    19 3.7477 0.921941 0.930455 -9.24445
     4-7.27e-07 -1.22006 0.930455 0
     5-7.27e-07 -1.22006 -0.849545 0
     6-1.2492 0.921941 0.930455 0
     7-1.2492 0.921941 -0.849545 0
     81.2492 0.921941 -0.849545 0
     91.2492 0.921941 0.930455 0
     10-2.4985 -1.22006 -0.849545 0
     11-2.4985 -1.22006 0.930455 0
     122.4985 -1.22006 0.930455 0
     132.4985 -1.22006 -0.849545 0
     14-4.6377 -0.336759 0.0404545 0
     15-3.7477 0.921941 0.930455 0
     16-3.7477 0.921941 -0.849545 0
     174.6377 -0.336759 0.0404545 0
     183.7477 0.921941 -0.849545 0
     193.7477 0.921941 0.930455 0
    2020
    212114 15 16
     
    27273 12 13
    282811 12 13
    29 7 11 13
    30 4 7 13
    31 2 4 7
    32 2 4 5
    33 2 5 10
    34 5 10 15
    35 10 14 15
     298 11 12
     303 8 12
     311 3 8
     321 3 6
     331 6 9
     346 9 16
     359 14 16
    36369 10 14
    37372 9 10
     
    40401 7 8
    41417 8 11
    42 9 14 16
    43 6 9 16
    44 1 6 9
    45 1 3 6
    46 1 3 8
    47 3 8 12
    48 8 11 12
     4210 14 15
     435 10 15
     442 5 10
     452 4 5
     462 4 7
     474 7 13
     487 11 13
  • tests/Tesselations/heptan/3.5/NonConvexEnvelope-heptan.dat

    rbdb143 rb2531f  
    22VARIABLES = "X" "Y" "Z" "U"
    33ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    4 -7.27e-07 -1.22006 0.930455 -17.4952
    5 -7.27e-07 -1.22006 -0.849545 -17.4952
    6 -1.2492 0.921941 0.930455 -19.6818
    7 -1.2492 0.921941 -0.849545 -15.323
    8 1.2492 0.921941 -0.849545 -17.495
    9 1.2492 0.921941 0.930455 -17.4951
    10 -2.4985 -1.22006 -0.849545 -13.1263
    11 -2.4985 -1.22006 0.930455 -10.8961
    12 2.4985 -1.22006 0.930455 -13.1263
    13 2.4985 -1.22006 -0.849545 -10.8961
    14 -4.6377 -0.336759 0.0404545 -9.35471
    15 -3.7477 0.921941 0.930455 -9.24444
    16 -3.7477 0.921941 -0.849545 -11.4805
    17 4.6377 -0.336759 0.0404545 -9.35473
    18 3.7477 0.921941 -0.849545 -11.4805
    19 3.7477 0.921941 0.930455 -9.24445
     4-7.27e-07 -1.22006 0.930455 0
     5-7.27e-07 -1.22006 -0.849545 0
     6-1.2492 0.921941 0.930455 0
     7-1.2492 0.921941 -0.849545 0
     81.2492 0.921941 -0.849545 0
     91.2492 0.921941 0.930455 0
     10-2.4985 -1.22006 -0.849545 0
     11-2.4985 -1.22006 0.930455 0
     122.4985 -1.22006 0.930455 0
     132.4985 -1.22006 -0.849545 0
     14-4.6377 -0.336759 0.0404545 0
     15-3.7477 0.921941 0.930455 0
     16-3.7477 0.921941 -0.849545 0
     174.6377 -0.336759 0.0404545 0
     183.7477 0.921941 -0.849545 0
     193.7477 0.921941 0.930455 0
    2020
    212114 15 16
     
    27273 12 13
    282811 12 13
    29 7 11 13
    30 4 7 13
    31 2 4 7
    32 2 4 5
    33 2 5 10
    34 5 10 15
    35 10 14 15
     298 11 12
     303 8 12
     311 3 8
     321 3 6
     331 6 9
     346 9 16
     359 14 16
    36369 10 14
    37372 9 10
     
    40401 7 8
    41417 8 11
    42 9 14 16
    43 6 9 16
    44 1 6 9
    45 1 3 6
    46 1 3 8
    47 3 8 12
    48 8 11 12
     4210 14 15
     435 10 15
     442 5 10
     452 4 5
     462 4 7
     474 7 13
     487 11 13
  • tests/Tesselations/heptan/3/NonConvexEnvelope-heptan.dat

    rbdb143 rb2531f  
    22VARIABLES = "X" "Y" "Z" "U"
    33ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    4 -7.27e-07 -1.22006 0.930455 -17.4952
    5 -7.27e-07 -1.22006 -0.849545 -17.4952
    6 -1.2492 0.921941 0.930455 -19.6818
    7 -1.2492 0.921941 -0.849545 -15.323
    8 1.2492 0.921941 -0.849545 -17.495
    9 1.2492 0.921941 0.930455 -17.4951
    10 -2.4985 -1.22006 -0.849545 -13.1263
    11 -2.4985 -1.22006 0.930455 -10.8961
    12 2.4985 -1.22006 0.930455 -13.1263
    13 2.4985 -1.22006 -0.849545 -10.8961
    14 -4.6377 -0.336759 0.0404545 -9.35471
    15 -3.7477 0.921941 0.930455 -9.24444
    16 -3.7477 0.921941 -0.849545 -11.4805
    17 4.6377 -0.336759 0.0404545 -9.35473
    18 3.7477 0.921941 -0.849545 -11.4805
    19 3.7477 0.921941 0.930455 -9.24445
     4-7.27e-07 -1.22006 0.930455 0
     5-7.27e-07 -1.22006 -0.849545 0
     6-1.2492 0.921941 0.930455 0
     7-1.2492 0.921941 -0.849545 0
     81.2492 0.921941 -0.849545 0
     91.2492 0.921941 0.930455 0
     10-2.4985 -1.22006 -0.849545 0
     11-2.4985 -1.22006 0.930455 0
     122.4985 -1.22006 0.930455 0
     132.4985 -1.22006 -0.849545 0
     14-4.6377 -0.336759 0.0404545 0
     15-3.7477 0.921941 0.930455 0
     16-3.7477 0.921941 -0.849545 0
     174.6377 -0.336759 0.0404545 0
     183.7477 0.921941 -0.849545 0
     193.7477 0.921941 0.930455 0
    2020
    212114 15 16
     
    27273 12 13
    282811 12 13
    29 7 11 13
    30 4 7 13
    31 2 4 7
    32 2 4 5
    33 2 5 10
    34 5 10 15
    35 10 14 15
     298 11 12
     303 8 12
     311 3 8
     321 3 6
     331 6 9
     346 9 16
     359 14 16
    36369 10 14
    37372 9 10
     
    40401 7 8
    41417 8 11
    42 9 14 16
    43 6 9 16
    44 1 6 9
    45 1 3 6
    46 1 3 8
    47 3 8 12
    48 8 11 12
     4210 14 15
     435 10 15
     442 5 10
     452 4 5
     462 4 7
     474 7 13
     487 11 13
  • tests/Tesselations/heptan/4/NonConvexEnvelope-heptan.dat

    rbdb143 rb2531f  
    22VARIABLES = "X" "Y" "Z" "U"
    33ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    4 -7.27e-07 -1.22006 0.930455 -17.4952
    5 -7.27e-07 -1.22006 -0.849545 -17.4952
    6 -1.2492 0.921941 0.930455 -19.6818
    7 -1.2492 0.921941 -0.849545 -15.323
    8 1.2492 0.921941 -0.849545 -17.495
    9 1.2492 0.921941 0.930455 -17.4951
    10 -2.4985 -1.22006 -0.849545 -13.1263
    11 -2.4985 -1.22006 0.930455 -10.8961
    12 2.4985 -1.22006 0.930455 -13.1263
    13 2.4985 -1.22006 -0.849545 -10.8961
    14 -4.6377 -0.336759 0.0404545 -9.35471
    15 -3.7477 0.921941 0.930455 -9.24444
    16 -3.7477 0.921941 -0.849545 -11.4805
    17 4.6377 -0.336759 0.0404545 -9.35473
    18 3.7477 0.921941 -0.849545 -11.4805
    19 3.7477 0.921941 0.930455 -9.24445
     4-7.27e-07 -1.22006 0.930455 0
     5-7.27e-07 -1.22006 -0.849545 0
     6-1.2492 0.921941 0.930455 0
     7-1.2492 0.921941 -0.849545 0
     81.2492 0.921941 -0.849545 0
     91.2492 0.921941 0.930455 0
     10-2.4985 -1.22006 -0.849545 0
     11-2.4985 -1.22006 0.930455 0
     122.4985 -1.22006 0.930455 0
     132.4985 -1.22006 -0.849545 0
     14-4.6377 -0.336759 0.0404545 0
     15-3.7477 0.921941 0.930455 0
     16-3.7477 0.921941 -0.849545 0
     174.6377 -0.336759 0.0404545 0
     183.7477 0.921941 -0.849545 0
     193.7477 0.921941 0.930455 0
    2020
    212114 15 16
     
    27273 12 13
    282811 12 13
    29 7 11 13
    30 4 7 13
    31 2 4 7
    32 2 4 5
    33 2 5 10
    34 5 10 15
    35 10 14 15
     298 11 12
     303 8 12
     311 3 8
     321 3 6
     331 6 9
     346 9 16
     359 14 16
    36369 10 14
    37372 9 10
     
    40401 7 8
    41417 8 11
    42 9 14 16
    43 6 9 16
    44 1 6 9
    45 1 3 6
    46 1 3 8
    47 3 8 12
    48 8 11 12
     4210 14 15
     435 10 15
     442 5 10
     452 4 5
     462 4 7
     474 7 13
     487 11 13
  • tests/regression/Tesselation/1/post/NonConvexEnvelope.dat

    rbdb143 rb2531f  
    22VARIABLES = "X" "Y" "Z" "U"
    33ZONE T="test", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    4 9.78209 2.64589 2.64589 -9.24443
    5 9.78209 2.64589 4.42589 -11.4804
    6 10.672 3.90454 3.53589 -9.35464
    7 8.53279 4.78789 2.64589 -9.11459
    8 8.53279 4.78789 4.42589 -9.11459
    9 6.39363 3.90454 3.53589 -9.35431
    10 7.28359 2.64589 2.64589 -11.4803
    11 7.28359 2.64589 4.42589 -9.24433
     49.78209 2.64589 2.64589 0
     59.78209 2.64589 4.42589 0
     610.672 3.90454 3.53589 0
     78.53279 4.78789 2.64589 0
     88.53279 4.78789 4.42589 0
     96.39363 3.90454 3.53589 0
     107.28359 2.64589 2.64589 0
     117.28359 2.64589 4.42589 0
    1212
    13131 3 4
  • tests/regression/Tesselation/2/post/ConvexEnvelope.dat

    rbdb143 rb2531f  
    22VARIABLES = "X" "Y" "Z" "U"
    33ZONE T="test", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    4 9.78209 2.64589 2.64589 -9.24443
    5 9.78209 2.64589 4.42589 -11.4804
    6 10.672 3.90454 3.53589 -9.35464
    7 8.53279 4.78789 2.64589 -9.11459
    8 8.53279 4.78789 4.42589 -9.11459
    9 6.39363 3.90454 3.53589 -9.35431
    10 7.28359 2.64589 2.64589 -11.4803
    11 7.28359 2.64589 4.42589 -9.24433
     49.78209 2.64589 2.64589 0
     59.78209 2.64589 4.42589 0
     610.672 3.90454 3.53589 0
     78.53279 4.78789 2.64589 0
     88.53279 4.78789 4.42589 0
     96.39363 3.90454 3.53589 0
     107.28359 2.64589 2.64589 0
     117.28359 2.64589 4.42589 0
    1212
    13131 3 4
  • tests/regression/Tesselation/2/post/NonConvexEnvelope.dat

    rbdb143 rb2531f  
    22VARIABLES = "X" "Y" "Z" "U"
    33ZONE T="test", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    4 9.78209 2.64589 2.64589 -9.24443
    5 9.78209 2.64589 4.42589 -11.4804
    6 10.672 3.90454 3.53589 -9.35464
    7 8.53279 4.78789 2.64589 -9.11459
    8 8.53279 4.78789 4.42589 -9.11459
    9 6.39363 3.90454 3.53589 -9.35431
    10 7.28359 2.64589 2.64589 -11.4803
    11 7.28359 2.64589 4.42589 -9.24433
     49.78209 2.64589 2.64589 0
     59.78209 2.64589 4.42589 0
     610.672 3.90454 3.53589 0
     78.53279 4.78789 2.64589 0
     88.53279 4.78789 4.42589 0
     96.39363 3.90454 3.53589 0
     107.28359 2.64589 2.64589 0
     117.28359 2.64589 4.42589 0
    1212
    13131 3 4
  • tests/regression/Tesselation/3/post/NonConvexEnvelope.dat

    rbdb143 rb2531f  
    22VARIABLES = "X" "Y" "Z" "U"
    33ZONE T="test", N=44, E=86, DATAPACKING=POINT, ZONETYPE=FETRIANGLE
    4 6.9077 1.1106 0.1214 -6.99715
    5 0.3612 -3.628 1.323 6.00416
    6 0.4884 -3.5983 -0.4521 11.8428
    7 1.4985 -2.5112 0.5308 6.07951
    8 -1.9534 -3.5752 0.5362 -4.26914
    9 -1.1883 -0.199 1.5176 14.2992
    10 -0.7165 -1.6046 2.5129 6.2134
    11 1.7627 -1.4479 -0.8349 7.15053
    12 -1.003 -1.3584 -2.8848 32.043
    13 0.0217 -2.6629 -2.2008 16.8009
    14 -2.8885 -1.5706 1.7543 -1.77076
    15 -2.0579 -3.6765 -1.7622 -7.05319
    16 -2.9259 -2.1146 -1.7672 33.6663
    17 1.0353 0.1785 2.542 48.8869
    18 1.6325 -1.3323 1.8306 1.44108
    19 0.7271 1.177 0.3594 27.9872
    20 1.3374 -0.2942 -2.961 13.6459
    21 0.6036 1.0859 -2.1126 98.521
    22 -3.2034 -0.5041 -1.0881 8.44805
    23 -5.1809 -1.8679 0.9687 -6.07448
    24 -4.6025 -2.4721 -0.6025 -6.52057
    25 -4.3385 -3.4329 0.8725 -4.12716
    26 3.191 1.3217 -2.8354 -10.5968
    27 -4.0905 0.6312 1.6028 21.8745
    28 2.8131 1.4776 2.5103 -0.774194
    29 3.9137 2.2936 1.3739 -2.51806
    30 2.159 2.5738 1.2698 151.494
    31 3.6606 -0.4593 2.1396 2.60004
    32 3.2007 -1.4419 0.7311 2.29272
    33 -3.3002 2.3589 0.0094 461.065
    34 -4.377 1.6962 -1.2433 43.4649
    35 5.2593 1.4547 -1.7445 -6.26082
    36 4.6863 2.7674 -0.6775 -8.55931
    37 5.746 -0.9031 1.204 -1.29544
    38 5.1212 -0.8867 -0.4582 31.5177
    39 -5.2641 2.8314 1.4476 21.5516
    40 5.2727 1.6068 1.2828 -2.57271
    41 -6.2394 4.6427 0.0632 -9.24392
    42 -4.4738 4.5591 -0.1458 62.5211
    43 -5.5506 3.8964 -1.3985 -10.3613
    44 -6.7081 0.9923 0.6224 -7.08885
    45 -7.5442 2.5597 0.5118 -11.4252
    46 -6.8554 1.8134 -0.9499 3.80444
    47 7.1391 2.0447 0.0264 -7.88713
     46.9077 1.1106 0.1214 1
     50.3612 -3.628 1.323 1
     60.4884 -3.5983 -0.4521 3
     71.4985 -2.5112 0.5308 4
     8-1.9534 -3.5752 0.5362 2
     9-1.1883 -0.199 1.5176 3
     10-0.7165 -1.6046 2.5129 1
     111.7627 -1.4479 -0.8349 4
     12-1.003 -1.3584 -2.8848 2
     130.0217 -2.6629 -2.2008 1
     14-2.8885 -1.5706 1.7543 2
     15-2.0579 -3.6765 -1.7622 0
     16-2.9259 -2.1146 -1.7672 1
     171.0353 0.1785 2.542 3
     181.6325 -1.3323 1.8306 2
     190.7271 1.177 0.3594 3
     201.3374 -0.2942 -2.961 2
     210.6036 1.0859 -2.1126 3
     22-3.2034 -0.5041 -1.0881 3
     23-5.1809 -1.8679 0.9687 1
     24-4.6025 -2.4721 -0.6025 2
     25-4.3385 -3.4329 0.8725 0
     263.191 1.3217 -2.8354 1
     27-4.0905 0.6312 1.6028 3
     282.8131 1.4776 2.5103 0
     293.9137 2.2936 1.3739 0
     302.159 2.5738 1.2698 5
     313.6606 -0.4593 2.1396 2
     323.2007 -1.4419 0.7311 4
     33-3.3002 2.3589 0.0094 8
     34-4.377 1.6962 -1.2433 3
     355.2593 1.4547 -1.7445 0
     364.6863 2.7674 -0.6775 0
     375.746 -0.9031 1.204 0
     385.1212 -0.8867 -0.4582 4
     39-5.2641 2.8314 1.4476 0
     405.2727 1.6068 1.2828 2
     41-6.2394 4.6427 0.0632 0
     42-4.4738 4.5591 -0.1458 3
     43-5.5506 3.8964 -1.3985 0
     44-6.7081 0.9923 0.6224 2
     45-7.5442 2.5597 0.5118 0
     46-6.8554 1.8134 -0.9499 1
     477.1391 2.0447 0.0264 0
    4848
    49491 32 44
Note: See TracChangeset for help on using the changeset viewer.