[Gmsh] fillet producing irregular mesh
baptiste auguie
auguieba at gmail.com
Mon Apr 20 10:16:35 CEST 2020
Hi,
I'm very new to the program so I may well have overlooked something
basic. I adapted one of the examples for constructive geometry with
boolean union between a central sphere and a number of conical spikes. I
end the shape by rounding off sharp edges with a fillet, but when
inspecting the mesh visually I find some strange irregularities where
fillet was applied (and applying Smooth 2D doesn't seem to be enough to
smoothen them out).
Thankfully the model doesn't seem too bothered by this and produces
reasonable results; I'd still be keen to know if the mesh could be
improved. I attach the geo file as well as a rendering of the structure
for clarity.
Best regards,
baptiste
----
geo file
//+
SetFactory("OpenCASCADE");
Mesh.CharacteristicLengthMin = 0.001;
Mesh.CharacteristicLengthMax = 0.005;
Sphere(1) = {0, 0, 0, 0.030, -Pi/2, Pi/2, 2*Pi};
Cone(2) = {0, 0, 0, -0.043, 0.01, -0.01, 0.015, 0.003, 2*Pi};
Cone(3) = {0, 0, 0, -0.038, -0.024, 0, 0.015, 0.003, 2*Pi};
Cone(4) = {0, 0, 0, -0.034, 0.022, 0.02, 0.015, 0.003, 2*Pi};
Cone(5) = {0, 0, 0, -0.029, -0.004, -0.034, 0.015, 0.003, 2*Pi};
Cone(6) = {0, 0, 0, -0.025, -0.022, 0.03, 0.015, 0.003, 2*Pi};
Cone(7) = {0, 0, 0, -0.02, 0.039, -0.008, 0.015, 0.003, 2*Pi};
Cone(8) = {0, 0, 0, -0.016, -0.036, -0.022, 0.015, 0.003, 2*Pi};
Cone(9) = {0, 0, 0, -0.011, 0.012, 0.042, 0.015, 0.003, 2*Pi};
Cone(10) = {0, 0, 0, -0.007, 0.02, -0.04, 0.015, 0.003, 2*Pi};
Cone(11) = {0, 0, 0, -0.002, -0.042, 0.016, 0.015, 0.003, 2*Pi};
Cone(12) = {0, 0, 0, 0.002, 0.042, 0.016, 0.015, 0.003, 2*Pi};
Cone(13) = {0, 0, 0, 0.007, -0.02, -0.04, 0.015, 0.003, 2*Pi};
Cone(14) = {0, 0, 0, 0.011, -0.012, 0.042, 0.015, 0.003, 2*Pi};
Cone(15) = {0, 0, 0, 0.016, 0.036, -0.022, 0.015, 0.003, 2*Pi};
Cone(16) = {0, 0, 0, 0.02, -0.039, -0.008, 0.015, 0.003, 2*Pi};
Cone(17) = {0, 0, 0, 0.025, 0.022, 0.03, 0.015, 0.003, 2*Pi};
Cone(18) = {0, 0, 0, 0.029, 0.004, -0.034, 0.015, 0.003, 2*Pi};
Cone(19) = {0, 0, 0, 0.034, -0.022, 0.02, 0.015, 0.003, 2*Pi};
Cone(20) = {0, 0, 0, 0.038, 0.024, 0, 0.015, 0.003, 2*Pi};
Cone(21) = {0, 0, 0, 0.043, -0.01, -0.01, 0.015, 0.003, 2*Pi};
BooleanUnion(22) = {Volume{1}; Delete; }{ Volume{2}; Delete; };
BooleanUnion(23) = {Volume{3}; Delete; }{ Volume{22}; Delete; };
BooleanUnion(24) = {Volume{4}; Delete; }{ Volume{23}; Delete; };
BooleanUnion(25) = {Volume{5}; Delete; }{ Volume{24}; Delete; };
BooleanUnion(26) = {Volume{6}; Delete; }{ Volume{25}; Delete; };
BooleanUnion(27) = {Volume{7}; Delete; }{ Volume{26}; Delete; };
BooleanUnion(28) = {Volume{8}; Delete; }{ Volume{27}; Delete; };
BooleanUnion(29) = {Volume{9}; Delete; }{ Volume{28}; Delete; };
BooleanUnion(30) = {Volume{10}; Delete; }{ Volume{29}; Delete; };
BooleanUnion(31) = {Volume{11}; Delete; }{ Volume{30}; Delete; };
BooleanUnion(32) = {Volume{12}; Delete; }{ Volume{31}; Delete; };
BooleanUnion(33) = {Volume{13}; Delete; }{ Volume{32}; Delete; };
BooleanUnion(34) = {Volume{14}; Delete; }{ Volume{33}; Delete; };
BooleanUnion(35) = {Volume{15}; Delete; }{ Volume{34}; Delete; };
BooleanUnion(36) = {Volume{16}; Delete; }{ Volume{35}; Delete; };
BooleanUnion(37) = {Volume{17}; Delete; }{ Volume{36}; Delete; };
BooleanUnion(38) = {Volume{18}; Delete; }{ Volume{37}; Delete; };
BooleanUnion(39) = {Volume{19}; Delete; }{ Volume{38}; Delete; };
BooleanUnion(40) = {Volume{20}; Delete; }{ Volume{39}; Delete; };
BooleanUnion(41) = {Volume{21}; Delete; }{ Volume{40}; Delete; };
f() = Abs(Boundary{ Volume{41}; });
e() = Unique(Abs(Boundary{ Surface{f()}; }));
Fillet{41}{e()}{0.003}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: starn.png
Type: image/png
Size: 157555 bytes
Desc: not available
URL: <http://onelab.info/pipermail/gmsh/attachments/20200420/0dba1259/attachment-0002.png>
-------------- next part --------------
//+
SetFactory("OpenCASCADE");
Mesh.CharacteristicLengthMin = 0.001;
Mesh.CharacteristicLengthMax = 0.005;
Sphere(1) = {0, 0, 0, 0.030, -Pi/2, Pi/2, 2*Pi};
Cone(2) = {0, 0, 0, -0.043, 0.01, -0.01, 0.015, 0.003, 2*Pi};
Cone(3) = {0, 0, 0, -0.038, -0.024, 0, 0.015, 0.003, 2*Pi};
Cone(4) = {0, 0, 0, -0.034, 0.022, 0.02, 0.015, 0.003, 2*Pi};
Cone(5) = {0, 0, 0, -0.029, -0.004, -0.034, 0.015, 0.003, 2*Pi};
Cone(6) = {0, 0, 0, -0.025, -0.022, 0.03, 0.015, 0.003, 2*Pi};
Cone(7) = {0, 0, 0, -0.02, 0.039, -0.008, 0.015, 0.003, 2*Pi};
Cone(8) = {0, 0, 0, -0.016, -0.036, -0.022, 0.015, 0.003, 2*Pi};
Cone(9) = {0, 0, 0, -0.011, 0.012, 0.042, 0.015, 0.003, 2*Pi};
Cone(10) = {0, 0, 0, -0.007, 0.02, -0.04, 0.015, 0.003, 2*Pi};
Cone(11) = {0, 0, 0, -0.002, -0.042, 0.016, 0.015, 0.003, 2*Pi};
Cone(12) = {0, 0, 0, 0.002, 0.042, 0.016, 0.015, 0.003, 2*Pi};
Cone(13) = {0, 0, 0, 0.007, -0.02, -0.04, 0.015, 0.003, 2*Pi};
Cone(14) = {0, 0, 0, 0.011, -0.012, 0.042, 0.015, 0.003, 2*Pi};
Cone(15) = {0, 0, 0, 0.016, 0.036, -0.022, 0.015, 0.003, 2*Pi};
Cone(16) = {0, 0, 0, 0.02, -0.039, -0.008, 0.015, 0.003, 2*Pi};
Cone(17) = {0, 0, 0, 0.025, 0.022, 0.03, 0.015, 0.003, 2*Pi};
Cone(18) = {0, 0, 0, 0.029, 0.004, -0.034, 0.015, 0.003, 2*Pi};
Cone(19) = {0, 0, 0, 0.034, -0.022, 0.02, 0.015, 0.003, 2*Pi};
Cone(20) = {0, 0, 0, 0.038, 0.024, 0, 0.015, 0.003, 2*Pi};
Cone(21) = {0, 0, 0, 0.043, -0.01, -0.01, 0.015, 0.003, 2*Pi};
BooleanUnion(22) = {Volume{1}; Delete; }{ Volume{2}; Delete; };
BooleanUnion(23) = {Volume{3}; Delete; }{ Volume{22}; Delete; };
BooleanUnion(24) = {Volume{4}; Delete; }{ Volume{23}; Delete; };
BooleanUnion(25) = {Volume{5}; Delete; }{ Volume{24}; Delete; };
BooleanUnion(26) = {Volume{6}; Delete; }{ Volume{25}; Delete; };
BooleanUnion(27) = {Volume{7}; Delete; }{ Volume{26}; Delete; };
BooleanUnion(28) = {Volume{8}; Delete; }{ Volume{27}; Delete; };
BooleanUnion(29) = {Volume{9}; Delete; }{ Volume{28}; Delete; };
BooleanUnion(30) = {Volume{10}; Delete; }{ Volume{29}; Delete; };
BooleanUnion(31) = {Volume{11}; Delete; }{ Volume{30}; Delete; };
BooleanUnion(32) = {Volume{12}; Delete; }{ Volume{31}; Delete; };
BooleanUnion(33) = {Volume{13}; Delete; }{ Volume{32}; Delete; };
BooleanUnion(34) = {Volume{14}; Delete; }{ Volume{33}; Delete; };
BooleanUnion(35) = {Volume{15}; Delete; }{ Volume{34}; Delete; };
BooleanUnion(36) = {Volume{16}; Delete; }{ Volume{35}; Delete; };
BooleanUnion(37) = {Volume{17}; Delete; }{ Volume{36}; Delete; };
BooleanUnion(38) = {Volume{18}; Delete; }{ Volume{37}; Delete; };
BooleanUnion(39) = {Volume{19}; Delete; }{ Volume{38}; Delete; };
BooleanUnion(40) = {Volume{20}; Delete; }{ Volume{39}; Delete; };
BooleanUnion(41) = {Volume{21}; Delete; }{ Volume{40}; Delete; };
f() = Abs(Boundary{ Volume{41}; });
e() = Unique(Abs(Boundary{ Surface{f()}; }));
Fillet{41}{e()}{0.003}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screen Shot 2020-04-20 at 8.14.36 PM.png
Type: image/png
Size: 999897 bytes
Desc: not available
URL: <http://onelab.info/pipermail/gmsh/attachments/20200420/0dba1259/attachment-0003.png>
More information about the gmsh
mailing list