Skip to content
Snippets Groups Projects
Commit ae2c03ad authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

*** empty log message ***

parent 23967195
No related branches found
No related tags found
No related merge requests found
/********************************************************************* lc = 0.05;
*
* Gmsh tutorial 1
*
* Variables, elementary entities (points, lines, surfaces), physical
* entities (points, lines, surfaces)
*
*********************************************************************/
// The simplest construction in Gmsh's scripting language is the
// `affectation'. The following command defines a new variable `lc':
lc = 0.009;
// This variable can then be used in the definition of Gmsh's simplest
// `elementary entity', a `Point'. A Point is defined by a list of
// four numbers: three coordinates (X, Y and Z), and a characteristic
// length (lc) that sets the target element size at the point:
Point(1) = {0, 0, 0, lc}; Point(1) = {0, 0, 0, lc};
// The distribution of the mesh element sizes is then obtained by
// interpolation of these characteristic lengths throughout the
// geometry. Another method to specify characteristic lengths is to
// use a background mesh (see `t7.geo' and `bgmesh.pos').
// We can then define some additional points as well as our first
// curve. Curves are Gmsh's second type of elementery entities, and,
// amongst curves, straight lines are the simplest. A straight line is
// defined by a list of point numbers. In the commands below, for
// example, the line 1 starts at point 1 and ends at point 2:
Point(2) = {.1, 0, 0, lc} ; Point(2) = {.1, 0, 0, lc} ;
Point(3) = {.1, .3, 0, lc} ; Point(3) = {.1, .3, 0, lc} ;
Point(4) = {0, .3, 0, lc} ; Point(4) = {0, .3, 0, lc} ;
Point(5) = {.1, 0, .2, lc} ;
Point(6) = {0, 0, .2, lc} ;
Line(1) = {1,2} ; Line(1) = {1,2} ;
Line(2) = {3,2} ; Line(2) = {3,2} ;
Line(3) = {3,4} ; Line(3) = {3,4} ;
Line(4) = {4,1} ; Line(4) = {4,1} ;
Line(5) = {2,5};
// The third elementary entity is the surface. In order to define a Line(6) = {5,6};
// simple rectangular surface from the four lines defined above, a Line(7) = {6,1};
// line loop has first to be defined. A line loop is a list of
// connected lines, a sign being associated with each line (depending
// on the orientation of the line):
Line Loop(5) = {4,1,-2,3} ; Line Loop(5) = {4,1,-2,3} ;
// We can then define the surface as a list of line loops (only one
// here, since there are no holes--see `t4.geo'):
Plane Surface(6) = {5} ; Plane Surface(6) = {5} ;
// At this level, Gmsh knows everything to display the rectangular Line Loop(7) = - {5,6,7,1};
// surface 6 and to mesh it. An optional step is needed if we want to Plane Surface(8) = {7};
// associate specific region numbers to the various elements in the
// mesh (e.g. to the line segments discretizing lines 1 to 4 or to the
// triangles discretizing surface 6). This is achieved by the
// definition of `physical entities'. Physical entities will group
// elements belonging to several elementary entities by giving them a
// common number (a region number), and specifying their orientation.
// We can for example group the points 1 and 2 into the physical
// entity 1:
Physical Point(1) = {1,2} ;
// Consequently, two punctual elements will be saved in the output
// mesh file, both with the region number 1. The mechanism is
// identical for line or surface elements:
MyLine = 99;
Physical Line(MyLine) = {1,2,4} ;
Physical Surface("My fancy surface label") = {6} ;
// All the line elements created during the meshing of lines 1, 2 and
// 4 will be saved in the output mesh file with the region number 99;
// and all the triangular elements resulting from the discretization
// of surface 6 will be given an automatic region number (100,
// associated with the label "My fancy surface label").
// Note that if no physical entities are defined, then all the
// elements in the mesh will be saved "as is", with their default
// orientation.
Extrude {
Surface{6}; Layers{5, 0.1}; Recombine;
} Extrude { Surface{6,8}; Layers{5, 0.01}; Recombine; }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment