From 349c79ed214393f82a66eaa9110c6daeb734662c Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Mon, 17 Feb 2020 14:52:02 +0100 Subject: [PATCH 1/8] Remove spaces in tetra.rls to match generated .cpp --- rules/tetra.rls | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/rules/tetra.rls b/rules/tetra.rls index 81301fcd..c6b50f04 100644 --- a/rules/tetra.rls +++ b/rules/tetra.rls @@ -13,8 +13,8 @@ mapfaces (1, 2, 3) del; newpoints -(0.5, 0.288, -0.816) - { 0.333 X1, 0.333 X2, 0.333 X3 } +(0.5, 0.288, -0.816) + { 0.333 X1, 0.333 X2, 0.333 X3 } { 0.333 Y1, 0.333 Y2, 0.333 Y3 } { }; newfaces @@ -30,9 +30,9 @@ freezone2 { 1 P2 }; { 1 P3 }; { 1.6 P4, -0.2 P1, -0.2 P2, -0.2 P3 }; -{ -0.5 P1, 0.5 P2, 0.5 P3, 0.5 P4 }; -{ 0.5 P1, -0.5 P2, 0.5 P3, 0.5 P4 }; -{ 0.5 P1, 0.5 P2, -0.5 P3, 0.5 P4 }; +{ -0.5 P1, 0.5 P2, 0.5 P3, 0.5 P4 }; +{ 0.5 P1, -0.5 P2, 0.5 P3, 0.5 P4 }; +{ 0.5 P1, 0.5 P2, -0.5 P3, 0.5 P4 }; endrule @@ -356,7 +356,7 @@ mappoints (0.5, 0.866, 0) { 0.5 }; (0, 0, -0.816) { 0.5 }; (1, 0, -0.816) { 0.5 }; -(0.5, 0.866, -0.816) { 0.5 }; +(0.5, 0.866, -0.816) { 0.5 }; mapfaces (1, 2, 3) del; @@ -505,10 +505,10 @@ mapfaces (3, 2, 5) del; newpoints -(0, 0.578, -0.816) - { -1 X2, 1 X3, 1 X4 } - { -1 Y2, 1 Y3, 1 Y4 } - { -1 Z2, 1 Z3, 1 Z4 }; +(0, 0.578, -0.816) + { -1 X2, 1 X3, 1 X4 } + { -1 Y2, 1 Y3, 1 Y4 } + { -1 Z2, 1 Z3, 1 Z4 }; newfaces (1, 2, 4); @@ -686,7 +686,7 @@ mapfaces newpoints (0.5, 0.288, -0.816) - { -0.5 X1, -0.5 X2, 1 X3, 1 X4 } + { -0.5 X1, -0.5 X2, 1 X3, 1 X4 } { -0.5 Y1, -0.5 Y2, 1 Y3, 1 Y4} { -0.5 Z1, -0.5 Z2, 1 Z3, 1 Z4}; @@ -1459,4 +1459,3 @@ freezone (0.5, 0.288, -0.15) { 0.333 X2, 0.333 X3 } { 0.333 Y3 } { }; endrule - From 88c114e999f3a4a93e7b5f4e18eccb41b0c2f022 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Mon, 17 Feb 2020 15:11:25 +0100 Subject: [PATCH 2/8] Script to generate rules cpp files, update makerlsfile.cpp --- rules/make_all_rules.sh | 12 ++++++++++++ rules/makerlsfile.cpp | 9 ++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100755 rules/make_all_rules.sh diff --git a/rules/make_all_rules.sh b/rules/make_all_rules.sh new file mode 100755 index 00000000..a19428a9 --- /dev/null +++ b/rules/make_all_rules.sh @@ -0,0 +1,12 @@ +g++ makerlsfile.cpp -o makerls +./makerls hexa.rls ../libsrc/meshing/hexarls.cpp hexrules +./makerls prisms2.rls ../libsrc/meshing/prism2rls.cpp prismrules2 +./makerls pyramids.rls ../libsrc/meshing/pyramidrls.cpp pyramidrules +./makerls pyramids2.rls ../libsrc/meshing/pyramid2rls.cpp pyramidrules2 +./makerls quad.rls ../libsrc/meshing/quadrls.cpp quadrules +./makerls tetra.rls ../libsrc/meshing/tetrarls.cpp tetrules +./makerls triangle.rls ../libsrc/meshing/triarls.cpp triarules +rm makerls + +# node: prisms2rls is currently not used (prism2rls_2.cpp is not compiled) +# ./makerls prisms2.rls ../libsrc/meshing/prism2rls_2.cpp prismrules2 diff --git a/rules/makerlsfile.cpp b/rules/makerlsfile.cpp index 00c253a2..dc1182c6 100644 --- a/rules/makerlsfile.cpp +++ b/rules/makerlsfile.cpp @@ -8,9 +8,9 @@ using namespace std; int main (int argc, char ** argv) { - if (argc != 3) + if (argc != 4) { - cout << "use: makerlsfile infile outfile" << endl; + cout << "use: makerlsfile infile outfile rulename" << endl; exit(1); } @@ -28,8 +28,10 @@ int main (int argc, char ** argv) ifstream inf (argv[1]); ofstream outf (argv[2]); + string rulename = argv[3]; - outf << "const char * ngscript[] = {" << endl; + outf << "namespace netgen" << endl << '{' << endl; + outf << "const char * " << rulename << "[] = {" << endl; while (inf.good()) { i = 0; @@ -61,5 +63,6 @@ int main (int argc, char ** argv) outf << "\"" << line << "\\n\",\\" << endl; } outf << "0};" << endl; + outf << '}' << endl; return 0; } From df0b19275b79a9733fda6750c1c340e5fc11047e Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Mon, 17 Feb 2020 15:21:54 +0100 Subject: [PATCH 3/8] Update rules to match cpp files, regenerate cpp files --- libsrc/meshing/quadrls.cpp | 6 +- libsrc/meshing/tetrarls.cpp | 3 +- rules/quad.rls | 122 ++++++++++++++++++++++++++++++++++++ rules/tetra.rls | 2 +- 4 files changed, 128 insertions(+), 5 deletions(-) diff --git a/libsrc/meshing/quadrls.cpp b/libsrc/meshing/quadrls.cpp index 1c2cd23b..3cdda391 100644 --- a/libsrc/meshing/quadrls.cpp +++ b/libsrc/meshing/quadrls.cpp @@ -179,9 +179,9 @@ const char * quadrules[] = { "(0, 1) { 1 X2, -1 X3 } { 1 Y3 };\n",\ "\n",\ "newlines\n",\ -"(1, 4)\n;",\ -"(4, 3)\n;",\ -"(3, 2)\n;",\ +"(1, 4);\n",\ +"(4, 3);\n",\ +"(3, 2);\n",\ "\n",\ "freearea\n",\ "(0, 0);\n",\ diff --git a/libsrc/meshing/tetrarls.cpp b/libsrc/meshing/tetrarls.cpp index cb28648b..37f55355 100644 --- a/libsrc/meshing/tetrarls.cpp +++ b/libsrc/meshing/tetrarls.cpp @@ -1461,6 +1461,7 @@ const char * tetrules[] = { "(0.5, 0.866, 0) { 1 X3 } { 1 Y3 } { };\n",\ "(0.5, 0.288, -0.15) { 0.333 X2, 0.333 X3 } { 0.333 Y3 } { };\n",\ "\n",\ -"endrule\n", +"endrule\n",\ +"\n",\ 0}; } diff --git a/rules/quad.rls b/rules/quad.rls index b2ef50be..1716d308 100644 --- a/rules/quad.rls +++ b/rules/quad.rls @@ -160,6 +160,49 @@ orientations endrule +rule "Quad P Right (150)" + +quality 150 + +mappoints +(0, 0); +(1, 0); +(1, 1); + +maplines +(1, 2) del; + +newpoints +(0, 1) { 1 X2, -1 X3 } { 1 Y3 }; + +newlines +(1, 4); +(4, 3); +(3, 2); + +freearea +(0, 0); +(1, 0) { 1 X2 } { }; +(1.2, 0.5) { 0.7 X2, 0.5 X3 } { 0.5 Y3 }; +(1, 1) { 1 X3 } { 1 Y3 }; +(-0.5, 1.5) { -2 X2, 1.5 X3 } { 1.5 Y3 }; + +freearea2 +(0, 0); +(1, 0) { 1 X2 } { }; +(1, 0.5) { 0.5 X2, 0.5 X3 } { 0.5 Y3 }; +(1, 1) { 1 X3 } { 1 Y3 }; +(0, 1) { 1 X2, -1 X3 } { 1 Y3 }; + +elements +(1, 2, 3, 4); + +orientations +(1, 2, 3); + +endrule + + rule "Quad Right PL (2)" quality 2 @@ -297,6 +340,48 @@ endrule +rule "Left P Quad (150)" + +quality 150 + +mappoints +(0, 0); +(1, 0); +(0, 1); + +maplines +(1, 2) del; + +newpoints +(1, 1) { 1 X2, -1 X3 } { 1 Y3 }; + +newlines +(1, 3); +(3, 4); +(4, 2); + +freearea +(0, 0); +(1, 0) { 1 X2 } { }; +(1.5, 1.5) { 1.5 X2, 1.5 X3 } { 1.5 Y3 }; +(0, 1) { 1 X3 } { 1 Y3 }; +(-0.2, 0.6) { -0.2 X2, 0.6 X3 } { 0.6 Y3 }; + +freearea2 +(0, 0); +(1, 0) { 1 X2 } { }; +(1, 1) { 1 X2, -1 X3 } { 1 Y3 }; +(0, 1) { 1 X3 } { 1 Y3 }; +(0, 0.5) { 0.5 X3 } { 0.5 Y3 }; + +elements +(1, 2, 4, 3); + +endrule + + + + rule "Left Quad RP (2)" @@ -714,6 +799,43 @@ endrule +rule "Triangle Vis A Vis (200)" + +quality 200 + +mappoints +(0, 0); +(1, 0); +(0.5, 0.866); + +maplines +(1, 2) del; + +newpoints + +newlines +(1, 3); +(3, 2); + +freearea +(0, 0); +(1, 0) { 1 X2 } { }; +(1.2, 0.693) { 0.8 X2, 0.8 X3 } { 0.8 Y2, 0.8 Y3 }; +(0.5, 0.866) { 1 X3 } { 1 Y3 }; +(-0.2, 0.693) { -0.6 X2, 0.8 X3 } { -0.6 Y2, 0.8 Y3 }; + +freearea2 +(0, 0); +(1, 0) { 1 X2 } { }; +(0.75, 0.433) { 0.5 X2, 0.5 X3 } { 0.5 Y2, 0.5 Y3 }; +(0.5, 0.866) { 1 X3 } { 1 Y3 }; +(0.25, 0.433) { 0.5 X3 } { 0.5 Y3 }; + +elements +(1, 2, 3); + +endrule + rule "2 h Vis A Vis (1)" diff --git a/rules/tetra.rls b/rules/tetra.rls index c6b50f04..faad6c43 100644 --- a/rules/tetra.rls +++ b/rules/tetra.rls @@ -139,7 +139,7 @@ endrule rule "Tetrahedron Vis a Vis Point (1)" -quality 1 +quality 100 mappoints (0, 0, 0); From e007f6310e5c9b98f3d3acfe11d9737ec155ff7f Mon Sep 17 00:00:00 2001 From: Christopher Lackner Date: Mon, 17 Feb 2020 16:52:33 +0100 Subject: [PATCH 4/8] add new rule for large pyramids if no close ones are found. Also allow to connect with lower quality class already in pyramid2rls --- libsrc/meshing/pyramid2rls.cpp | 51 +++++++++++++++++++++++++++++++++- rules/pyramids2.rls | 51 +++++++++++++++++++++++++++++++++- 2 files changed, 100 insertions(+), 2 deletions(-) diff --git a/libsrc/meshing/pyramid2rls.cpp b/libsrc/meshing/pyramid2rls.cpp index a97e7f13..acd28930 100644 --- a/libsrc/meshing/pyramid2rls.cpp +++ b/libsrc/meshing/pyramid2rls.cpp @@ -3,6 +3,55 @@ namespace netgen const char * pyramidrules2[] = { "tolfak 0.5\n",\ "\n",\ +"rule \"Large pyramid on quad\"\n",\ +"\n",\ +"quality 1\n",\ +"\n",\ +"mappoints\n",\ +"(0, 0, 0);\n",\ +"(1, 0, 0);\n",\ +"(1, 1, 0);\n",\ +"(0, 1, 0);\n",\ +"\n",\ +"mapfaces\n",\ +"(1, 2, 3, 4) del;\n",\ +"\n",\ +"newpoints\n",\ +"(0.5, 0.5, -3)\n",\ +" { 0.25 X1, 0.25 X2, 0.25 X3, 0.25 X4 }\n",\ +" { 0.25 Y1, 0.25 Y2, 0.25 Y3, 0.25 Y4 } { };\n",\ +"\n",\ +"newfaces\n",\ +"(1, 2, 5);\n",\ +"(2, 3, 5);\n",\ +"(3, 4, 5);\n",\ +"(4, 1, 5);\n",\ +"\n",\ +"elements\n",\ +"(1, 2, 3, 4, 5);\n",\ +"\n",\ +"freezone2\n",\ +"{ 1 P1 };\n",\ +"{ 1 P2 };\n",\ +"{ 1 P3 };\n",\ +"{ 1 P4 };\n",\ +"{ 1.4 P5, -0.1 P1, -0.1 P2, -0.1 P3, -0.1 P4 };\n",\ +"\n",\ +"freezonelimit\n",\ +"{ 1 P1 };\n",\ +"{ 1 P2 };\n",\ +"{ 1 P3 };\n",\ +"{ 1 P4 };\n",\ +"{ 1 P5 };\n",\ +"\n",\ +"freeset\n",\ +"1 2 3 5;\n",\ +"\n",\ +"freeset\n",\ +"1 3 4 5;\n",\ +"\n",\ +"endrule\n",\ +"\n",\ "rule \"Pyramid on quad\"\n",\ "\n",\ "quality 100\n",\ @@ -107,7 +156,7 @@ const char * pyramidrules2[] = { "\n",\ "rule \"connect pyramid\"\n",\ "\n",\ -"quality 100\n",\ +"quality 1\n",\ "\n",\ "mappoints\n",\ "(0, 0, 0);\n",\ diff --git a/rules/pyramids2.rls b/rules/pyramids2.rls index 8e659bce..54101844 100644 --- a/rules/pyramids2.rls +++ b/rules/pyramids2.rls @@ -1,5 +1,54 @@ tolfak 0.5 +rule "Large pyramid on quad" + +quality 1 + +mappoints +(0, 0, 0); +(1, 0, 0); +(1, 1, 0); +(0, 1, 0); + +mapfaces +(1, 2, 3, 4) del; + +newpoints +(0.5, 0.5, -3) + { 0.25 X1, 0.25 X2, 0.25 X3, 0.25 X4 } + { 0.25 Y1, 0.25 Y2, 0.25 Y3, 0.25 Y4 } { }; + +newfaces +(1, 2, 5); +(2, 3, 5); +(3, 4, 5); +(4, 1, 5); + +elements +(1, 2, 3, 4, 5); + +freezone2 +{ 1 P1 }; +{ 1 P2 }; +{ 1 P3 }; +{ 1 P4 }; +{ 1.4 P5, -0.1 P1, -0.1 P2, -0.1 P3, -0.1 P4 }; + +freezonelimit +{ 1 P1 }; +{ 1 P2 }; +{ 1 P3 }; +{ 1 P4 }; +{ 1 P5 }; + +freeset +1 2 3 5; + +freeset +1 3 4 5; + +endrule + rule "Pyramid on quad" quality 100 @@ -104,7 +153,7 @@ endrule rule "connect pyramid" -quality 100 +quality 1 mappoints (0, 0, 0); From 7d5bd32b36fef660cfc7456d583af475db8a4be1 Mon Sep 17 00:00:00 2001 From: Christopher Lackner Date: Mon, 17 Feb 2020 17:34:38 +0100 Subject: [PATCH 5/8] remove new rule again (old was sufficient) --- libsrc/meshing/pyramid2rls.cpp | 51 +--------------------------------- libsrc/meshing/pyramidrls.cpp | 2 +- rules/pyramids.rls | 2 +- rules/pyramids2.rls | 51 +--------------------------------- 4 files changed, 4 insertions(+), 102 deletions(-) diff --git a/libsrc/meshing/pyramid2rls.cpp b/libsrc/meshing/pyramid2rls.cpp index acd28930..a97e7f13 100644 --- a/libsrc/meshing/pyramid2rls.cpp +++ b/libsrc/meshing/pyramid2rls.cpp @@ -3,55 +3,6 @@ namespace netgen const char * pyramidrules2[] = { "tolfak 0.5\n",\ "\n",\ -"rule \"Large pyramid on quad\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.5, -3)\n",\ -" { 0.25 X1, 0.25 X2, 0.25 X3, 0.25 X4 }\n",\ -" { 0.25 Y1, 0.25 Y2, 0.25 Y3, 0.25 Y4 } { };\n",\ -"\n",\ -"newfaces\n",\ -"(1, 2, 5);\n",\ -"(2, 3, 5);\n",\ -"(3, 4, 5);\n",\ -"(4, 1, 5);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1.4 P5, -0.1 P1, -0.1 P2, -0.1 P3, -0.1 P4 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ "rule \"Pyramid on quad\"\n",\ "\n",\ "quality 100\n",\ @@ -156,7 +107,7 @@ const char * pyramidrules2[] = { "\n",\ "rule \"connect pyramid\"\n",\ "\n",\ -"quality 1\n",\ +"quality 100\n",\ "\n",\ "mappoints\n",\ "(0, 0, 0);\n",\ diff --git a/libsrc/meshing/pyramidrls.cpp b/libsrc/meshing/pyramidrls.cpp index d4e997c1..a87686b2 100644 --- a/libsrc/meshing/pyramidrls.cpp +++ b/libsrc/meshing/pyramidrls.cpp @@ -5,7 +5,7 @@ const char * pyramidrules[] = { "\n",\ "rule \"Pyramid on quad\"\n",\ "\n",\ -"quality 100\n",\ +"quality 10\n",\ "\n",\ "mappoints\n",\ "(0, 0, 0);\n",\ diff --git a/rules/pyramids.rls b/rules/pyramids.rls index 3d6839a4..09b2355d 100644 --- a/rules/pyramids.rls +++ b/rules/pyramids.rls @@ -2,7 +2,7 @@ tolfak 0.5 rule "Pyramid on quad" -quality 100 +quality 10 mappoints (0, 0, 0); diff --git a/rules/pyramids2.rls b/rules/pyramids2.rls index 54101844..8e659bce 100644 --- a/rules/pyramids2.rls +++ b/rules/pyramids2.rls @@ -1,54 +1,5 @@ tolfak 0.5 -rule "Large pyramid on quad" - -quality 1 - -mappoints -(0, 0, 0); -(1, 0, 0); -(1, 1, 0); -(0, 1, 0); - -mapfaces -(1, 2, 3, 4) del; - -newpoints -(0.5, 0.5, -3) - { 0.25 X1, 0.25 X2, 0.25 X3, 0.25 X4 } - { 0.25 Y1, 0.25 Y2, 0.25 Y3, 0.25 Y4 } { }; - -newfaces -(1, 2, 5); -(2, 3, 5); -(3, 4, 5); -(4, 1, 5); - -elements -(1, 2, 3, 4, 5); - -freezone2 -{ 1 P1 }; -{ 1 P2 }; -{ 1 P3 }; -{ 1 P4 }; -{ 1.4 P5, -0.1 P1, -0.1 P2, -0.1 P3, -0.1 P4 }; - -freezonelimit -{ 1 P1 }; -{ 1 P2 }; -{ 1 P3 }; -{ 1 P4 }; -{ 1 P5 }; - -freeset -1 2 3 5; - -freeset -1 3 4 5; - -endrule - rule "Pyramid on quad" quality 100 @@ -153,7 +104,7 @@ endrule rule "connect pyramid" -quality 1 +quality 100 mappoints (0, 0, 0); From 2eb888a8bfa97a7d1b674e8d5f2330ed37fbcdc4 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Thu, 29 Apr 2021 14:30:21 +0200 Subject: [PATCH 6/8] generate .cpp for meshing rules automatically during the build process --- libsrc/meshing/CMakeLists.txt | 25 +- libsrc/meshing/hexarls.cpp | 209 --- libsrc/meshing/prism2rls.cpp | 457 ------ libsrc/meshing/prism2rls_2.cpp | 446 ------ libsrc/meshing/pyramid2rls.cpp | 309 ----- libsrc/meshing/pyramidrls.cpp | 263 ---- libsrc/meshing/quadrls.cpp | 887 ------------ libsrc/meshing/tetrarls.cpp | 1467 -------------------- libsrc/meshing/triarls.cpp | 468 ------- rules/{hexa.rls => hexrules.rls} | 0 rules/make_all_rules.sh | 12 - rules/makerlsfile.cpp | 2 +- rules/{prisms2.rls => prismrules2.rls} | 0 rules/{pyramids.rls => pyramidrules.rls} | 0 rules/{pyramids2.rls => pyramidrules2.rls} | 0 rules/{quad.rls => quadrules.rls} | 0 rules/{tetra.rls => tetrules.rls} | 0 rules/{triangle.rls => triarules.rls} | 0 18 files changed, 21 insertions(+), 4524 deletions(-) delete mode 100644 libsrc/meshing/hexarls.cpp delete mode 100644 libsrc/meshing/prism2rls.cpp delete mode 100644 libsrc/meshing/prism2rls_2.cpp delete mode 100644 libsrc/meshing/pyramid2rls.cpp delete mode 100644 libsrc/meshing/pyramidrls.cpp delete mode 100644 libsrc/meshing/quadrls.cpp delete mode 100644 libsrc/meshing/tetrarls.cpp delete mode 100644 libsrc/meshing/triarls.cpp rename rules/{hexa.rls => hexrules.rls} (100%) delete mode 100755 rules/make_all_rules.sh rename rules/{prisms2.rls => prismrules2.rls} (100%) rename rules/{pyramids.rls => pyramidrules.rls} (100%) rename rules/{pyramids2.rls => pyramidrules2.rls} (100%) rename rules/{quad.rls => quadrules.rls} (100%) rename rules/{tetra.rls => tetrules.rls} (100%) rename rules/{triangle.rls => triarules.rls} (100%) diff --git a/libsrc/meshing/CMakeLists.txt b/libsrc/meshing/CMakeLists.txt index 342dd1e0..0829b79a 100644 --- a/libsrc/meshing/CMakeLists.txt +++ b/libsrc/meshing/CMakeLists.txt @@ -1,3 +1,18 @@ +# generate .cpp files containing the string of the .rls meshing rule files +add_executable(makerls ${CMAKE_CURRENT_SOURCE_DIR}/../../rules/makerlsfile.cpp) + +set(rules hexrules prismrules2 pyramidrules pyramidrules2 quadrules tetrules triarules) + +foreach(rule ${rules}) + list(APPEND rules_sources rule_${rule}.cpp) + + add_custom_command(OUTPUT rule_${rule}.cpp + COMMAND makerls ${CMAKE_CURRENT_SOURCE_DIR}/../../rules/${rule}.rls rule_${rule}.cpp ${rule} + DEPENDS makerls + ) +endforeach() + + add_definitions(-DNGINTERFACE_EXPORTS) add_library(mesh ${NG_LIB_TYPE} adfront2.cpp adfront3.cpp bisect.cpp boundarylayer.cpp @@ -6,14 +21,14 @@ add_library(mesh ${NG_LIB_TYPE} improve2gen.cpp improve3.cpp localh.cpp meshclass.cpp meshfunc.cpp meshfunc2d.cpp meshing2.cpp meshing3.cpp meshtool.cpp meshtype.cpp msghandler.cpp netrule2.cpp - netrule3.cpp parser2.cpp parser3.cpp prism2rls.cpp - pyramid2rls.cpp pyramidrls.cpp quadrls.cpp refine.cpp + netrule3.cpp parser2.cpp parser3.cpp refine.cpp ruler2.cpp ruler3.cpp secondorder.cpp smoothing2.5.cpp - smoothing2.cpp smoothing3.cpp specials.cpp tetrarls.cpp - topology.cpp triarls.cpp validate.cpp bcfunctions.cpp + smoothing2.cpp smoothing3.cpp specials.cpp + topology.cpp validate.cpp bcfunctions.cpp parallelmesh.cpp paralleltop.cpp paralleltop.hpp basegeom.cpp - python_mesh.cpp hexarls.cpp surfacegeom.cpp + python_mesh.cpp surfacegeom.cpp ../../ng/onetcl.cpp + ${rules_sources} ${mesh_object_libs} ) diff --git a/libsrc/meshing/hexarls.cpp b/libsrc/meshing/hexarls.cpp deleted file mode 100644 index f2e9e7c6..00000000 --- a/libsrc/meshing/hexarls.cpp +++ /dev/null @@ -1,209 +0,0 @@ -namespace netgen -{ -const char * hexrules[] = { -"rule \"Hexa left-right-top\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"flags t;\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 } ;\n",\ -"(1, 1, 0) { 1 } ;\n",\ -"(0, 1, 0) { 1 } ;\n",\ -"(0, 0, 1) { 1 } ;\n",\ -"(1, 0, 1) { 1 } ;\n",\ -"(1, 1, 1) { 1 } ;\n",\ -"(0, 1, 1) { 1 } ;\n",\ -"\n",\ -"mapfaces\n",\ -"(4, 3, 2, 1) del;\n",\ -"(3, 7, 6, 2) del;\n",\ -"(7, 8, 5, 6) del;\n",\ -"(8, 4, 1, 5) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(5, 6, 2, 1);\n",\ -"(7, 8, 4, 3);\n",\ -"\n",\ -"elements\n",\ -"(4, 3, 2, 1, 8, 7, 6, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 0.3 P1, 0.3 P2, 0.3 P5, 0.3 P6, -0.05 P3, -0.05 P4, -0.05 P7, -0.05 P8 };\n",\ -"{ 0.3 P3, 0.3 P4, 0.3 P7, 0.3 P8, -0.05 P1, -0.05 P2, -0.05 P5, -0.05 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 0.25 P1, 0.25 P2, 0.25 P5, 0.25 P6, -0.0 P3, -0.0 P4, -0.0 P7, -0.0 P8 };\n",\ -"{ 0.25 P3, 0.25 P4, 0.25 P7, 0.25 P8, -0.0 P1, -0.0 P1, -0.0 P5, -0.0 P6 };\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Hexa left-right-top (10)\"\n",\ -"\n",\ -"quality 10\n",\ -"\n",\ -"flags t;\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 } ;\n",\ -"(1, 1, 0) { 1 } ;\n",\ -"(0, 1, 0) { 1 } ;\n",\ -"(0, 0, 1) { 1 } ;\n",\ -"(1, 0, 1) { 1 } ;\n",\ -"(1, 1, 1) { 1 } ;\n",\ -"(0, 1, 1) { 1 } ;\n",\ -"\n",\ -"mapfaces\n",\ -"(4, 3, 2, 1) del;\n",\ -"(3, 7, 6, 2) del;\n",\ -"(7, 8, 5, 6) del;\n",\ -"(8, 4, 1, 5) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(5, 6, 2, 1);\n",\ -"(7, 8, 4, 3);\n",\ -"\n",\ -"elements\n",\ -"(4, 3, 2, 1, 8, 7, 6, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 0.251 P1, 0.251 P2, 0.251 P5, 0.251 P6, -0.05 P3, -0.001 P4, -0.001 P7, -0.001 P8 };\n",\ -"{ 0.251 P3, 0.251 P4, 0.251 P7, 0.251 P8, -0.05 P1, -0.001 P2, -0.001 P5, -0.001 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 0.25 P1, 0.25 P2, 0.25 P5, 0.25 P6, -0.0 P3, -0.0 P4, -0.0 P7, -0.0 P8 };\n",\ -"{ 0.25 P3, 0.25 P4, 0.25 P7, 0.25 P8, -0.0 P1, -0.0 P1, -0.0 P5, -0.0 P6 };\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Hexa left-right-top-front\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"flags t;\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 } ;\n",\ -"(1, 1, 0) { 1 } ;\n",\ -"(0, 1, 0) { 1 } ;\n",\ -"(0, 0, 1) { 1 } ;\n",\ -"(1, 0, 1) { 1 } ;\n",\ -"(1, 1, 1) { 1 } ;\n",\ -"(0, 1, 1) { 1 } ;\n",\ -"\n",\ -"mapfaces\n",\ -"(4, 3, 2, 1) del;\n",\ -"(3, 7, 6, 2) del;\n",\ -"(7, 8, 5, 6) del;\n",\ -"(8, 4, 1, 5) del;\n",\ -"(1, 2, 6, 5) del;\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(7, 8, 4, 3);\n",\ -"\n",\ -"elements\n",\ -"(4, 3, 2, 1, 8, 7, 6, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 0.3 P3, 0.3 P4, 0.3 P7, 0.3 P8, -0.05 P1, -0.05 P2, -0.05 P5, -0.05 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 0.25 P3, 0.25 P4, 0.25 P7, 0.25 P8, -0.0 P1, -0.0 P1, -0.0 P5, -0.0 P6 };\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Hexa fill\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"flags t;\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 } ;\n",\ -"(1, 1, 0) { 1 } ;\n",\ -"(0, 1, 0) { 1 } ;\n",\ -"(0, 0, 1) { 1 } ;\n",\ -"(1, 0, 1) { 1 } ;\n",\ -"(1, 1, 1) { 1 } ;\n",\ -"(0, 1, 1) { 1 } ;\n",\ -"\n",\ -"mapfaces\n",\ -"(4, 3, 2, 1) del;\n",\ -"(3, 7, 6, 2) del;\n",\ -"(7, 8, 5, 6) del;\n",\ -"(8, 4, 1, 5) del;\n",\ -"(1, 2, 6, 5) del;\n",\ -"(3, 4, 8, 7) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"\n",\ -"elements\n",\ -"(4, 3, 2, 1, 8, 7, 6, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P3 };\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -0}; -} diff --git a/libsrc/meshing/prism2rls.cpp b/libsrc/meshing/prism2rls.cpp deleted file mode 100644 index 7e696554..00000000 --- a/libsrc/meshing/prism2rls.cpp +++ /dev/null @@ -1,457 +0,0 @@ -namespace netgen -{ -const char * prismrules2[] = { -"tolfak 0.5\n",\ -"\n",\ -"rule \"prism on quad\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(1, 5, 2) del;\n",\ -"(4, 3, 6) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(5, 2, 3, 6);\n",\ -"(1, 5, 6, 4);\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"orientations\n",\ -"(1, 2, 3, 5);\n",\ -"(1, 3, 4, 6);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.3 P1, -0.1 P2, -0.1 P3, 0.3 P4, 0.3 P5, 0.3 P6 };\n",\ -"{ -0.1 P1, 0.3 P2, 0.3 P3, -0.1 P4, 0.3 P5, 0.3 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.25 P1, 0 P2, 0 P3, 0.25 P4, 0.25 P5, 0.25 P6 };\n",\ -"{ 0 P1, 0.25 P2, 0.25 P3, 0 P4, 0.25 P5, 0.25 P6 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 4 5 6 7;\n",\ -"\n",\ -"freeset\n",\ -"2 3 4 5 6 8;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"prism on quad, one trig\"\n",\ -"\n",\ -"quality 2\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(1, 5, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(5, 2, 3, 6);\n",\ -"(1, 5, 6, 4);\n",\ -"(4, 6, 3);\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"orientations\n",\ -"(1, 2, 3, 5);\n",\ -"(1, 3, 4, 6);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.3 P1, -0.1 P2, -0.1 P3, 0.3 P4, 0.3 P5, 0.3 P6 };\n",\ -"{ -0.1 P1, 0.3 P2, 0.3 P3, -0.1 P4, 0.3 P5, 0.3 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.25 P1, 0 P2, 0 P3, 0.25 P4, 0.25 P5, 0.25 P6 };\n",\ -"{ 0 P1, 0.25 P2, 0.25 P3, 0 P4, 0.25 P5, 0.25 P6 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 4 5 6 7;\n",\ -"\n",\ -"freeset\n",\ -"2 3 4 5 6 8;\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"prism on 2 quad\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 5, 6, 3) del;\n",\ -"(1, 5, 2) del;\n",\ -"(4, 3, 6) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(1, 5, 6, 4);\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.3 P1, -0.1 P2, -0.1 P3, 0.3 P4, 0.3 P5, 0.3 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.25 P1, 0 P2, 0 P3, 0.25 P4, 0.25 P5, 0.25 P6 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 4 5 6 7;\n",\ -"\n",\ -"freeset\n",\ -"2 3 4 6;\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"prism on 2 quad, one trig\"\n",\ -"\n",\ -"quality 2\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 5, 6, 3) del;\n",\ -"(1, 5, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(1, 5, 6, 4);\n",\ -"(4, 6, 3);\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.3 P1, -0.1 P2, -0.1 P3, 0.3 P4, 0.3 P5, 0.3 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.25 P1, 0 P2, 0 P3, 0.25 P4, 0.25 P5, 0.25 P6 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 4 5 6 7;\n",\ -"\n",\ -"freeset\n",\ -"2 3 4 6;\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"prism on 2 quada\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(5, 1, 4, 6) del;\n",\ -"(1, 5, 2) del;\n",\ -"(4, 3, 6) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(5, 2, 3, 6);\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ -0.1 P1, 0.3 P2, 0.3 P3, -0.1 P4, 0.3 P5, 0.3 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0 P1, 0.25 P2, 0.25 P3, 0 P4, 0.25 P5, 0.25 P6 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5 6 7;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 6;\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"fill prism\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 5, 6, 3) del;\n",\ -"(5, 1, 4, 6) del;\n",\ -"(1, 5, 2) del;\n",\ -"(4, 3, 6) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 4 5;\n",\ -"\n",\ -"freeset\n",\ -"2 3 4 6;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"prism on 3 quad, one trig\"\n",\ -"\n",\ -"quality 2\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 5, 6, 3) del;\n",\ -"(5, 1, 4, 6) del;\n",\ -"(1, 5, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(4, 6, 3);\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 4 5;\n",\ -"\n",\ -"freeset\n",\ -"2 3 4 6;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"flat prism\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(0.5, 0.866, 0);\n",\ -"(0, 0, -1);\n",\ -"(1, 0, -1);\n",\ -"(0.5, 0.866, -1);\n",\ -"\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(5, 4, 6) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(1, 2, 4);\n",\ -"(4, 2, 5);\n",\ -"(2, 3, 5);\n",\ -"(5, 3, 6);\n",\ -"(3, 1, 6);\n",\ -"(6, 1, 4);\n",\ -"\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 5, 4, 6);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"endrule\n",\ -"\n",\ -0}; -} diff --git a/libsrc/meshing/prism2rls_2.cpp b/libsrc/meshing/prism2rls_2.cpp deleted file mode 100644 index baf0bef3..00000000 --- a/libsrc/meshing/prism2rls_2.cpp +++ /dev/null @@ -1,446 +0,0 @@ -namespace netgen -{ -const char * prismrules2[] = { -"tolfak 0.5\n",\ -"\n",\ -"rule \"prism on quad\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(1, 5, 2) del;\n",\ -"(4, 3, 6) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(5, 2, 3, 6);\n",\ -"(1, 5, 6, 4);\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"orientations\n",\ -"(1, 2, 3, 5);\n",\ -"(1, 3, 4, 6);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.3 P1, -0.1 P2, -0.1 P3, 0.3 P4, 0.3 P5, 0.3 P6 };\n",\ -"{ -0.1 P1, 0.3 P2, 0.3 P3, -0.1 P4, 0.3 P5, 0.3 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.25 P1, 0 P2, 0 P3, 0.25 P4, 0.25 P5, 0.25 P6 };\n",\ -"{ 0 P1, 0.25 P2, 0.25 P3, 0 P4, 0.25 P5, 0.25 P6 };\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"prism on quad, one trig\"\n",\ -"\n",\ -"quality 2\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(1, 5, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(5, 2, 3, 6);\n",\ -"(1, 5, 6, 4);\n",\ -"(4, 6, 3);\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"orientations\n",\ -"(1, 2, 3, 5);\n",\ -"(1, 3, 4, 6);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.3 P1, -0.1 P2, -0.1 P3, 0.3 P4, 0.3 P5, 0.3 P6 };\n",\ -"{ -0.1 P1, 0.3 P2, 0.3 P3, -0.1 P4, 0.3 P5, 0.3 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.25 P1, 0 P2, 0 P3, 0.25 P4, 0.25 P5, 0.25 P6 };\n",\ -"{ 0 P1, 0.25 P2, 0.25 P3, 0 P4, 0.25 P5, 0.25 P6 };\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"prism on 2 quad\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 5, 6, 3) del;\n",\ -"(1, 5, 2) del;\n",\ -"(4, 3, 6) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(1, 5, 6, 4);\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.3 P1, -0.1 P2, -0.1 P3, 0.3 P4, 0.3 P5, 0.3 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.25 P1, 0 P2, 0 P3, 0.25 P4, 0.25 P5, 0.25 P6 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 4 5 6 7;\n",\ -"\n",\ -"freeset\n",\ -"2 3 4 6;\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"prism on 2 quad, one trig\"\n",\ -"\n",\ -"quality 2\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 5, 6, 3) del;\n",\ -"(1, 5, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(1, 5, 6, 4);\n",\ -"(4, 6, 3);\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.3 P1, -0.1 P2, -0.1 P3, 0.3 P4, 0.3 P5, 0.3 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0.25 P1, 0 P2, 0 P3, 0.25 P4, 0.25 P5, 0.25 P6 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 4 5 6 7;\n",\ -"\n",\ -"freeset\n",\ -"2 3 4 6;\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"prism on 2 quada\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(5, 1, 4, 6) del;\n",\ -"(1, 5, 2) del;\n",\ -"(4, 3, 6) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(5, 2, 3, 6);\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ -0.1 P1, 0.3 P2, 0.3 P3, -0.1 P4, 0.3 P5, 0.3 P6 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 0 P1, 0.25 P2, 0.25 P3, 0 P4, 0.25 P5, 0.25 P6 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5 6 7;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 6;\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"fill prism\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 5, 6, 3) del;\n",\ -"(5, 1, 4, 6) del;\n",\ -"(1, 5, 2) del;\n",\ -"(4, 3, 6) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 4 5;\n",\ -"\n",\ -"freeset\n",\ -"2 3 4 6;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"prism on 3 quad, one trig\"\n",\ -"\n",\ -"quality 2\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0, -0.86);\n",\ -"(0.5, 1, -0.86);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 5, 6, 3) del;\n",\ -"(5, 1, 4, 6) del;\n",\ -"(1, 5, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(4, 6, 3);\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 5, 2, 4, 6, 3);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 4 5;\n",\ -"\n",\ -"freeset\n",\ -"2 3 4 6;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"flat prism\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(0.5, 0.866, 0);\n",\ -"(0, 0, -1);\n",\ -"(1, 0, -1);\n",\ -"(0.5, 0.866, -1);\n",\ -"\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(5, 4, 6) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(1, 2, 4);\n",\ -"(4, 2, 5);\n",\ -"(2, 3, 5);\n",\ -"(5, 3, 6);\n",\ -"(3, 1, 6);\n",\ -"(6, 1, 4);\n",\ -"\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 5, 4, 6);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"endrule\n",\ -"\n",\ -0}; -} diff --git a/libsrc/meshing/pyramid2rls.cpp b/libsrc/meshing/pyramid2rls.cpp deleted file mode 100644 index a97e7f13..00000000 --- a/libsrc/meshing/pyramid2rls.cpp +++ /dev/null @@ -1,309 +0,0 @@ -namespace netgen -{ -const char * pyramidrules2[] = { -"tolfak 0.5\n",\ -"\n",\ -"rule \"Pyramid on quad\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.5, -0.5) \n",\ -" { 0.25 X1, 0.25 X2, 0.25 X3, 0.25 X4 } \n",\ -" { 0.25 Y1, 0.25 Y2, 0.25 Y3, 0.25 Y4 } { };\n",\ -"\n",\ -"newfaces\n",\ -"(1, 2, 5);\n",\ -"(2, 3, 5);\n",\ -"(3, 4, 5);\n",\ -"(4, 1, 5);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1.4 P5, -0.1 P1, -0.1 P2, -0.1 P3, -0.1 P4 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"rule \"small Pyramid on quad\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.5, -0.1 )\n",\ -" { 0.25 X1, 0.25 X2, 0.25 X3, 0.25 X4 } \n",\ -" { 0.25 Y1, 0.25 Y2, 0.25 Y3, 0.25 Y4 } { };\n",\ -"\n",\ -"newfaces\n",\ -"(1, 2, 5);\n",\ -"(2, 3, 5);\n",\ -"(3, 4, 5);\n",\ -"(4, 1, 5);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1.4 P5, -0.1 P1, -0.1 P2, -0.1 P3, -0.1 P4 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"connect pyramid\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0.5, -0.5);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(1, 2, 5);\n",\ -"(2, 3, 5);\n",\ -"(3, 4, 5);\n",\ -"(4, 1, 5);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"pyramid with one trig\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0.5, -0.5);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 1, 5) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(2, 3, 5);\n",\ -"(3, 4, 5);\n",\ -"(4, 1, 5);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 0.34 P2, 0.34 P3, 0.34 P5, -0.02 P1 };\n",\ -"{ 0.34 P3, 0.34 P4, 0.34 P5, -0.02 P1 };\n",\ -"{ 0.34 P1, 0.34 P4, 0.34 P5, -0.02 P2 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 0.333 P2, 0.333 P3, 0.334 P5, 0 P1 };\n",\ -"{ 0.333 P3, 0.333 P4, 0.334 P5, 0 P1 };\n",\ -"{ 0.333 P1, 0.333 P4, 0.334 P5, 0 P2 };\n",\ -"\n",\ -"orientations\n",\ -"(1, 2, 3, 5);\n",\ -"(1, 3, 4, 5);\n",\ -"\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"freeset\n",\ -"2 3 5 6;\n",\ -"freeset\n",\ -"3 4 5 7;\n",\ -"freeset \n",\ -"1 4 5 8;\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"pyramid with two trig\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0.5, -0.5);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 1, 5) del;\n",\ -"(3, 2, 5) del;\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(3, 4, 5);\n",\ -"(4, 1, 5);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"pyramid with two trig, left\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0.5, -0.5);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 1, 5) del;\n",\ -"(1, 4, 5) del;\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(3, 4, 5);\n",\ -"(2, 3, 5);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -0}; -} diff --git a/libsrc/meshing/pyramidrls.cpp b/libsrc/meshing/pyramidrls.cpp deleted file mode 100644 index a87686b2..00000000 --- a/libsrc/meshing/pyramidrls.cpp +++ /dev/null @@ -1,263 +0,0 @@ -namespace netgen -{ -const char * pyramidrules[] = { -"tolfak 0.5\n",\ -"\n",\ -"rule \"Pyramid on quad\"\n",\ -"\n",\ -"quality 10\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.5, -0.5) \n",\ -" { 0.25 X1, 0.25 X2, 0.25 X3, 0.25 X4 } \n",\ -" { 0.25 Y1, 0.25 Y2, 0.25 Y3, 0.25 Y4 } { };\n",\ -"\n",\ -"newfaces\n",\ -"(1, 2, 5);\n",\ -"(2, 3, 5);\n",\ -"(3, 4, 5);\n",\ -"(4, 1, 5);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1.4 P5, -0.1 P1, -0.1 P2, -0.1 P3, -0.1 P4 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"rule \"small Pyramid on quad\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.5, -0.1 )\n",\ -" { 0.25 X1, 0.25 X2, 0.25 X3, 0.25 X4 } \n",\ -" { 0.25 Y1, 0.25 Y2, 0.25 Y3, 0.25 Y4 } { };\n",\ -"\n",\ -"newfaces\n",\ -"(1, 2, 5);\n",\ -"(2, 3, 5);\n",\ -"(3, 4, 5);\n",\ -"(4, 1, 5);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1.4 P5, -0.1 P1, -0.1 P2, -0.1 P3, -0.1 P4 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"connect pyramid\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0.5, -0.5);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(1, 2, 5);\n",\ -"(2, 3, 5);\n",\ -"(3, 4, 5);\n",\ -"(4, 1, 5);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"pyramid with one trig\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0.5, -0.5);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 1, 5) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(2, 3, 5);\n",\ -"(3, 4, 5);\n",\ -"(4, 1, 5);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 0.34 P2, 0.34 P3, 0.34 P5, -0.02 P1 };\n",\ -"{ 0.34 P3, 0.34 P4, 0.34 P5, -0.02 P1 };\n",\ -"{ 0.34 P1, 0.34 P4, 0.34 P5, -0.02 P3 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 0.333 P2, 0.333 P3, 0.334 P5, 0 P1 };\n",\ -"{ 0.333 P3, 0.333 P4, 0.334 P5, 0 P1 };\n",\ -"{ 0.333 P1, 0.333 P4, 0.334 P5, 0 P3 };\n",\ -"\n",\ -"orientations\n",\ -"(1, 2, 3, 5);\n",\ -"(1, 3, 4, 5);\n",\ -"\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"freeset\n",\ -"2 3 5 6;\n",\ -"freeset\n",\ -"3 4 5 7;\n",\ -"freeset \n",\ -"1 4 5 8;\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"pyramid with two trig\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(1, 1, 0);\n",\ -"(0, 1, 0);\n",\ -"(0.5, 0.5, -0.5);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3, 4) del;\n",\ -"(2, 1, 5) del;\n",\ -"(3, 2, 5) del;\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(3, 4, 5);\n",\ -"(4, 1, 5);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -0}; -} diff --git a/libsrc/meshing/quadrls.cpp b/libsrc/meshing/quadrls.cpp deleted file mode 100644 index 3cdda391..00000000 --- a/libsrc/meshing/quadrls.cpp +++ /dev/null @@ -1,887 +0,0 @@ -namespace netgen -{ -const char * quadrules[] = { -"rule \"Free Quad (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(1, 1) { 1 X2 } { };\n",\ -"(0, 1) { } { };\n",\ -"\n",\ -"newlines\n",\ -"(3, 2);\n",\ -"(4, 3);\n",\ -"(1, 4);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 1.5) { 1.5 X2 } { };\n",\ -"(-0.5, 1.5) { -0.5 X2 } { };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Free Quad (5)\"\n",\ -"\n",\ -"quality 5\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(1, 1) { 1 X2 } { };\n",\ -"(0, 1) { } { };\n",\ -"\n",\ -"newlines\n",\ -"(3, 2);\n",\ -"(4, 3);\n",\ -"(1, 4);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 1.5) { 1.5 X2 } { };\n",\ -"(-0.5, 1.5) { -0.5 X2 } { };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 1) { 1 X2 } { };\n",\ -"(0, 1) { } { };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Quad Right (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(2, 3) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0, 1) { } { 1 y3 };\n",\ -"\n",\ -"newlines\n",\ -"(1, 4);\n",\ -"(4, 3);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(-0.5, 1.5) { } { 1.5 Y3 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0, 1) { } { 1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Quad P Right (2)\"\n",\ -"\n",\ -"quality 2\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0, 1) { -1 X2, 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"newlines\n",\ -"(1, 4);\n",\ -"(4, 3);\n",\ -"(3, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.2, 0.5) { 0.7 X2, 0.5 X3 } { 0.5 Y3 };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(-0.5, 1.5) { -2 X2, 1.5 X3 } { 1.5 Y3 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 0.5) { 0.5 X2, 0.5 X3 } { 0.5 Y3 };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0, 1) { -1 X2, 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"\n",\ -"orientations\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"rule \"Quad P Right (150)\"\n",\ -"\n",\ -"quality 150\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0, 1) { 1 X2, -1 X3 } { 1 Y3 };\n",\ -"\n",\ -"newlines\n",\ -"(1, 4);\n",\ -"(4, 3);\n",\ -"(3, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.2, 0.5) { 0.7 X2, 0.5 X3 } { 0.5 Y3 };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(-0.5, 1.5) { -2 X2, 1.5 X3 } { 1.5 Y3 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 0.5) { 0.5 X2, 0.5 X3 } { 0.5 Y3 };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0, 1) { 1 X2, -1 X3 } { 1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"orientations\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"rule \"Quad Right PL (2)\"\n",\ -"\n",\ -"quality 2\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1, 1);\n",\ -"(0, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(2, 3) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"(1, 4);\n",\ -"(4, 3);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0.5, 1.2) { -0.1 X2, 0.6 X3, 0.6 X4 } { -0.1 Y2, 0.6 Y3, 0.6 Y4 };\n",\ -"(0, 1) { 1 X4 } { 1 Y4 };\n",\ -"(-0.2, 0.5) { -0.1 X2, -0.1 X3, 0.6 X4 } { -0.1 Y2, -0.1 Y3, 0.6 Y4 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0.5, 1) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4 };\n",\ -"(0, 1) { 1 X4 } { 1 Y4 };\n",\ -"(0, 0.5) { 0.5 X4 } { 0.5 Y4 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"orientations\n",\ -"(1, 2, 3);\n",\ -"(1, 3, 4);\n",\ -"(1, 2, 4);\n",\ -"(4, 2, 3);\n",\ -"\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Left Quad (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(0, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(3, 1) del;\n",\ -"\n",\ -"newpoints\n",\ -"(1, 1) { 1 X2, 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"newlines\n",\ -"(3, 4);\n",\ -"(4, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 1.5) { 1.5 X2, 1.5 X3 } { 1.5 Y3 };\n",\ -"(0, 1) { 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 1) { 1 X2, 1 X3 } { 1 Y3 };\n",\ -"(0, 1) { 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 4, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Left P Quad (2)\"\n",\ -"\n",\ -"quality 2\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(0, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(1, 1) { 1 X2, 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"newlines\n",\ -"(1, 3);\n",\ -"(3, 4);\n",\ -"(4, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 1.5) { 1.5 X2, 1.5 X3 } { 1.5 Y3 };\n",\ -"(0, 1) { 1 X3 } { 1 Y3 };\n",\ -"(-0.2, 0.6) { -0.2 X2, 0.6 X3 } { 0.6 Y3 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 1) { 1 X2, 1 X3 } { 1 Y3 };\n",\ -"(0, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0, 0.5) { 0.5 X3 } { 0.5 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 4, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Left P Quad (150)\"\n",\ -"\n",\ -"quality 150\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(0, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(1, 1) { 1 X2, -1 X3 } { 1 Y3 };\n",\ -"\n",\ -"newlines\n",\ -"(1, 3);\n",\ -"(3, 4);\n",\ -"(4, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 1.5) { 1.5 X2, 1.5 X3 } { 1.5 Y3 };\n",\ -"(0, 1) { 1 X3 } { 1 Y3 };\n",\ -"(-0.2, 0.6) { -0.2 X2, 0.6 X3 } { 0.6 Y3 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 1) { 1 X2, -1 X3 } { 1 Y3 };\n",\ -"(0, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0, 0.5) { 0.5 X3 } { 0.5 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 4, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Left Quad RP (2)\"\n",\ -"\n",\ -"quality 2\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(0, 1);\n",\ -"(1, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(3, 1) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"(3, 4);\n",\ -"(4, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.2, 0.5) { 0.6 X2, 0.6 X4, -0.1 X3 } { 0.6 Y2, 0.6 Y4, -0.1 Y3 };\n",\ -"(1, 1) { 1 X4 } { 1 Y4 };\n",\ -"(0.5, 1.2) { -0.1 X2, 0.6 X3, 0.6 X4 } { -0.1 Y2, 0.6 Y3, 0.6 Y4 };\n",\ -"(0, 1) { 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 0.5) { 0.5 X2, 0.5 X4 } { 0.5 Y2, 0.5 Y4 };\n",\ -"(1, 1) { 1 X4 } { 1 Y4 };\n",\ -"(0.5, 1) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4 };\n",\ -"(0, 1) { 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 4, 3);\n",\ -"\n",\ -"orientations\n",\ -"(1, 2, 4);\n",\ -"(1, 4, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Two left (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1, 1);\n",\ -"(0, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(3, 4) del;\n",\ -"(4, 1) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"(3, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 0.5) { 0.75 X2, 0.75 X3, -0.25 X4 } { 0.75 Y3, -0.25 Y4 };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0, 1) { 1 X4 } { 1 Y4 };\n",\ -"\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 0.5) { 0.5 X2, 0.5 X3 } { 0.5 Y3 };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0, 1) { 1 X4 } { 1 Y4 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Two Right (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1, 1);\n",\ -"(0, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(2, 3) del;\n",\ -"(3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"(1, 4);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0, 1) { 1 X4 } { 1 Y4 };\n",\ -"(-0.5, 0.5) { -0.25 X2, -0.25 X3, 0.75 X4 } { -0.25 Y3, 0.75 Y4 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0, 1) { 1 X4 } { 1 Y4 };\n",\ -"(0, 0.5) { 0.5 X4 } { 0.5 Y4 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Right 120 (1)\"\n",\ -"\n",\ -"quality 1000\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1.5, 0.866);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(2, 3) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.866) { 1 X3, -1 X2 } { 1 Y3 };\n",\ -"\n",\ -"newlines\n",\ -"(1, 4);\n",\ -"(4, 3);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"(1, 1.732) { -2 X2, 2 X3 } { 2 Y3 };\n",\ -"(0, 1.732) { -3 X2, 2 X3 } { 2 Y3 };\n",\ -"(-0.5, 0.866) { -2 X2, 1 X3 } {1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 4);\n",\ -"(2, 3, 4);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Left 120 (1)\"\n",\ -"\n",\ -"quality 1000\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(-0.5, 0.866);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(3, 1) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.866) { 1 X3, 1 X2 } { 1 Y3 };\n",\ -"\n",\ -"newlines\n",\ -"(3, 4);\n",\ -"(4, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 0.866) { 2 X2, 1 X3 } { 1 Y3 };\n",\ -"(1, 1.732) { 2 X2, 2 X3 } { 2 Y3 };\n",\ -"(0, 1.732) { -1 X2, 2 X3 } { 2 Y3 };\n",\ -"(-0.5, 0.866) { 1 X3 } {1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 4);\n",\ -"(2, 3, 4);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Left Right (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1, 1);\n",\ -"(0, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(2, 3) del;\n",\ -"(4, 1) del;\n",\ -"\n",\ -"\n",\ -"newlines\n",\ -"(4, 3);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0.5, 1.5) { -0.25 X2, 0.75 X3, 0.75 X4 } { 0.75 Y3, 0.75 Y4 };\n",\ -"(0, 1) { 1 X4 } { 1 Y4 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0.5, 1) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4 };\n",\ -"(0, 1) { 1 X4 } { 1 Y4 };\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Fill Quad\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1, 1);\n",\ -"(0, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(2, 3) del;\n",\ -"(3, 4) del;\n",\ -"(4, 1) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { 1 Y2 };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0, 1) { 1 X4 } { 1 Y4 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Fill Triangle\"\n",\ -"\n",\ -"quality 10\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(0.5, 0.86);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(2, 3) del;\n",\ -"(3, 1) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { 1 Y2 };\n",\ -"(0.5, 0.86) { 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Right 60 (1)\"\n",\ -"\n",\ -"quality 10\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0) { 0.5, 0, 1.0 };\n",\ -"(0.5, 0.866) { 0.6, 0, 0.8 };\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(2, 3) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"(1, 3);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(0.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"(-0.125, 0.6495) { -0.5 X2, 0.75 X3 } { -0.5 Y2, 0.75 Y3 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(0.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"(0.25, 0.433) { 0.5 X3 } { 0.5 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Vis A Vis (2)\"\n",\ -"\n",\ -"quality 2\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1, 1);\n",\ -"(0, 1);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"(1, 4);\n",\ -"(3, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 0.5) { 0.75 X2, 0.75 X3, -0.25 X4 } { 0.75 Y3, -0.25 Y4 };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0, 1) { 1 X4 } { 1 Y4 };\n",\ -"(-0.5, 0.5) { -0.25 X2, -0.25 X3, 0.75 X4 } { -0.25 Y3, 0.75 Y4 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 0.5) { 0.5 X2, 0.5 X3 } { 0.5 Y3 };\n",\ -"(1, 1) { 1 X3 } { 1 Y3 };\n",\ -"(0, 1) { 1 X4 } { 1 Y4 };\n",\ -"(0, 0.5) { 0.5 X4 } { 0.5 Y4 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"orientations\n",\ -"(1, 3, 4);\n",\ -"(2, 3, 4);\n",\ -"(1, 2, 3);\n",\ -"(1, 2, 4);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Triangle Vis A Vis (200)\"\n",\ -"\n",\ -"quality 200\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(0.5, 0.866);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"(1, 3);\n",\ -"(3, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.2, 0.693) { 0.8 X2, 0.8 X3 } { 0.8 Y2, 0.8 Y3 };\n",\ -"(0.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"(-0.2, 0.693) { -0.6 X2, 0.8 X3 } { -0.6 Y2, 0.8 Y3 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(0.75, 0.433) { 0.5 X2, 0.5 X3 } { 0.5 Y2, 0.5 Y3 };\n",\ -"(0.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"(0.25, 0.433) { 0.5 X3 } { 0.5 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"2 h Vis A Vis (1)\"\n",\ -"\n",\ -"quality 3000\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1, 1.732);\n",\ -"(0, 1.732);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.866) { 0.25 X3, 0.25 X4 } { 0.25 Y2, 0.25 Y3, 0.25 Y4 };\n",\ -"\n",\ -"newlines\n",\ -"(1, 5);\n",\ -"(5, 4);\n",\ -"(3, 5);\n",\ -"(5, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { 1 Y2 };\n",\ -"(1.5, 0.866) { 0.75 X2, 0.75 X3, -0.25 X4 } { 0.75 Y2, 0.75 Y3, -0.25 Y4 };\n",\ -"(1, 1.732) { 1 X3 } { 1 Y3 };\n",\ -"(0, 1.732) { 1 X4 } { 1 Y4 };\n",\ -"(-0.5, 0.866) { 0.75 X4, -0.25 X2, -0.25 X3 } { 0.75 Y4, -0.25 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 5);\n",\ -"(3, 4, 5);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -0}; -} diff --git a/libsrc/meshing/tetrarls.cpp b/libsrc/meshing/tetrarls.cpp deleted file mode 100644 index 37f55355..00000000 --- a/libsrc/meshing/tetrarls.cpp +++ /dev/null @@ -1,1467 +0,0 @@ -namespace netgen -{ -const char * tetrules[] = { -"tolfak 0.5\n",\ -"\n",\ -"rule \"Free Tetrahedron\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0);\n",\ -"(0.5, 0.866, 0);\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.288, -0.816)\n",\ -" { 0.333 X1, 0.333 X2, 0.333 X3 }\n",\ -" { 0.333 Y1, 0.333 Y2, 0.333 Y3 } { };\n",\ -"\n",\ -"newfaces\n",\ -"(4, 1, 2);\n",\ -"(4, 2, 3);\n",\ -"(4, 3, 1);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1.6 P4, -0.2 P1, -0.2 P2, -0.2 P3 };\n",\ -"{ -0.5 P1, 0.5 P2, 0.5 P3, 0.5 P4 };\n",\ -"{ 0.5 P1, -0.5 P2, 0.5 P3, 0.5 P4 };\n",\ -"{ 0.5 P1, 0.5 P2, -0.5 P3, 0.5 P4 };\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Tetrahedron 60\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"flags c;\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 } ;\n",\ -"(0.5, 0.866, 0) { 0.5 };\n",\ -"(0.5, 0.288, -0.816) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(1, 4, 3);\n",\ -"(4, 2, 3);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ -0.35 P1, 0.45 P2, 0.45 P3, 0.45 P4 };\n",\ -"{ 0.45 P1, -0.35 P2, 0.45 P3, 0.45 P4 };\n",\ -"{ -0.05 P1, -0.05 P2, 0.7 P3, 0.4 P4 };\n",\ -"\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 0.3333 P2, 0.3333 P3, 0.3334 P4 };\n",\ -"{ 0.3333 P1, 0.3333 P3, 0.3334 P4 };\n",\ -"{ 0.65 P3, 0.35 P4 };\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Tetrahedron 60 with edge(1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"flags c;\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.8 };\n",\ -"(0.5, 0.866, 0) { 0.8 };\n",\ -"(0.5, 0.288, -0.816) { 0.8 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"\n",\ -"mapedges\n",\ -"(3, 4);\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(1, 4, 3);\n",\ -"(4, 2, 3);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 0.4 P1, 0.4 P4, 0.4 P3, -0.2 P2 };\n",\ -"{ 0.4 P2, 0.4 P4, 0.4 P3, -0.2 P1 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 0.3333 P1, 0.3333 P4, 0.3334 P3 };\n",\ -"{ 0.3333 P2, 0.3333 P4, 0.3334 P3 };\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Tetrahedron Vis a Vis Point (1)\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 };\n",\ -"(0.5, 0.866, 0) { 0.5 };\n",\ -"(0.5, 0.288, -0.816) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(4, 3, 1);\n",\ -"(4, 2, 3);\n",\ -"(4, 1, 2);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ -0.5 P1, 0.5 P2, 0.5 P3, 0.5 P4 };\n",\ -"{ 0.5 P1, -0.5 P2, 0.5 P3, 0.5 P4 };\n",\ -"{ 0.5 P1, 0.5 P2, -0.5 P3, 0.5 P4 };\n",\ -"{ 0.8 P1, -0.1 P2, -0.1 P3, 0.4 P4 };\n",\ -"{ -0.1 P1, 0.8 P2, -0.1 P3, 0.4 P4 };\n",\ -"{ -0.1 P1, -0.1 P2, 0.8 P3, 0.4 P4 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 0.3333 P2, 0.3333 P3, 0.3334 P4 };\n",\ -"{ 0.3333 P1, 0.3333 P3, 0.3334 P4 };\n",\ -"{ 0.3333 P1, 0.3333 P2, 0.3334 P4 };\n",\ -"{ 0.7 P1, 0.3 P4 };\n",\ -"{ 0.7 P2, 0.3 P4 };\n",\ -"{ 0.7 P3, 0.3 P4 };\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Tetrahedron Vis a Vis Point with edge(1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 };\n",\ -"(0.5, 0.866, 0) { 0.5 };\n",\ -"(0.5, 0.288, -0.816) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"\n",\ -"mapedges\n",\ -"(1, 4);\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(4, 3, 1);\n",\ -"(4, 2, 3);\n",\ -"(4, 1, 2);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ -0.35 P1, 0.45 P2, 0.45 P3, 0.45 P4 };\n",\ -"{ 0.45 P1, -0.35 P2, 0.45 P3, 0.45 P4 };\n",\ -"{ 0.45 P1, 0.45 P2, -0.35 P3, 0.45 P4 };\n",\ -"{ -0.05 P1, 0.7 P2, -0.05 P3, 0.4 P4 };\n",\ -"{ -0.05 P1, -0.05 P2, 0.7 P3, 0.4 P4 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 0.3333 P2, 0.3333 P3, 0.3334 P4 };\n",\ -"{ 0.3333 P1, 0.3333 P3, 0.3334 P4 };\n",\ -"{ 0.3333 P1, 0.3333 P2, 0.3334 P4 };\n",\ -"{ 0.65 P2, 0.35 P4 };\n",\ -"{ 0.65 P3, 0.35 P4 };\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Tetrahedron Vis a Vis Point with 2 edges (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 };\n",\ -"(0.5, 0.866, 0) { 0.5 };\n",\ -"(0.5, 0.288, -0.816) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"\n",\ -"mapedges\n",\ -"(1, 4);\n",\ -"(2, 4);\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(4, 3, 1);\n",\ -"(4, 2, 3);\n",\ -"(4, 1, 2);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ -0.35 P1, 0.45 P2, 0.45 P3, 0.45 P4 };\n",\ -"{ 0.45 P1, -0.35 P2, 0.45 P3, 0.45 P4 };\n",\ -"{ 0.45 P1, 0.45 P2, -0.35 P3, 0.45 P4 };\n",\ -"{ -0.05 P1, -0.05 P2, 0.7 P3, 0.4 P4 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 0.3333 P2, 0.3333 P3, 0.3334 P4 };\n",\ -"{ 0.3333 P1, 0.3333 P3, 0.3334 P4 };\n",\ -"{ 0.3333 P1, 0.3333 P2, 0.3334 P4 };\n",\ -"{ 0.65 P3, 0.35 P4 };\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Tetrahedron Vis a Vis Point with 3 edges (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 };\n",\ -"(0.5, 0.866, 0) { 0.5 };\n",\ -"(0.5, 0.288, -0.816) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"\n",\ -"mapedges\n",\ -"(1, 4);\n",\ -"(2, 4);\n",\ -"(3, 4);\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(4, 3, 1);\n",\ -"(4, 2, 3);\n",\ -"(4, 1, 2);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ -0.35 P1, 0.45 P2, 0.45 P3, 0.45 P4 };\n",\ -"{ 0.45 P1, -0.35 P2, 0.45 P3, 0.45 P4 };\n",\ -"{ 0.45 P1, 0.45 P2, -0.35 P3, 0.45 P4 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 0.3333 P2, 0.3333 P3, 0.3334 P4 };\n",\ -"{ 0.3333 P1, 0.3333 P3, 0.3334 P4 };\n",\ -"{ 0.3333 P1, 0.3333 P2, 0.3334 P4 };\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Tetrahedron Vis a Vis Triangle (1)\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 };\n",\ -"(0.5, 0.866, 0) { 0.5 };\n",\ -"(0, 0, -0.816) { 0.5 };\n",\ -"(1, 0, -0.816) { 0.5 };\n",\ -"(0.5, 0.866, -0.816) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(4, 6, 5) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(1, 2, 4);\n",\ -"(2, 5, 4);\n",\ -"(2, 3, 6);\n",\ -"(2, 6, 5);\n",\ -"(3, 1, 4);\n",\ -"(3, 4, 6);\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"(4, 2, 3, 6);\n",\ -"(4, 2, 6, 5);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ -0.2 P1, 0.35 P2, 0.35 P3, -0.2 P4, 0.35 P5, 0.35 P6 };\n",\ -"{ 0.35 P1, -0.2 P2, 0.35 P3, 0.35 P4, -0.2 P5, 0.35 P6 };\n",\ -"{ 0.35 P1, 0.35 P2, -0.2 P3, 0.35 P4, 0.35 P5, -0.2 P6 };\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Octaeder 1\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.95 };\n",\ -"(0.5, 0.866, 0) { 0.95 };\n",\ -"(0.5, -0.288, -0.816) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(1, 0.578, -0.816) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4} { 0.5 Z3, 0.5 Z4 };\n",\ -"(0, 0.578, -0.816) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4} { 0.5 Z3, 0.5 Z4 };\n",\ -"\n",\ -"newfaces\n",\ -"(2, 3, 5);\n",\ -"(3, 1, 6);\n",\ -"(3, 6, 5);\n",\ -"(2, 5, 4);\n",\ -"(1, 4, 6);\n",\ -"(4, 5, 6);\n",\ -"\n",\ -"elements\n",\ -"(3, 4, 1, 2);\n",\ -"(3, 4, 2, 5);\n",\ -"(3, 4, 5, 6);\n",\ -"(3, 4, 6, 1);\n",\ -"\n",\ -"freezone\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 X2 } { } { };\n",\ -"(0.5, 0.866, 0) { 1 X3 } { 1 Y3 } { };\n",\ -"(0.5, -0.288, -0.816) { 1 X4 } { 1 Y4 } { 1 Z4 };\n",\ -"(-0.5, 1, -1.5) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4 } { 1 Z4 };\n",\ -"( 1.5, 1, -1.5) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4 } { 1 Z4 };\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Octaeder 2\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.95 };\n",\ -"(0.5, 0.866, 0) { 0.95 };\n",\ -"(0.5, -0.288, -0.816) { 0.5 };\n",\ -"(1, 0.578, -0.816) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0, 0.578, -0.816) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4} { 0.5 Z3, 0.5 Z4 };\n",\ -"\n",\ -"newfaces\n",\ -"(2, 3, 5);\n",\ -"(3, 1, 6);\n",\ -"(3, 6, 5);\n",\ -"(2, 5, 4);\n",\ -"(1, 4, 6);\n",\ -"(4, 5, 6);\n",\ -"\n",\ -"elements\n",\ -"(3, 4, 1, 2);\n",\ -"(3, 4, 2, 5);\n",\ -"(3, 4, 5, 6);\n",\ -"(3, 4, 6, 1);\n",\ -"\n",\ -"freezone\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 X2 } { } { };\n",\ -"(0.5, 0.866, 0) { 1 X3 } { 1 Y3 } { };\n",\ -"(0.5, -0.288, -0.816) { 1 X4 } { 1 Y4 } { 1 Z4 };\n",\ -"(1, 0.578, -0.816) { 1 X5 } { 1 Y5 } { 1 Z5 };\n",\ -"\n",\ -"(0.9, 0.097, -0.544) { 0.333 X2, 0.333 X4, 0.333 X5 }\n",\ -" { 0.333 Y2, 0.333 Y4, 0.333 Y5 }\n",\ -" { 0.333 Z2, 0.333 Z4, 0.333 Z5 };\n",\ -"(0.9, 0.481, -0.272) { 0.333 X2, 0.333 X3, 0.333 X5 }\n",\ -" { 0.333 Y2, 0.333 Y3, 0.333 Y5 }\n",\ -" { 0.333 Z2, 0.333 Z3, 0.333 Z5 };\n",\ -"\n",\ -"(-0.5, 1, -1.5) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4 } { 0.5 Z4, 0.5 Z5 };\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"rule \"Octaeder 2a\"\n",\ -"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.95 };\n",\ -"(0.5, 0.866, 0) { 0.95 };\n",\ -"(0.5, -0.288, -0.816) { 0.5 };\n",\ -"(1, 0.578, -0.816) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(3, 2, 5) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0, 0.578, -0.816)\n",\ -" { -1 X2, 1 X3, 1 X4 }\n",\ -" { -1 Y2, 1 Y3, 1 Y4 }\n",\ -" { -1 Z2, 1 Z3, 1 Z4 };\n",\ -"\n",\ -"newfaces\n",\ -"(1, 2, 4);\n",\ -"(3, 1, 6);\n",\ -"(3, 6, 5);\n",\ -"(2, 5, 4);\n",\ -"(1, 4, 6);\n",\ -"(4, 5, 6);\n",\ -"\n",\ -"elements\n",\ -"(3, 4, 1, 2);\n",\ -"(3, 4, 2, 5);\n",\ -"(3, 4, 5, 6);\n",\ -"(3, 4, 6, 1);\n",\ -"\n",\ -"freezone\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 X2 } { } { };\n",\ -"(0.5, 0.866, 0) { 1 X3 } { 1 Y3 } { };\n",\ -"(0.5, -0.288, -0.816) { 1 X4 } { 1 Y4 } { 1 Z4 };\n",\ -"(1, 0.578, -0.816) { 1 X5 } { 1 Y5 } { 1 Z5 };\n",\ -"\n",\ -"(0.9, 0.097, -0.544) { 0.333 X2, 0.333 X4, 0.333 X5 }\n",\ -" { 0.333 Y2, 0.333 Y4, 0.333 Y5 }\n",\ -" { 0.333 Z2, 0.333 Z4, 0.333 Z5 };\n",\ -"\n",\ -"(0.5, -0.097, -0.272) { 0.333 X2, 0.333 X4, 0.333 X1 }\n",\ -" { 0.333 Y2, 0.333 Y4, 0.333 Y1 }\n",\ -" { 0.333 Z2, 0.333 Z4, 0.333 Z1 };\n",\ -"\n",\ -"(-0.5, 1, -1.5) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4 } { 0.5 Z4, 0.5 Z5 };\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Pyramid 1\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 };\n",\ -"(0.5, 0.866, 0) { 1 };\n",\ -"(0.5, -0.288, -0.816) { 1 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(1, 0.578, -0.816) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4} { 0.5 Z3, 0.5 Z4 };\n",\ -"\n",\ -"newfaces\n",\ -"(1, 4, 3);\n",\ -"(2, 3, 5);\n",\ -"(2, 5, 4);\n",\ -"(4, 5, 3);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"(4, 2, 3, 5);\n",\ -"\n",\ -"\n",\ -"freezone\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 X2 } { } { };\n",\ -"(0.5, 0.866, 0) { 1 X3 } { 1 Y3 } { };\n",\ -"(0.5, -0.288, -0.816) { 1 X4 } { 1 Y4 } { 1 Z4 };\n",\ -"(0, 1, -1) { 0.5 X3, 0.5 X4 } { 1 Y3 } { 1 Z4 };\n",\ -"(1.5, 1, -1.5) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4} { 0.5 Z3, 0.5 Z4 };\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Tetrahedron 2 times 60\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.3 };\n",\ -"(0.5, 0.866, 0) { 0.3 };\n",\ -"(0.5, 0.288, -0.816) { 0.3 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"(2, 4, 3) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"(1, 4, 3);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 0.4 P1, 0.4 P4, 0.4 P3, -0.2 P2 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 0.3333 P1, 0.3333 P3, 0.3334 P4 };\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Fill Tetrahedron (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.2 };\n",\ -"(0.5, 0.866, 0) { 0.2 };\n",\ -"(0.5, 0.288, -0.816) { 0.2 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"(2, 4, 3) del;\n",\ -"(3, 4, 1) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newfaces\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Tetrahedron 120 (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 };\n",\ -"(0.5, 0.866, 0) { 1 };\n",\ -"(0.5, -0.674, -0.544) { 1 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.288, -0.816)\n",\ -" { -0.5 X1, -0.5 X2, 1 X3, 1 X4 }\n",\ -" { -0.5 Y1, -0.5 Y2, 1 Y3, 1 Y4}\n",\ -" { -0.5 Z1, -0.5 Z2, 1 Z3, 1 Z4};\n",\ -"\n",\ -"newfaces\n",\ -"(1, 5, 3);\n",\ -"(3, 5, 2);\n",\ -"(1, 4, 5);\n",\ -"(2, 5, 4);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 5);\n",\ -"(1, 4, 2, 5);\n",\ -"\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1.3 P5, -0.3 P1 };\n",\ -"{ 1.3 P5, -0.3 P2 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P5 };\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Tetrahedron 2 times 120 (1)\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 };\n",\ -"(0.5, 0.866, 0) { 1 };\n",\ -"(0.5, -0.674, -0.544) { 0.8 };\n",\ -"(1.334, 0.77, -0.544) { 0.8 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"(3, 2, 5) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.288, -0.816) { 0.25 X1, -0.5 X2, 0.25 X3, 0.5 X4, 0.5 X5 }\n",\ -" { 0.25 Y1, -0.5 Y2, 0.25 Y3, 0.5 Y4, 0.5 Y5 }\n",\ -" { 0.25 Z1, -0.5 Z2, 0.25 Z3, 0.5 Z4, 0.5 Z5 };\n",\ -"\n",\ -"newfaces\n",\ -"(6, 3, 1);\n",\ -"(6, 1, 4);\n",\ -"(6, 4, 2);\n",\ -"(6, 2, 5);\n",\ -"(6, 5, 3);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 6);\n",\ -"(1, 4, 2, 6);\n",\ -"(2, 5, 3, 6);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1.4 P6, -0.4 P2 };\n",\ -"{ 1.4 P6, -0.4 P1 };\n",\ -"{ 1.4 P6, -0.4 P3 };\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"four Tetrahedron non convex (4)\"\n",\ -"\n",\ -"quality 4\n",\ -"flags l;\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.1 };\n",\ -"(0.5, 1, 0) { 0.1 };\n",\ -"(0.5, 0, -1) { 0.1 };\n",\ -"(0.5, 0.3, -0.3) { 0.1 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"(1, 5, 4) del;\n",\ -"(1, 3, 5) del;\n",\ -"\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.1, -0.1)\n",\ -" { 0.333 X1, 0.333 X2, 0.334 X5 }\n",\ -" { 0.333 Y1, 0.333 Y2, 0.334 Y5 }\n",\ -" { 0.333 Z1, 0.333 Z2, 0.334 Z5 };\n",\ -"\n",\ -"newfaces\n",\ -"(6, 2, 3) del;\n",\ -"(6, 4, 2) del;\n",\ -"(6, 5, 4) del;\n",\ -"(6, 3, 5) del;\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 6);\n",\ -"(1, 4, 2, 6);\n",\ -"(1, 5, 4, 6);\n",\ -"(1, 3, 5, 6);\n",\ -"\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1.5 P6, -0.5 P1 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"\n",\ -"\n",\ -"\n",\ -"freeset\n",\ -"1 6 2 3;\n",\ -"\n",\ -"freeset\n",\ -"1 6 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 6 5 4;\n",\ -"\n",\ -"freeset\n",\ -"1 6 4 2;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"five Tetrahedron non convex (4)\"\n",\ -"\n",\ -"quality 4\n",\ -"flags l;\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 };\n",\ -"(0.5, 1, 0) { 0.5 };\n",\ -"(0, 0.8, -0.2) { 0.5 };\n",\ -"(0, 0.2, -0.8) { 0.5 };\n",\ -"(0.5, 0, -1) { 0.5 };\n",\ -"\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 3, 4) del;\n",\ -"(1, 4, 5) del;\n",\ -"(1, 5, 6) del;\n",\ -"(1, 6, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.1, 0.1, -0.1)\n",\ -" { 0.75 X1, 0.05 X2, 0.05 X3, 0.05 X4, 0.05 X5, 0.05 X6 }\n",\ -" { 0.75 Y1, 0.05 Y2, 0.05 Y3, 0.05 Y4, 0.05 Y5, 0.05 Y6 }\n",\ -" { 0.75 Z1, 0.05 Z2, 0.05 Z3, 0.05 Z4, 0.05 Z5, 0.05 Z6 };\n",\ -"\n",\ -"newfaces\n",\ -"(7, 2, 3);\n",\ -"(7, 3, 4);\n",\ -"(7, 4, 5);\n",\ -"(7, 5, 6);\n",\ -"(7, 6, 2);\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 7);\n",\ -"(1, 3, 4, 7);\n",\ -"(1, 4, 5, 7);\n",\ -"(1, 5, 6, 7);\n",\ -"(1, 6, 2, 7);\n",\ -"\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 1.5 P7, -0.5 P1 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"{ 1 P7 };\n",\ -"\n",\ -"\n",\ -"\n",\ -"freeset\n",\ -"1 7 2 3;\n",\ -"\n",\ -"freeset\n",\ -"1 7 3 4;\n",\ -"\n",\ -"freeset\n",\ -"1 7 4 5;\n",\ -"\n",\ -"freeset\n",\ -"1 7 5 6;\n",\ -"\n",\ -"freeset\n",\ -"1 7 6 2;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"four Tetrahedron non convex (6)\"\n",\ -"\n",\ -"quality 6\n",\ -"flags l;\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 };\n",\ -"(0.5, 1, 0) { 0.5 };\n",\ -"(0.5, 0, -1) { 0.5 };\n",\ -"(0.5, 0.3, -0.3) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"(1, 5, 4) del;\n",\ -"(1, 3, 5) del;\n",\ -"\n",\ -"\n",\ -"newpoints\n",\ -"(0.095, 0.003, -0.003)\n",\ -" { 0.9 X1, 0.09 X2, 0.01 X5 }\n",\ -" { 0.9 Y1, 0.09 Y2, 0.01 Y5 }\n",\ -" { 0.9 Z1, 0.09 Z2, 0.01 Z5 };\n",\ -"\n",\ -"newfaces\n",\ -"(6, 2, 3) del;\n",\ -"(6, 4, 2) del;\n",\ -"(6, 5, 4) del;\n",\ -"(6, 3, 5) del;\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 6);\n",\ -"(1, 4, 2, 6);\n",\ -"(1, 5, 4, 6);\n",\ -"(1, 3, 5, 6);\n",\ -"\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1.499 P6, -0.5 P1, 0.001 P2 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"\n",\ -"\n",\ -"\n",\ -"freeset\n",\ -"1 6 2 3;\n",\ -"\n",\ -"freeset\n",\ -"1 6 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 6 5 4;\n",\ -"\n",\ -"freeset\n",\ -"1 6 4 2;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"four Tetrahedron non convex (6)\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 };\n",\ -"(0.5, 1, 0) { 0.5 };\n",\ -"(0.5, 0, -1) { 0.5 };\n",\ -"(0.5, 0.4, -0.4) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"(4, 5, 2) del;\n",\ -"(5, 3, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.925, 0.02, -0.02)\n",\ -" { 0.05 X1, 0.9 X2, 0.05 X5 }\n",\ -" { 0.05 Y1, 0.9 Y2, 0.05 Y5 }\n",\ -" { 0.05 Z1, 0.9 Z2, 0.05 Z5 };\n",\ -"\n",\ -"newfaces\n",\ -"(3, 1, 6);\n",\ -"(1, 4, 6);\n",\ -"(4, 5, 6);\n",\ -"(5, 3, 6);\n",\ -"\n",\ -"elements\n",\ -"(3, 1, 2, 6);\n",\ -"(1, 4, 2, 6);\n",\ -"(4, 5, 2, 6);\n",\ -"(5, 3, 2, 6);\n",\ -"\n",\ -"orientations\n",\ -"(3, 1, 2, 5);\n",\ -"(1, 4, 2, 5);\n",\ -"(2, 4, 5, 1);\n",\ -"(3, 2, 5, 1);\n",\ -"(5, 4, 2, 3);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1.5 P6, -0.5 P2 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"{ 1 P6 };\n",\ -"\n",\ -"freeset\n",\ -"3 1 2 6;\n",\ -"\n",\ -"freeset\n",\ -"1 4 2 6;\n",\ -"\n",\ -"freeset\n",\ -"4 5 2 6;\n",\ -"\n",\ -"freeset\n",\ -"5 3 2 6;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"three Tetrahedron non convex (4)\"\n",\ -"\n",\ -"quality 4\n",\ -"flags l;\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 };\n",\ -"(0.5, 1, 0) { 0.5 };\n",\ -"(0.5, 0, -1) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"(1, 3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.25, -0.25)\n",\ -" { 0.25 X1, 0.25 X2, 0.25 X3, 0.25 X4 }\n",\ -" { 0.25 Y1, 0.25 Y2, 0.25 Y3, 0.25 Y4 }\n",\ -" { 0.25 Z1, 0.25 Z2, 0.25 Z3, 0.25 Z4 };\n",\ -"\n",\ -"newfaces\n",\ -"(5, 2, 3);\n",\ -"(5, 4, 2);\n",\ -"(5, 3, 4);\n",\ -"\n",\ -"elements\n",\ -"(2, 3, 1, 5);\n",\ -"(3, 4, 1, 5);\n",\ -"(4, 2, 1, 5;\n",\ -"\n",\ -"orientations\n",\ -"(1, 2, 4, 3);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1.5 P5, -0.5 P1 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"\n",\ -"freeset\n",\ -"1 4 2 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"three Tetrahedron non convex (6)\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 };\n",\ -"(0.5, 1, 0) { 0.5 };\n",\ -"(0.5, 0, -1) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"(1, 3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.2, 0.1, -0.1)\n",\ -" { 0.7 X1, 0.1 X2, 0.1 X3, 0.1 X4 }\n",\ -" { 0.7 Y1, 0.1 Y2, 0.1 Y3, 0.1 Y4 }\n",\ -" { 0.7 Z1, 0.1 Z2, 0.1 Z3, 0.1 Z4 };\n",\ -"\n",\ -"newfaces\n",\ -"(5, 2, 3);\n",\ -"(5, 4, 2);\n",\ -"(5, 3, 4);\n",\ -"\n",\ -"elements\n",\ -"(2, 3, 1, 5);\n",\ -"(3, 4, 1, 5);\n",\ -"(4, 2, 1, 5;\n",\ -"\n",\ -"orientations\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1.5 P5, -0.5 P1 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 3 4 5;\n",\ -"\n",\ -"freeset\n",\ -"1 4 2 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"four Tetrahedron non convex (6)\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 };\n",\ -"(0.5, 1, 0) { 0.5 };\n",\ -"(0.5, 0, -1) { 0.5 };\n",\ -"(0.5, 0.4, -0.4) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"(4, 5, 2) del;\n",\ -"(5, 3, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.7, 0.08, -0.08) { 0.6 X2, 0.2 X5 } { 0.2 Y5 } { 0.2 Z5 };\n",\ -"\n",\ -"newfaces\n",\ -"(3, 1, 6);\n",\ -"(1, 4, 6);\n",\ -"(4, 5, 6);\n",\ -"(5, 3, 6);\n",\ -"\n",\ -"elements\n",\ -"(3, 1, 2, 6);\n",\ -"(1, 4, 2, 6);\n",\ -"(4, 5, 2, 6);\n",\ -"(5, 3, 2, 6);\n",\ -"\n",\ -"\n",\ -"orientations\n",\ -"(3, 1, 2, 5);\n",\ -"(5, 1, 2, 4);\n",\ -"\n",\ -"freezone\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 X2 } { } { };\n",\ -"(0.5, 1, 0) { 1 X3 } { 1 Y3 } { };\n",\ -"(0.5, 0, -1) { 1 X4 } { 1 Y4 } { 1 Z4 };\n",\ -"(0.5, 0.4, -0.4) { 1 X5 } { 1 Y5 } { 1 Z5 };\n",\ -"(0.55, 0.12, -0.12) { 0.4 X2, 0.3 X5 } { 0.3 Y5 } { 0.3 Z5 };\n",\ -"\n",\ -"freeset\n",\ -"3 1 2 6;\n",\ -"\n",\ -"freeset\n",\ -"1 4 2 6;\n",\ -"\n",\ -"freeset\n",\ -"4 5 2 6;\n",\ -"\n",\ -"freeset\n",\ -"5 3 2 6;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Tetrahedron 2 in 60 (12)\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 0.5 };\n",\ -"(0.5, 1, 0) { 0.5 };\n",\ -"(0.5, 0, -1) { 0.5 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.1, -0.1)\n",\ -" { 0.4 X1, 0.4 X2, 0.1 X3, 0.1 X4 }\n",\ -" { 0.4 Y1, 0.4 Y2, 0.1 Y3, 0.1 Y4 }\n",\ -" { 0.4 Z1, 0.4 Z2, 0.1 Z3, 0.1 Z4 };\n",\ -"\n",\ -"newfaces\n",\ -"(5, 2, 3);\n",\ -"(5, 3, 1);\n",\ -"(5, 4, 2);\n",\ -"(5, 1, 4);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 5);\n",\ -"(1, 2, 5, 4);\n",\ -"\n",\ -"freezone2\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1.5 P5, -0.25 P1, -0.25 P2 };\n",\ -"\n",\ -"freezonelimit\n",\ -"{ 1 P1 };\n",\ -"{ 1 P2 };\n",\ -"{ 1 P3 };\n",\ -"{ 1 P4 };\n",\ -"{ 1 P5 };\n",\ -"\n",\ -"freeset\n",\ -"1 2 3 5;\n",\ -"\n",\ -"freeset\n",\ -"1 2 4 5;\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Tetrahedron 120, but more than 180 (13)\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 };\n",\ -"(0.5, 0.866, 0) { 1 };\n",\ -"(0.5, -0.866, 0) { 1 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"(1, 4, 2);\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0, -0.3) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4} { 0.5 Z3, 0.5 Z4 };\n",\ -"\n",\ -"newfaces\n",\ -"(1, 5, 3);\n",\ -"(3, 5, 2);\n",\ -"(2, 5, 1);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 5);\n",\ -"\n",\ -"\n",\ -"freezone\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 X2 } { } { };\n",\ -"(0.5, 0.866, 0) { 1 X3 } { 1 Y3 } { };\n",\ -"(0.5, -0.1, -0.4) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4} { 0.5 Z3, 0.5 Z4 };\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Free Tetrahedron (14)\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1.0 };\n",\ -"(0.5, 0.866, 0) { 1.0 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.288, -0.2) { 0.333 X2, 0.333 X3 } { 0.333 Y3 } { };\n",\ -"\n",\ -"newfaces\n",\ -"(4, 1, 2);\n",\ -"(4, 2, 3);\n",\ -"(4, 3, 1);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"freezone\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 X2 } { } { };\n",\ -"(0.5, 0.866, 0) { 1 X3 } { 1 Y3 } { };\n",\ -"(0.5, 0.288, -0.25) { 0.333 X2, 0.333 X3 } { 0.333 Y3 } { };\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Free Tetrahedron (15)\"\n",\ -"\n",\ -"quality 100\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1.0 };\n",\ -"(0.5, 0.866, 0) { 1.0 };\n",\ -"\n",\ -"mapfaces\n",\ -"(1, 2, 3) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.288, -0.1) { 0.333 X2, 0.333 X3 } { 0.333 Y3 } { };\n",\ -"\n",\ -"newfaces\n",\ -"(4, 1, 2);\n",\ -"(4, 2, 3);\n",\ -"(4, 3, 1);\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3, 4);\n",\ -"\n",\ -"freezone\n",\ -"(0, 0, 0);\n",\ -"(1, 0, 0) { 1 X2 } { } { };\n",\ -"(0.5, 0.866, 0) { 1 X3 } { 1 Y3 } { };\n",\ -"(0.5, 0.288, -0.15) { 0.333 X2, 0.333 X3 } { 0.333 Y3 } { };\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -0}; -} diff --git a/libsrc/meshing/triarls.cpp b/libsrc/meshing/triarls.cpp deleted file mode 100644 index e87433e7..00000000 --- a/libsrc/meshing/triarls.cpp +++ /dev/null @@ -1,468 +0,0 @@ -namespace netgen -{ -const char * triarules[] = { -"rule \"Free Triangle (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0) { 1.0, 0, 1.0 };\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.866) { 0.5 X2 } { };\n",\ -"\n",\ -"newlines\n",\ -"(1, 3);\n",\ -"(3, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 0.7) { 0.5 X2 } { };\n",\ -"(0.5, 1.5) { 0.5 X2 } { };\n",\ -"(-0.5, 0.7) { 0.5 X2 } { };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(0.5, 0.866) { 0.5 X2 } { };\n",\ -"(0.5, 0.866) { 0.5 X2 } { };\n",\ -"(0.5, 0.866) { 0.5 X2 } { };\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"rule \"Free Triangle (5)\"\n",\ -"\n",\ -"quality 5\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0) { 1.0, 0, 1.0 };\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.5) { 0.5 X2 } { };\n",\ -"\n",\ -"newlines\n",\ -"(1, 3);\n",\ -"(3, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 0.7) { 1 X2 } { };\n",\ -"(0, 0.7) { } { };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(0.5, 0.5) { 0.5 X2 } { };\n",\ -"(0.5, 0.5) { 0.5 X2 } { };\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Free Triangle (10)\"\n",\ -"\n",\ -"quality 10\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0) { 1.0, 0, 1.0 };\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.3) { 0.5 X2 } { };\n",\ -"\n",\ -"newlines\n",\ -"(1, 3);\n",\ -"(3, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 0.5) { 1 X2 } { };\n",\ -"(0, 0.5) { } { };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(0.5, 0.3) { 0.5 X2 } { };\n",\ -"(0.5, 0.3) { 0.5 X2 } { };\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Free Triangle (20)\"\n",\ -"\n",\ -"quality 20\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0) { 1.0, 0, 1.0 };\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.1) { 0.5 X2 } { };\n",\ -"\n",\ -"newlines\n",\ -"(1, 3);\n",\ -"(3, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1, 0.2) { 1 X2 } { };\n",\ -"(0, 0.2) { } { };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(0.5, 0.1) { 0.5 X2 } { };\n",\ -"(0.5, 0.1) { 0.5 X2 } { };\n",\ -"\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Right 60 (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0) { 0.5, 0, 1.0 };\n",\ -"(0.5, 0.866) { 0.6, 0, 0.8 };\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(2, 3) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"(1, 3);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(0.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"(-0.125, 0.6495) { -0.5 X2, 0.75 X3 } { -0.5 Y2, 0.75 Y3 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(0.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"(0.25, 0.433) { 0.5 X3 } { 0.5 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Left 60 (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(0.5, 0.866);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(3, 1) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"(3, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.125, 0.6495) { 0.75 X2, 0.75 X3 } { 0.75 Y3 };\n",\ -"(0.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(0.75, 0.433) { 0.5 X2, 0.5 X3 } { 0.5 Y2, 0.5 Y3 };\n",\ -"(0.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Right 120 (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1.5, 0.866);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(2, 3) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.866) { 1 X3, -1 X2 } { 1 Y3 };\n",\ -"\n",\ -"newlines\n",\ -"(1, 4);\n",\ -"(4, 3);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"(1, 1.732) { -2 X2, 2 X3 } { 2 Y3 };\n",\ -"(0, 1.732) { -3 X2, 2 X3 } { 2 Y3 };\n",\ -"(-0.5, 0.866) { -2 X2, 1 X3 } {1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 4);\n",\ -"(2, 3, 4);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Left 120 (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(-0.5, 0.866);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(3, 1) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.866) { 1 X3, 1 X2 } { 1 Y3 };\n",\ -"\n",\ -"newlines\n",\ -"(3, 4);\n",\ -"(4, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 0.866) { 2 X2, 1 X3 } { 1 Y3 };\n",\ -"(1, 1.732) { 2 X2, 2 X3 } { 2 Y3 };\n",\ -"(0, 1.732) { 1 X2, 2 X3 } { 2 Y3 };\n",\ -"(-0.5, 0.866) { 1 X3 } {1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 4);\n",\ -"(1, 4, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Left Right 120 (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(-0.5, 0.866);\n",\ -"(1.5, 0.866);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(3, 1) del;\n",\ -"(2, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.866) { 0.5 X3, 0.5 X4 } { 0.5 Y3, 0.5 Y4 };\n",\ -"\n",\ -"newlines\n",\ -"(3, 5);\n",\ -"(5, 4);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.5, 0.866) { 1 X4 } { 1 Y4 };\n",\ -"(1, 1.299) { -0.5 X2, 0.375 X3, 1.125 X4 } { -0.5 Y2, 0.375 Y3, 1.125 Y4 };\n",\ -"(0, 1.299) { 1.125 X3, 0.375 X4 } { 1.125 Y3, 0.375 Y4 };\n",\ -"(-0.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 5);\n",\ -"(3, 1, 5);\n",\ -"(2, 4, 5);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"rule \"Fill Triangle\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(0.5, 0.866);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(2, 3) del;\n",\ -"(3, 1) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { 1 Y2 };\n",\ -"(0.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"Vis A Vis (1)\"\n",\ -"\n",\ -"quality 1\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(0.5, 0.866);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"\n",\ -"newpoints\n",\ -"\n",\ -"newlines\n",\ -"(1, 3);\n",\ -"(3, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(1.2, 0.693) { 0.8 X2, 0.8 X3 } { 0.8 Y2, 0.8 Y3 };\n",\ -"(0.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"(-0.2, 0.693) { -0.6 X2, 0.8 X3 } { -0.6 Y2, 0.8 Y3 };\n",\ -"\n",\ -"freearea2\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { };\n",\ -"(0.75, 0.433) { 0.5 X2, 0.5 X3 } { 0.5 Y2, 0.5 Y3 };\n",\ -"(0.5, 0.866) { 1 X3 } { 1 Y3 };\n",\ -"(0.25, 0.433) { 0.5 X3 } { 0.5 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 3);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"rule \"2 h Vis A Vis (1)\"\n",\ -"\n",\ -"quality 3\n",\ -"\n",\ -"mappoints\n",\ -"(0, 0);\n",\ -"(1, 0);\n",\ -"(1, 1.732);\n",\ -"(0, 1.732);\n",\ -"\n",\ -"maplines\n",\ -"(1, 2) del;\n",\ -"(3, 4) del;\n",\ -"\n",\ -"newpoints\n",\ -"(0.5, 0.866) { 0.25 X2, 0.25 X3, 0.25 X4 } { 0.25 Y2, 0.25 Y3, 0.25 Y4 };\n",\ -"\n",\ -"newlines\n",\ -"(1, 5);\n",\ -"(5, 4);\n",\ -"(3, 5);\n",\ -"(5, 2);\n",\ -"\n",\ -"freearea\n",\ -"(0, 0);\n",\ -"(1, 0) { 1 X2 } { 1 Y2 };\n",\ -"(1.5, 0.866) { 0.75 X2, 0.75 X3, -0.25 X4 } { 0.75 Y2, 0.75 Y3, -0.25 Y4 };\n",\ -"(1, 1.732) { 1 X3 } { 1 Y3 };\n",\ -"(0, 1.732) { 1 X4 } { 1 Y4 };\n",\ -"(-0.5, 0.866) { 0.75 X4, -0.25 X2, -0.25 X3 } { 0.75 Y4, -0.25 Y3 };\n",\ -"\n",\ -"elements\n",\ -"(1, 2, 5);\n",\ -"(3, 4, 5);\n",\ -"\n",\ -"endrule\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -"\n",\ -0}; -} diff --git a/rules/hexa.rls b/rules/hexrules.rls similarity index 100% rename from rules/hexa.rls rename to rules/hexrules.rls diff --git a/rules/make_all_rules.sh b/rules/make_all_rules.sh deleted file mode 100755 index a19428a9..00000000 --- a/rules/make_all_rules.sh +++ /dev/null @@ -1,12 +0,0 @@ -g++ makerlsfile.cpp -o makerls -./makerls hexa.rls ../libsrc/meshing/hexarls.cpp hexrules -./makerls prisms2.rls ../libsrc/meshing/prism2rls.cpp prismrules2 -./makerls pyramids.rls ../libsrc/meshing/pyramidrls.cpp pyramidrules -./makerls pyramids2.rls ../libsrc/meshing/pyramid2rls.cpp pyramidrules2 -./makerls quad.rls ../libsrc/meshing/quadrls.cpp quadrules -./makerls tetra.rls ../libsrc/meshing/tetrarls.cpp tetrules -./makerls triangle.rls ../libsrc/meshing/triarls.cpp triarules -rm makerls - -# node: prisms2rls is currently not used (prism2rls_2.cpp is not compiled) -# ./makerls prisms2.rls ../libsrc/meshing/prism2rls_2.cpp prismrules2 diff --git a/rules/makerlsfile.cpp b/rules/makerlsfile.cpp index dc1182c6..e51eba02 100644 --- a/rules/makerlsfile.cpp +++ b/rules/makerlsfile.cpp @@ -59,7 +59,7 @@ int main (int argc, char ** argv) inf.get(ch); } line[i] = 0; - cout << line << endl; + // cout << line << endl; outf << "\"" << line << "\\n\",\\" << endl; } outf << "0};" << endl; diff --git a/rules/prisms2.rls b/rules/prismrules2.rls similarity index 100% rename from rules/prisms2.rls rename to rules/prismrules2.rls diff --git a/rules/pyramids.rls b/rules/pyramidrules.rls similarity index 100% rename from rules/pyramids.rls rename to rules/pyramidrules.rls diff --git a/rules/pyramids2.rls b/rules/pyramidrules2.rls similarity index 100% rename from rules/pyramids2.rls rename to rules/pyramidrules2.rls diff --git a/rules/quad.rls b/rules/quadrules.rls similarity index 100% rename from rules/quad.rls rename to rules/quadrules.rls diff --git a/rules/tetra.rls b/rules/tetrules.rls similarity index 100% rename from rules/tetra.rls rename to rules/tetrules.rls diff --git a/rules/triangle.rls b/rules/triarules.rls similarity index 100% rename from rules/triangle.rls rename to rules/triarules.rls From 1e717f009b549b7310219cf0e72b61752dcf4402 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Thu, 29 Apr 2021 14:41:49 +0200 Subject: [PATCH 7/8] set quality of pyramid rule back to 100 (to match master branch) --- rules/pyramidrules.rls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/pyramidrules.rls b/rules/pyramidrules.rls index 09b2355d..3d6839a4 100644 --- a/rules/pyramidrules.rls +++ b/rules/pyramidrules.rls @@ -2,7 +2,7 @@ tolfak 0.5 rule "Pyramid on quad" -quality 10 +quality 100 mappoints (0, 0, 0); From 7bce1240d728c2e8b30c324647e4d1202a7d9e81 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Fri, 30 Apr 2021 11:25:31 +0200 Subject: [PATCH 8/8] include in makerlsfile --- rules/makerlsfile.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/rules/makerlsfile.cpp b/rules/makerlsfile.cpp index e51eba02..822c721d 100644 --- a/rules/makerlsfile.cpp +++ b/rules/makerlsfile.cpp @@ -1,6 +1,7 @@ #include #include #include +#include using namespace std;