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},