add new rule for large pyramids if no close ones are found.

Also allow to connect with lower quality class already in pyramid2rls
This commit is contained in:
Christopher Lackner 2020-02-17 16:52:33 +01:00
parent df0b19275b
commit e007f6310e
2 changed files with 100 additions and 2 deletions

View File

@ -3,6 +3,55 @@ namespace netgen
const char * pyramidrules2[] = { const char * pyramidrules2[] = {
"tolfak 0.5\n",\ "tolfak 0.5\n",\
"\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",\ "rule \"Pyramid on quad\"\n",\
"\n",\ "\n",\
"quality 100\n",\ "quality 100\n",\
@ -107,7 +156,7 @@ const char * pyramidrules2[] = {
"\n",\ "\n",\
"rule \"connect pyramid\"\n",\ "rule \"connect pyramid\"\n",\
"\n",\ "\n",\
"quality 100\n",\ "quality 1\n",\
"\n",\ "\n",\
"mappoints\n",\ "mappoints\n",\
"(0, 0, 0);\n",\ "(0, 0, 0);\n",\

View File

@ -1,5 +1,54 @@
tolfak 0.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" rule "Pyramid on quad"
quality 100 quality 100
@ -104,7 +153,7 @@ endrule
rule "connect pyramid" rule "connect pyramid"
quality 100 quality 1
mappoints mappoints
(0, 0, 0); (0, 0, 0);