<div dir="ltr"><div>Dear all, I'm working with gmsh in order to build a mesh for geophysical simulation.<br><br></div>My model is compose by 4 layers. Each interface layer needs different mesh spacing. Furthermore, I need include local refinement at some point, e.g. point 101. However the attractor does not work. My script is the following:<br><br>lc = 5e-01;<br>lc2 = 1e-01;<br>lc3 = 2e-01;<br>lc4 = 3e-01;<br><br>// Model dimensions<br>MIN_X =  -0.80000000;<br>MAX_X =  4.30000000;<br>MIN_Y =  0.00000000;<br>MAX_Y =  3.50000000;<br>MIN_Z = -3.50000000;<br>MAX_Z =  0.00000000;<br>// Source position<br>SRC_X = 1.75000000;<br>SRC_Y = 1.75000000;<br>SRC_Z = -0.97500000;<br>// Number of receivers<br>num_receivers = 58;<br>// Offset for sources and receivers<br>offset = 5e-02;<br><br>// #################################################################<br>// #                    Define main points                         #<br>// #################################################################<br>Point (1) = {MIN_X, MAX_Y, MIN_Z, lc};<br>Point (2) = {MAX_X, MAX_Y, MIN_Z, lc};<br>Point (3) = {MAX_X, MIN_Y, MIN_Z, lc};<br>Point (4) = {MIN_X, MIN_Y, MIN_Z, lc};<br>Point (5) = {MIN_X, MAX_Y, -2.10000000, lc2};<br>Point (6) = {0.05000000, MAX_Y, -2.10000000, lc2};<br>Point (7) = {0.90000000, MAX_Y, -2.10000000, lc2};<br>Point (8) = {1.75000000, MAX_Y, -2.10000000, lc2};<br>Point (9) = {2.60000000, MAX_Y, -2.10000000, lc2};<br>Point (10) = {3.45000000, MAX_Y, -2.10000000, lc2};<br>Point (11) = {MAX_X, MAX_Y, -2.10000000, lc2};<br>Point (12) = {MAX_X, 2.9167, -2.10000000, lc2};<br>Point (13) = {MAX_X, 2.3333, -2.10000000, lc2};<br>Point (14) = {MAX_X, 1.7500, -2.10000000, lc2};<br>Point (15) = {MAX_X, 1.1667, -2.10000000, lc2};<br>Point (16) = {MAX_X, 0.5833, -2.10000000, lc2};<br>Point (17) = {MAX_X, MIN_Y, -2.10000000, lc2};<br>Point (18) = {3.45000000, MIN_Y, -2.10000000, lc2};<br>Point (19) = {2.60000000, MIN_Y, -2.10000000, lc2};<br>Point (20) = {1.75000000, MIN_Y, -2.10000000, lc2};<br>Point (21) = {0.90000000, MIN_Y, -2.10000000, lc2};<br>Point (22) = {0.05000000, MIN_Y, -2.10000000, lc2};<br>Point (23) = {MIN_X, MIN_Y, -2.10000000, lc2};<br>Point (24) = {MIN_X, 0.5833, -2.10000000, lc2};<br>Point (25) = {MIN_X, 1.1667, -2.10000000, lc2};<br>Point (26) = {MIN_X, 1.7500, -2.10000000, lc2};<br>Point (27) = {MIN_X, 2.3333, -2.10000000, lc2};<br>Point (28) = {MIN_X, 2.9167, -2.10000000, lc2};<br>Point (29) = {MIN_X, MAX_Y, -2.00000000, lc2};<br>Point (30) = {0.05000000, MAX_Y, -2.00000000, lc2};<br>Point (31) = {0.90000000, MAX_Y, -2.00000000, lc2};<br>Point (32) = {1.75000000, MAX_Y, -2.00000000, lc2};<br>Point (33) = {2.60000000, MAX_Y, -2.00000000, lc2};<br>Point (34) = {3.45000000, MAX_Y, -2.00000000, lc2};<br>Point (35) = {MAX_X, MAX_Y, -2.00000000, lc2};<br>Point (36) = {MAX_X, 2.9167, -2.00000000, lc2};<br>Point (37) = {MAX_X, 2.3333, -2.00000000, lc2};<br>Point (38) = {MAX_X, 1.7500, -2.00000000, lc2};<br>Point (39) = {MAX_X, 1.1667, -2.00000000, lc2};<br>Point (40) = {MAX_X, 0.5833, -2.00000000, lc2};<br>Point (41) = {MAX_X, MIN_Y, -2.00000000, lc2};<br>Point (42) = {3.45000000, MIN_Y, -2.00000000, lc2};<br>Point (43) = {2.60000000, MIN_Y, -2.00000000, lc2};<br>Point (44) = {1.75000000, MIN_Y, -2.00000000, lc2};<br>Point (45) = {0.90000000, MIN_Y, -2.00000000, lc2};<br>Point (46) = {0.05000000, MIN_Y, -2.00000000, lc2};<br>Point (47) = {MIN_X, MIN_Y, -2.00000000, lc2};<br>Point (48) = {MIN_X, 0.5833, -2.00000000, lc2};<br>Point (49) = {MIN_X, 1.1667, -2.00000000, lc2};<br>Point (50) = {MIN_X, 1.7500, -2.00000000, lc2};<br>Point (51) = {MIN_X, 2.3333, -2.00000000, lc2};<br>Point (52) = {MIN_X, 2.9167, -2.00000000, lc2};<br>Point (53) = {MIN_X, MAX_Y, -1.00000000, lc3};<br>Point (54) = {0.05000000, MAX_Y, -1.00000000, lc3};<br>Point (55) = {0.90000000, MAX_Y, -1.00000000, lc3};<br>Point (56) = {1.75000000, MAX_Y, -1.00000000, lc3};<br>Point (57) = {2.60000000, MAX_Y, -1.00000000, lc3};<br>Point (58) = {3.45000000, MAX_Y, -1.00000000, lc3};<br>Point (59) = {MAX_X, MAX_Y, -1.00000000, lc3};<br>Point (60) = {MAX_X, 2.9167, -1.00000000, lc3};<br>Point (61) = {MAX_X, 2.3333, -1.00000000, lc3};<br>Point (62) = {MAX_X, 1.7500, -1.00000000, lc3};<br>Point (63) = {MAX_X, 1.1667, -1.00000000, lc3};<br>Point (64) = {MAX_X, 0.5833, -1.00000000, lc3};<br>Point (65) = {MAX_X, MIN_Y, -1.00000000, lc3};<br>Point (66) = {3.45000000, MIN_Y, -1.00000000, lc3};<br>Point (67) = {2.60000000, MIN_Y, -1.00000000, lc3};<br>Point (68) = {1.75000000, MIN_Y, -1.00000000, lc3};<br>Point (69) = {0.90000000, MIN_Y, -1.00000000, lc3};<br>Point (70) = {0.05000000, MIN_Y, -1.00000000, lc3};<br>Point (71) = {MIN_X, MIN_Y, -1.00000000, lc3};<br>Point (72) = {MIN_X, 0.5833, -1.00000000, lc3};<br>Point (73) = {MIN_X, 1.1667, -1.00000000, lc3};<br>Point (74) = {MIN_X, 1.7500, -1.00000000, lc3};<br>Point (75) = {MIN_X, 2.3333, -1.00000000, lc3};<br>Point (76) = {MIN_X, 2.9167, -1.00000000, lc3};<br>Point (77) = {MIN_X, MAX_Y, 0.00000000, lc};<br>Point (78) = {0.05000000, MAX_Y, 0.00000000, lc};<br>Point (79) = {0.90000000, MAX_Y, 0.00000000, lc};<br>Point (80) = {1.75000000, MAX_Y, 0.00000000, lc};<br>Point (81) = {2.60000000, MAX_Y, 0.00000000, lc};<br>Point (82) = {3.45000000, MAX_Y, 0.00000000, lc};<br>Point (83) = {MAX_X, MAX_Y, 0.00000000, lc};<br>Point (84) = {MAX_X, 2.9167, 0.00000000, lc};<br>Point (85) = {MAX_X, 2.3333, 0.00000000, lc};<br>Point (86) = {MAX_X, 1.7500, 0.00000000, lc};<br>Point (87) = {MAX_X, 1.1667, 0.00000000, lc};<br>Point (88) = {MAX_X, 0.5833, 0.00000000, lc};<br>Point (89) = {MAX_X, MIN_Y, 0.00000000, lc};<br>Point (90) = {3.45000000, MIN_Y, 0.00000000, lc};<br>Point (91) = {2.60000000, MIN_Y, 0.00000000, lc};<br>Point (92) = {1.75000000, MIN_Y, 0.00000000, lc};<br>Point (93) = {0.90000000, MIN_Y, 0.00000000, lc};<br>Point (94) = {0.05000000, MIN_Y, 0.00000000, lc};<br>Point (95) = {MIN_X, MIN_Y, 0.00000000, lc};<br>Point (96) = {MIN_X, 0.5833, 0.00000000, lc};<br>Point (97) = {MIN_X, 1.1667, 0.00000000, lc};<br>Point (98) = {MIN_X, 1.7500, 0.00000000, lc};<br>Point (99) = {MIN_X, 2.3333, 0.00000000, lc};<br>Point (100) = {MIN_X, 2.9167, 0.00000000, lc};<br><br>// #################################################################<br>// #                    Layer 1: Sediments                         #<br>// #################################################################<br>// Side 1<br>Line (1) = {1,2};<br>Line (2) = {2,3};<br>Line (3) = {3,4};<br>Line (4) = {4,1};<br>Line Loop (1) = {1,2,3,4};<br>Plane Surface (1) = {1};<br>// Vertical (first level)<br>Line (5) = {2,11};<br>Line (6) = {3,17};<br>Line (7) = {4,23};<br>Line (8) = {1,5};<br>// Side 2<br>Line (9) = {5,6};<br>Line (10) = {6,7};<br>Line (11) = {7,8};<br>Line (12) = {8,9};<br>Line (13) = {9,10};<br>Line (14) = {10,11};<br>Line Loop (2) = {9,10,11,12,13,14,-5,-1,8};<br>Plane Surface (2) = {2};<br>// Side 3<br>Line (15) = {11,12};<br>Line (16) = {12,13};<br>Line (17) = {13,14};<br>Line (18) = {14,15};<br>Line (19) = {15,16};<br>Line (20) = {16,17};<br>Line Loop (3) = {15,16,17,18,19,20,-6,-2,5};<br>Plane Surface (3) = {3};<br>// Side 4<br>Line (21) = {17,18};<br>Line (22) = {18,19};<br>Line (23) = {19,20};<br>Line (24) = {20,21};<br>Line (25) = {21,22};<br>Line (26) = {22,23};<br>Line Loop (4) = {21,22,23,24,25,26,-7,-3,6};<br>Plane Surface (4) = {4};<br>// Side 5<br>Line (27) = {23,24};<br>Line (28) = {24,25};<br>Line (29) = {25,26};<br>Line (30) = {26,27};<br>Line (31) = {27,28};<br>Line (32) = {28,5};<br>Line Loop (5) = {27,28,29,30,31,32,-8,-4,7};<br>Plane Surface (5) = {5};<br>// Side 6<br>Line Loop (6) = {9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,<br>                 25,26,27,28,29,30,31,32};<br>Plane Surface (6) = {6};<br>// Define Volume<br>Surface Loop (1) = {1,2,3,4,5,6};<br>Volume (1) = {1};<br>Physical Volume ("Sediments2", 4) = {1};<br><br>// #################################################################<br>// #                    Layer 2: Oil                               #<br>// #################################################################<br>// Vertical (Second level)<br>Line (33) = {5,29};<br>Line (34) = {11,35};<br>Line (35) = {17,41};<br>Line (36) = {23,47};<br>// Side 1<br>Line (37) = {29,30};<br>Line (38) = {30,31};<br>Line (39) = {31,32};<br>Line (40) = {32,33};<br>Line (41) = {33,34};<br>Line (42) = {34,35};<br>Line Loop (7) = {37,38,39,40,41,42,-34,-9,-10,-11,-12,-13,-14,33};<br>Plane Surface (7) = {7};<br>// Side 2<br>Line (43) = {35,36};<br>Line (44) = {36,37};<br>Line (45) = {37,38};<br>Line (46) = {38,39};<br>Line (47) = {39,40};<br>Line (48) = {40,41};<br>Line Loop (8) = {43,44,45,46,47,48,-35,-15,-16,-17,-18,-19,-20,34};<br>Plane Surface (8) = {8};<br>// Side 3<br>Line (49) = {41,42};<br>Line (50) = {42,43};<br>Line (51) = {43,44};<br>Line (52) = {44,45};<br>Line (53) = {45,46};<br>Line (54) = {46,47};<br>Line Loop (9) = {49,50,51,52,53,54,-36,-21,-22,-23,-24,-25,-26,35};<br>Plane Surface (9) = {9};<br>// Side 4<br>Line (55) = {47,48};<br>Line (56) = {48,49};<br>Line (57) = {49,50};<br>Line (58) = {50,51};<br>Line (59) = {51,52};<br>Line (60) = {52,29};<br>Line Loop (10) = {55,56,57,58,59,60,-33,-27,-28,-29,-30,-31,-32,36};<br>Plane Surface (10) = {10};<br>// Side 5<br>Line Loop (11) = {37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,<br>                  54,55,56,57,58,59,60};<br>Plane Surface (11) = {11};<br>// Define Volume<br>Surface Loop (2) = {6,7,8,9,10,11};<br>Volume (2) = {2};<br>Physical Volume ("Oil", 3) = {2};<br><br>// #################################################################<br>// #                    Layer 3: Sediments                         #<br>// #################################################################<br>// Vertical (Third level)<br>Line (61) = {29,53};<br>Line (62) = {35,59};<br>Line (63) = {41,65};<br>Line (64) = {47,71};<br>// Side 1<br>Line (65) = {53,54};<br>Line (66) = {54,55};<br>Line (67) = {55,56};<br>Line (68) = {56,57};<br>Line (69) = {57,58};<br>Line (70) = {58,59};<br>Line Loop (12) = {65,66,67,68,69,70,-62,-37,-38,-39,-40,-41,-42,61};<br>Plane Surface (12) = {12};<br>// Side 2<br>Line (71) = {59,60};<br>Line (72) = {60,61};<br>Line (73) = {61,62};<br>Line (74) = {62,63};<br>Line (75) = {63,64};<br>Line (76) = {64,65};<br>Line Loop (13) = {71,72,73,74,75,76,-63,-43,-44,-45,-46,-47,-48,62};<br>Plane Surface (13) = {13};<br>// Side 3<br>Line (77) = {65,66};<br>Line (78) = {66,67};<br>Line (79) = {67,68};<br>Line (80) = {68,69};<br>Line (81) = {69,70};<br>Line (82) = {70,71};<br>Line Loop (14) = {77,78,79,80,81,82,-64,-49,-50,-51,-52,-53,-54,63};<br>Plane Surface (14) = {14};<br>// Side 4<br>Line (83) = {71,72};<br>Line (84) = {72,73};<br>Line (85) = {73,74};<br>Line (86) = {74,75};<br>Line (87) = {75,76};<br>Line (88) = {76,53};<br>Line Loop (15) = {83,84,85,86,87,88,-61,-55,-56,-57,-58,-59,-60,64};<br>Plane Surface (15) = {15};<br>// Side 5<br>Line Loop (16) = {65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,<br>                  82,83,84,85,86,87,88};<br>Plane Surface (16) = {16};<br>// Define Volume<br>Surface Loop (3) = {11,12,13,14,15,16};<br>Volume (3) = {3};<br>Physical Volume ("Sediments1", 2) = {3};<br><br>// #################################################################<br>// #                     Layer 4: Water                            #<br>// #################################################################<br>// Vertical (Fourth level)<br>Line (89) = {53,77};<br>Line (90) = {59,83};<br>Line (91) = {65,89};<br>Line (92) = {71,95};<br>// Side 1<br>Line (93) = {77,78};<br>Line (94) = {78,79};<br>Line (95) = {79,80};<br>Line (96) = {80,81};<br>Line (97) = {81,82};<br>Line (98) = {82,83};<br>Line Loop (17) = {93,94,95,96,97,98,-90,-65,-66,-67,-68,-69,-70,89};<br>Plane Surface (17) = {17};<br>// Side 2<br>Line (99) = {83,84};<br>Line (100) = {84,85};<br>Line (101) = {85,86};<br>Line (102) = {86,87};<br>Line (103) = {87,88};<br>Line (104) = {88,89};<br>Line Loop (18) = {99,100,101,102,103,104,-91,-71,-72,-73,-74,-75,-76,90};<br>Plane Surface (18) = {18};<br>// Side 3<br>Line (105) = {89,90};<br>Line (106) = {90,91};<br>Line (107) = {91,92};<br>Line (108) = {92,93};<br>Line (109) = {93,94};<br>Line (110) = {94,95};<br>Line Loop (19) = {105,106,107,108,109,110,-92,-77,-78,-79,-80,-81,-82,91};<br>Plane Surface (19) = {19};<br>// Side 4<br>Line (111) = {95,96};<br>Line (112) = {96,97};<br>Line (113) = {97,98};<br>Line (114) = {98,99};<br>Line (115) = {99,100};<br>Line (116) = {100,77};<br>Line Loop (20) = {111,112,113,114,115,116,-89,-83,-84,-85,-86,-87,-88,92};<br>Plane Surface (20) = {20};<br>// Side 5<br>Line Loop (21) = {93,94,95,96,97,98,99,100,101,102,103,104,105,<br>                  106,107,108,109,110,111,112,113,114,115,116};<br>Plane Surface (21) = {21};<br>// Define Volume<br>Surface Loop (4) = {16,17,18,19,20,21};<br>Volume (4) = {4};<br>Physical Volume ("Water", 1) = {4};<br><br>// #################################################################<br>// #                Local refinement and scaling                   #<br>// #################################################################<br>// Source<br>Point (101) = {SRC_X, SRC_Y, SRC_Z+offset, lc4};<br>Point{101} In Volume{4};<br><br><br>// Local refinement for sources<br>Field[1] = Attractor;<br>Field[1].NodesList = {101};<br><br>Field[2] = Threshold;<br>Field[2].IField = 1;<br>Field[2].LcMin = lc4 / 18.;<br>Field[2].LcMax = lc4;<br>Field[2].DistMin = lc4 / 4.;<br>Field[2].DistMax = 2.*lc4;<br>// Use minimum of all the fields as the background field<br>Field[3] = Min;<br>Field[3].FieldsList = {2};<br>Background Field = 3;<br>// Don't extend the elements sizes from the boundary inside the domain<br>Mesh.CharacteristicLengthExtendFromBoundary = 0;<br>// Scale mesh to real dimensions<br>Mesh.ScalingFactor = 10000;<br><br> <br></div>