[Gmsh] Control of meshing plane surfaces

Christophe Geuzaine cgeuzaine at ulg.ac.be
Wed Jun 18 21:01:26 CEST 2014


On 18 Jun 2014, at 12:23, Julian Dean <j.dean at sheffield.ac.uk> wrote:

> Hi all, 
> 
> I have a nice voranoi structure that i’ve have gotten gmsh to draw out for me. I want to mesh the plane surfaces really fine and then extend out to a large mesh in the volume (such as below)
> Even though all surfaces have been selected, as the manual says it causes some issues that some surfaces are fine, some are half meshed with fine and the rest of the surface coarse and some are just coarse etc etc - 
> 
> Is there any hacks that can be used to get around this - edge control is nice but not quite what i need. I might have to move away from gmsh as really do require this fine control of meshing but don’t want to if I can help it - is fixing this on the horizon any time soon?
> 
> Is there a way of telling gmsh to mesh each surface with a fine mesh, even if it is separately, and then go on to extend to a large coarse mesh in the volumes?
> 

One way would be to use the "Restrict" Field:

-------------- next part --------------
A non-text attachment was scrubbed...
Name: restrict.geo
Type: application/octet-stream
Size: 6209 bytes
Desc: not available
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20140618/9970db20/attachment.geo>
-------------- next part --------------




