diff --git a/srcs/FEM/solverFEM.cpp b/srcs/FEM/solverFEM.cpp
index 02b5caa8ea32f7a60429190d44b414c34e365277..a69c7e95ded2dfc408ba79100709da619345b986 100644
--- a/srcs/FEM/solverFEM.cpp
+++ b/srcs/FEM/solverFEM.cpp
@@ -410,9 +410,9 @@ void solverFEMnonLinear(std::map<int, double> &electrostaticPressure,
     }
 
     gmsh::view::addModelData(viewTagU, iteration, names[0], "NodeData",
-                             FEM_nodeTags, dataU, iteration); //independent of time here
+                             FEM_nodeTags, dataU, iteration); 
     gmsh::view::addModelData(viewTagF, iteration, names[0], "NodeData",
-                             FEM_nodeTags, dataF, iteration); //independent of time here
+                             FEM_nodeTags, dataF, iteration); 
 
 
     if(postProcessing)
diff --git a/srcs/longitudinalCombDevice.geo b/srcs/longitudinalCombDevice.geo
new file mode 100644
index 0000000000000000000000000000000000000000..c28d1f7b7811b89955c012cd5c14edddeec620d7
--- /dev/null
+++ b/srcs/longitudinalCombDevice.geo
@@ -0,0 +1,297 @@
+scale = 2e-6;
+
+// USE WITH MINIMUM 2 FINS, else use longitudinal_comb.geo
+N_fins = 10; // number of fins on one side of the comb
+
+// WARNING: when using more fins the pull-in voltage decreases
+
+n = 1; // FEM elements density
+
+// mechanical properties and boundary conditions
+SetNumber("Boundary Conditions/left/ux", 0.); // encastrement
+SetNumber("Boundary Conditions/left/uy", 0);
+SetNumber("Boundary Conditions/right/ux", 0.); // encastrement
+SetNumber("Boundary Conditions/right/uy", 0);
+SetNumber("Materials/FEM_domain/Young", 210e9); // A DETERMINER PRECISEMENT
+SetNumber("Materials/FEM_domain/Poisson", 0.3);
+SetNumber("Materials/FEM_domain/rho",7800); //volumic mass of acier
+SetNumber("Volumic Forces/FEM_domain/bx",0);
+SetNumber("Volumic Forces/FEM_domain/by",00); // acceleration of accelerometer
+
+// BEM properties in bottom domain
+phi_1 = 140;
+SetNumber("Boundary Conditions/BEM_FEM_boundary_1/BEM_domain_1/dirichlet", 0);
+SetNumber("Boundary Conditions/electrode_1/BEM_domain_1/dirichlet", phi_1);
+SetNumber("Boundary Conditions/outside_1/BEM_domain_1/neumann", 0);
+SetNumber("Materials/BEM_domain_1/Epsilon", 8.8541878128e-12); // dielectric permittivity
+
+// BEM properties in top domain
+phi_2 = 5;
+SetNumber("Boundary Conditions/BEM_FEM_boundary_2/BEM_domain_2/dirichlet", 0);
+SetNumber("Boundary Conditions/electrode_2/BEM_domain_2/dirichlet", phi_2);
+SetNumber("Boundary Conditions/outside_2/BEM_domain_2/neumann", 0);
+SetNumber("Materials/BEM_domain_2/Epsilon", 8.8541878128e-12); // dielectric permittivity
+
+h_tot = 20*scale;
+h_base = 1*scale;
+h_fin = 2.8*scale;
+h_space = 1*scale; // space between electrode and base of the comb
+h_fin_elec = 2.4*scale; // length of the fins of the electrode, can be longer than the classical fins
+// WARNING, abs(h_fin_elec - h_fin) must be lower than h_space
+
+l_bord = 10*scale;
+l_fin = 0.8*scale;
+l_space = 0.8*scale;
+t_electrode = 1*scale; // width of one electrode
+l_periodic = l_fin + 2*l_space + t_electrode; // distance between two fins
+l_tot = 2*l_bord + l_fin + (N_fins-1)*l_periodic;
+
+unit_l = 0.2*scale; // reference for the transfinite curves
+
+// définition des points du contour
+Point(1) = {0, -h_base/2, 0, 0.2*scale};
+Point(2) = {0, -h_tot/2, 0, 0.2*scale};
+Point(3) = {l_tot, -h_tot/2, 0, 0.2*scale};
+Point(4) = {l_tot, -h_base/2, 0, 0.2*scale};
+Point(5) = {l_tot, h_base/2, 0, 0.2*scale};
+Point(6) = {l_tot, h_tot/2, 0, 0.2*scale};
+Point(7) = {0, h_tot/2, 0, 0.2*scale};
+Point(8) = {0, h_base/2, 0, 0.2*scale};
+// définition des lignes du contour
+Line(1) = {1, 2};
+Line(2) = {2, 3};
+Line(3) = {3, 4};
+Line(4) = {4, 5};
+Line(5) = {5, 6};
+Line(6) = {6, 7};
+Line(7) = {7, 8};
+Line(8) = {8, 1};
+Transfinite Curve {4,8} = (h_base/unit_l)*n+1 Using Progression 1;
+
+
+// définition des points des fins du bas
+offsetp1 = 8;
+For i In {1:N_fins}
+    Point(offsetp1+4*i-3) = {(i-1)*l_periodic + l_bord, -h_base/2, 0, 0.2*scale};
+    Point(offsetp1+4*i-2) = {(i-1)*l_periodic + l_bord, -h_base/2 - h_fin, 0, 0.2*scale};
+    Point(offsetp1+4*i-1) = {(i-1)*l_periodic + l_bord + l_fin, -h_base/2 - h_fin, 0, 0.2*scale};
+    Point(offsetp1+4*i) = {(i-1)*l_periodic + l_bord + l_fin, -h_base/2, 0, 0.2*scale};
+EndFor
+// définition des lignes des fins du bas
+Line(9) = {offsetp1+1, 1};
+Transfinite Curve {9} = (l_bord/unit_l)*n+1 Using Progression 1;
+offsetl1 = 9;
+For i In {1:N_fins-1}
+    Line(offsetl1+4*i-3) = {offsetp1+4*i-2, offsetp1+4*i-3};
+    Line(offsetl1+4*i-2) = {offsetp1+4*i-1, offsetp1+4*i-2};
+    Line(offsetl1+4*i-1) = {offsetp1+4*i, offsetp1+4*i-1};
+    Line(offsetl1+4*i) = {offsetp1+4*i+1, offsetp1+4*i};
+    Transfinite Curve {offsetl1+4*i-3, offsetl1+4*i-1} = (h_fin/unit_l)*n+1 Using Progression 1;
+    Transfinite Curve {offsetl1+4*i-2} = (l_fin/unit_l)*n+1 Using Progression 1;
+    Transfinite Curve {offsetl1+4*i} = ((l_periodic-l_fin)/unit_l)*n+1 Using Progression 1;
+EndFor
+Line(offsetl1+4*N_fins-3) = {offsetp1+4*N_fins-2, offsetp1+4*N_fins-3};
+Line(offsetl1+4*N_fins-2) = {offsetp1+4*N_fins-1, offsetp1+4*N_fins-2};
+Line(offsetl1+4*N_fins-1) = {offsetp1+4*N_fins, offsetp1+4*N_fins-1};
+Line(offsetl1+4*N_fins) = {4, offsetp1+4*N_fins};
+Transfinite Curve {offsetl1+4*N_fins-3, offsetl1+4*N_fins-1} = (h_fin/unit_l)*n+1 Using Progression 1;
+Transfinite Curve {offsetl1+4*N_fins-2} = (l_fin/unit_l)*n+1 Using Progression 1;
+Transfinite Curve {offsetl1+4*N_fins} = (l_bord/unit_l)*n+1 Using Progression 1;
+// définition des lignes entre les fins du bas et la poutre principale
+For i In{1:N_fins}
+    Line(offsetl1+4*N_fins+i) = {offsetp1+4*i-3, offsetp1+4*i};
+    Transfinite Curve {offsetl1+4*N_fins+i} = (l_fin/unit_l)*n+1 Using Progression 1;
+EndFor
+
+// définition des points des fins du haut
+offsetp2 = offsetp1 + 4*N_fins;
+For i In {1:N_fins}
+    Point(offsetp2+4*i-3) = {(i-1)*l_periodic + l_bord, h_base/2, 0, 0.2*scale};
+    Point(offsetp2+4*i-2) = {(i-1)*l_periodic + l_bord, h_base/2 + h_fin, 0, 0.2*scale};
+    Point(offsetp2+4*i-1) = {(i-1)*l_periodic + l_bord + l_fin, +h_base/2 + h_fin, 0, 0.2*scale};
+    Point(offsetp2+4*i) = {(i-1)*l_periodic + l_bord + l_fin, +h_base/2, 0, 0.2*scale};
+EndFor
+// définition des lignes des fins du haut
+offsetl2 = offsetl1 + 5*N_fins + 1;
+Line(offsetl2) = {8, offsetp2+1};
+Transfinite Curve {offsetl2} = (l_bord/unit_l)*n+1 Using Progression 1;
+For i In {1:N_fins-1}
+    Line(offsetl2+4*i-3) = {offsetp2+4*i-3, offsetp2+4*i-2};
+    Line(offsetl2+4*i-2) = {offsetp2+4*i-2, offsetp2+4*i-1};
+    Line(offsetl2+4*i-1) = {offsetp2+4*i-1, offsetp2+4*i};
+    Line(offsetl2+4*i) = {offsetp2+4*i, offsetp2+4*i+1};
+    Transfinite Curve {offsetl2+4*i-3, offsetl2+4*i-1} = (h_fin/unit_l)*n+1 Using Progression 1;
+    Transfinite Curve {offsetl2+4*i-2} = (l_fin/unit_l)*n+1 Using Progression 1;
+    Transfinite Curve {offsetl2+4*i} = ((l_periodic-l_fin)/unit_l)*n+1 Using Progression 1;
+EndFor
+Line(offsetl2+4*N_fins-3) = {offsetp2+4*N_fins-3, offsetp2+4*N_fins-2};
+Line(offsetl2+4*N_fins-2) = {offsetp2+4*N_fins-2, offsetp2+4*N_fins-1};
+Line(offsetl2+4*N_fins-1) = {offsetp2+4*N_fins-1, offsetp2+4*N_fins};
+Line(offsetl2+4*N_fins) = {offsetp2+4*N_fins, 5};
+Transfinite Curve {offsetl2+4*N_fins-3, offsetl2+4*N_fins-1} = (h_fin/unit_l)*n+1 Using Progression 1;
+Transfinite Curve {offsetl2+4*N_fins-2} = (l_fin/unit_l)*n+1 Using Progression 1;
+Transfinite Curve {offsetl2+4*N_fins} = (l_bord/unit_l)*n+1 Using Progression 1;
+// définition des lignes entre les fins du haut et la poutre principale
+For i In{1:N_fins}
+    Line(offsetl2+4*N_fins+i) = {offsetp2+4*i, offsetp2+4*i-3};
+    Transfinite Curve {offsetl2+4*N_fins+i} = (l_fin/unit_l)*n+1 Using Progression 1;
+EndFor
+
+// définition des lignes dans la poutre centrale pour définir sous-domaines
+offsetl3 = offsetl2 + 5*N_fins;
+For i In {1:N_fins}
+    Line(offsetl3+2*i-1) = {offsetp2+4*i-3, offsetp1+4*i-3};
+    Line(offsetl3+2*i) = {offsetp1+4*i, offsetp2+4*i};
+    Transfinite Curve {offsetl3+2*i-1, offsetl3+2*i} = (h_base/unit_l)*n+1 Using Progression 1;
+EndFor
+
+// définition des courbes et surfaces dans les fins du bas
+For i In {1:N_fins}
+    Curve Loop(i) = {offsetl1+4*i-1, offsetl1+4*i-2, offsetl1+4*i-3, offsetl1+4*N_fins+i};
+    Plane Surface(i) = {i};
+    Recombine Surface {i};
+EndFor
+
+// définition des courbes et surfaces dans les fins du haut
+offsets1 = N_fins;
+For i In {1:N_fins}
+    Curve Loop(offsets1 + i) = {offsetl2+4*i-3, offsetl2+4*i-2, offsetl2+4*i-1, offsetl2+4*N_fins+i};
+    Plane Surface(offsets1 + i) = {offsets1 + i};
+    Recombine Surface {offsets1 + i};
+EndFor
+
+// définition des courbes et surfaces dans la poutre centrale
+offsets2 = offsets1 + N_fins + 1;
+Curve Loop(offsets2) = {-8, offsetl2, offsetl3+1, offsetl1};
+Plane Surface(offsets2) = {offsets2};
+Recombine Surface {offsets2};
+For i In {1:N_fins-1}
+    Curve Loop(offsets2 + 2*i - 1) = {offsetl3+2*i-1, offsetl1+4*N_fins+i, offsetl3+2*i, offsetl2+4*N_fins+i};
+    Plane Surface(offsets2 + 2*i - 1) = {offsets2 + 2*i - 1};
+    Recombine Surface {offsets2 + 2*i - 1};
+    Curve Loop(offsets2 + 2*i) = {offsetl3+2*i, offsetl2+4*i, offsetl3+2*i+1, offsetl1+4*i};
+    Plane Surface(offsets2 + 2*i) = {offsets2 + 2*i};
+    Recombine Surface {offsets2 + 2*i};
+EndFor
+Curve Loop(offsets2 + 2*N_fins - 1) = {offsetl3+2*N_fins-1, offsetl1+4*N_fins+N_fins, offsetl3+2*N_fins, offsetl2+4*N_fins+N_fins};
+Plane Surface(offsets2 + 2*N_fins - 1) = {offsets2 + 2*N_fins - 1};
+Recombine Surface {offsets2 + 2*N_fins - 1};
+Curve Loop(offsets2 + 2*N_fins) = {offsetl3+2*N_fins, offsetl2+4*N_fins, -4, offsetl1+4*N_fins};
+Plane Surface(offsets2 + 2*N_fins) = {offsets2 + 2*N_fins};
+Recombine Surface {offsets2 + 2*N_fins};
+
+
+// mechanical physical surfaces
+Physical Curve("left", 1) = {8};
+Physical Curve("right", 2) = {4};
+
+Physical Surface("FEM_domain", 3) = {1:offsets2 + 2*N_fins};
+Transfinite Surface {1:offsets2 + 2*N_fins};
+Physical Curve("BEM_FEM_boundary", 4) = {offsetl1:offsetl1+4*N_fins, offsetl2:offsetl2+4*N_fins};
+
+// définition des points de la bottom electrode
+x0_e = l_bord - l_space - t_electrode; // pour faciliter le bazar
+y0_e = h_base/2 + h_space;
+offsetp3 = offsetp2 + 4*N_fins;
+Point(offsetp3 + 1) = {l_tot - x0_e - t_electrode, -y0_e - h_fin_elec, 0, 0.2*scale};
+Point(offsetp3 + 2) = {l_tot - x0_e - t_electrode, -y0_e, 0, 0.2*scale};
+Point(offsetp3 + 3) = {l_tot - x0_e, -y0_e, 0, 0.2*scale};
+Point(offsetp3 + 4) = {l_tot - x0_e, -y0_e - h_fin_elec - t_electrode, 0, 0.2*scale};
+Point(offsetp3 + 5) = {x0_e, -y0_e - h_fin_elec - t_electrode, 0, 0.2*scale};
+Point(offsetp3 + 6) = {x0_e, -y0_e, 0, 0.2*scale};
+Point(offsetp3 + 7) = {x0_e + t_electrode, -y0_e, 0, 0.2*scale};
+Point(offsetp3 + 8) = {x0_e + t_electrode, -y0_e - h_fin_elec, 0, 0.2*scale};
+
+offsetp4 = offsetp3 + 8;
+For i In {1:N_fins-1}
+    Point(offsetp4 + 4*i - 3) = {x0_e + l_periodic*i, -y0_e - h_fin_elec, 0, 0.2*scale};
+    Point(offsetp4 + 4*i - 2) = {x0_e + l_periodic*i, -y0_e, 0, 0.2*scale};
+    Point(offsetp4 + 4*i - 1) = {x0_e + l_periodic*i + t_electrode, -y0_e, 0, 0.2*scale};
+    Point(offsetp4 + 4*i) = {x0_e + l_periodic*i + t_electrode, -y0_e - h_fin_elec, 0, 0.2*scale};
+EndFor
+
+// définition des lignes générales (indépendantes de N_fins) de la bottom electrode
+offsetl4 = offsetl3 + N_fins*2;
+Line(offsetl4 + 1) = {offsetp3 + 1, offsetp3 + 2};
+Line(offsetl4 + 2) = {offsetp3 + 2, offsetp3 + 3};
+Line(offsetl4 + 3) = {offsetp3 + 3, offsetp3 + 4};
+Line(offsetl4 + 4) = {offsetp3 + 4, offsetp3 + 5};
+Line(offsetl4 + 5) = {offsetp3 + 5, offsetp3 + 6};
+Line(offsetl4 + 6) = {offsetp3 + 6, offsetp3 + 7};
+Line(offsetl4 + 7) = {offsetp3 + 7, offsetp3 + 8};
+Line(offsetl4 + 8) = {offsetp3 + 8, offsetp4 + 1};
+offsetl5 = offsetl4 + 8;
+// définition des lignes fins electrode du bas
+For i In {1:N_fins-2}
+    Line(offsetl5 + 4*i - 3) = {offsetp4 + 4*i - 3, offsetp4 + 4*i - 2};
+    Line(offsetl5 + 4*i - 2) = {offsetp4 + 4*i - 2, offsetp4 + 4*i - 1};
+    Line(offsetl5 + 4*i - 1) = {offsetp4 + 4*i - 1, offsetp4 + 4*i};
+    Line(offsetl5 + 4*i) = {offsetp4 + 4*i, offsetp4 + 4*i + 1};
+EndFor
+Line(offsetl5 + 4*(N_fins-1) - 3) = {offsetp4 + 4*(N_fins-1) - 3, offsetp4 + 4*(N_fins-1) - 2};
+Line(offsetl5 + 4*(N_fins-1) - 2) = {offsetp4 + 4*(N_fins-1) - 2, offsetp4 + 4*(N_fins-1) - 1};
+Line(offsetl5 + 4*(N_fins-1) - 1) = {offsetp4 + 4*(N_fins-1) - 1, offsetp4 + 4*(N_fins-1)};
+Line(offsetl5 + 4*(N_fins-1)) = {offsetp4 + 4*(N_fins-1), offsetp3+1};
+
+// définition des curve loop et surface du BEM_domain1
+offsets3 = offsets2 + 2*N_fins;
+Curve Loop(offsets3 + 1) = {offsetl1+4*N_fins:offsetl1:-1,1,2,3}; // exterior boundary of BEM_domain_1
+Curve Loop(offsets3 + 2) = {offsetl4 + 1 : offsetl5 + 4*(N_fins-1)};
+Plane Surface(offsets3 + 1) = {offsets3 + 1, offsets3 + 2};
+
+Physical Surface("BEM_domain_1", 5) = {offsets3 + 1};
+Physical Curve("BEM_FEM_boundary_1", 6) = {offsetl1+4*N_fins:offsetl1:-1};
+Physical Curve("electrode_1", 7) = {offsetl4 + 1 : offsetl5 + 4*(N_fins-1)};
+Physical Curve("outside_1", 8) = {1, 2, 3};
+
+// définition des points de la top electrode
+offsetp5 = offsetp4 + 4*(N_fins-1);
+Point(offsetp5 + 1) = {x0_e + t_electrode, y0_e + h_fin_elec, 0, 0.2*scale};
+Point(offsetp5 + 2) = {x0_e + t_electrode, y0_e, 0, 0.2*scale};
+Point(offsetp5 + 3) = {x0_e, y0_e, 0, 0.2*scale};
+Point(offsetp5 + 4) = {x0_e, y0_e + h_fin_elec + t_electrode, 0, 0.2*scale};
+Point(offsetp5 + 5) = {l_tot - x0_e, y0_e + h_fin_elec + t_electrode, 0, 0.2*scale};
+Point(offsetp5 + 6) = {l_tot - x0_e, y0_e, 0, 0.2*scale};
+Point(offsetp5 + 7) = {l_tot - x0_e - t_electrode, y0_e, 0, 0.2*scale};
+Point(offsetp5 + 8) = {l_tot - x0_e - t_electrode, y0_e + h_fin_elec, 0, 0.2*scale};
+
+offsetp6 = offsetp5 + 8;
+For i In {1:N_fins-1}
+    Point(offsetp6 + 4*i - 3) = {x0_e + l_periodic*i, y0_e + h_fin_elec, 0, 0.2*scale};
+    Point(offsetp6 + 4*i - 2) = {x0_e + l_periodic*i, y0_e, 0, 0.2*scale};
+    Point(offsetp6 + 4*i - 1) = {x0_e + l_periodic*i + t_electrode, y0_e, 0, 0.2*scale};
+    Point(offsetp6 + 4*i) = {x0_e + l_periodic*i + t_electrode, y0_e + h_fin_elec, 0, 0.2*scale};
+EndFor
+
+// définition des lignes générales (indépendantes de N_fins) de la top electrode
+offsetl6 = offsetl5 + 4*(N_fins-1);
+Line(offsetl6 + 1) = {offsetp5 + 1, offsetp5 + 2};
+Line(offsetl6 + 2) = {offsetp5 + 2, offsetp5 + 3};
+Line(offsetl6 + 3) = {offsetp5 + 3, offsetp5 + 4};
+Line(offsetl6 + 4) = {offsetp5 + 4, offsetp5 + 5};
+Line(offsetl6 + 5) = {offsetp5 + 5, offsetp5 + 6};
+Line(offsetl6 + 6) = {offsetp5 + 6, offsetp5 + 7};
+Line(offsetl6 + 7) = {offsetp5 + 7, offsetp5 + 8};
+Line(offsetl6 + 8) = {offsetp5 + 8, offsetp6 + 4*(N_fins-1)};
+offsetl7 = offsetl6 + 8;
+// définition des lignes fins electrode du haut
+Line(offsetl7 + 1) = {offsetp6 + 4 - 3, offsetp5 + 1};
+Line(offsetl7 + 2) = {offsetp6 + 4 - 2, offsetp6 + 4 - 3};
+Line(offsetl7 + 3) = {offsetp6 + 4 - 1, offsetp6 + 4 - 2};
+Line(offsetl7 + 4) = {offsetp6 + 4, offsetp6 + 4 - 1};
+For i In {2:N_fins-1}
+    Line(offsetl7 + 4*i - 3) = {offsetp6 + 4*i - 3, offsetp6 + 4*i - 4};
+    Line(offsetl7 + 4*i - 2) = {offsetp6 + 4*i - 2, offsetp6 + 4*i - 3};
+    Line(offsetl7 + 4*i - 1) = {offsetp6 + 4*i - 1, offsetp6 + 4*i - 2};
+    Line(offsetl7 + 4*i) = {offsetp6 + 4*i, offsetp6 + 4*i - 1};
+EndFor
+
+// définition des curve loop et surface du BEM_domain2
+Curve Loop(offsets3 + 3) = {offsetl2:offsetl2+4*N_fins,5,6,7}; // exterior boundary of BEM_domain_2
+Curve Loop(offsets3 + 4) = {offsetl6 + 1 : offsetl6 + 8, offsetl7 + 4*(N_fins-1):offsetl7+1:-1};
+Plane Surface(offsets3 + 2) = {offsets3 + 3, offsets3 + 4};
+
+Physical Surface("BEM_domain_2", 9) = {offsets3 + 2};
+Physical Curve("BEM_FEM_boundary_2", 10) = {offsetl2:offsetl2+4*N_fins};
+Physical Curve("electrode_2", 11) = {offsetl6 + 1 : offsetl6 + 8, offsetl7 + 4*(N_fins-1):offsetl7+1:-1};
+Physical Curve("outside_2", 12) = {5,6,7};
\ No newline at end of file