Changes in / [bdb143:b2531f]
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Legacy/oldmenu.cpp
rbdb143 rb2531f 10 10 11 11 #include "Legacy/oldmenu.hpp" 12 #include "analysis_bonds.hpp"13 12 #include "analysis_correlation.hpp" 14 13 #include "World.hpp" … … 510 509 Log() << Verbose(0) << " f - calculate temperature from current velocity" << endl; 511 510 Log() << Verbose(0) << " g - output all temperatures per step from velocities" << endl; 512 Log() << Verbose(0) << " h - count the number of hydrogen bonds" << endl;513 511 Log() << Verbose(0) << "all else - go back" << endl; 514 512 Log() << Verbose(0) << "===============================================" << endl; … … 599 597 output->close(); 600 598 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;614 599 } 615 600 break; -
src/analysis_bonds.cpp
rbdb143 rb2531f 121 121 * \param *molecules molecules to count bonds 122 122 * \param *InterfaceElement or NULL 123 * \param *Interface2Element or NULL 124 */ 125 int CountHydrogenBridgeBonds(MoleculeListClass *molecules, const element * InterfaceElement = NULL, const element * Interface2Element = NULL) 123 */ 124 int CountHydrogenBridgeBonds(MoleculeListClass *molecules, const element * InterfaceElement = NULL) 126 125 { 127 126 int count = 0; … … 129 128 double Otherangle = 0.; 130 129 bool InterfaceFlag = false; 131 bool Interface2Flag = false;132 130 bool OtherHydrogenFlag = true; 133 131 for (MoleculeList::const_iterator MolWalker = molecules->ListOfMolecules.begin();MolWalker != molecules->ListOfMolecules.end(); ++MolWalker) { … … 147 145 OtherHydrogens = 0; 148 146 InterfaceFlag = (InterfaceElement == NULL); 149 Interface2Flag = (Interface2Element == NULL);150 147 for (BondList::const_iterator BondRunner = (*Runner)->ListOfBonds.begin(); BondRunner != (*Runner)->ListOfBonds.end(); BondRunner++) { 151 148 atom * const OtherAtom = (*BondRunner)->GetOtherAtom(*Runner); … … 158 155 } 159 156 InterfaceFlag = InterfaceFlag || (OtherAtom->type == InterfaceElement); 160 Interface2Flag = Interface2Flag || (OtherAtom->type == Interface2Element);161 157 } 162 158 DoLog(1) && (Log() << Verbose(1) << "Otherangle is " << Otherangle << " for " << OtherHydrogens << " hydrogens." << endl); … … 172 168 break; 173 169 } 174 if (InterfaceFlag && Interface2Flag &&OtherHydrogenFlag) {170 if (InterfaceFlag && OtherHydrogenFlag) { 175 171 // on this element (Walker) we check for bond to hydrogen, i.e. part of water molecule 176 172 for (BondList::const_iterator BondRunner = (*Walker)->ListOfBonds.begin(); BondRunner != (*Walker)->ListOfBonds.end(); BondRunner++) { -
src/analysis_bonds.hpp
rbdb143 rb2531f 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 , const element * Interface2Element);35 int CountHydrogenBridgeBonds(MoleculeListClass * const molecules, const element * InterfaceElement); 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
rbdb143 rb2531f 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
rbdb143 rb2531f 63 63 #include "molecule.hpp" 64 64 #include "periodentafel.hpp" 65 #include "tesselationhelpers.hpp"66 65 #include "UIElements/UIFactory.hpp" 67 66 #include "UIElements/TextUI/TextUIFactory.hpp" -
src/tesselation.cpp
rbdb143 rb2531f 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 concave247 */248 double BoundaryLineSet::CalculateConvexity() const249 {250 Info FunctionInfo(__func__);251 233 Vector BaseLineCenter, BaseLineNormal, BaseLine, helper[2], NormalCheck; 252 234 // get the two triangles … … 297 279 BaseLineNormal.Scale(-1.); 298 280 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 } 300 288 } 301 289 … … 316 304 /** Returns other endpoint of the line. 317 305 * \param *point other endpoint 318 * \return NULL - if endpoint not contained in BoundaryLineSet ::lines, or pointer to BoundaryPointSet otherwise306 * \return NULL - if endpoint not contained in BoundaryLineSet, or pointer to BoundaryPointSet otherwise 319 307 */ 320 308 class BoundaryPointSet *BoundaryLineSet::GetOtherEndpoint(const BoundaryPointSet * const point) const … … 327 315 else 328 316 return NULL; 329 }330 ;331 332 /** Returns other triangle of the line.333 * \param *point other endpoint334 * \return NULL - if triangle not contained in BoundaryLineSet::triangles, or pointer to BoundaryTriangleSet otherwise335 */336 class BoundaryTriangleSet *BoundaryLineSet::GetOtherTriangle(const BoundaryTriangleSet * const triangle) const337 {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;345 317 } 346 318 ; … … 689 661 ; 690 662 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 line693 * \return pointer to desired third baseline694 */695 class BoundaryLineSet *BoundaryTriangleSet::GetThirdLine(const BoundaryPointSet * const point) const696 {697 Info FunctionInfo(__func__);698 // sanity check699 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 709 663 /** Calculates the center point of the triangle. 710 664 * Is third of the sum of all endpoints. … … 1156 1110 TesselPointList *ListofPoints = LC->GetPointsInsideSphere(RADIUS, (*VRunner)); 1157 1111 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); 1159 1113 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); 1161 1115 1162 1116 // remove baseline's endpoints and candidates … … 1174 1128 DoeLog(1) && (eLog() << Verbose(1) << "External atoms inside of sphere at " << *(*VRunner) << ":" << endl); 1175 1129 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); 1185 1131 } 1186 1132 delete (ListofPoints); 1187 1133 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 } 1188 1141 } 1189 1142 return flag; … … 3337 3290 } 3338 3291 } else { 3339 Do eLog(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); 3340 3293 } 3341 3294 } else { … … 4637 4590 4638 4591 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++) 4640 4594 DoLog(0) && (Log() << Verbose(0) << (*it).first << " => " << (*it).second << endl); 4641 4595 … … 4655 4609 int count = 0; 4656 4610 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) { 4665 4612 finder = TrianglesOnBoundary.find(TriangleKeyRunner->first); 4666 4613 if (finder != TrianglesOnBoundary.end()) 4667 4614 triangle = finder->second; 4668 4615 else 4669 continue;4616 break; 4670 4617 finder = TrianglesOnBoundary.find(TriangleKeyRunner->second); 4671 4618 if (finder != TrianglesOnBoundary.end()) 4672 4619 partnerTriangle = finder->second; 4673 4620 else 4674 continue; 4675 4676 // determine which lines are shared by the two triangles 4621 break; 4622 4677 4623 bool trianglesShareLine = false; 4678 4624 for (int i = 0; i < 3; ++i) -
src/tesselation.hpp
rbdb143 rb2531f 138 138 bool ContainsBoundaryPoint(const BoundaryPointSet * const point) const; 139 139 bool CheckConvexityCriterion() const; 140 double CalculateConvexity() const;141 140 class BoundaryPointSet *GetOtherEndpoint(const BoundaryPointSet * const point) const; 142 class BoundaryTriangleSet *GetOtherTriangle(const BoundaryTriangleSet * const triangle) const;143 141 144 142 class BoundaryPointSet *endpoints[2]; … … 166 164 bool ContainsBoundaryPoint(const TesselPoint * const point) const; 167 165 class BoundaryPointSet *GetThirdEndpoint(const BoundaryLineSet * const line) const; 168 class BoundaryLineSet *GetThirdLine(const BoundaryPointSet * const point) const;169 166 bool IsPresentTupel(const BoundaryPointSet * const Points[3]) const; 170 167 bool IsPresentTupel(const BoundaryTriangleSet * const T) const; -
src/tesselationhelpers.cpp
rbdb143 rb2531f 12 12 #include "info.hpp" 13 13 #include "linkedcell.hpp" 14 #include "linearsystemofequations.hpp"15 14 #include "log.hpp" 16 15 #include "tesselation.hpp" … … 186 185 beta = M_PI - SideC.Angle(SideA); 187 186 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; 189 188 if (fabs(M_PI - alpha - beta - gamma) > HULLEPSILON) { 190 189 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); … … 199 198 (*Center) += helper; 200 199 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 below228 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;238 200 }; 239 201 … … 457 419 /** Calculates the volume of a general tetraeder. 458 420 * \param *a first vector 459 * \param * b secondvector460 * \param * c thirdvector461 * \param * d fourthvector421 * \param *a first vector 422 * \param *a first vector 423 * \param *a first vector 462 424 * \return \f$ \frac{1}{6} \cdot ((a-d) \times (a-c) \cdot (a-b)) \f$ 463 425 */ … … 477 439 volume = 1./6. * fabs(Point.ScalarProduct(TetraederVector[2])); 478 440 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 vector484 * \param &B second vector485 * \param &C third vector486 * \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;499 441 }; 500 442 … … 940 882 class BoundaryPointSet *point = NULL; 941 883 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 948 886 for (PointMap::const_iterator PointRunner = TesselStruct->PointsOnBoundary.begin(); PointRunner != TesselStruct->PointsOnBoundary.end(); PointRunner++) { 949 887 point = PointRunner->second; 950 888 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; 954 890 for (LineMap::iterator LineRunner = point->lines.begin(); LineRunner != point->lines.end(); LineRunner++) { 955 891 line = LineRunner->second; 956 892 //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 1016 899 1017 900 /** Checks whether each BoundaryLineSet in the Tesselation has two triangles. -
src/tesselationhelpers.hpp
rbdb143 rb2531f 43 43 /********************************************** definitions *********************************/ 44 44 45 #define HULLEPSILON 1e- 9 //!< TODO: Get rid of HULLEPSILON, points to numerical instabilities45 #define HULLEPSILON 1e-10 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);58 57 double GetAngle(const Vector &point, const Vector &reference, const Vector &OrthogonalVector); 59 58 … … 69 68 void WriteVrmlFile(ofstream * const vrmlfile, const Tesselation * const Tess, const PointCloud * const cloud); 70 69 void CalculateConcavityPerBoundaryPoint(const Tesselation * const TesselStruct); 71 void CalculateConstrictionPerBoundaryPoint(const Tesselation * const TesselStruct, const Tesselation * const Convex);72 70 double DistanceToTrianglePlane(const Vector *x, const BoundaryTriangleSet * const triangle); 73 71 -
src/unittests/CountBondsUnitTest.cpp
rbdb143 rb2531f 154 154 Translator = Vector(3,0,0); 155 155 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) ); 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 , NULL) );165 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, 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 , NULL) );174 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, 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 , NULL) );183 CPPUNIT_ASSERT_EQUAL( 1 , CountHydrogenBridgeBonds(molecules, 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 , NULL) );191 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, 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 , NULL) );200 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, 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 , NULL) );210 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, 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 , NULL) );221 CPPUNIT_ASSERT_EQUAL( 0 , CountHydrogenBridgeBonds(molecules, NULL) ); 222 222 Translator = Vector(0,-3,0); 223 223 TestMolecule2->Translate(&Translator); -
src/unittests/TestRunnerMain.cpp
rbdb143 rb2531f 17 17 #include "../../../TestRunnerClient.h" 18 18 #include "../../../TestRunnerClient.cpp" 19 #else 20 #include "UnitTestMain.cpp" 21 #endif 19 22 20 #else21 22 #include "unittests/UnitTestMain.cpp"23 24 #endif /* HAVE_ECUT */ -
src/unittests/UnitTestMain.cpp
rbdb143 rb2531f 6 6 */ 7 7 8 #include <cppunit/CompilerOutputter.h> 9 #include <cppunit/extensions/TestFactoryRegistry.h> 10 #include <cppunit/ui/text/TestRunner.h> 11 8 12 // include config.h 9 13 #ifdef HAVE_CONFIG_H 10 14 #include <config.h> 11 15 #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
rbdb143 rb2531f 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 18.72295 -7.27e-07 -1.22006 -0.849545 18.72296 -1.2492 0.921941 0.930455 18.72277 -1.2492 0.921941 -0.849545 18.72278 1.2492 0.921941 -0.849545 18.72229 1.2492 0.921941 0.930455 27.064110 -2.4985 -1.22006 -0.849545 19.976911 -2.4985 -1.22006 0.930455 27.472712 2.4985 -1.22006 0.930455 19.976913 2.4985 -1.22006 -0.849545 27.472714 -4.6377 -0.336759 0.0404545 21.54115 -3.7477 0.921941 0.930455 18.885316 -3.7477 0.921941 -0.849545 18.885317 4.6377 -0.336759 0.0404545 10.661818 3.7477 0.921941 -0.849545 18.540619 3.7477 0.921941 0.930455 12.198820 -7.27e-07 -0.590759 0.0404545 23.017421 -1.2492 0.292641 0.0404545 23.016722 1.2492 0.292641 0.0404545 20.163223 -2.4985 -0.590759 0.0404545 18.979824 2.4985 -0.590759 0.0404545 18.979825 -3.7477 0.292641 0.0404545 39.526726 3.7477 0.292641 0.0404545 23.25124 -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 8 1.2492 0.921941 -0.849545 3 9 1.2492 0.921941 0.930455 3 10 -2.4985 -1.22006 -0.849545 4 11 -2.4985 -1.22006 0.930455 4 12 2.4985 -1.22006 0.930455 4 13 2.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 17 4.6377 -0.336759 0.0404545 4 18 3.7477 0.921941 -0.849545 4 19 3.7477 0.921941 0.930455 4 20 -7.27e-07 -0.590759 0.0404545 6 21 -1.2492 0.292641 0.0404545 6 22 1.2492 0.292641 0.0404545 6 23 -2.4985 -0.590759 0.0404545 6 24 2.4985 -0.590759 0.0404545 6 25 -3.7477 0.292641 0.0404545 12 26 3.7477 0.292641 0.0404545 12 27 27 28 28 14 15 23 … … 38 38 5 18 19 39 39 4 5 18 40 6 18 1941 3 6 1842 40 3 4 18 43 41 3 4 18 42 3 18 19 43 3 6 19 44 44 4 18 22 45 45 4 13 22 … … 48 48 12 13 22 49 49 12 13 22 50 6 19 23 51 6 16 23 50 16 19 23 51 6 16 19 52 14 16 23 53 14 16 23 54 9 14 23 55 9 16 23 52 56 11 13 22 53 57 11 13 22 … … 58 62 8 11 22 59 63 8 12 22 60 14 16 23 61 14 16 23 62 9 14 23 63 9 16 23 64 4 7 13 65 2 4 7 66 2 4 5 67 2 5 10 68 5 10 15 64 69 3 8 12 65 70 1 3 8 … … 67 72 1 6 9 68 73 6 9 16 69 4 7 1370 2 4 771 2 4 572 2 5 1073 5 10 1574 74 10 14 21 75 75 9 10 21 … … 84 84 2 17 20 85 85 2 7 20 86 1 17 20 87 1 8 20 86 88 7 8 20 87 89 7 8 20 88 90 7 11 20 89 91 8 11 20 90 8 17 2091 1 8 17 -
tests/Tesselations/heptan/2.5/NonConvexEnvelope-heptan.dat
rbdb143 rb2531f 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 -17.49525 -7.27e-07 -1.22006 -0.849545 -17.49526 -1.2492 0.921941 0.930455 -19.68187 -1.2492 0.921941 -0.849545 -15.3238 1.2492 0.921941 -0.849545 -17.4959 1.2492 0.921941 0.930455 -17.495110 -2.4985 -1.22006 -0.849545 -13.126311 -2.4985 -1.22006 0.930455 -10.896112 2.4985 -1.22006 0.930455 -13.126313 2.4985 -1.22006 -0.849545 -10.896114 -4.6377 -0.336759 0.0404545 -9.3547115 -3.7477 0.921941 0.930455 -9.2444416 -3.7477 0.921941 -0.849545 -11.480517 4.6377 -0.336759 0.0404545 -9.3547318 3.7477 0.921941 -0.849545 -11.480519 3.7477 0.921941 0.930455 -9.244454 -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 8 1.2492 0.921941 -0.849545 0 9 1.2492 0.921941 0.930455 0 10 -2.4985 -1.22006 -0.849545 0 11 -2.4985 -1.22006 0.930455 0 12 2.4985 -1.22006 0.930455 0 13 2.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 17 4.6377 -0.336759 0.0404545 0 18 3.7477 0.921941 -0.849545 0 19 3.7477 0.921941 0.930455 0 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 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 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 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 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 -
tests/Tesselations/heptan/2/NonConvexEnvelope-heptan.dat
rbdb143 rb2531f 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 -17.49525 -7.27e-07 -1.22006 -0.849545 -17.49526 -1.2492 0.921941 0.930455 -19.68187 -1.2492 0.921941 -0.849545 -15.3238 1.2492 0.921941 -0.849545 -17.4959 1.2492 0.921941 0.930455 -17.495110 -2.4985 -1.22006 -0.849545 -13.126311 -2.4985 -1.22006 0.930455 -10.896112 2.4985 -1.22006 0.930455 -13.126313 2.4985 -1.22006 -0.849545 -10.896114 -4.6377 -0.336759 0.0404545 -9.3547115 -3.7477 0.921941 0.930455 -9.2444416 -3.7477 0.921941 -0.849545 -11.480517 4.6377 -0.336759 0.0404545 -9.3547318 3.7477 0.921941 -0.849545 -11.480519 3.7477 0.921941 0.930455 -9.244454 -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 8 1.2492 0.921941 -0.849545 0 9 1.2492 0.921941 0.930455 0 10 -2.4985 -1.22006 -0.849545 0 11 -2.4985 -1.22006 0.930455 0 12 2.4985 -1.22006 0.930455 0 13 2.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 17 4.6377 -0.336759 0.0404545 0 18 3.7477 0.921941 -0.849545 0 19 3.7477 0.921941 0.930455 0 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 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 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 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 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 -
tests/Tesselations/heptan/25/NonConvexEnvelope-heptan.dat
rbdb143 rb2531f 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 -17.49525 -7.27e-07 -1.22006 -0.849545 -17.49526 -1.2492 0.921941 0.930455 -19.68187 -1.2492 0.921941 -0.849545 -15.3238 1.2492 0.921941 -0.849545 -17.4959 1.2492 0.921941 0.930455 -17.495110 -2.4985 -1.22006 -0.849545 -13.126311 -2.4985 -1.22006 0.930455 -10.896112 2.4985 -1.22006 0.930455 -13.126313 2.4985 -1.22006 -0.849545 -10.896114 -4.6377 -0.336759 0.0404545 -9.3547115 -3.7477 0.921941 0.930455 -9.2444416 -3.7477 0.921941 -0.849545 -11.480517 4.6377 -0.336759 0.0404545 -9.3547318 3.7477 0.921941 -0.849545 -11.480519 3.7477 0.921941 0.930455 -9.244454 -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 8 1.2492 0.921941 -0.849545 0 9 1.2492 0.921941 0.930455 0 10 -2.4985 -1.22006 -0.849545 0 11 -2.4985 -1.22006 0.930455 0 12 2.4985 -1.22006 0.930455 0 13 2.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 17 4.6377 -0.336759 0.0404545 0 18 3.7477 0.921941 -0.849545 0 19 3.7477 0.921941 0.930455 0 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 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 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 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 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 -
tests/Tesselations/heptan/3.5/NonConvexEnvelope-heptan.dat
rbdb143 rb2531f 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 -17.49525 -7.27e-07 -1.22006 -0.849545 -17.49526 -1.2492 0.921941 0.930455 -19.68187 -1.2492 0.921941 -0.849545 -15.3238 1.2492 0.921941 -0.849545 -17.4959 1.2492 0.921941 0.930455 -17.495110 -2.4985 -1.22006 -0.849545 -13.126311 -2.4985 -1.22006 0.930455 -10.896112 2.4985 -1.22006 0.930455 -13.126313 2.4985 -1.22006 -0.849545 -10.896114 -4.6377 -0.336759 0.0404545 -9.3547115 -3.7477 0.921941 0.930455 -9.2444416 -3.7477 0.921941 -0.849545 -11.480517 4.6377 -0.336759 0.0404545 -9.3547318 3.7477 0.921941 -0.849545 -11.480519 3.7477 0.921941 0.930455 -9.244454 -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 8 1.2492 0.921941 -0.849545 0 9 1.2492 0.921941 0.930455 0 10 -2.4985 -1.22006 -0.849545 0 11 -2.4985 -1.22006 0.930455 0 12 2.4985 -1.22006 0.930455 0 13 2.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 17 4.6377 -0.336759 0.0404545 0 18 3.7477 0.921941 -0.849545 0 19 3.7477 0.921941 0.930455 0 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 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 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 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 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 -
tests/Tesselations/heptan/3/NonConvexEnvelope-heptan.dat
rbdb143 rb2531f 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 -17.49525 -7.27e-07 -1.22006 -0.849545 -17.49526 -1.2492 0.921941 0.930455 -19.68187 -1.2492 0.921941 -0.849545 -15.3238 1.2492 0.921941 -0.849545 -17.4959 1.2492 0.921941 0.930455 -17.495110 -2.4985 -1.22006 -0.849545 -13.126311 -2.4985 -1.22006 0.930455 -10.896112 2.4985 -1.22006 0.930455 -13.126313 2.4985 -1.22006 -0.849545 -10.896114 -4.6377 -0.336759 0.0404545 -9.3547115 -3.7477 0.921941 0.930455 -9.2444416 -3.7477 0.921941 -0.849545 -11.480517 4.6377 -0.336759 0.0404545 -9.3547318 3.7477 0.921941 -0.849545 -11.480519 3.7477 0.921941 0.930455 -9.244454 -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 8 1.2492 0.921941 -0.849545 0 9 1.2492 0.921941 0.930455 0 10 -2.4985 -1.22006 -0.849545 0 11 -2.4985 -1.22006 0.930455 0 12 2.4985 -1.22006 0.930455 0 13 2.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 17 4.6377 -0.336759 0.0404545 0 18 3.7477 0.921941 -0.849545 0 19 3.7477 0.921941 0.930455 0 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 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 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 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 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 -
tests/Tesselations/heptan/4/NonConvexEnvelope-heptan.dat
rbdb143 rb2531f 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 -17.49525 -7.27e-07 -1.22006 -0.849545 -17.49526 -1.2492 0.921941 0.930455 -19.68187 -1.2492 0.921941 -0.849545 -15.3238 1.2492 0.921941 -0.849545 -17.4959 1.2492 0.921941 0.930455 -17.495110 -2.4985 -1.22006 -0.849545 -13.126311 -2.4985 -1.22006 0.930455 -10.896112 2.4985 -1.22006 0.930455 -13.126313 2.4985 -1.22006 -0.849545 -10.896114 -4.6377 -0.336759 0.0404545 -9.3547115 -3.7477 0.921941 0.930455 -9.2444416 -3.7477 0.921941 -0.849545 -11.480517 4.6377 -0.336759 0.0404545 -9.3547318 3.7477 0.921941 -0.849545 -11.480519 3.7477 0.921941 0.930455 -9.244454 -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 8 1.2492 0.921941 -0.849545 0 9 1.2492 0.921941 0.930455 0 10 -2.4985 -1.22006 -0.849545 0 11 -2.4985 -1.22006 0.930455 0 12 2.4985 -1.22006 0.930455 0 13 2.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 17 4.6377 -0.336759 0.0404545 0 18 3.7477 0.921941 -0.849545 0 19 3.7477 0.921941 0.930455 0 20 20 21 21 14 15 16 … … 27 27 3 12 13 28 28 11 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 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 36 36 9 10 14 37 37 2 9 10 … … 40 40 1 7 8 41 41 7 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 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 -
tests/regression/Tesselation/1/post/NonConvexEnvelope.dat
rbdb143 rb2531f 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 -9.244435 9.78209 2.64589 4.42589 -11.48046 10.672 3.90454 3.53589 -9.354647 8.53279 4.78789 2.64589 -9.114598 8.53279 4.78789 4.42589 -9.114599 6.39363 3.90454 3.53589 -9.3543110 7.28359 2.64589 2.64589 -11.480311 7.28359 2.64589 4.42589 -9.244334 9.78209 2.64589 2.64589 0 5 9.78209 2.64589 4.42589 0 6 10.672 3.90454 3.53589 0 7 8.53279 4.78789 2.64589 0 8 8.53279 4.78789 4.42589 0 9 6.39363 3.90454 3.53589 0 10 7.28359 2.64589 2.64589 0 11 7.28359 2.64589 4.42589 0 12 12 13 13 1 3 4 -
tests/regression/Tesselation/2/post/ConvexEnvelope.dat
rbdb143 rb2531f 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 -9.244435 9.78209 2.64589 4.42589 -11.48046 10.672 3.90454 3.53589 -9.354647 8.53279 4.78789 2.64589 -9.114598 8.53279 4.78789 4.42589 -9.114599 6.39363 3.90454 3.53589 -9.3543110 7.28359 2.64589 2.64589 -11.480311 7.28359 2.64589 4.42589 -9.244334 9.78209 2.64589 2.64589 0 5 9.78209 2.64589 4.42589 0 6 10.672 3.90454 3.53589 0 7 8.53279 4.78789 2.64589 0 8 8.53279 4.78789 4.42589 0 9 6.39363 3.90454 3.53589 0 10 7.28359 2.64589 2.64589 0 11 7.28359 2.64589 4.42589 0 12 12 13 13 1 3 4 -
tests/regression/Tesselation/2/post/NonConvexEnvelope.dat
rbdb143 rb2531f 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 -9.244435 9.78209 2.64589 4.42589 -11.48046 10.672 3.90454 3.53589 -9.354647 8.53279 4.78789 2.64589 -9.114598 8.53279 4.78789 4.42589 -9.114599 6.39363 3.90454 3.53589 -9.3543110 7.28359 2.64589 2.64589 -11.480311 7.28359 2.64589 4.42589 -9.244334 9.78209 2.64589 2.64589 0 5 9.78209 2.64589 4.42589 0 6 10.672 3.90454 3.53589 0 7 8.53279 4.78789 2.64589 0 8 8.53279 4.78789 4.42589 0 9 6.39363 3.90454 3.53589 0 10 7.28359 2.64589 2.64589 0 11 7.28359 2.64589 4.42589 0 12 12 13 13 1 3 4 -
tests/regression/Tesselation/3/post/NonConvexEnvelope.dat
rbdb143 rb2531f 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 -6.997155 0.3612 -3.628 1.323 6.004166 0.4884 -3.5983 -0.4521 11.84287 1.4985 -2.5112 0.5308 6.079518 -1.9534 -3.5752 0.5362 -4.269149 -1.1883 -0.199 1.5176 14.299210 -0.7165 -1.6046 2.5129 6.213411 1.7627 -1.4479 -0.8349 7.1505312 -1.003 -1.3584 -2.8848 32.04313 0.0217 -2.6629 -2.2008 1 6.800914 -2.8885 -1.5706 1.7543 -1.7707615 -2.0579 -3.6765 -1.7622 -7.0531916 -2.9259 -2.1146 -1.7672 33.666317 1.0353 0.1785 2.542 48.886918 1.6325 -1.3323 1.8306 1.4410819 0.7271 1.177 0.3594 27.987220 1.3374 -0.2942 -2.961 13.645921 0.6036 1.0859 -2.1126 98.52122 -3.2034 -0.5041 -1.0881 8.4480523 -5.1809 -1.8679 0.9687 -6.0744824 -4.6025 -2.4721 -0.6025 -6.5205725 -4.3385 -3.4329 0.8725 -4.1271626 3.191 1.3217 -2.8354 -10.596827 -4.0905 0.6312 1.6028 21.874528 2.8131 1.4776 2.5103 -0.77419429 3.9137 2.2936 1.3739 -2.5180630 2.159 2.5738 1.2698 151.49431 3.6606 -0.4593 2.1396 2 .6000432 3.2007 -1.4419 0.7311 2.2927233 -3.3002 2.3589 0.0094 461.06534 -4.377 1.6962 -1.2433 43.464935 5.2593 1.4547 -1.7445 -6.2608236 4.6863 2.7674 -0.6775 -8.5593137 5.746 -0.9031 1.204 -1.2954438 5.1212 -0.8867 -0.4582 31.517739 -5.2641 2.8314 1.4476 21.551640 5.2727 1.6068 1.2828 -2.5727141 -6.2394 4.6427 0.0632 -9.2439242 -4.4738 4.5591 -0.1458 62.521143 -5.5506 3.8964 -1.3985 -10.361344 -6.7081 0.9923 0.6224 -7.0888545 -7.5442 2.5597 0.5118 -11.425246 -6.8554 1.8134 -0.9499 3.8044447 7.1391 2.0447 0.0264 -7.887134 6.9077 1.1106 0.1214 1 5 0.3612 -3.628 1.323 1 6 0.4884 -3.5983 -0.4521 3 7 1.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 11 1.7627 -1.4479 -0.8349 4 12 -1.003 -1.3584 -2.8848 2 13 0.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 17 1.0353 0.1785 2.542 3 18 1.6325 -1.3323 1.8306 2 19 0.7271 1.177 0.3594 3 20 1.3374 -0.2942 -2.961 2 21 0.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 26 3.191 1.3217 -2.8354 1 27 -4.0905 0.6312 1.6028 3 28 2.8131 1.4776 2.5103 0 29 3.9137 2.2936 1.3739 0 30 2.159 2.5738 1.2698 5 31 3.6606 -0.4593 2.1396 2 32 3.2007 -1.4419 0.7311 4 33 -3.3002 2.3589 0.0094 8 34 -4.377 1.6962 -1.2433 3 35 5.2593 1.4547 -1.7445 0 36 4.6863 2.7674 -0.6775 0 37 5.746 -0.9031 1.204 0 38 5.1212 -0.8867 -0.4582 4 39 -5.2641 2.8314 1.4476 0 40 5.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 47 7.1391 2.0447 0.0264 0 48 48 49 49 1 32 44
Note:
See TracChangeset
for help on using the changeset viewer.