[Gmsh] Refining only near the boundary of a closed surface

Christophe Geuzaine cgeuzaine at uliege.be
Tue Jan 15 14:17:27 CET 2019



> On 15 Jan 2019, at 13:57, Pierre Marchand <pierre.marchand at inria.fr> wrote:
> 
> Hello,
> 
> I am trying to refine near the boundary of a L-shape domain using field, but without success. Let us take a simpler geometry as a rectangle (same as in the example https://gitlab.onelab.info/gmsh/gmsh/blob/master/tutorial/t10.geo), I am trying to use Distance and Threshold as follows:
> // Definition of the geometry
> lc = .15;
> Point(1) = {0.0,0.0,0,lc}; Point(2) = {1,0.0,0,lc};
> Point(3) = {1,1,0,lc};     Point(4) = {0,1,0,lc};
> Point(5) = {0.2,.5,0,lc};
> Line(1) = {1,2}; Line(2) = {2,3}; Line(3) = {3,4}; Line(4) = {4,1};
> Curve Loop(5) = {1,2,3,4}; Plane Surface(6) = {5};
> 
> // Definition of the distance function
> Field[1] = Distance;
> Field[1].NNodesByEdge = 100;
> Field[1].EdgesList = {2};
> 
> // Threshold
> Field[2] = Threshold;
> Field[2].IField = 1;
> Field[2].LcMin = lc / 30;
> Field[2].LcMax = lc;
> Field[2].DistMin = 0.15;
> Field[2].DistMax = 0.5;
> 
> If I take only one, two or three curves with Field[1].EdgesList = {1}, Field[1].EdgesList = {1,2} or Field[1].EdgesList = {1,2,3}, it works as expected but if I take instead Field[1].EdgesList = {1,2,3,4}, then the mesh is uniform everywhere, there is no more threshold. What am I doing wrong ? 

You should add

Mesh.CharacteristicLengthExtendFromBoundary = 0;

Christophe

> 
> 
> Thank you in advance,
> Pierre Marchand
> _______________________________________________
> 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

Free software: http://gmsh.info | http://getdp.info | http://onelab.info




More information about the gmsh mailing list