[Gmsh] BooleanFragments

Karin&NiKo niko.karin at gmail.com
Thu Jul 4 09:35:51 CEST 2019


Dear All,

After defining the mesh, I would like to use the Crack plugin. Here's what
I write in my .opt file :
---------------
Plugin(Crack).Dimension=1;
Plugin(Crack).PhysicalGroup=4;
Plugin(Crack).OpenBoundaryPhysicalGroup=0;
Plugin(Crack).NormalX=0;
Plugin(Crack).NormalY=0;
Plugin(Crack).NormalZ=1;
Plugin(Crack).Run;
----------------

But I cannot see the nodes duplication in the final mesh obtained by :
"gmsh -2 myCrack.geo -format med -o myCrack.med ".

What am I missing?
Thanks,
Nicolas

Le mer. 3 juil. 2019 à 21:01, Karin&NiKo <niko.karin at gmail.com> a écrit :

> Christophe, you are reading my mind! I was looking at this solution using
> fields but I couldn't find an example.
> Thanks
>
> Le mer. 3 juil. 2019 20:16, Christophe Geuzaine <cgeuzaine at uliege.be> a
> écrit :
>
>>
>> Hi guys,
>>
>> All 3 cases work for me with Gmsh 4.4... (Some earlier versions had
>> indeed an issue with preseance of mesh size specs on points with OCC.)
>>
>> Here is a 4th method, which IMHO gives an even nicer result:
>>
>> // **************
>> SetFactory("OpenCASCADE");
>> Rectangle(1) = {-0.7, -0.2, 0, 1, 0.5, 0.1};
>>
>> Point(9) = {-0.39, 0.21, 0, 1.0};
>> Point(10) = {-0.25, 0.14, 0, 1.0};
>> Point(11) = {-0.12, -0.05, 0, 1.0};
>> Point(12) = {-0.03, 0.12, 0, 1.0};
>> Point(13) = {0.14, 0.12, 0, 1.0};
>> Spline(9) = {9, 10, 11, 12, 13};
>>
>> BooleanFragments{ Surface{1}; Delete; }{ Curve{9}; Delete; }
>>
>> Field[1] = Distance;
>> Field[1].NNodesByEdge = 200;
>> Field[1].EdgesList = {9};
>>
>> Field[2] = Threshold;
>> Field[2].IField = 1;
>> Field[2].LcMin = 0.005;
>> Field[2].LcMax = 0.05;
>> Field[2].DistMin = 0.01;
>> Field[2].DistMax = 0.1;
>>
>> Background Field = 2;
>>
>> Mesh.Algorithm = 6;
>> Mesh.CharacteristicLengthExtendFromBoundary = 0;
>> // **************
>>
>> Christophe
>>
>> > On 3 Jul 2019, at 19:41, Max Orok <morok at mevex.com> wrote:
>> >
>> > Hi there,
>> >
>> > I was able to get your script to work using the PointsOf function with
>> the curve to specify the characteristic length. I also was able to directly
>> list the tags in the characteristic length call, but only after removing
>> the 1.0 characteristic length parameter that was the fourth argument to the
>> Point initialization calls. In contrast, PointsOf seems to work even when
>> the length is specified earlier. Perhaps there is a subtle difference
>> somewhere between PointsOf and directly listing tags for this command? I've
>> named the two working cases A (using PointsOf) and B (directly specifying
>> the tags without setting the characteristic length earlier).
>> >
>> > Here is the modified script with the other cases commented out in case
>> you'd like to try them:
>> >
>> > // --
>> >
>> > SetFactory("OpenCASCADE");
>> > Rectangle(1) = {-0.7, -0.2, 0, 1, 0.5, 0.1};
>> >
>> >
>> //------------------------------------------------------------------------------
>> >
>> >
>> > // case A: specify a value, only to be changed later
>> > Point(9) = {-0.39, 0.21, 0, 1.0};
>> > Point(10) = {-0.25, 0.14, 0, 1.0};
>> > Point(11) = {-0.12, -0.05, 0, 1.0};
>> > Point(12) = {-0.03, 0.12, 0, 1.0};
>> > Point(13) = {0.14, 0.12, 0, 1.0};
>> >
>> > Spline(9) = {9, 10, 11, 12, 13};
>> >
>> > // works even if the characteristic length was set initialization ^
>> > Characteristic Length { PointsOf{ Curve{9}; } } = 0.01;
>> >
>> >
>> >
>> //------------------------------------------------------------------------------
>> >
>> > /*
>> > // case B: don't specify the characteristic lengths
>> > Point(9) = {-0.39, 0.21, 0};
>> > Point(10) = {-0.25, 0.14, 0};
>> > Point(11) = {-0.12, -0.05, 0};
>> > Point(12) = {-0.03, 0.12, 0};
>> > Point(13) = {0.14, 0.12, 0};
>> >
>> > Spline(9) = {9, 10, 11, 12, 13};
>> >
>> > // only works if the characteristic length wasn't set on initialization
>> > Characteristic Length { 9,10,11,12,13 } = 0.01;
>> > */
>> >
>> > // maybe a subtle difference between PointsOf and directly specifying
>> tags?
>> >
>> >
>> //------------------------------------------------------------------------------
>> >
>> > /*
>> > // case C: specify the characteristic lengths then use the tags
>> directly
>> > // DOESN'T WORK
>> > Point(9) = {-0.39, 0.21, 0, 1.0};
>> > Point(10) = {-0.25, 0.14, 0, 1.0};
>> > Point(11) = {-0.12, -0.05, 0, 1.0};
>> > Point(12) = {-0.03, 0.12, 0, 1.0};
>> > Point(13) = {0.14, 0.12, 0, 1.0};
>> >
>> > Spline(9) = {9, 10, 11, 12, 13};
>> >
>> > // only works if the characteristic length wasn't set on initialization
>> > Characteristic Length { 9,10,11,12,13 } = 0.01;
>> > */
>> >
>> >
>> //------------------------------------------------------------------------------
>> >
>> > BooleanFragments{ Surface{1}; Delete; }{ Curve{9}; Delete; }
>> >
>> > // --
>> >
>> > This probably wasn't your issue, but I had also forgotten about setting
>> a minimum characteristic length option, which stopped me from manually
>> setting the characteristic lengths at first.
>> >
>> > Sincerely,
>> > Max
>> >
>> > p.s. here are pictures of each case:
>> >
>> > Case A:
>> > <image.png>
>> >
>> > Case B (looks the same as Case A to me):
>> > <image.png>
>> >
>> > Case C (broken):
>> > <image.png>
>> >
>> >
>> > On Wed, Jul 3, 2019 at 12:30 PM Karin&NiKo <niko.karin at gmail.com>
>> wrote:
>> > Dear Gmsh Gurus,
>> >
>> > I would like to define a 1D crack in a planar surface. To this end, I
>> use the attached script.
>> > 1. When I specify the mesh size at the curve point *in the script* and
>> then load the script, it does not work aka the mesh haven't the right size
>> > 2. When I load the script and then specify  the mesh size at the curve
>> point *in the GUI*, it works (and it is beautiful!)
>> >
>> > Am I missing something? Is it a bug (NO????)?
>> >
>> > Thanks in advance,
>> > Your oldest fan
>> > _______________________________________________
>> > gmsh mailing list
>> > gmsh at onelab.info
>> > http://onelab.info/mailman/listinfo/gmsh
>> >
>> >
>> > --
>> > Max Orok
>> > Contractor
>> > www.mevex.com
>> >
>> >
>> > <myCrack-fixed.geo>_______________________________________________
>> > gmsh mailing list
>> > gmsh at onelab.info
>> > http://onelab.info/mailman/listinfo/gmsh
>>
>>>> Prof. Christophe Geuzaine
>> University of Liege, Electrical Engineering and Computer Science
>> http://www.montefiore.ulg.ac.be/~geuzaine
>>
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://onelab.info/pipermail/gmsh/attachments/20190704/77fcb336/attachment-0001.html>


More information about the gmsh mailing list