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 <[email protected]> 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 <[email protected]> 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
> [email protected]
> http://onelab.info/mailman/listinfo/gmsh
> 
> 
> -- 
> Max Orok
> Contractor
> www.mevex.com
> 
> 
> <myCrack-fixed.geo>_______________________________________________
> gmsh mailing list
> [email protected]
> http://onelab.info/mailman/listinfo/gmsh

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




_______________________________________________
gmsh mailing list
[email protected]
http://onelab.info/mailman/listinfo/gmsh

Reply via email to