diff --git a/NonLinearEVP/NonLinearEVP.pro b/NonLinearEVP/NonLinearEVP.pro
index 38fce98949f9d86cdde008febe29b4325a60fced..d0376da0afa42eae9cce490e35dc7580e5cf3eca 100644
--- a/NonLinearEVP/NonLinearEVP.pro
+++ b/NonLinearEVP/NonLinearEVP.pro
@@ -163,42 +163,50 @@ FunctionSpace {
   { Name Hgrad_perp; Type Form1P;
   
     BasisFunction {
-      { Name un;  NameOfCoef un;  Function BF_PerpendicularEdge_1N; Support Region[Om]; Entity NodesOf[Om]; }
-      // { Name un2; NameOfCoef un2; Function BF_PerpendicularEdge_2E; Support Region[Om]; Entity EdgesOf[Om]; }
-      If(flag_o2i==1)
-        { Name un3; NameOfCoef un3; Function BF_PerpendicularEdge_2F; Support Region[Om]; Entity FacetsOf[Om]; }
-        { Name un4; NameOfCoef un4; Function BF_PerpendicularEdge_3E; Support Region[Om]; Entity EdgesOf[Om]; }
-        { Name un5; NameOfCoef un5; Function BF_PerpendicularEdge_3F; Support Region[Om]; Entity FacetsOf[Om]; }
+      { Name sn;  NameOfCoef un;  Function BF_PerpendicularEdge_1N; Support Region[Om]; Entity NodesOf[All]; }
+      If(flag_o2g==0) // for curved elements, mid-edge nodes are already included in BF_PerpendicularEdge_1N
+        { Name sn2; NameOfCoef un2; Function BF_PerpendicularEdge_2E; Support Region[Om]; Entity EdgesOf[All]; }
+      EndIf
+      If(flag_o2i==1) // TODO: Check P3 and P4 (_3E)
+        { Name sn3; NameOfCoef un3; Function BF_PerpendicularEdge_2F; Support Region[Om]; Entity FacetsOf[All]; }
+        // { Name sn4; NameOfCoef un4; Function BF_PerpendicularEdge_3E; Support Region[Om]; Entity EdgesOf[All]; }
+        { Name sn5; NameOfCoef un5; Function BF_PerpendicularEdge_3F; Support Region[Om]; Entity FacetsOf[All]; }
       EndIf
      }
     Constraint {
       { NameOfCoef un;  EntityType NodesOf ; NameOfConstraint BlochX; }
-      // { NameOfCoef un2; EntityType EdgesOf ; NameOfConstraint BlochX; }
-      If(flag_o2i==1)
-        //{ NameOfCoef un3; EntityType FacetsOf ; NameOfConstraint BlochX; }
-        { NameOfCoef un4; EntityType EdgesOf  ; NameOfConstraint BlochX; }
-        //{ NameOfCoef un5; EntityType FacetsOf ; NameOfConstraint BlochX; }
+      If(flag_o2g==0)
+        { NameOfCoef un2; EntityType EdgesOf ; NameOfConstraint BlochX; }
+      EndIf
+      If(flag_o2i==1) // TODO: Check P3 and P4 (_3E)
+        // //{ NameOfCoef un3; EntityType FacetsOf ; NameOfConstraint BlochX; }
+        // { NameOfCoef un4; EntityType EdgesOf  ; NameOfConstraint BlochX; }
+        // //{ NameOfCoef un5; EntityType FacetsOf ; NameOfConstraint BlochX; }
       EndIf
     }
   }
 
   { Name Hgrad; Type Form0;
     BasisFunction {
-      { Name un;  NameOfCoef un;  Function BF_Node   ; Support Region[Om]; Entity NodesOf[Om]; }
-      // { Name un2; NameOfCoef un2; Function BF_Node_2E; Support Region[Om]; Entity EdgesOf[Om]; }
-      If(flag_o2i==1)
-        { Name un3; NameOfCoef un3; Function BF_Node_2F; Support Region[Om]; Entity FacetsOf[Om]; }
-        { Name un4; NameOfCoef un4; Function BF_Node_3E; Support Region[Om]; Entity EdgesOf[Om]; }
-        { Name un5; NameOfCoef un5; Function BF_Node_3F; Support Region[Om]; Entity FacetsOf[Om]; }
+      { Name sn;  NameOfCoef un;  Function BF_Node; Support Region[Om]; Entity NodesOf[All]; }
+      If(flag_o2g==0) // for curved elements, mid-edge nodes are already included in BF_PerpendicularEdge_1N
+        { Name sn2; NameOfCoef un2; Function BF_Node_2E; Support Region[Om]; Entity EdgesOf[All]; }
+      EndIf
+      If(flag_o2i==1) // TODO: Check P3 and P4 (_3E)
+        { Name sn3; NameOfCoef un3; Function BF_Node_2F; Support Region[Om]; Entity FacetsOf[All]; }
+        // { Name sn4; NameOfCoef un4; Function BF_PerpendicularEdge_3E; Support Region[Om]; Entity EdgesOf[All]; }
+        { Name sn5; NameOfCoef un5; Function BF_Node_3F; Support Region[Om]; Entity FacetsOf[All]; }
       EndIf
      }
     Constraint {
       { NameOfCoef un;  EntityType NodesOf ; NameOfConstraint BlochX; }
-      // { NameOfCoef un2; EntityType EdgesOf ; NameOfConstraint BlochX; }
-      If(flag_o2i==1)
-        //{ NameOfCoef un3; EntityType FacetsOf ; NameOfConstraint BlochX; }
-        { NameOfCoef un4; EntityType EdgesOf  ; NameOfConstraint BlochX; }
-        //{ NameOfCoef un5; EntityType FacetsOf ; NameOfConstraint BlochX; }
+      If(flag_o2g==0)
+        { NameOfCoef un2; EntityType EdgesOf ; NameOfConstraint BlochX; }
+      EndIf
+      If(flag_o2i==1) // TODO: Check P3 and P4 (_3E)
+        // //{ NameOfCoef un3; EntityType FacetsOf ; NameOfConstraint BlochX; }
+        // { NameOfCoef un4; EntityType EdgesOf  ; NameOfConstraint BlochX; }
+        // //{ NameOfCoef un5; EntityType FacetsOf ; NameOfConstraint BlochX; }
       EndIf
     }
   }
@@ -408,7 +416,7 @@ Resolution {
     }
     Operation{
       GenerateSeparate[M1];
-      EigenSolve[M1,neig,eig_target_re,eig_target_im];  // Print[M1];
+      EigenSolve[M1,neig,eig_target_re,eig_target_im];  Print[M1];
     }
   }
 
