In this blog, quick reference notes about OpenFOAM are posted in a form of a summary to address a specific topic per post.
Gmsh Functions 1
Posted January 21, 2013 at 07:18 by Hisham
Tags gmsh
Gmsh is a powerful mesh generator. One of its strength points is the use of both scripting and GUI functionality. Scripting has two neat features: Function : lets one define a function and call it several times. Include : lets one include other scripts into the geometry file script.
Assume we have a Mesh.geo file that we have for the geometry. You can start off by:
The Functions.geo file is a file that has some function definitions. In this post, I wrote some easy functions. Hope to extend them in future posts (any suggestions are welcome)
The Functions.geo file:
Hisham El Safti
Assume we have a Mesh.geo file that we have for the geometry. You can start off by:
Code:
Include "Functions.geo" ;
The Functions.geo file:
Code:
Function Quadrangle /* * X, Y, Z, lc * point dX dY * 1 0 0 * 2 dX2 dY2 * 3 dX3 dY3 * 4 dX4 dY4 * * Transfinite: * Horizontal: N_H * Vertical: N_V */ p1 = newp; Point(p1) = {X,Y,Z,lc}; p2 = newp; Point(p2) = {X+dX2,Y+dY2,Z,lc}; p3 = newp; Point(p3) = {X+dX3,Y+dY3,Z,lc}; p4 = newp; Point(p4) = {X+dX4,Y+dY4,Z,lc}; l1= newl; Line(l1) = {p1, p2} ; l2= newl; Line(l2) = {p2, p3} ; l3= newl; Line(l3) = {p3, p4} ; l4= newl; Line(l4) = {p4, p1} ; Transfinite Line {l1, l3} = N_H; Transfinite Line {l2, l4} = N_V; ll1 = newll; Line Loop(ll1) = {l1, l2, l3, l4}; pl1 = news; Plane Surface (pl1) = {ll1}; Transfinite Surface {pl1}; Recombine Surface {pl1}; Return Function Rectangle dX3=dX2; dX4=0; dY2=0; dY4=dY3; Call Quadrangle ; Return Function Square dY3=dX2; N_V = N_H; Call Rectangle ; Return Function ExtrudeFunc myExt[]=Extrude {ExX, ExY, ExZ}{ Surface{pl1}; Layers{ExLayers}; Recombine; }; Return Function Cuboid Call Quadrangle; Call ExtrudeFunc; Return Function RectCuboid Call Rectangle; Call ExtrudeFunc; Return Function Cube Call Square; ExLayers = N_H; ExZ=dX2; Call ExtrudeFunc; Return /******************************************************************************\ Define/Change Parameters Before Calling Functions \******************************************************************************/ lc = 0.1; X = 0; Y = 0; Z = 0; dX2 = 1; dX3 = 0.9; dX4= 0.4; dY2= 0.05; dY3= 0.2; dY4= 0.18; N_V=5; N_H=20; //Call quadrangle ; //Call Rectangle ; //Call Square ; ExX = 0; ExY = 0; ExZ = 2; ExLayers = 30; //Call Cube; //Call Cuboid; //Call RectCuboid; // Automatically Assign Physical Volume to the Extrude // Physical Volume ("myVolName") = {myExt[1]}; // myExt[0] is the ID of the opposite new surface // Physical Surfaces are to be defined manually for the whole geometry
Total Comments 0