Dear gmsh community,<br><br>I'm trying to make a 3D mesh of a box with 3 levels of mesh refinement.<br>Level 1, the mesh is coarse (lc), and should be used at the inner portion of the box<br>Level 2, the mesh is intermediate (lc/8), and should be used near the faces of the box<br>
Level 3, the mesh is refined (lc/40), and should be used inside the circle at one of the faces of the box.<br><br>The file below shows the best I could get. Notice that at the top face, element size is smaller (lc/8) near the
vertices, and bigger (lc) at interior, which is ok. At the front face,
there are big elements (lc) near tiny elements (lc/40) inside the circle. I'd like them to be medium size (lc/8).<br>I tried to use <br>
  Field[2] = Attractor;<br>
  Field[2].FacesList = {1,2,4,5,6,27};<br>
<br>instead of <br>  
Field[2] = Attractor;<br>
  
Field[2].EdgesList = {1:12};<br>
<br>But gmsh generated a bunch of errors. Any suggestions?<br><br>Olavo Luppi<br><br>=======================<br><br>lc = 1.0;<br>L = 4;<br>W = 3;<br>h = 2.0;<br>R = 0.1;<br><br>Point(1) = {0.0,0.0,0.0,lc};<br>Point(2) = {L,0.0, 0.0,lc};<br>
Point(3) = {L,W,0.0,lc};<br>Point(4) = {0,W,0.0,lc};<br><br>Point(5) = {0.0,0.0,h,lc};<br>Point(6) = {L,0.0,h,lc};<br>Point(7) = {L,W,h,lc};<br>Point(8) = {0,W,h,lc};<br><br>Line(1) = {4,3};<br>Line(2) = {3,2};<br>Line(3) = {2,1};<br>
Line(4) = {1,4};<br><br>Line(5) = {5,6};<br>Line(6) = {6,7};<br>Line(7) = {7,8};<br>Line(8) = {8,5};<br><br>Line(9) = {1,5};<br>Line(10) = {6,2};<br>Line(11) = {7,3};<br>Line(12) = {8,4};<br><br>a[] = Point{1}; <br>b[] = Point{2}; <br>
c[] = Point{6}; <br>d[] = Point{5};<br><br> <br>Point(20) = {(a[0]+b[0]+c[0]+d[0])/4,(a[1]+b[1]+c[1]+d[1])/4, (a[2]+b[2]+c[2]+d[2])/4, lc};<br>centro[] = Point{20};<br><br>Point(21) = {centro[0]+R, centro[1], centro[2],lc};<br>
Point(22) = {centro[0], centro[1], centro[2]+R,lc};<br>Point(23) = {centro[0]-R, centro[1], centro[2],lc};<br>Point(24) = {centro[0], centro[1], centro[2]-R,lc};<br><br><br>Line Loop(1) = {2,3,4,1};<br>Line Loop(2) = {5,6,7,8};<br>
Line Loop(3) = {9,5,10,3};<br>Line Loop(4) = {10, -2, -11, -6};<br>Line Loop(5) = {1, -11, 7, 12};<br>Line Loop(6) = {12, -4, 9, -8};<br><br><br>Plane Surface(1) = {1};<br>Plane Surface(2) = {2};<br>//Plane Surface(3) = {3};<br>
Plane Surface(4) = {4};<br>Plane Surface(5) = {5};<br>Plane Surface(6) = {6};<br><br><br><br>Circle(21) = {21, 20, 22};<br>Circle(22) = {22, 20, 23};<br>Circle(23) = {23, 20, 24};<br>Circle(24) = {24, 20, 21};<br><br>Line Loop(25) = {21, 22, 23, 24};<br>
Plane Surface(26) = {25};<br>Plane Surface(27) = {3, 25};<br><br><br>Surface Loop(28) = {2, 27, 6, 5, 1, 4, 26};<br>Volume(29) = {28};<br><br>Field[1] = Attractor;<br>Field[1].NodesList = {20};<br><br><br>Field[2] = Attractor;<br>
Field[2].EdgesList = {1:12};<br><br>Field[3] = Threshold;<br>Field[3].IField = 1;<br>Field[3].LcMin = lc / 40;<br>Field[3].LcMax = lc;<br>Field[3].DistMin = R;<br>Field[3].DistMax = 1;<br><br>Field[4] = Threshold;<br>Field[4].IField = 2;<br>
Field[4].LcMin = lc / 8;<br>Field[4].LcMax = lc;<br>Field[4].DistMin = 0.3;<br>Field[4].DistMax = 1.5;<br><br>// Use minimum of all the fields as the background field<br>Field[5] = Min;<br>Field[5].FieldsList = {3,4};<br>
Background Field = 5;<br><br><br>// Don't extend the elements sizes from the boundary inside the domain<br>Mesh.CharacteristicLengthExtendFromBoundary = 0;<br><br>