From 19d9fe434a27872b3a308014d5a0d2d5a26bd982 Mon Sep 17 00:00:00 2001 From: iasonmanolas Date: Wed, 14 Jul 2021 17:47:47 +0300 Subject: [PATCH] Added code for exporting --- TestSet/FullPatterns/122.ply | 27 --- TestSet/FullPatterns/13.ply | 27 --- TestSet/FullPatterns/140.ply | 27 --- TestSet/FullPatterns/155.ply | 27 --- TestSet/FullPatterns/159.ply | 27 --- TestSet/FullPatterns/18.ply | 27 --- TestSet/FullPatterns/19.ply | 27 --- TestSet/FullPatterns/215.ply | 27 --- TestSet/FullPatterns/219.ply | 27 --- TestSet/FullPatterns/222.ply | 27 --- TestSet/FullPatterns/257.ply | 27 --- TestSet/FullPatterns/269.ply | 27 --- TestSet/FullPatterns/284.ply | 27 --- TestSet/FullPatterns/30.ply | 27 --- TestSet/FullPatterns/305.ply | 27 --- TestSet/FullPatterns/306.ply | 27 --- TestSet/FullPatterns/318.ply | 27 --- TestSet/FullPatterns/321.ply | 27 --- TestSet/FullPatterns/336.ply | 27 --- TestSet/FullPatterns/340.ply | 27 --- TestSet/FullPatterns/346.ply | 27 --- TestSet/FullPatterns/350.ply | 27 --- TestSet/FullPatterns/357.ply | 27 --- TestSet/FullPatterns/364.ply | 27 --- TestSet/FullPatterns/372.ply | 27 --- TestSet/FullPatterns/379.ply | 27 --- TestSet/FullPatterns/38.ply | 27 --- TestSet/FullPatterns/394.ply | 27 --- TestSet/FullPatterns/398.ply | 27 --- TestSet/FullPatterns/431.ply | 27 --- TestSet/FullPatterns/440.ply | 27 --- TestSet/FullPatterns/48.ply | 27 --- TestSet/FullPatterns/488.ply | 27 --- TestSet/FullPatterns/525.ply | 27 --- TestSet/FullPatterns/549.ply | 27 --- TestSet/FullPatterns/562.ply | 27 --- TestSet/FullPatterns/580.ply | 27 --- TestSet/FullPatterns/59.ply | 27 --- TestSet/FullPatterns/595.ply | 27 --- TestSet/FullPatterns/599.ply | 27 --- TestSet/FullPatterns/609.ply | 27 --- TestSet/FullPatterns/620.ply | 27 --- TestSet/FullPatterns/624.ply | 27 --- TestSet/FullPatterns/630.ply | 27 --- TestSet/FullPatterns/637.ply | 27 --- TestSet/FullPatterns/643.ply | 27 --- TestSet/FullPatterns/647.ply | 27 --- TestSet/FullPatterns/669.ply | 27 --- TestSet/FullPatterns/678.ply | 27 --- TestSet/FullPatterns/68.ply | 27 --- TestSet/FullPatterns/82.ply | 27 --- TestSet/FullPatterns/86.ply | 27 --- src/reducedmodeloptimizer.cpp | 345 ++++++++++++++++------------------ src/reducedmodeloptimizer.hpp | 35 +++- 54 files changed, 189 insertions(+), 1595 deletions(-) delete mode 100644 TestSet/FullPatterns/122.ply delete mode 100644 TestSet/FullPatterns/13.ply delete mode 100644 TestSet/FullPatterns/140.ply delete mode 100644 TestSet/FullPatterns/155.ply delete mode 100644 TestSet/FullPatterns/159.ply delete mode 100644 TestSet/FullPatterns/18.ply delete mode 100644 TestSet/FullPatterns/19.ply delete mode 100644 TestSet/FullPatterns/215.ply delete mode 100644 TestSet/FullPatterns/219.ply delete mode 100644 TestSet/FullPatterns/222.ply delete mode 100644 TestSet/FullPatterns/257.ply delete mode 100644 TestSet/FullPatterns/269.ply delete mode 100644 TestSet/FullPatterns/284.ply delete mode 100644 TestSet/FullPatterns/30.ply delete mode 100644 TestSet/FullPatterns/305.ply delete mode 100644 TestSet/FullPatterns/306.ply delete mode 100644 TestSet/FullPatterns/318.ply delete mode 100644 TestSet/FullPatterns/321.ply delete mode 100644 TestSet/FullPatterns/336.ply delete mode 100644 TestSet/FullPatterns/340.ply delete mode 100644 TestSet/FullPatterns/346.ply delete mode 100644 TestSet/FullPatterns/350.ply delete mode 100644 TestSet/FullPatterns/357.ply delete mode 100644 TestSet/FullPatterns/364.ply delete mode 100644 TestSet/FullPatterns/372.ply delete mode 100644 TestSet/FullPatterns/379.ply delete mode 100644 TestSet/FullPatterns/38.ply delete mode 100644 TestSet/FullPatterns/394.ply delete mode 100644 TestSet/FullPatterns/398.ply delete mode 100644 TestSet/FullPatterns/431.ply delete mode 100644 TestSet/FullPatterns/440.ply delete mode 100644 TestSet/FullPatterns/48.ply delete mode 100644 TestSet/FullPatterns/488.ply delete mode 100644 TestSet/FullPatterns/525.ply delete mode 100644 TestSet/FullPatterns/549.ply delete mode 100644 TestSet/FullPatterns/562.ply delete mode 100644 TestSet/FullPatterns/580.ply delete mode 100644 TestSet/FullPatterns/59.ply delete mode 100644 TestSet/FullPatterns/595.ply delete mode 100644 TestSet/FullPatterns/599.ply delete mode 100644 TestSet/FullPatterns/609.ply delete mode 100644 TestSet/FullPatterns/620.ply delete mode 100644 TestSet/FullPatterns/624.ply delete mode 100644 TestSet/FullPatterns/630.ply delete mode 100644 TestSet/FullPatterns/637.ply delete mode 100644 TestSet/FullPatterns/643.ply delete mode 100644 TestSet/FullPatterns/647.ply delete mode 100644 TestSet/FullPatterns/669.ply delete mode 100644 TestSet/FullPatterns/678.ply delete mode 100644 TestSet/FullPatterns/68.ply delete mode 100644 TestSet/FullPatterns/82.ply delete mode 100644 TestSet/FullPatterns/86.ply diff --git a/TestSet/FullPatterns/122.ply b/TestSet/FullPatterns/122.ply deleted file mode 100644 index 024b1c8..0000000 --- a/TestSet/FullPatterns/122.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 5 -3 6 -5 6 diff --git a/TestSet/FullPatterns/13.ply b/TestSet/FullPatterns/13.ply deleted file mode 100644 index 033af07..0000000 --- a/TestSet/FullPatterns/13.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -2 6 -3 6 -4 6 diff --git a/TestSet/FullPatterns/140.ply b/TestSet/FullPatterns/140.ply deleted file mode 100644 index 7a3cc0f..0000000 --- a/TestSet/FullPatterns/140.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 5 -2 5 -3 4 diff --git a/TestSet/FullPatterns/155.ply b/TestSet/FullPatterns/155.ply deleted file mode 100644 index 9e27ad3..0000000 --- a/TestSet/FullPatterns/155.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 5 -2 3 -2 5 diff --git a/TestSet/FullPatterns/159.ply b/TestSet/FullPatterns/159.ply deleted file mode 100644 index 8cde6fb..0000000 --- a/TestSet/FullPatterns/159.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 5 -1 6 -3 6 diff --git a/TestSet/FullPatterns/18.ply b/TestSet/FullPatterns/18.ply deleted file mode 100644 index 31fab5c..0000000 --- a/TestSet/FullPatterns/18.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -2 6 -3 4 -4 6 diff --git a/TestSet/FullPatterns/19.ply b/TestSet/FullPatterns/19.ply deleted file mode 100644 index f045bb2..0000000 --- a/TestSet/FullPatterns/19.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -2 6 -3 4 -3 6 diff --git a/TestSet/FullPatterns/215.ply b/TestSet/FullPatterns/215.ply deleted file mode 100644 index ec60be6..0000000 --- a/TestSet/FullPatterns/215.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 4 -1 5 -3 4 diff --git a/TestSet/FullPatterns/219.ply b/TestSet/FullPatterns/219.ply deleted file mode 100644 index 2cb67b9..0000000 --- a/TestSet/FullPatterns/219.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 4 -1 5 -2 3 diff --git a/TestSet/FullPatterns/222.ply b/TestSet/FullPatterns/222.ply deleted file mode 100644 index 779e39c..0000000 --- a/TestSet/FullPatterns/222.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 3 -3 6 -5 6 diff --git a/TestSet/FullPatterns/257.ply b/TestSet/FullPatterns/257.ply deleted file mode 100644 index 2f3f097..0000000 --- a/TestSet/FullPatterns/257.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 3 -1 6 -5 6 diff --git a/TestSet/FullPatterns/269.ply b/TestSet/FullPatterns/269.ply deleted file mode 100644 index c3d3b02..0000000 --- a/TestSet/FullPatterns/269.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 3 -1 5 -3 5 diff --git a/TestSet/FullPatterns/284.ply b/TestSet/FullPatterns/284.ply deleted file mode 100644 index e3f2d94..0000000 --- a/TestSet/FullPatterns/284.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 3 -1 4 -2 3 diff --git a/TestSet/FullPatterns/30.ply b/TestSet/FullPatterns/30.ply deleted file mode 100644 index 34dd3dc..0000000 --- a/TestSet/FullPatterns/30.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -2 5 -3 4 -3 5 diff --git a/TestSet/FullPatterns/305.ply b/TestSet/FullPatterns/305.ply deleted file mode 100644 index 2ee6015..0000000 --- a/TestSet/FullPatterns/305.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 2 -2 5 -3 5 diff --git a/TestSet/FullPatterns/306.ply b/TestSet/FullPatterns/306.ply deleted file mode 100644 index 7cfef0a..0000000 --- a/TestSet/FullPatterns/306.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 2 -2 5 -3 4 diff --git a/TestSet/FullPatterns/318.ply b/TestSet/FullPatterns/318.ply deleted file mode 100644 index 8e86b1f..0000000 --- a/TestSet/FullPatterns/318.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 2 -2 3 -3 5 diff --git a/TestSet/FullPatterns/321.ply b/TestSet/FullPatterns/321.ply deleted file mode 100644 index 6dbbeba..0000000 --- a/TestSet/FullPatterns/321.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 2 -2 3 -2 5 diff --git a/TestSet/FullPatterns/336.ply b/TestSet/FullPatterns/336.ply deleted file mode 100644 index 2ce3c5e..0000000 --- a/TestSet/FullPatterns/336.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 2 -1 5 -3 4 diff --git a/TestSet/FullPatterns/340.ply b/TestSet/FullPatterns/340.ply deleted file mode 100644 index 9222c29..0000000 --- a/TestSet/FullPatterns/340.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 2 -1 5 -2 3 diff --git a/TestSet/FullPatterns/346.ply b/TestSet/FullPatterns/346.ply deleted file mode 100644 index d36869c..0000000 --- a/TestSet/FullPatterns/346.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 2 -1 4 -3 4 diff --git a/TestSet/FullPatterns/350.ply b/TestSet/FullPatterns/350.ply deleted file mode 100644 index dab2fcb..0000000 --- a/TestSet/FullPatterns/350.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 2 -1 4 -2 3 diff --git a/TestSet/FullPatterns/357.ply b/TestSet/FullPatterns/357.ply deleted file mode 100644 index 4ceeb5b..0000000 --- a/TestSet/FullPatterns/357.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 2 -1 3 -3 4 diff --git a/TestSet/FullPatterns/364.ply b/TestSet/FullPatterns/364.ply deleted file mode 100644 index 52620a1..0000000 --- a/TestSet/FullPatterns/364.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 2 -1 3 -1 4 diff --git a/TestSet/FullPatterns/372.ply b/TestSet/FullPatterns/372.ply deleted file mode 100644 index 29981a8..0000000 --- a/TestSet/FullPatterns/372.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 6 -3 4 -4 6 diff --git a/TestSet/FullPatterns/379.ply b/TestSet/FullPatterns/379.ply deleted file mode 100644 index 4ba765e..0000000 --- a/TestSet/FullPatterns/379.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 6 -2 6 -3 4 diff --git a/TestSet/FullPatterns/38.ply b/TestSet/FullPatterns/38.ply deleted file mode 100644 index 1649da9..0000000 --- a/TestSet/FullPatterns/38.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -2 4 -3 6 -4 6 diff --git a/TestSet/FullPatterns/394.ply b/TestSet/FullPatterns/394.ply deleted file mode 100644 index bfb8135..0000000 --- a/TestSet/FullPatterns/394.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 6 -2 3 -4 6 diff --git a/TestSet/FullPatterns/398.ply b/TestSet/FullPatterns/398.ply deleted file mode 100644 index 870afb0..0000000 --- a/TestSet/FullPatterns/398.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 6 -2 3 -2 6 diff --git a/TestSet/FullPatterns/431.ply b/TestSet/FullPatterns/431.ply deleted file mode 100644 index 09a3678..0000000 --- a/TestSet/FullPatterns/431.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 6 -1 3 -5 6 diff --git a/TestSet/FullPatterns/440.ply b/TestSet/FullPatterns/440.ply deleted file mode 100644 index 09d3a92..0000000 --- a/TestSet/FullPatterns/440.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 6 -1 3 -1 6 diff --git a/TestSet/FullPatterns/48.ply b/TestSet/FullPatterns/48.ply deleted file mode 100644 index ee856c1..0000000 --- a/TestSet/FullPatterns/48.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -2 4 -2 6 -3 6 diff --git a/TestSet/FullPatterns/488.ply b/TestSet/FullPatterns/488.ply deleted file mode 100644 index 35b0c0c..0000000 --- a/TestSet/FullPatterns/488.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 3 -2 3 -3 4 diff --git a/TestSet/FullPatterns/525.ply b/TestSet/FullPatterns/525.ply deleted file mode 100644 index 63e8c46..0000000 --- a/TestSet/FullPatterns/525.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 3 -1 3 -3 5 diff --git a/TestSet/FullPatterns/549.ply b/TestSet/FullPatterns/549.ply deleted file mode 100644 index 16a5a65..0000000 --- a/TestSet/FullPatterns/549.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 3 -0 6 -3 6 diff --git a/TestSet/FullPatterns/562.ply b/TestSet/FullPatterns/562.ply deleted file mode 100644 index 8cdb90b..0000000 --- a/TestSet/FullPatterns/562.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -3 6 -5 6 diff --git a/TestSet/FullPatterns/580.ply b/TestSet/FullPatterns/580.ply deleted file mode 100644 index 1669fd3..0000000 --- a/TestSet/FullPatterns/580.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -2 5 -3 4 diff --git a/TestSet/FullPatterns/59.ply b/TestSet/FullPatterns/59.ply deleted file mode 100644 index ed215fa..0000000 --- a/TestSet/FullPatterns/59.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -2 3 -3 6 -4 6 diff --git a/TestSet/FullPatterns/595.ply b/TestSet/FullPatterns/595.ply deleted file mode 100644 index e7c53fb..0000000 --- a/TestSet/FullPatterns/595.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -2 3 -2 5 diff --git a/TestSet/FullPatterns/599.ply b/TestSet/FullPatterns/599.ply deleted file mode 100644 index f345897..0000000 --- a/TestSet/FullPatterns/599.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -1 6 -3 6 diff --git a/TestSet/FullPatterns/609.ply b/TestSet/FullPatterns/609.ply deleted file mode 100644 index 40ec5ff..0000000 --- a/TestSet/FullPatterns/609.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -1 5 -3 5 diff --git a/TestSet/FullPatterns/620.ply b/TestSet/FullPatterns/620.ply deleted file mode 100644 index c0178b0..0000000 --- a/TestSet/FullPatterns/620.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -1 4 -3 4 diff --git a/TestSet/FullPatterns/624.ply b/TestSet/FullPatterns/624.ply deleted file mode 100644 index 529de03..0000000 --- a/TestSet/FullPatterns/624.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -1 4 -2 3 diff --git a/TestSet/FullPatterns/630.ply b/TestSet/FullPatterns/630.ply deleted file mode 100644 index 4faf9ca..0000000 --- a/TestSet/FullPatterns/630.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -1 3 -3 5 diff --git a/TestSet/FullPatterns/637.ply b/TestSet/FullPatterns/637.ply deleted file mode 100644 index c70b501..0000000 --- a/TestSet/FullPatterns/637.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -1 3 -1 5 diff --git a/TestSet/FullPatterns/643.ply b/TestSet/FullPatterns/643.ply deleted file mode 100644 index 869dff9..0000000 --- a/TestSet/FullPatterns/643.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -1 2 -3 4 diff --git a/TestSet/FullPatterns/647.ply b/TestSet/FullPatterns/647.ply deleted file mode 100644 index 7377b67..0000000 --- a/TestSet/FullPatterns/647.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -1 2 -2 3 diff --git a/TestSet/FullPatterns/669.ply b/TestSet/FullPatterns/669.ply deleted file mode 100644 index 0e1d179..0000000 --- a/TestSet/FullPatterns/669.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -0 3 -3 5 diff --git a/TestSet/FullPatterns/678.ply b/TestSet/FullPatterns/678.ply deleted file mode 100644 index b27645f..0000000 --- a/TestSet/FullPatterns/678.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -0 1 -0 3 -1 3 diff --git a/TestSet/FullPatterns/68.ply b/TestSet/FullPatterns/68.ply deleted file mode 100644 index bd75214..0000000 --- a/TestSet/FullPatterns/68.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -2 3 -2 6 -4 6 diff --git a/TestSet/FullPatterns/82.ply b/TestSet/FullPatterns/82.ply deleted file mode 100644 index 37a713d..0000000 --- a/TestSet/FullPatterns/82.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -2 3 -2 4 -3 4 diff --git a/TestSet/FullPatterns/86.ply b/TestSet/FullPatterns/86.ply deleted file mode 100644 index 69fddc9..0000000 --- a/TestSet/FullPatterns/86.ply +++ /dev/null @@ -1,27 +0,0 @@ -ply -format ascii 1.0 -comment VCGLIB generated -element vertex 7 -property double x -property double y -property double z -property uchar red -property uchar green -property uchar blue -property uchar alpha -element face 0 -property list uchar int vertex_indices -element edge 3 -property int vertex1 -property int vertex2 -end_header -0 0 0 255 255 255 255 --0.1666666666666666 -0.2886751345948129 0 255 255 255 255 --0.3333333333333333 -0.5773502691896257 0 255 255 255 255 -0 -0.8660254037844387 0 255 255 255 255 -0.3333333333333333 -0.5773502691896258 0 255 255 255 255 -0.1666666666666666 -0.288675134594813 0 255 255 255 255 -0.1 -0.5773502691896258 0 255 255 255 255 -1 6 -3 6 -5 6 diff --git a/src/reducedmodeloptimizer.cpp b/src/reducedmodeloptimizer.cpp index caa9dee..c11c6c2 100644 --- a/src/reducedmodeloptimizer.cpp +++ b/src/reducedmodeloptimizer.cpp @@ -439,6 +439,20 @@ ReducedModelOptimizer::ReducedModelOptimizer(const std::vector &numberOf { FlatPatternTopology::constructNodeToSlotMap(numberOfNodesPerSlot, nodeToSlot); FlatPatternTopology::constructSlotToNodeMap(nodeToSlot, slotToNode); + constructBaseScenarioFunctions.resize(BaseSimulationScenario::NumberOfBaseSimulationScenarios); + scenarioIsSymmetrical.resize(BaseSimulationScenario::NumberOfBaseSimulationScenarios); + constructBaseScenarioFunctions[BaseSimulationScenario::Axial] = &constructAxialSimulationScenario; + scenarioIsSymmetrical[BaseSimulationScenario::Axial] = false; + constructBaseScenarioFunctions[BaseSimulationScenario::Shear] = &constructShearSimulationScenario; + scenarioIsSymmetrical[BaseSimulationScenario::Shear] = false; + constructBaseScenarioFunctions[BaseSimulationScenario::Bending] + = &constructBendingSimulationScenario; + scenarioIsSymmetrical[BaseSimulationScenario::Bending] = true; + constructBaseScenarioFunctions[BaseSimulationScenario::Dome] = &constructDomeSimulationScenario; + scenarioIsSymmetrical[BaseSimulationScenario::Dome] = true; + constructBaseScenarioFunctions[BaseSimulationScenario::Saddle] + = &constructSaddleSimulationScenario; + scenarioIsSymmetrical[BaseSimulationScenario::Saddle] = true; } void ReducedModelOptimizer::initializePatterns(PatternGeometry &fullPattern, @@ -840,6 +854,57 @@ void ReducedModelOptimizer::getResults(const dlib::function_evaluation &optimiza } } +std::vector> +ReducedModelOptimizer::computeFullPatternMaxSimulationForces( + const std::vector &desiredBaseSimulationScenario) +{ + std::vector> fullPatternMaxSimulationForces; + fullPatternMaxSimulationForces.reserve(desiredBaseSimulationScenario.size()); + for (const BaseSimulationScenario &scenario : desiredBaseSimulationScenario) { + const double maxForce = computeFullPatternMaxSimulationForce(scenario); + fullPatternMaxSimulationForces.emplace_back(std::make_pair(scenario, maxForce)); + } + + return fullPatternMaxSimulationForces; +} + +std::vector> +ReducedModelOptimizer::getFullPatternMaxSimulationForces( + const std::vector &desiredBaseSimulationScenarioIndices) +{ + std::vector> fullPatternSimulationScenarioMaxMagnitudes; + const std::filesystem::path forceMagnitudesDirectoryPath(std::filesystem::current_path() + .parent_path() + .append("IntermediateResults") + .append("ForceMagnitudes")); + std::filesystem::path patternMaxForceMagnitudesFilePath( + std::filesystem::path(forceMagnitudesDirectoryPath) + .append(m_pFullPatternSimulationMesh->getLabel() + ".json")); + const bool fullPatternScenarioMagnitudesExist = std::filesystem::exists( + patternMaxForceMagnitudesFilePath); + if (fullPatternScenarioMagnitudesExist) { + nlohmann::json json; + std::ifstream ifs(patternMaxForceMagnitudesFilePath.string()); + ifs >> json; + fullPatternSimulationScenarioMaxMagnitudes + = static_cast>>( + json.at("maxMagn")); + } else { + fullPatternSimulationScenarioMaxMagnitudes = computeFullPatternMaxSimulationForces( + desiredBaseSimulationScenarioIndices); + nlohmann::json json; + json["maxMagn"] = fullPatternSimulationScenarioMaxMagnitudes; + + std::filesystem::create_directories(forceMagnitudesDirectoryPath); + std::ofstream jsonFile(patternMaxForceMagnitudesFilePath.string()); + jsonFile << json; + } + assert(fullPatternSimulationScenarioMaxMagnitudes.size() + == desiredBaseSimulationScenarioIndices.size()); + + return fullPatternSimulationScenarioMaxMagnitudes; +} + void ReducedModelOptimizer::runOptimization(const Settings &settings, ReducedPatternOptimization::Results &results) { @@ -1004,27 +1069,30 @@ double fullPatternMaxSimulationForceRotationalObjective(const double &forceMagni DRMSimulationModel simulator; DRMSimulationModel::Settings settings; settings.totalExternalForcesNormPercentageTermination = 1e-2; - // settings.totalResidualForcesNormThreshold = 1e-3; - settings.totalTranslationalKineticEnergyThreshold = 1e-10; + settings.totalTranslationalKineticEnergyThreshold = 1e-11; settings.shouldUseTranslationalKineticEnergyThreshold = true; // settings.shouldDraw = true; + settings.useAverage = true; + // settings.isDebugMode = true; // settings.drawingStep = 500; // settings.beVerbose = true; // settings.debugModeStep = 200000; // settings.shouldCreatePlots = true; - settings.maxDRMIterations = 150000; + settings.maxDRMIterations = 100000; SimulationResults results = simulator.executeSimulation(std::make_shared(job), settings); const double &desiredRotationAngle = global.desiredMaxRotationAngle; + double error; if (!results.converged) { - return std::numeric_limits::max(); + error = std::numeric_limits::max(); + } else { + error = std::abs( + // results.displacements[global.fullPatternInterfaceViPairs[1].first].getTranslation().norm() + results.rotationalDisplacementQuaternion[global.interfaceViForComputingScenarioError] + .angularDistance(Eigen::Quaterniond::Identity()) + - desiredRotationAngle); } - const double error = std::abs( - // results.displacements[global.fullPatternInterfaceViPairs[1].first].getTranslation().norm() - results.rotationalDisplacementQuaternion[global.interfaceViForComputingScenarioError] - .angularDistance(Eigen::Quaterniond::Identity()) - - desiredRotationAngle); #ifdef POLYSCOPE_DEFINED std::cout << "Force:" << forceMagnitude << " Error is:" << vcg::math::ToDeg(error) << std::endl; @@ -1065,13 +1133,15 @@ double fullPatternMaxSimulationForceTranslationalObjective(const double &forceMa SimulationResults results = simulator.executeSimulation(std::make_shared(job), settings); const double &desiredDisplacementValue = global.desiredMaxDisplacementValue; + double error; if (!results.converged) { - return std::numeric_limits::max(); + error = std::numeric_limits::max(); + } else { + error = std::abs( + // results.displacements[global.fullPatternInterfaceViPairs[1].first].getTranslation().norm() + results.displacements[global.interfaceViForComputingScenarioError].getTranslation().norm() + - desiredDisplacementValue); } - const double error = std::abs( - // results.displacements[global.fullPatternInterfaceViPairs[1].first].getTranslation().norm() - results.displacements[global.interfaceViForComputingScenarioError].getTranslation().norm() - - desiredDisplacementValue); #ifdef POLYSCOPE_DEFINED std::cout << "Force:" << forceMagnitude << " Error is:" << error << std::endl; @@ -1080,14 +1150,16 @@ double fullPatternMaxSimulationForceTranslationalObjective(const double &forceMa return error; } -double ReducedModelOptimizer::getFullPatternMaxSimulationForce( - const BaseSimulationScenario &scenario, bool &wasSuccessful) +double ReducedModelOptimizer::computeFullPatternMaxSimulationForce( + const BaseSimulationScenario &scenario) { double forceMagnitude = 1; const double forceMagnitudeEpsilon = 1e-2; double minimumError; double translationalOptimizationEpsilon; dlib::function_evaluation result; + bool wasSuccessful = false; + global.constructScenarioFunction = constructBaseScenarioFunctions[scenario]; switch (scenario) { case Axial: global.desiredMaxDisplacementValue = 0.03 @@ -1129,7 +1201,7 @@ double ReducedModelOptimizer::getFullPatternMaxSimulationForce( (global.baseTriangle.cP(1) + global.baseTriangle.cP(2)) / 2); - global.constructScenarioFunction = &ReducedModelOptimizer::constructBendingSimulationScenario; + global.interfaceViForComputingScenarioError = global.fullPatternInterfaceViPairs[0].first; minimumError = dlib::find_min_single_variable(&fullPatternMaxSimulationForceTranslationalObjective, @@ -1141,16 +1213,18 @@ double ReducedModelOptimizer::getFullPatternMaxSimulationForce( wasSuccessful = minimumError < translationalOptimizationEpsilon; break; case Dome: - global.desiredMaxRotationAngle = vcg::math::ToRad(35.0); - global.constructScenarioFunction = &ReducedModelOptimizer::constructDomeSimulationScenario; - global.interfaceViForComputingScenarioError = global.fullPatternInterfaceViPairs[1].first; - minimumError - = dlib::find_min_single_variable(&fullPatternMaxSimulationForceRotationalObjective, - forceMagnitude, - 1e-2, - 1e2, - forceMagnitudeEpsilon); - wasSuccessful = minimumError < vcg::math::ToRad(3.0); + forceMagnitude = 0.005; + while (!wasSuccessful) { + global.desiredMaxRotationAngle = vcg::math::ToRad(35.0); + global.interfaceViForComputingScenarioError = global.fullPatternInterfaceViPairs[1].first; + minimumError + = dlib::find_min_single_variable(&fullPatternMaxSimulationForceRotationalObjective, + forceMagnitude, + 1e-3, + 0.5, + forceMagnitudeEpsilon); + wasSuccessful = minimumError < vcg::math::ToRad(3.0); + } // result = dlib::find_min_global(&fullPatternMaxSimulationForceRotationalObjective, // 1e-2, // 1, @@ -1163,7 +1237,7 @@ double ReducedModelOptimizer::getFullPatternMaxSimulationForce( (global.baseTriangle.cP(1) + global.baseTriangle.cP(2)) / 2); - global.constructScenarioFunction = &ReducedModelOptimizer::constructSaddleSimulationScenario; + global.interfaceViForComputingScenarioError = global.fullPatternInterfaceViPairs[0].first; minimumError = dlib::find_min_single_variable(&fullPatternMaxSimulationForceTranslationalObjective, @@ -1192,10 +1266,9 @@ double ReducedModelOptimizer::getFullPatternMaxSimulationForce( return forceMagnitude; } -//TODO: Make more compact -std::vector> -ReducedModelOptimizer::createFullPatternSimulationScenarios( - const std::shared_ptr &pMesh) +std::vector> ReducedModelOptimizer::createFullPatternSimulationJobs( + const std::shared_ptr &pMesh, + const std::vector> &scenarioMaxForceMagnitudePairs) { std::vector> scenarios; scenarios.resize(totalNumberOfSimulationScenarios); @@ -1203,150 +1276,40 @@ ReducedModelOptimizer::createFullPatternSimulationScenarios( SimulationJob job; job.pMesh = pMesh; - //// Axial - bool wasSuccessful; - const double maxForceMagnitude_axial - = getFullPatternMaxSimulationForce(BaseSimulationScenario::Axial, wasSuccessful); - const double minForceMagnitude_axial = -maxForceMagnitude_axial; - const int numberOfSimulationScenarios_axial - = simulationScenariosResolution[BaseSimulationScenario::Axial]; - const double forceMagnitudeStep_axial = numberOfSimulationScenarios_axial == 1 - ? maxForceMagnitude_axial - : (maxForceMagnitude_axial - minForceMagnitude_axial) - / (numberOfSimulationScenarios_axial - 1); - const int baseSimulationScenarioIndexOffset_axial - = std::accumulate(simulationScenariosResolution.begin(), - simulationScenariosResolution.begin() + BaseSimulationScenario::Axial, - 0); - for (int axialSimulationScenarioIndex = 0; - axialSimulationScenarioIndex < numberOfSimulationScenarios_axial; - axialSimulationScenarioIndex++) { - job.nodalExternalForces.clear(); - job.constrainedVertices.clear(); - job.nodalForcedDisplacements.clear(); - job.label = baseSimulationScenarioNames[BaseSimulationScenario::Axial] + "_" - + std::to_string(axialSimulationScenarioIndex); + for (std::pair scenarioMaxForceMagnitudePair : + scenarioMaxForceMagnitudePairs) { + const BaseSimulationScenario scenario = scenarioMaxForceMagnitudePair.first; + const double maxForceMagnitude = scenarioMaxForceMagnitudePair.second; + const double minForceMagnitude = scenarioIsSymmetrical[scenario] ? 0 : -maxForceMagnitude; + const int numberOfSimulationScenarios = simulationScenariosResolution[scenario]; + const int forceMagnitudeSamples = scenarioIsSymmetrical[scenario] + ? numberOfSimulationScenarios - 1 + : numberOfSimulationScenarios; + const double forceMagnitudeStep = numberOfSimulationScenarios == 1 + ? maxForceMagnitude + : (maxForceMagnitude - minForceMagnitude) + / (forceMagnitudeSamples); + const int baseSimulationScenarioIndexOffset + = std::accumulate(simulationScenariosResolution.begin(), + simulationScenariosResolution.begin() + scenario, + 0); + for (int simulationScenarioIndex = 0; simulationScenarioIndex < numberOfSimulationScenarios; + simulationScenarioIndex++) { + job.nodalExternalForces.clear(); + job.constrainedVertices.clear(); + job.nodalForcedDisplacements.clear(); + job.label = baseSimulationScenarioNames[scenario] + "_" + + std::to_string(simulationScenarioIndex); - const double forceMagnitude = (forceMagnitudeStep_axial * axialSimulationScenarioIndex - + minForceMagnitude_axial); - constructAxialSimulationScenario(forceMagnitude, m_fullPatternOppositeInterfaceViPairs, job); + const double forceMagnitude = (forceMagnitudeStep * simulationScenarioIndex + + minForceMagnitude); + constructBaseScenarioFunctions[scenario](forceMagnitude, + m_fullPatternOppositeInterfaceViPairs, + job); - scenarios[baseSimulationScenarioIndexOffset_axial + axialSimulationScenarioIndex] - = std::make_shared(job); - } - - //// Shear - const double maxForceMagnitude_shear - = getFullPatternMaxSimulationForce(BaseSimulationScenario::Shear, wasSuccessful); - const double minForceMagnitude_shear = -maxForceMagnitude_shear; - const int numberOfSimulationScenarios_shear - = simulationScenariosResolution[BaseSimulationScenario::Shear]; - const double forceMagnitudeStep_shear = numberOfSimulationScenarios_shear == 1 - ? maxForceMagnitude_shear - : (maxForceMagnitude_shear - minForceMagnitude_shear) - / (numberOfSimulationScenarios_shear - 1); - const int baseSimulationScenarioIndexOffset_shear - = std::accumulate(simulationScenariosResolution.begin(), - simulationScenariosResolution.begin() + BaseSimulationScenario::Shear, - 0); - for (int shearSimulationScenarioIndex = 0; - shearSimulationScenarioIndex < numberOfSimulationScenarios_shear; - shearSimulationScenarioIndex++) { - job.constrainedVertices.clear(); - job.nodalExternalForces.clear(); - job.label = baseSimulationScenarioNames[BaseSimulationScenario::Shear] + "_" - + std::to_string(shearSimulationScenarioIndex); - const double forceMagnitude = (forceMagnitudeStep_shear * shearSimulationScenarioIndex - + minForceMagnitude_shear); - constructShearSimulationScenario(forceMagnitude, m_fullPatternOppositeInterfaceViPairs, job); - scenarios[baseSimulationScenarioIndexOffset_shear + shearSimulationScenarioIndex] - = std::make_shared(job); - } - - //// Bending - const double maxForceMagnitude_bending - = getFullPatternMaxSimulationForce(BaseSimulationScenario::Bending, wasSuccessful); - const double minForceMagnitude_bending = 0; - const int numberOfSimulationScenarios_bending - = simulationScenariosResolution[BaseSimulationScenario::Bending]; - const double forceMagnitudeStep_bending = (maxForceMagnitude_bending - minForceMagnitude_bending) - / (numberOfSimulationScenarios_bending); - const int baseSimulationScenarioIndexOffset_bending - = std::accumulate(simulationScenariosResolution.begin(), - simulationScenariosResolution.begin() + BaseSimulationScenario::Bending, - 0); - for (int bendingSimulationScenarioIndex = 0; - bendingSimulationScenarioIndex < numberOfSimulationScenarios_bending; - bendingSimulationScenarioIndex++) { - job.nodalExternalForces.clear(); - job.constrainedVertices.clear(); - job.label = baseSimulationScenarioNames[BaseSimulationScenario::Bending] + "_" - + std::to_string(bendingSimulationScenarioIndex); - const double forceMagnitude = (forceMagnitudeStep_bending - * (bendingSimulationScenarioIndex + 1) - + minForceMagnitude_bending); - constructBendingSimulationScenario(forceMagnitude, - m_fullPatternOppositeInterfaceViPairs, - job); - scenarios[baseSimulationScenarioIndexOffset_bending + bendingSimulationScenarioIndex] - = std::make_shared(job); - } - - //// Dome - const double maxForceMagnitude_dome - = getFullPatternMaxSimulationForce(BaseSimulationScenario::Dome, wasSuccessful); - const double minForceMagnitude_dome = 0; - const int numberOfSimulationScenarios_dome - = simulationScenariosResolution[BaseSimulationScenario::Dome]; - const double forceMagnitudeStep_dome = (maxForceMagnitude_dome - minForceMagnitude_dome) - / (numberOfSimulationScenarios_dome); - const int baseSimulationScenarioIndexOffset_dome - = std::accumulate(simulationScenariosResolution.begin(), - simulationScenariosResolution.begin() + BaseSimulationScenario::Dome, - 0); - for (int domeSimulationScenarioIndex = 0; - domeSimulationScenarioIndex < numberOfSimulationScenarios_dome; - domeSimulationScenarioIndex++) { - job.constrainedVertices.clear(); - job.nodalExternalForces.clear(); - job.nodalForcedDisplacements.clear(); - job.label = baseSimulationScenarioNames[BaseSimulationScenario::Dome] + "_" - + std::to_string(domeSimulationScenarioIndex); - const double forceMagnitude = (forceMagnitudeStep_dome * (domeSimulationScenarioIndex + 1) - + minForceMagnitude_dome); - constructDomeSimulationScenario(forceMagnitude, m_fullPatternOppositeInterfaceViPairs, job); - scenarios[baseSimulationScenarioIndexOffset_dome + domeSimulationScenarioIndex] - = std::make_shared(job); - } - - //// Saddle - const double maxForceMagnitude_saddle - = getFullPatternMaxSimulationForce(BaseSimulationScenario::Saddle, wasSuccessful); - const double minForceMagnitude_saddle = 0; - const int numberOfSimulationScenarios_saddle - = simulationScenariosResolution[BaseSimulationScenario::Saddle]; - const double forceMagnitudeStep_saddle = (maxForceMagnitude_saddle - minForceMagnitude_saddle) - / numberOfSimulationScenarios_saddle; - const int baseSimulationScenarioIndexOffset_saddle - = std::accumulate(simulationScenariosResolution.begin(), - simulationScenariosResolution.begin() + BaseSimulationScenario::Saddle, - 0); - for (int saddleSimulationScenarioIndex = 0; - saddleSimulationScenarioIndex < numberOfSimulationScenarios_saddle; - saddleSimulationScenarioIndex++) { - job.constrainedVertices.clear(); - job.nodalExternalForces.clear(); - job.nodalForcedDisplacements.clear(); - job.label = baseSimulationScenarioNames[BaseSimulationScenario::Saddle] + "_" - + std::to_string(saddleSimulationScenarioIndex); - const double forceMagnitude = (forceMagnitudeStep_saddle - * (saddleSimulationScenarioIndex + 1) - + minForceMagnitude_saddle); - constructSaddleSimulationScenario(forceMagnitude, - m_fullPatternOppositeInterfaceViPairs, - job); - scenarios[baseSimulationScenarioIndexOffset_saddle + saddleSimulationScenarioIndex] - = std::make_shared(job); + scenarios[baseSimulationScenarioIndexOffset + simulationScenarioIndex] + = std::make_shared(job); + } } #ifdef POLYSCOPE_DEFINED @@ -1445,12 +1408,6 @@ void ReducedModelOptimizer::optimize( + baseSimulationScenarioIndex, 0)); } - if (desiredBaseSimulationScenarioIndices.empty()) { - global.simulationScenarioIndices.resize(totalNumberOfSimulationScenarios); - std::iota(global.simulationScenarioIndices.begin(), - global.simulationScenarioIndices.end(), - 0); - } global.reducedPatternSimulationJobs.resize(totalNumberOfSimulationScenarios); global.fullPatternResults.resize(totalNumberOfSimulationScenarios); @@ -1461,14 +1418,21 @@ void ReducedModelOptimizer::optimize( global.numberOfFunctionCalls = 0; global.optimizationSettings = optimizationSettings; global.pFullPatternSimulationMesh = m_pFullPatternSimulationMesh; - global.fullPatternSimulationJobs = createFullPatternSimulationScenarios( - m_pFullPatternSimulationMesh); + + std::vector> fullPatternSimulationScenarioMaxMagnitudes + = getFullPatternMaxSimulationForces(desiredBaseSimulationScenarioIndices); + global.fullPatternSimulationJobs + = createFullPatternSimulationJobs(m_pFullPatternSimulationMesh, + fullPatternSimulationScenarioMaxMagnitudes); // polyscope::removeAllStructures(); results.baseTriangle = global.baseTriangle; DRMSimulationModel::Settings simulationSettings; - simulationSettings.maxDRMIterations = 200000; + simulationSettings.maxDRMIterations = 50000; + simulationSettings.shouldUseTranslationalKineticEnergyThreshold = true; + simulationSettings.totalTranslationalKineticEnergyThreshold = 1e-10; +// simulationSettings.beVerbose = true; // simulationSettings.shouldDraw = true; // simulationSettings.isDebugMode = true; // simulationSettings.debugModeStep = 100000; @@ -1494,8 +1458,21 @@ void ReducedModelOptimizer::optimize( DRMSimulationModel::Settings debugSimulationSettings; debugSimulationSettings.isDebugMode = true; debugSimulationSettings.debugModeStep = 1000; + // debugSimulationSettings.maxDRMIterations = 100000; + debugSimulationSettings.shouldDraw = true; + debugSimulationSettings.drawingStep = debugSimulationSettings.debugModeStep; debugSimulationSettings.shouldCreatePlots = true; - simulator.executeSimulation(pFullPatternSimulationJob, simulationSettings); + // debugSimulationSettings.Dtini = 0.06; + debugSimulationSettings.beVerbose = true; + debugSimulationSettings.useAverage = true; + // debugSimulationSettings.totalExternalForcesNormPercentageTermination = 1e-3; + debugSimulationSettings.shouldUseTranslationalKineticEnergyThreshold = true; + auto debugResults = simulator.executeSimulation(pFullPatternSimulationJob, + debugSimulationSettings); + debugResults.setLabelPrefix("debugResults"); + debugResults.registerForDrawing(); + polyscope::show(); + debugResults.unregister(); #endif return; } diff --git a/src/reducedmodeloptimizer.hpp b/src/reducedmodeloptimizer.hpp index c50e902..d7d6a16 100644 --- a/src/reducedmodeloptimizer.hpp +++ b/src/reducedmodeloptimizer.hpp @@ -29,6 +29,12 @@ class ReducedModelOptimizer std::unordered_map nodeToSlot; std::unordered_map> slotToNode; std::string optimizationNotes; + std::vector> &, + SimulationJob &)>> + constructBaseScenarioFunctions; + std::vector scenarioIsSymmetrical; public: constexpr static std::array simulationScenariosResolution = {10, 10, 20, 20, 20}; @@ -43,7 +49,12 @@ public: const ReducedPatternOptimization::Settings &xRanges, ReducedPatternOptimization::Results &results, const std::vector &simulationScenarios - = std::vector()); + = std::vector( + {ReducedPatternOptimization::Axial, + ReducedPatternOptimization::Shear, + ReducedPatternOptimization::Bending, + ReducedPatternOptimization::Dome, + ReducedPatternOptimization::Saddle})); double operator()(const Eigen::VectorXd &x, Eigen::VectorXd &) const; ReducedModelOptimizer(const std::vector &numberOfNodesPerSlot); @@ -69,7 +80,7 @@ public: double innerHexagonRotationAngle); static double objective(double b, double r, double E); - static std::vector> createFullPatternSimulationScenarios( + static std::vector> createFullPatternSimulationJobs( const std::shared_ptr &pMesh, const std::unordered_map &fullPatternOppositeInterfaceViMap); @@ -172,8 +183,10 @@ private: Eigen::MatrixX3d &optimalDisplacementsOfReducedModel); static void runOptimization(const ReducedPatternOptimization::Settings &settings, ReducedPatternOptimization::Results &results); - std::vector> createFullPatternSimulationScenarios( - const std::shared_ptr &pMesh); + std::vector> createFullPatternSimulationJobs( + const std::shared_ptr &pMesh, + const std::vector> + &maxForceMagnitudes); void computeMaps(PatternGeometry &fullModel, PatternGeometry &reducedPattern); void createSimulationMeshes(PatternGeometry &fullModel, PatternGeometry &reducedModel); static void initializeOptimizationParameters(const std::shared_ptr &mesh, @@ -185,9 +198,17 @@ private: static void getResults(const dlib::function_evaluation &optimizationResult_dlib, const ReducedPatternOptimization::Settings &settings, ReducedPatternOptimization::Results &results); - std::vector getFullPatternMaxSimulationForces(); - double getFullPatternMaxSimulationForce( - const ReducedPatternOptimization::BaseSimulationScenario &scenario, bool &wasSuccessfull); + double computeFullPatternMaxSimulationForce( + const ReducedPatternOptimization::BaseSimulationScenario &scenario); + std::vector> + computeFullPatternMaxSimulationForces( + const std::vector + &desiredBaseSimulationScenarioIndices); + + std::vector> + getFullPatternMaxSimulationForces( + const std::vector + &desiredBaseSimulationScenarioIndices); }; void updateMesh(long n, const double *x); #endif // REDUCEDMODELOPTIMIZER_HPP