diff --git a/benchmarks/3d/tet.geo b/benchmarks/3d/tet.geo new file mode 100644 index 0000000000000000000000000000000000000000..4725e7e5a982b1526fd74aba6db5c9378ec3c37c --- /dev/null +++ b/benchmarks/3d/tet.geo @@ -0,0 +1,22 @@ +lc = 1; + +Point(1) = {0,0,0,lc}; +Point(2) = {1,0,0,lc}; +Point(3) = {0,1,0,lc}; +Point(4) = {0,0,1,lc}; +Line(1) = {1, 2}; +Line(2) = {2, 3}; +Line(3) = {3, 1}; +Line(4) = {1, 4}; +Line(5) = {4, 2}; +Line(6) = {3, 4}; +Line Loop(7) = {2, 3, 1}; +Plane Surface(8) = {7}; +Line Loop(9) = {1, -5, -4}; +Plane Surface(10) = {9}; +Line Loop(11) = {4, -6, 3}; +Plane Surface(12) = {11}; +Line Loop(13) = {6, 5, 2}; +Plane Surface(14) = {13}; +Surface Loop(15) = {8, 14, 12, 10}; +Volume(16) = {15}; diff --git a/benchmarks/extrude/trevor_pyramids.geo b/benchmarks/extrude/trevor_pyramids.geo new file mode 100755 index 0000000000000000000000000000000000000000..27401ba8bce4cf27aeb79b23eff96cfb8e1cf134 --- /dev/null +++ b/benchmarks/extrude/trevor_pyramids.geo @@ -0,0 +1,168 @@ + +/*********************************************** + * * + * tunnel_test.geo * + * by Trevor Strickler * + * <trevor.strickler.gmail.com> * + * * + ***********************************************/ + +//set options +Geometry.Surfaces=1; +Mesh.SurfaceFaces=1; +Mesh.Algorithm=5; // mesh algorithm +Mesh.Algorithm3D=4; // mesh algorithm +General.InitialModule=2; //start in Mesh mode. +pi=Pi; + + +// geometric parameters +width = 1.0; +height = 1.0; +length = 3.0; +patch_width = 0.3; +patch_length = 0.3; +patch_height = height - 0.3; + +num_trans_face_1 = 10; +num_trans_length = 20; +num_trans_patch = 5; + +Point (newp) = { -width / 2.0, -height / 2.0, 0.0 }; +Point (newp) = { width / 2.0, -height / 2.0, 0.0 }; +Point (newp) = { width / 2.0, height / 2.0, 0.0 }; +Point (newp) = { -width / 2.0, height / 2.0, 0.0 }; + +face_1_corners[] = {newp-4, newp-3, newp-2, newp-1}; + +Line (newl) = {face_1_corners[0], face_1_corners[1]}; +Line (newl) = {face_1_corners[1], face_1_corners[2]}; +Line (newl) = {face_1_corners[2], face_1_corners[3]}; +Line (newl) = {face_1_corners[3], face_1_corners[0]}; + +face_1_lines[] = {newl-4, newl-3, newl-2, newl-1}; +Transfinite Line {face_1_lines[]} = num_trans_face_1; + +Line Loop (newll) = {face_1_lines[]}; +face_1_line_loop = newll-1; + +Plane Surface (news) = face_1_line_loop; +face_1_surface = news-1; +Transfinite Surface (face_1_surface) Left; + +Recombine Surface (face_1_surface); + +extrude_1[] = Extrude { 0.0, 0.0, -0.3 } { Surface{ face_1_surface }; Layers{3}; QuadTriSngl; Recombine; }; + +top_lines_extr_1[] = Boundary{ Surface{ extrude_1[0] }; }; + +top_points_extr_1[] += Boundary{ Line{ top_lines_extr_1[0] }; }; +top_points_extr_1[] += Boundary{ Line{ top_lines_extr_1[1] }; }; +top_points_extr_1[] += Boundary{ Line{ top_lines_extr_1[2] }; }; +top_points_extr_1[] += Boundary{ Line{ top_lines_extr_1[3] }; }; + +Characteristic Length {top_points_extr_1[]} = length / (6 + num_trans_length); + +Point (newp) = { -width / 2, -height / 2, -length }; +Point (newp) = { width / 2, -height / 2, -length }; +Point (newp) = { width / 2, height / 2, -length }; +Point (newp) = { -width / 2, height / 2, -length }; + +face_2_corners[] = {newp-4, newp-3, newp-2, newp-1}; + +Line (newl) = {face_2_corners[0], face_2_corners[1]}; +Line (newl) = {face_2_corners[1], face_2_corners[2]}; +Line (newl) = {face_2_corners[2], face_2_corners[3]}; +Line (newl) = {face_2_corners[3], face_2_corners[0]}; + +face_2_lines[] = {newl-4, newl-3, newl-2, newl-1}; +Transfinite Line {face_2_lines[]} = num_trans_face_1; + +Line Loop (newll) = {face_2_lines[]}; +face_2_line_loop = newll-1; + +Plane Surface (news) = face_2_line_loop; +face_2_surface = news-1; +Transfinite Surface (face_2_surface) Left; + +Recombine Surface (face_2_surface); + +extrude_2[] = Extrude { 0.0, 0.0, 0.3 } { Surface{ face_2_surface }; Layers{{1,1,1},{.3333333, .6666666,1.0}}; QuadTriSngl; Recombine;}; + +top_lines_extr_2[] = Boundary{ Surface{ extrude_2[0] }; }; + +top_points_extr_2[] += Boundary{ Line{ top_lines_extr_2[0] }; }; +top_points_extr_2[] += Boundary{ Line{ top_lines_extr_2[1] }; }; +top_points_extr_2[] += Boundary{ Line{ top_lines_extr_2[2] }; }; +top_points_extr_2[] += Boundary{ Line{ top_lines_extr_2[3] }; }; + +Characteristic Length {top_points_extr_2[]} = length / (6 + num_trans_length); + +Line (newl) = {top_points_extr_1[0], top_points_extr_2[0]}; +Line (newl) = {top_points_extr_1[1], top_points_extr_2[1]}; +Line (newl) = {top_points_extr_1[3], top_points_extr_2[3]}; +Line (newl) = {14, 28}; + +length_lines[] = {newl-4, newl-3, newl-2, newl-1}; +Transfinite Line { length_lines[] } = num_trans_length; + +// create the little square patch at bottom lateral surface +Point (newp) = {-patch_width / 2.0, -height / 2.0, -length / 2.0 + patch_length / 2.0 }; +Point (newp) = { patch_width / 2.0, -height / 2.0, -length / 2.0 + patch_length / 2.0 }; +Point (newp) = { patch_width / 2.0, -height / 2.0, -length / 2.0 - patch_length / 2.0 }; +Point (newp) = {-patch_width / 2.0, -height / 2.0, -length / 2.0 - patch_length / 2.0 }; + +patch_points[] = {newp-4, newp-3, newp-2, newp-1}; + +Line (newl) = {patch_points[0], patch_points[1]}; +Line (newl) = {patch_points[1], patch_points[2]}; +Line (newl) = {patch_points[2], patch_points[3]}; +Line (newl) = {patch_points[3], patch_points[0]}; + +patch_lines[] = {newl-4, newl-3, newl-2, newl-1}; + +Transfinite Line {patch_lines[]} = num_trans_patch; + +Line Loop (newll) = {patch_lines[]}; +patch_loop = newll-1; +Plane Surface (news) = patch_loop; +patch_surface = news-1; +Transfinite Surface (patch_surface); +Recombine Surface patch_surface; + +extrude_patch[] = Extrude { 0.0, patch_height, 0.0 } { Surface { patch_surface }; + Layers{ {1,2,2,2,1}, {0.125, 0.375, 0.625, 0.875, 1.0}}; + QuadTriSngl RecombLaterals; Recombine; }; + +//now mesh surfaces along length + +Line Loop (newll) = {length_lines[0], top_lines_extr_2[0], -length_lines[1], -top_lines_extr_1[0]}; +Line Loop (newll) = {length_lines[1], top_lines_extr_2[1], -length_lines[2], -top_lines_extr_1[1]}; +Line Loop (newll) = {length_lines[2], top_lines_extr_2[2], -length_lines[3], -top_lines_extr_1[2]}; +Line Loop (newll) = {length_lines[3], top_lines_extr_2[3], -length_lines[0], -top_lines_extr_1[3]}; + +length_loops[] = {newll-4, newll-3, newll-2, newll-1}; + +Plane Surface (news) = {length_loops[0], patch_loop}; +Plane Surface (news) = length_loops[1]; +Plane Surface (news) = length_loops[2]; +Plane Surface (news) = length_loops[3]; + +lateral_surfaces[] = { news-4, news-3, news-2, news-1 }; +Transfinite Surface { news-3, news-2, news-1}; + +// Create volume ( a little messy ) + +Surface Loop (newsl) = { -lateral_surfaces[], extrude_1[0], extrude_2[0], extrude_patch[{0,2:5}] }; + +Volume (newv) = newsl-1; +volume = newv-1; + +// create physicals +Physical Surface ("inlet") = {face_1_surface}; +Physical Surface ("outlet") = {face_2_surface}; +Physical Surface ("laterals") = { lateral_surfaces[], extrude_1[{2:5}], extrude_2[{2:5}], patch_surface }; +Physical Volume ("volume") = {volume, extrude_1[1], extrude_2[1], extrude_patch[1]}; + +Mesh.CharacteristicLengthMax = length / (8+num_trans_length); +