diff --git a/NonLinearEVP/NonLinearEVP_data.geo b/NonLinearEVP/NonLinearEVP_data.geo
index 5d93cc810b6c3f41f559768c8e534072c0380fc0..ec811df12f9a3037135a8770a8bb78468233d61d 100644
--- a/NonLinearEVP/NonLinearEVP_data.geo
+++ b/NonLinearEVP/NonLinearEVP_data.geo
@@ -55,7 +55,7 @@ DefineConstant[
 
   paramaille     = {4     , Name StrCat[pp4 , "0number of mesh elements per period []"]  , Highlight Str[colorpp4], Min 2, Max 10} , 
   flag_Tmesh     = {0     , Name StrCat[pp4 , "2locally structured mesh?"] , Choices {0="unstruct",1="struct"} },
-  flag_o2g       = {1     , Name StrCat[pp4 , "3Geometrical order"] , Choices {0="order 1 (linear)",1="order 2 (curved)"} },
+  flag_o2g       = {0     , Name StrCat[pp4 , "3Geometrical order"] , Choices {0="order 1 (linear)",1="order 2 (curved)"} },
   flag_o2i       = {1     , Name StrCat[pp4 , "4Interpolation order"] , Choices {0="order 1",1="full order 2"}, ServerAction "ResetDatabase"},
   flag_rounding  = {1     , Name StrCat[pp4 , "5Corner rounding/0Do it!"], Choices{0,1}, ServerAction "ResetDatabase"},
   corner_rad_frac= {0.1   , Name StrCat[pp4 , "5Corner rounding/1corner radius (fraction of square side)"] , Highlight Str[colorpp2]  , Min 0.01, Max 0.49},