From 7aa82740517f8dea181ad743405919c96ed9de4f Mon Sep 17 00:00:00 2001 From: Nicolas Marsic <marsic@temf.tu-darmstadt.de> Date: Wed, 28 Apr 2021 17:36:15 +0200 Subject: [PATCH] cavity geo --- GetDDM/cavity2d.geo | 40 ++++++++++++++++++++++++++++++++++++++++ GetDDM/cavity2d_data.geo | 26 ++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 GetDDM/cavity2d.geo create mode 100644 GetDDM/cavity2d_data.geo diff --git a/GetDDM/cavity2d.geo b/GetDDM/cavity2d.geo new file mode 100644 index 0000000..38e384b --- /dev/null +++ b/GetDDM/cavity2d.geo @@ -0,0 +1,40 @@ +Include "cavity2d_data.geo"; + +Solver.AutoMesh = -1; +For n In {0:N_DOM-1} + // New subdomain + Delete Model; + + // Allow subdomains with different lengths when N_DOM=2 + If(N_DOM == 2 && n == 0) + Xstart = 0; + Xstep = LX*t2Dom; + ElseIf(N_DOM == 2 && n == 1) + Xstart = LX*t2Dom; + Xstep = LX*(1-t2Dom); + Else + Xstart = LX/N_DOM * n; + Xstep = LX/N_DOM; + EndIf + + Point(1) = {Xstart, 0, 0, LC}; + l[] = Extrude{0, LY, 0}{Point{1}; }; + s[] = Extrude{Xstep, 0, 0}{ Line{l[1]};}; + + Physical Line(1*N_DOM + n+1) = l[1]; // Left interface + Physical Line(1*N_DOM + n+2) = s[0]; // Right interface + Physical Line(2*N_DOM + n+2) = s[{2,3}]; // Walls + Physical Surface(n+1) = s[1]; // Domain + + // Mesh + Transfinite Surface{s[1]}; + Characteristic Length{PointsOf{Surface{s[1]};}} = LC; + If(QUAD) + Recombine Surface{s[1]}; + EndIf + If(StrCmp(OnelabAction, "check")) + Mesh 2; + CreateDir Str(DIR); + Save StrCat(MSH_NAME, Sprintf("%g.msh", n)); + EndIf +EndFor diff --git a/GetDDM/cavity2d_data.geo b/GetDDM/cavity2d_data.geo new file mode 100644 index 0000000..c74940f --- /dev/null +++ b/GetDDM/cavity2d_data.geo @@ -0,0 +1,26 @@ +// 2D cavity with 25 propagating modes with defautl settings // + +DefineConstant[ + ANALYSIS = {0, Name "Input/00Type of analysis", ReadOnly 1, + Choices {0="Helmholtz", 1="Maxwell"}}, + + WAVENUMBER = {314.17, Name "Input/0Wavenumber"}, + LAMBDA = {2*Pi/WAVENUMBER, Name "Input/1Wavelength", ReadOnly 1}, + N_LAMBDA = {20, Name "Input/2Points per wavelength"}, + + LX = {0.5, Name "Input/3X dimension"}, + LY = {0.25, Name "Input/3Y dimension"}, + LZ = {0.25, Name "Input/3Z dimension"}, + + N_DOM = {2, Name "Input/4Number of subdomains"}, + t2Dom = 0.5, + + QUAD = {0, Name "Input/5Quad mesh?", Choices{0, 1}}, + + DIR = "out/", + MSH_BASE_NAME = "mesh_" +]; + +SAVE_SOLUTION = 1; +MSH_NAME = StrCat(DIR, MSH_BASE_NAME); +LC = LAMBDA/N_LAMBDA; -- GitLab