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