diff --git a/GetDDM/cavity2d.geo b/GetDDM/cavity2d.geo
new file mode 100644
index 0000000000000000000000000000000000000000..38e384b31a571b8f69be836a53e17ec458055432
--- /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 0000000000000000000000000000000000000000..c74940f2e6e2be1e444c4d6d7c8333e1ab4ddc00
--- /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;