Select Git revision
Forked from
gmsh / gmsh
Source project has a limited visibility.
-
Christophe Geuzaine authoredChristophe Geuzaine authored
domRectangle.geo 4.51 KiB
Include "domRectangle.dat";
Mesh.CharacteristicLengthMin = LC;
Mesh.CharacteristicLengthMax = LC;
// =================================================================================================
// Build SCATTERER or SOURCE
// =================================================================================================
If(FLAG_PBM == PBM_SCATT_RECT)
p0 = newp; Point(p0) = { 0, 0, 0};
p1 = newp; Point(p1) = { R_SCA, 0, 0};
p2 = newp; Point(p2) = { 0, R_SCA, 0};
p3 = newp; Point(p3) = {-R_SCA, 0, 0};
p4 = newp; Point(p4) = { 0,-R_SCA, 0};
c1 = newl; Circle(c1) = {p1, p0, p2};
c2 = newl; Circle(c2) = {p2, p0, p3};
c3 = newl; Circle(c3) = {p3, p0, p4};
c4 = newl; Circle(c4) = {p4, p0, p1};
llSca = newll; Line loop(llSca) = {-c1, -c2, -c3, -c4};
EndIf
If(FLAG_PBM == PBM_MARMOUSI)
p0 = newp; Point(p0) = {X_SOU, Y_SOU, 0};
Physical Point(TAG_SOU) = p0;
EndIf
// =================================================================================================
// Build POINTS, STRAIGHT LINES, RECTANGLES
// =================================================================================================
For i In {0:Nx_DOM}
For j In {0:Ny_DOM}
p~{i}~{j} = newp;
If((i == 1) && (j == 1))
xAdd = TWIST;
yAdd = 0;
ElseIf((i == 1) && (j == 2))
xAdd = 0;
yAdd = TWIST;
ElseIf((i == 2) && (j == 2))
xAdd = -TWIST;
yAdd = 0;
ElseIf((i == 2) && (j == 1))
xAdd = 0;
yAdd = -TWIST;
Else
xAdd = 0;
yAdd = 0;
EndIf
Point(p~{i}~{j}) = {X0_DOM + Lx*i/Nx_DOM + xAdd, Y0_DOM + Ly*j/Ny_DOM + yAdd, 0};
EndFor
EndFor
For i In {0:Nx_DOM}
For j In {0:Ny_DOM}
If (i < Nx_DOM)
lx~{i}~{j} = newl;
Line(lx~{i}~{j}) = {p~{i}~{j}, p~{i+1}~{j}};
EndIf
If (j < Ny_DOM)
ly~{i}~{j} = newl;
Line(ly~{i}~{j}) = {p~{i}~{j}, p~{i}~{j+1}};
EndIf
EndFor
EndFor
For i In {0:Nx_DOM-1}
For j In {0:Ny_DOM-1}
ll~{i}~{j} = newll;