> cheers
> 
> Julian
> 
> 
> 
> Geometry.AutoCoherence=0;
> 
> Lc1 = 0.020000;
> 
> Point(0)={0.500000,0.500000,-0.500000, Lc1};
> Point(1)={-0.500000,0.500000,-0.500000, Lc1};
> Point(2)={0.500000,0.500000,0.000000, Lc1};
> Point(3)={-0.500000,0.500000,0.000000, Lc1};
> Point(4)={-0.500000,-0.166426,-0.000000, Lc1};
> Point(5)={-0.457949,-0.202895,-0.000000, Lc1};
> Point(6)={0.500000,-0.414996,-0.000000, Lc1};
> Point(7)={0.500000,-0.212319,-0.500000, Lc1};
> Point(8)={-0.500000,0.009092,-0.500000, Lc1};
> Point(9)={-0.500000,-0.191355,-0.005499, Lc1};
> 
> Line(1)={7,6};
> Line(2)={6,2};
> Line(3)={2,0};
> Line(4)={0,7};
> Line Loop(1)={1,2,3,4};
> Plane Surface(1)={1};
> Line(6)={3,1};
> Line(7)={1,0};
> Line(8)={0,2};
> Line(9)={2,3};
> Line Loop(2)={6,7,8,9};
> Plane Surface(2)={2};
> Line(11)={1,8};
> Line(12)={8,7};
> Line(13)={7,0};
> Line(14)={0,1};
> Line Loop(3)={11,12,13,14};
> Plane Surface(3)={3};
> Line(16)={4,9};
> Line(17)={9,8};
> Line(18)={8,1};
> Line(19)={1,3};
> Line(20)={3,4};
> Line Loop(4)={16,17,18,19,20};
> Plane Surface(4)={4};
> Line(22)={5,9};
> Line(23)={9,4};
> Line(24)={4,5};
> Line Loop(5)={22,23,24};
> Plane Surface(5)={5};
> Line(26)={5,4};
> Line(27)={4,3};
> Line(28)={3,2};
> Line(29)={2,6};
> Line(30)={6,5};
> Line Loop(6)={26,27,28,29,30};
> Plane Surface(6)={6};
> Line(32)={8,9};
> Line(33)={9,5};
> Line(34)={5,6};
> Line(35)={6,7};
> Line(36)={7,8};
> Line Loop(7)={32,33,34,35,36};
> Plane Surface(7)={7};
> Surface Loop(1)={1,2,3,4,5,6,7};
> Volume(1)={1};
> 
> Point(10)={0.500000,0.500000,0.500000, Lc1};
> Point(11)={-0.500000,0.500000,0.500000, Lc1};
> Point(12)={0.500000,-0.375350,0.500000, Lc1};
> Point(13)={0.500000,0.500000,0.000000, Lc1};
> Point(14)={-0.500000,0.500000,0.000000, Lc1};
> Point(15)={-0.500000,-0.166426,-0.000000, Lc1};
> Point(16)={-0.500000,0.491911,0.500000, Lc1};
> Point(17)={0.500000,-0.500000,0.405330, Lc1};
> Point(18)={-0.457949,-0.202895,-0.000000, Lc1};
> Point(19)={0.500000,-0.500000,0.044740, Lc1};
> Point(20)={0.500000,-0.414996,-0.000000, Lc1};
> Point(21)={0.034849,-0.500000,0.098946, Lc1};
> 
> Line(38)={16,11};
> Line(39)={11,10};
> Line(40)={10,12};
> Line(41)={12,16};
> Line Loop(8)={38,39,40,41};
> Plane Surface(8)={8};
> Line(43)={17,21};
> Line(44)={21,18};
> Line(45)={18,15};
> Line(46)={15,16};
> Line(47)={16,12};
> Line(48)={12,17};
> Line Loop(9)={43,44,45,46,47,48};
> Plane Surface(9)={9};
> Line(50)={14,15};
> Line(51)={15,18};
> Line(52)={18,20};
> Line(53)={20,13};
> Line(54)={13,14};
> Line Loop(10)={50,51,52,53,54};
> Plane Surface(10)={10};
> Line(56)={15,14};
> Line(57)={14,11};
> Line(58)={11,16};
> Line(59)={16,15};
> Line Loop(11)={56,57,58,59};
> Plane Surface(11)={11};
> Line(61)={14,13};
> Line(62)={13,10};
> Line(63)={10,11};
> Line(64)={11,14};
> Line Loop(12)={61,62,63,64};
> Plane Surface(12)={12};
> Line(66)={17,19};
> Line(67)={19,21};
> Line(68)={21,17};
> Line Loop(13)={66,67,68};
> Plane Surface(13)={13};
> Line(70)={13,20};
> Line(71)={20,19};
> Line(72)={19,17};
> Line(73)={17,12};
> Line(74)={12,10};
> Line(75)={10,13};
> Line Loop(14)={70,71,72,73,74,75};
> Plane Surface(14)={14};
> Line(77)={19,20};
> Line(78)={20,18};
> Line(79)={18,21};
> Line(80)={21,19};
> Line Loop(15)={77,78,79,80};
> Plane Surface(15)={15};
> Surface Loop(2)={8,9,10,11,12,13,14,15};
> Volume(2)={2};
> 
> Point(22)={0.500000,-0.500000,-0.500000, Lc1};
> Point(23)={-0.457949,-0.202895,-0.000000, Lc1};
> Point(24)={-0.500000,-0.500000,-0.500000, Lc1};
> Point(25)={0.500000,-0.500000,0.044740, Lc1};
> Point(26)={0.500000,-0.414996,-0.000000, Lc1};
> Point(27)={0.500000,-0.212319,-0.500000, Lc1};
> Point(28)={0.034849,-0.500000,0.098946, Lc1};
> Point(29)={-0.500000,0.009092,-0.500000, Lc1};
> Point(30)={-0.500000,-0.191355,-0.005499, Lc1};
> Point(31)={-0.500000,-0.500000,0.060293, Lc1};
> 
> Line(82)={27,29};
> Line(83)={29,24};
> Line(84)={24,22};
> Line(85)={22,27};
> Line Loop(16)={82,83,84,85};
> Plane Surface(16)={16};
> Line(87)={29,30};
> Line(88)={30,31};
> Line(89)={31,24};
> Line(90)={24,29};
> Line Loop(17)={87,88,89,90};
> Plane Surface(17)={17};
> Line(92)={25,22};
> Line(93)={22,24};
> Line(94)={24,31};
> Line(95)={31,28};
> Line(96)={28,25};
> Line Loop(18)={92,93,94,95,96};
> Plane Surface(18)={18};
> Line(98)={30,23};
> Line(99)={23,28};
> Line(100)={28,31};
> Line(101)={31,30};
> Line Loop(19)={98,99,100,101};
> Plane Surface(19)={19};
> Line(103)={26,23};
> Line(104)={23,30};
> Line(105)={30,29};
> Line(106)={29,27};
> Line(107)={27,26};
> Line Loop(20)={103,104,105,106,107};
> Plane Surface(20)={20};
> Line(109)={25,26};
> Line(110)={26,27};
> Line(111)={27,22};
> Line(112)={22,25};
> Line Loop(21)={109,110,111,112};
> Plane Surface(21)={21};
> Line(114)={23,26};
> Line(115)={26,25};
> Line(116)={25,28};
> Line(117)={28,23};
> Line Loop(22)={114,115,116,117};
> Plane Surface(22)={22};
> Surface Loop(3)={16,17,18,19,20,21,22};
> Volume(3)={3};
> 
> Point(32)={0.500000,-0.375350,0.500000, Lc1};
> Point(33)={-0.500000,-0.166426,-0.000000, Lc1};
> Point(34)={-0.500000,0.491911,0.500000, Lc1};
> Point(35)={-0.500000,-0.500000,0.500000, Lc1};
> Point(36)={0.500000,-0.500000,0.500000, Lc1};
> Point(37)={0.500000,-0.500000,0.405330, Lc1};
> Point(38)={-0.457949,-0.202895,-0.000000, Lc1};
> Point(39)={0.034849,-0.500000,0.098946, Lc1};
> Point(40)={-0.500000,-0.191355,-0.005499, Lc1};
> Point(41)={-0.500000,-0.500000,0.060293, Lc1};
> 
> Line(119)={36,35};
> Line(120)={35,34};
> Line(121)={34,32};
> Line(122)={32,36};
> Line Loop(23)={119,120,121,122};
> Plane Surface(23)={23};
> Line(124)={41,40};
> Line(125)={40,33};
> Line(126)={33,34};
> Line(127)={34,35};
> Line(128)={35,41};
> Line Loop(24)={124,125,126,127,128};
> Plane Surface(24)={24};
> Line(130)={37,36};
> Line(131)={36,32};
> Line(132)={32,37};
> Line Loop(25)={130,131,132};
> Plane Surface(25)={25};
> Line(134)={37,39};
> Line(135)={39,41};
> Line(136)={41,35};
> Line(137)={35,36};
> Line(138)={36,37};
> Line Loop(26)={134,135,136,137,138};
> Plane Surface(26)={26};
> Line(140)={38,33};
> Line(141)={33,40};
> Line(142)={40,38};
> Line Loop(27)={140,141,142};
> Plane Surface(27)={27};
> Line(144)={33,38};
> Line(145)={38,39};
> Line(146)={39,37};
> Line(147)={37,32};
> Line(148)={32,34};
> Line(149)={34,33};
> Line Loop(28)={144,145,146,147,148,149};
> Plane Surface(28)={28};
> Line(151)={39,38};
> Line(152)={38,40};
> Line(153)={40,41};
> Line(154)={41,39};
> Line Loop(29)={151,152,153,154};
> Plane Surface(29)={29};
> Surface Loop(4)={23,24,25,26,27,28,29};
> Volume(4)={4};
> 
> Field[1] = Attractor;
> Field[1].NNodesByEdge = 100;
> Field[1].EdgesList = {1:155};
> Field[2] = Threshold;
> Field[2].IField = 1;
> Field[2].LcMin = 0.010000;
> Field[2].LcMax = 0.200000;
> Field[2].DistMin = 0.010000;
> Field[2].DistMax = 0.100000;
> Mesh.CharacteristicLengthExtendFromBoundary = 0.;
> Background Field = 2;
> Coherence;
> 
> 
> _______________________________________________
> gmsh mailing list
> gmsh at geuz.org
> http://www.geuz.org/mailman/listinfo/gmsh

-- 
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science 
http://www.montefiore.ulg.ac.be/~geuzaine