Changes in / [b2531f:bdb143]
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Legacy/oldmenu.cpp
rb2531f rbdb143 10 10 11 11 #include "Legacy/oldmenu.hpp" 12 #include "analysis_bonds.hpp" 12 13 #include "analysis_correlation.hpp" 13 14 #include "World.hpp" … … 509 510 Log() << Verbose(0) << " f - calculate temperature from current velocity" << endl; 510 511 Log() << Verbose(0) << " g - output all temperatures per step from velocities" << endl; 512 Log() << Verbose(0) << " h - count the number of hydrogen bonds" << endl; 511 513 Log() << Verbose(0) << "all else - go back" << endl; 512 514 Log() << Verbose(0) << "===============================================" << endl; … … 597 599 output->close(); 598 600 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; 599 614 } 600 615 break; -
src/analysis_bonds.cpp
rb2531f rbdb143 121 121 * \param *molecules molecules to count bonds 122 122 * \param *InterfaceElement or NULL 123 */ 124 int CountHydrogenBridgeBonds(MoleculeListClass *molecules, const element * InterfaceElement = NULL) 123 * \param *Interface2Element or NULL 124 */ 125 int CountHydrogenBridgeBonds(MoleculeListClass *molecules, const element * InterfaceElement = NULL, const element * Interface2Element = NULL) 125 126 { 126 127 int count = 0; … … 128 129 double Otherangle = 0.; 129 130 bool InterfaceFlag = false; 131 bool Interface2Flag = false; 130 132 bool OtherHydrogenFlag = true; 131 133 for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin();MolWalker != molecules->ListOfMolecules.end(); ++MolWalker) { … … 145 147 OtherHydrogens = 0; 146 148 InterfaceFlag = (InterfaceElement == NULL); 149 Interface2Flag = (Interface2Element == NULL); 147 150 for (BondList::const_iterator BondRunner = (*Runner)->ListOfBonds.begin(); BondRunner != (*Runner)->ListOfBonds.end(); BondRunner++) { 148 151 atom * const OtherAtom = (*BondRunner)->GetOtherAtom(*Runner); … … 155 158 } 156 159 InterfaceFlag = InterfaceFlag || (OtherAtom->type == InterfaceElement); 160 Interface2Flag = Interface2Flag || (OtherAtom->type == Interface2Element); 157 161 } 158 162 DoLog(1) && (Log() << Verbose(1) << "Otherangle is " << Otherangle << " for " << OtherHydrogens << " hydrogens." << endl); … … 168 172 break; 169 173 } 170 if (InterfaceFlag && OtherHydrogenFlag) {174 if (InterfaceFlag && Interface2Flag && OtherHydrogenFlag) { 171 175 // on this element (Walker) we check for bond to hydrogen, i.e. part of water molecule 172 176 for (BondList::const_iterator BondRunner = (*Walker)->ListOfBonds.begin(); BondRunner != (*Walker)->ListOfBonds.end(); BondRunner++) { -
src/analysis_bonds.hpp
rb2531f rbdb143 33 33 void MinMeanMaxBondDistanceBetweenElements(const molecule *mol, const element *type1, const element *type2, double &Min, double &Mean, double &Max); 34 34 35 int CountHydrogenBridgeBonds(MoleculeListClass * const molecules, const element * InterfaceElement );35 int CountHydrogenBridgeBonds(MoleculeListClass * const molecules, const element * InterfaceElement, const element * Interface2Element); 36 36 int CountBondsOfTwo(MoleculeListClass * const molecules, const element * const first, const element * const second); 37 37 int CountBondsOfThree(MoleculeListClass * const molecules, const element * const first, const element * const second, const element * const third); -
src/boundary.cpp
rb2531f rbdb143 1004 1004 // // Purges surplus triangles. 1005 1005 // TesselStruct->RemoveDegeneratedTriangles(); 1006 1007 // check envelope for consistency1008 status = CheckListOfBaselines(TesselStruct);1006 // 1007 // // check envelope for consistency 1008 // status = CheckListOfBaselines(TesselStruct); 1009 1009 1010 1010 cout << "before correction" << endl; -
src/builder.cpp
rb2531f rbdb143 63 63 #include "molecule.hpp" 64 64 #include "periodentafel.hpp" 65 #include "tesselationhelpers.hpp" 65 66 #include "UIElements/UIFactory.hpp" 66 67 #include "UIElements/TextUI/TextUIFactory.hpp" -
src/tesselation.cpp
rb2531f rbdb143 231 231 { 232 232 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__); 233 251 Vector BaseLineCenter, BaseLineNormal, BaseLine, helper[2], NormalCheck; 234 252 // get the two triangles … … 279 297 BaseLineNormal.Scale(-1.); 280 298 double angle = GetAngle(helper[0], helper[1], BaseLineNormal); 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 } 299 return (angle - M_PI); 288 300 } 289 301 … … 304 316 /** Returns other endpoint of the line. 305 317 * \param *point other endpoint 306 * \return NULL - if endpoint not contained in BoundaryLineSet , or pointer to BoundaryPointSet otherwise318 * \return NULL - if endpoint not contained in BoundaryLineSet::lines, or pointer to BoundaryPointSet otherwise 307 319 */ 308 320 class BoundaryPointSet *BoundaryLineSet::GetOtherEndpoint(const BoundaryPointSet * const point) const … … 315 327 else 316 328 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; 317 345 } 318 346 ; … … 661 689 ; 662 690 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 663 709 /** Calculates the center point of the triangle. 664 710 * Is third of the sum of all endpoints. … … 1110 1156 TesselPointList *ListofPoints = LC->GetPointsInsideSphere(RADIUS, (*VRunner)); 1111 1157 1112 DoLog(1) && (Log() << Verbose(1) << "The following atoms are inside sphere at " << OtherOptCenter<< ":" << endl);1158 DoLog(1) && (Log() << Verbose(1) << "The following atoms are inside sphere at " << (*VRunner) << ":" << endl); 1113 1159 for (TesselPointList::const_iterator Runner = ListofPoints->begin(); Runner != ListofPoints->end(); ++Runner) 1114 DoLog(1) && (Log() << Verbose(1) << " " << *(*Runner) << " with distance " << (*Runner)->node->distance( OtherOptCenter) << "." << endl);1160 DoLog(1) && (Log() << Verbose(1) << " " << *(*Runner) << " with distance " << (*Runner)->node->distance(*(*VRunner)) << "." << endl); 1115 1161 1116 1162 // remove baseline's endpoints and candidates … … 1128 1174 DoeLog(1) && (eLog() << Verbose(1) << "External atoms inside of sphere at " << *(*VRunner) << ":" << endl); 1129 1175 for (TesselPointList::const_iterator Runner = ListofPoints->begin(); Runner != ListofPoints->end(); ++Runner) 1130 DoeLog(1) && (eLog() << Verbose(1) << " " << *(*Runner) << endl); 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 } 1131 1185 } 1132 1186 delete (ListofPoints); 1133 1187 1134 // check with animate_sphere.tcl VMD script1135 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 }1141 1188 } 1142 1189 return flag; … … 3290 3337 } 3291 3338 } else { 3292 Do Log(1) && (Log() << Verbose(1) << "REJECT: Distance to center of circumcircle is not the same from each corner of the triangle: " << fabs(radius - otherradius) << endl);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); 3293 3340 } 3294 3341 } else { … … 4590 4637 4591 4638 DoLog(0) && (Log() << Verbose(0) << "FindAllDegeneratedTriangles() found " << DegeneratedTriangles->size() << " triangles:" << endl); 4592 IndexToIndex::iterator it; 4593 for (it = DegeneratedTriangles->begin(); it != DegeneratedTriangles->end(); it++) 4639 for (IndexToIndex::iterator it = DegeneratedTriangles->begin(); it != DegeneratedTriangles->end(); it++) 4594 4640 DoLog(0) && (Log() << Verbose(0) << (*it).first << " => " << (*it).second << endl); 4595 4641 … … 4609 4655 int count = 0; 4610 4656 4611 for (IndexToIndex::iterator TriangleKeyRunner = DegeneratedTriangles->begin(); TriangleKeyRunner != DegeneratedTriangles->end(); ++TriangleKeyRunner) { 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 4612 4665 finder = TrianglesOnBoundary.find(TriangleKeyRunner->first); 4613 4666 if (finder != TrianglesOnBoundary.end()) 4614 4667 triangle = finder->second; 4615 4668 else 4616 break;4669 continue; 4617 4670 finder = TrianglesOnBoundary.find(TriangleKeyRunner->second); 4618 4671 if (finder != TrianglesOnBoundary.end()) 4619 4672 partnerTriangle = finder->second; 4620 4673 else 4621 break; 4622 4674 continue; 4675 4676 // determine which lines are shared by the two triangles 4623 4677 bool trianglesShareLine = false; 4624 4678 for (int i = 0; i < 3; ++i) -
src/tesselation.hpp
rb2531f rbdb143 138 138 bool ContainsBoundaryPoint(const BoundaryPointSet * const point) const; 139 139 bool CheckConvexityCriterion() const; 140 double CalculateConvexity() const; 140 141 class BoundaryPointSet *GetOtherEndpoint(const BoundaryPointSet * const point) const; 142 class BoundaryTriangleSet *GetOtherTriangle(const BoundaryTriangleSet * const triangle) const; 141 143 142 144 class BoundaryPointSet *endpoints[2]; … … 164 166 bool ContainsBoundaryPoint(const TesselPoint * const point) const; 165 167 class BoundaryPointSet *GetThirdEndpoint(const BoundaryLineSet * const line) const; 168 class BoundaryLineSet *GetThirdLine(const BoundaryPointSet * const point) const; 166 169 bool IsPresentTupel(const BoundaryPointSet * const Points[3]) const; 167 170 bool IsPresentTupel(const BoundaryTriangleSet * const T) const; -
src/tesselationhelpers.cpp
rb2531f rbdb143 12 12 #include "info.hpp" 13 13 #include "linkedcell.hpp" 14 #include "linearsystemofequations.hpp" 14 15 #include "log.hpp" 15 16 #include "tesselation.hpp" … … 185 186 beta = M_PI - SideC.Angle(SideA); 186 187 gamma = M_PI - SideA.Angle(SideB); 187 //Log() << Verbose(1) << "INFO: alpha = " << alpha/M_PI*180. << ", beta = " << beta/M_PI*180. << ", gamma = " << gamma/M_PI*180. << "." << endl;188 Log() << Verbose(1) << "INFO: alpha = " << alpha/M_PI*180. << ", beta = " << beta/M_PI*180. << ", gamma = " << gamma/M_PI*180. << "." << endl; 188 189 if (fabs(M_PI - alpha - beta - gamma) > HULLEPSILON) { 189 190 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); … … 198 199 (*Center) += helper; 199 200 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; 200 238 }; 201 239 … … 419 457 /** Calculates the volume of a general tetraeder. 420 458 * \param *a first vector 421 * \param * a firstvector422 * \param * a firstvector423 * \param * a firstvector459 * \param *b second vector 460 * \param *c third vector 461 * \param *d fourth vector 424 462 * \return \f$ \frac{1}{6} \cdot ((a-d) \times (a-c) \cdot (a-b)) \f$ 425 463 */ … … 439 477 volume = 1./6. * fabs(Point.ScalarProduct(TetraederVector[2])); 440 478 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; 441 499 }; 442 500 … … 882 940 class BoundaryPointSet *point = NULL; 883 941 class BoundaryLineSet *line = NULL; 884 885 // calculate remaining concavity 942 class BoundaryTriangleSet *triangle = NULL; 943 double ConcavityPerLine = 0.; 944 double ConcavityPerTriangle = 0.; 945 double area = 0.; 946 double totalarea = 0.; 947 886 948 for (PointMap::const_iterator PointRunner = TesselStruct->PointsOnBoundary.begin(); PointRunner != TesselStruct->PointsOnBoundary.end(); PointRunner++) { 887 949 point = PointRunner->second; 888 950 DoLog(1) && (Log() << Verbose(1) << "INFO: Current point is " << *point << "." << endl); 889 point->value = 0; 951 952 // calculate mean concavity over all connected line 953 ConcavityPerLine = 0.; 890 954 for (LineMap::iterator LineRunner = point->lines.begin(); LineRunner != point->lines.end(); LineRunner++) { 891 955 line = LineRunner->second; 892 956 //Log() << Verbose(1) << "INFO: Current line of point " << *point << " is " << *line << "." << endl; 893 if (!line->CheckConvexityCriterion()) 894 point->value += 1; 895 } 896 } 897 }; 898 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 }; 899 1016 900 1017 /** Checks whether each BoundaryLineSet in the Tesselation has two triangles. -
src/tesselationhelpers.hpp
rb2531f rbdb143 43 43 /********************************************** definitions *********************************/ 44 44 45 #define HULLEPSILON 1e- 1045 #define HULLEPSILON 1e-9 //!< TODO: Get rid of HULLEPSILON, points to numerical instabilities 46 46 47 47 /********************************************** declarations *******************************/ … … 55 55 bool existsIntersection(const Vector &point1, const Vector &point2, const Vector &point3, const Vector &point4); 56 56 double 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); 57 58 double GetAngle(const Vector &point, const Vector &reference, const Vector &OrthogonalVector); 58 59 … … 68 69 void WriteVrmlFile(ofstream * const vrmlfile, const Tesselation * const Tess, const PointCloud * const cloud); 69 70 void CalculateConcavityPerBoundaryPoint(const Tesselation * const TesselStruct); 71 void CalculateConstrictionPerBoundaryPoint(const Tesselation * const TesselStruct, const Tesselation * const Convex); 70 72 double DistanceToTrianglePlane(const Vector *x, const BoundaryTriangleSet * const triangle); 71 73 -
src/unittests/CountBondsUnitTest.cpp
rb2531f rbdb143 154 154 Translator = Vector(3,0,0); 155 155 TestMolecule2->Translate(&Translator); 156 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL ) );157 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, oxygen ) );156 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL, NULL) ); 157 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, oxygen, NULL) ); 158 158 //OutputTestMolecule(TestMolecule2, "testmolecule2-1.xyz"); 159 159 Translator = Vector(-3,0,0); … … 163 163 Translator = Vector(0,3,0); 164 164 TestMolecule2->Translate(&Translator); 165 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL ) );165 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL, NULL) ); 166 166 //OutputTestMolecule(TestMolecule2, "testmolecule2-2.xyz"); 167 167 Translator = Vector(0,-3,0); … … 172 172 TestMolecule2->Scale((const double ** const)&mirror); 173 173 TestMolecule2->Translate(&Translator); 174 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL ) );174 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, NULL) ); 175 175 //OutputTestMolecule(TestMolecule2, "testmolecule2-3.xyz"); 176 176 Translator = Vector(0,3,0); … … 181 181 Translator = Vector(2,1,0); 182 182 TestMolecule2->Translate(&Translator); 183 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL ) );183 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, NULL, NULL) ); 184 184 //OutputTestMolecule(TestMolecule2, "testmolecule2-4.xyz"); 185 185 Translator = Vector(-2,-1,0); … … 189 189 Translator = Vector(0,0,3); 190 190 TestMolecule2->Translate(&Translator); 191 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL ) );191 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, NULL) ); 192 192 //OutputTestMolecule(TestMolecule2, "testmolecule2-5.xyz"); 193 193 Translator = Vector(0,0,-3); … … 198 198 TestMolecule2->Scale((const double ** const)&mirror); 199 199 TestMolecule2->Translate(&Translator); 200 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL ) );200 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, NULL) ); 201 201 //OutputTestMolecule(TestMolecule2, "testmolecule2-6.xyz"); 202 202 Translator = Vector(3,0,0); … … 208 208 TestMolecule2->Scale((const double ** const)&mirror); 209 209 TestMolecule2->Translate(&Translator); 210 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL ) );210 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, NULL) ); 211 211 //OutputTestMolecule(TestMolecule2, "testmolecule2-7.xyz"); 212 212 Translator = Vector(-3,0,0); … … 219 219 TestMolecule2->Translate(&Translator); 220 220 //OutputTestMolecule(TestMolecule2, "testmolecule2-8.xyz"); 221 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL ) );221 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL, NULL) ); 222 222 Translator = Vector(0,-3,0); 223 223 TestMolecule2->Translate(&Translator); -
src/unittests/TestRunnerMain.cpp
rb2531f rbdb143 17 17 #include "../../../TestRunnerClient.h" 18 18 #include "../../../TestRunnerClient.cpp" 19 19 20 #else 20 #include "UnitTestMain.cpp"21 #endif22 21 22 #include "unittests/UnitTestMain.cpp" 23 24 #endif /* HAVE_ECUT */ -
src/unittests/UnitTestMain.cpp
rb2531f rbdb143 6 6 */ 7 7 8 #include <cppunit/CompilerOutputter.h>9 #include <cppunit/extensions/TestFactoryRegistry.h>10 #include <cppunit/ui/text/TestRunner.h>11 12 8 // include config.h 13 9 #ifdef HAVE_CONFIG_H 14 10 #include <config.h> 15 11 #endif 12 13 #include <cppunit/CompilerOutputter.h> 14 #include <cppunit/extensions/TestFactoryRegistry.h> 15 #include <cppunit/ui/text/TestRunner.h> 16 16 17 17 /********************************************** Main routine **************************************/ … … 35 35 return wasSucessful ? 0 : 1; 36 36 }; 37 -
tests/Tesselations/heptan/1.5/NonConvexEnvelope-heptan.dat
rb2531f rbdb143 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=23, E=64, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 35 -7.27e-07 -1.22006 -0.849545 36 -1.2492 0.921941 0.930455 37 -1.2492 0.921941 -0.849545 38 1.2492 0.921941 -0.849545 39 1.2492 0.921941 0.930455 310 -2.4985 -1.22006 -0.849545 411 -2.4985 -1.22006 0.930455 412 2.4985 -1.22006 0.930455 413 2.4985 -1.22006 -0.849545 414 -4.6377 -0.336759 0.0404545 615 -3.7477 0.921941 0.930455 516 -3.7477 0.921941 -0.849545 517 4.6377 -0.336759 0.0404545 418 3.7477 0.921941 -0.849545 419 3.7477 0.921941 0.930455 420 -7.27e-07 -0.590759 0.0404545 621 -1.2492 0.292641 0.0404545 622 1.2492 0.292641 0.0404545 623 -2.4985 -0.590759 0.0404545 624 2.4985 -0.590759 0.0404545 625 -3.7477 0.292641 0.0404545 1226 3.7477 0.292641 0.0404545 124 -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 27 27 28 28 14 15 23 … … 38 38 5 18 19 39 39 4 5 18 40 6 18 19 41 3 6 18 40 42 3 4 18 41 43 3 4 18 42 3 18 1943 3 6 1944 44 4 18 22 45 45 4 13 22 … … 48 48 12 13 22 49 49 12 13 22 50 16 19 23 51 6 16 19 52 14 16 23 53 14 16 23 54 9 14 23 55 9 16 23 50 6 19 23 51 6 16 23 56 52 11 13 22 57 53 11 13 22 … … 62 58 8 11 22 63 59 8 12 22 60 14 16 23 61 14 16 23 62 9 14 23 63 9 16 23 64 3 8 12 65 1 3 8 66 1 3 6 67 1 6 9 68 6 9 16 64 69 4 7 13 65 70 2 4 7 … … 67 72 2 5 10 68 73 5 10 15 69 3 8 1270 1 3 871 1 3 672 1 6 973 6 9 1674 74 10 14 21 75 75 9 10 21 … … 84 84 2 17 20 85 85 2 7 20 86 1 17 2087 1 8 2088 86 7 8 20 89 87 7 8 20 90 88 7 11 20 91 89 8 11 20 90 8 17 20 91 1 8 17 -
tests/Tesselations/heptan/2.5/NonConvexEnvelope-heptan.dat
rb2531f rbdb143 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 05 -7.27e-07 -1.22006 -0.849545 06 -1.2492 0.921941 0.930455 07 -1.2492 0.921941 -0.849545 08 1.2492 0.921941 -0.849545 09 1.2492 0.921941 0.930455 010 -2.4985 -1.22006 -0.849545 011 -2.4985 -1.22006 0.930455 012 2.4985 -1.22006 0.930455 013 2.4985 -1.22006 -0.849545 014 -4.6377 -0.336759 0.0404545 015 -3.7477 0.921941 0.930455 016 -3.7477 0.921941 -0.849545 017 4.6377 -0.336759 0.0404545 018 3.7477 0.921941 -0.849545 019 3.7477 0.921941 0.930455 04 -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 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 29 8 11 12 30 3 8 12 31 1 3 8 32 1 3 6 33 1 6 9 34 6 9 16 35 9 14 16 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 42 10 14 15 43 5 10 15 44 2 5 10 45 2 4 5 46 2 4 7 47 4 7 13 48 7 11 13 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 -
tests/Tesselations/heptan/2/NonConvexEnvelope-heptan.dat
rb2531f rbdb143 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 05 -7.27e-07 -1.22006 -0.849545 06 -1.2492 0.921941 0.930455 07 -1.2492 0.921941 -0.849545 08 1.2492 0.921941 -0.849545 09 1.2492 0.921941 0.930455 010 -2.4985 -1.22006 -0.849545 011 -2.4985 -1.22006 0.930455 012 2.4985 -1.22006 0.930455 013 2.4985 -1.22006 -0.849545 014 -4.6377 -0.336759 0.0404545 015 -3.7477 0.921941 0.930455 016 -3.7477 0.921941 -0.849545 017 4.6377 -0.336759 0.0404545 018 3.7477 0.921941 -0.849545 019 3.7477 0.921941 0.930455 04 -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 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 29 8 11 12 30 3 8 12 31 1 3 8 32 1 3 6 33 1 6 9 34 6 9 16 35 9 14 16 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 42 10 14 15 43 5 10 15 44 2 5 10 45 2 4 5 46 2 4 7 47 4 7 13 48 7 11 13 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 -
tests/Tesselations/heptan/25/NonConvexEnvelope-heptan.dat
rb2531f rbdb143 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 05 -7.27e-07 -1.22006 -0.849545 06 -1.2492 0.921941 0.930455 07 -1.2492 0.921941 -0.849545 08 1.2492 0.921941 -0.849545 09 1.2492 0.921941 0.930455 010 -2.4985 -1.22006 -0.849545 011 -2.4985 -1.22006 0.930455 012 2.4985 -1.22006 0.930455 013 2.4985 -1.22006 -0.849545 014 -4.6377 -0.336759 0.0404545 015 -3.7477 0.921941 0.930455 016 -3.7477 0.921941 -0.849545 017 4.6377 -0.336759 0.0404545 018 3.7477 0.921941 -0.849545 019 3.7477 0.921941 0.930455 04 -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 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 29 8 11 12 30 3 8 12 31 1 3 8 32 1 3 6 33 1 6 9 34 6 9 16 35 9 14 16 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 42 10 14 15 43 5 10 15 44 2 5 10 45 2 4 5 46 2 4 7 47 4 7 13 48 7 11 13 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 -
tests/Tesselations/heptan/3.5/NonConvexEnvelope-heptan.dat
rb2531f rbdb143 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 05 -7.27e-07 -1.22006 -0.849545 06 -1.2492 0.921941 0.930455 07 -1.2492 0.921941 -0.849545 08 1.2492 0.921941 -0.849545 09 1.2492 0.921941 0.930455 010 -2.4985 -1.22006 -0.849545 011 -2.4985 -1.22006 0.930455 012 2.4985 -1.22006 0.930455 013 2.4985 -1.22006 -0.849545 014 -4.6377 -0.336759 0.0404545 015 -3.7477 0.921941 0.930455 016 -3.7477 0.921941 -0.849545 017 4.6377 -0.336759 0.0404545 018 3.7477 0.921941 -0.849545 019 3.7477 0.921941 0.930455 04 -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 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 29 8 11 12 30 3 8 12 31 1 3 8 32 1 3 6 33 1 6 9 34 6 9 16 35 9 14 16 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 42 10 14 15 43 5 10 15 44 2 5 10 45 2 4 5 46 2 4 7 47 4 7 13 48 7 11 13 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 -
tests/Tesselations/heptan/3/NonConvexEnvelope-heptan.dat
rb2531f rbdb143 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 05 -7.27e-07 -1.22006 -0.849545 06 -1.2492 0.921941 0.930455 07 -1.2492 0.921941 -0.849545 08 1.2492 0.921941 -0.849545 09 1.2492 0.921941 0.930455 010 -2.4985 -1.22006 -0.849545 011 -2.4985 -1.22006 0.930455 012 2.4985 -1.22006 0.930455 013 2.4985 -1.22006 -0.849545 014 -4.6377 -0.336759 0.0404545 015 -3.7477 0.921941 0.930455 016 -3.7477 0.921941 -0.849545 017 4.6377 -0.336759 0.0404545 018 3.7477 0.921941 -0.849545 019 3.7477 0.921941 0.930455 04 -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 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 29 8 11 12 30 3 8 12 31 1 3 8 32 1 3 6 33 1 6 9 34 6 9 16 35 9 14 16 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 42 10 14 15 43 5 10 15 44 2 5 10 45 2 4 5 46 2 4 7 47 4 7 13 48 7 11 13 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 -
tests/Tesselations/heptan/4/NonConvexEnvelope-heptan.dat
rb2531f rbdb143 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="heptan", N=16, E=28, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 -7.27e-07 -1.22006 0.930455 05 -7.27e-07 -1.22006 -0.849545 06 -1.2492 0.921941 0.930455 07 -1.2492 0.921941 -0.849545 08 1.2492 0.921941 -0.849545 09 1.2492 0.921941 0.930455 010 -2.4985 -1.22006 -0.849545 011 -2.4985 -1.22006 0.930455 012 2.4985 -1.22006 0.930455 013 2.4985 -1.22006 -0.849545 014 -4.6377 -0.336759 0.0404545 015 -3.7477 0.921941 0.930455 016 -3.7477 0.921941 -0.849545 017 4.6377 -0.336759 0.0404545 018 3.7477 0.921941 -0.849545 019 3.7477 0.921941 0.930455 04 -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 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 12 13 29 8 11 12 30 3 8 12 31 1 3 8 32 1 3 6 33 1 6 9 34 6 9 16 35 9 14 16 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 8 11 42 10 14 15 43 5 10 15 44 2 5 10 45 2 4 5 46 2 4 7 47 4 7 13 48 7 11 13 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 -
tests/regression/Tesselation/1/post/NonConvexEnvelope.dat
rb2531f rbdb143 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="test", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 9.78209 2.64589 2.64589 05 9.78209 2.64589 4.42589 06 10.672 3.90454 3.53589 07 8.53279 4.78789 2.64589 08 8.53279 4.78789 4.42589 09 6.39363 3.90454 3.53589 010 7.28359 2.64589 2.64589 011 7.28359 2.64589 4.42589 04 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 12 12 13 13 1 3 4 -
tests/regression/Tesselation/2/post/ConvexEnvelope.dat
rb2531f rbdb143 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="test", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 9.78209 2.64589 2.64589 05 9.78209 2.64589 4.42589 06 10.672 3.90454 3.53589 07 8.53279 4.78789 2.64589 08 8.53279 4.78789 4.42589 09 6.39363 3.90454 3.53589 010 7.28359 2.64589 2.64589 011 7.28359 2.64589 4.42589 04 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 12 12 13 13 1 3 4 -
tests/regression/Tesselation/2/post/NonConvexEnvelope.dat
rb2531f rbdb143 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="test", N=8, E=12, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 9.78209 2.64589 2.64589 05 9.78209 2.64589 4.42589 06 10.672 3.90454 3.53589 07 8.53279 4.78789 2.64589 08 8.53279 4.78789 4.42589 09 6.39363 3.90454 3.53589 010 7.28359 2.64589 2.64589 011 7.28359 2.64589 4.42589 04 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 12 12 13 13 1 3 4 -
tests/regression/Tesselation/3/post/NonConvexEnvelope.dat
rb2531f rbdb143 2 2 VARIABLES = "X" "Y" "Z" "U" 3 3 ZONE T="test", N=44, E=86, DATAPACKING=POINT, ZONETYPE=FETRIANGLE 4 6.9077 1.1106 0.1214 15 0.3612 -3.628 1.323 16 0.4884 -3.5983 -0.4521 37 1.4985 -2.5112 0.5308 48 -1.9534 -3.5752 0.5362 29 -1.1883 -0.199 1.5176 310 -0.7165 -1.6046 2.5129 111 1.7627 -1.4479 -0.8349 412 -1.003 -1.3584 -2.8848 213 0.0217 -2.6629 -2.2008 1 14 -2.8885 -1.5706 1.7543 215 -2.0579 -3.6765 -1.7622 016 -2.9259 -2.1146 -1.7672 117 1.0353 0.1785 2.542 318 1.6325 -1.3323 1.8306 219 0.7271 1.177 0.3594 320 1.3374 -0.2942 -2.961 221 0.6036 1.0859 -2.1126 322 -3.2034 -0.5041 -1.0881 323 -5.1809 -1.8679 0.9687 124 -4.6025 -2.4721 -0.6025 225 -4.3385 -3.4329 0.8725 026 3.191 1.3217 -2.8354 127 -4.0905 0.6312 1.6028 328 2.8131 1.4776 2.5103 029 3.9137 2.2936 1.3739 030 2.159 2.5738 1.2698 531 3.6606 -0.4593 2.1396 2 32 3.2007 -1.4419 0.7311 433 -3.3002 2.3589 0.0094 834 -4.377 1.6962 -1.2433 335 5.2593 1.4547 -1.7445 036 4.6863 2.7674 -0.6775 037 5.746 -0.9031 1.204 038 5.1212 -0.8867 -0.4582 439 -5.2641 2.8314 1.4476 040 5.2727 1.6068 1.2828 241 -6.2394 4.6427 0.0632 042 -4.4738 4.5591 -0.1458 343 -5.5506 3.8964 -1.3985 044 -6.7081 0.9923 0.6224 245 -7.5442 2.5597 0.5118 046 -6.8554 1.8134 -0.9499 147 7.1391 2.0447 0.0264 04 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 48 48 49 49 1 32 44
Note:
See TracChangeset
for help on using the changeset viewer.