FunctionSpace { //Electric field { Name Hcurl_e; Type Form1; BasisFunction { { Name se; NameOfCoef ee; Function BF_Edge; Support Region[{non_conducting_domain, conducting_domain, open_air_domain, Sur_RB, Sur_UNIFPORT_N, Sur_COAXPORT, Sur_INTERFACE, Sur_CONDUCTOR, Sur_PEC}] ; Entity EdgesOf[All]; } { Name se2; NameOfCoef ee2; Function BF_Edge_2E; Support Region[{non_conducting_domain, conducting_domain, open_air_domain, Sur_RB, Sur_UNIFPORT_N, Sur_COAXPORT, Sur_INTERFACE, Sur_CONDUCTOR, Sur_PEC}] ; Entity EdgesOf[All]; } } Constraint { { NameOfCoef ee; EntityType EdgesOf ; NameOfConstraint Efield; } { NameOfCoef ee2; EntityType EdgesOf ; NameOfConstraint Efield; } } } //Magnetic field on surfaces for postprocessing { Name Hcurl_hs; Type Form1; BasisFunction { { Name shs; NameOfCoef hes; Function BF_Edge; Support ElementsOf[{non_conducting_domain, conducting_domain, open_air_domain, Sur_RB, Sur_UNIFPORT_N, Sur_COAXPORT, Sur_INTERFACE, Sur_PEC, Sur_CONDUCTOR}, OnOneSideOf {Sur_UNIFPORT_N, Sur_COAXPORT, Sur_INTERFACE, Sur_PEC, Sur_CONDUCTOR}] ; Entity EdgesOf[{Sur_CONDUCTOR, Sur_PEC, Sur_UNIFPORT, Sur_COAXPORT, Sur_INTERFACE}]; } { Name shs2; NameOfCoef hes2; Function BF_Edge_2E; Support ElementsOf[{non_conducting_domain, conducting_domain, open_air_domain, Sur_RB, Sur_UNIFPORT_N, Sur_COAXPORT, Sur_INTERFACE, Sur_PEC, Sur_CONDUCTOR}, OnOneSideOf {Sur_UNIFPORT_N, Sur_COAXPORT, Sur_INTERFACE, Sur_PEC, Sur_CONDUCTOR}] ; Entity EdgesOf[{Sur_CONDUCTOR, Sur_PEC, Sur_UNIFPORT, Sur_COAXPORT, Sur_INTERFACE}]; } } } For i In {1:#Sur_UNIFPORT_N_N_List()} For j In {1:#Sur_UNIFPORT_N_N_List()} { Name Hgrad_portSS~{i}~{j}; Type Form0; BasisFunction { { Name sk~{i}~{j}; NameOfCoef vk~{i}~{j}; Function BF_Region; Support Region[{Sur_UNIFPORT_N~{i}, Sur_COAXPORT}]; Entity Region[{Sur_UNIFPORT_N~{i}, Sur_COAXPORT}]; } If (i==j) { Name sj_1_1; NameOfCoef gj~{i}~{j}; Function BF_Region;Support Region[{Sur_UNIFPORT_N~{i}, Sur_COAXPORT}]; Entity Region[{Sur_UNIFPORT_N~{i}, Sur_COAXPORT}]; } EndIf } GlobalQuantity { { Name U_port~{i}~{j}; Type AliasOf; NameOfCoef vk~{i}~{j}; } If (i==j) { Name G_port~{i}~{j}; Type AliasOf; NameOfCoef gj~{i}~{j}; } EndIf } } EndFor EndFor For i In {1:#Sur_UNIFPORT_N_N_List()} //Sur_UNIFPORT_~{i} = Sur_UNIFPORT_List(i-1); //port i global quantities { Name Hgrad_port~{i}; Type Form0; BasisFunction { // for port i { Name sv~{i}; NameOfCoef vv~{i}; Function BF_Region; Support Region[{Sur_UNIFPORT_N~{i}, Sur_COAXPORT}]; Entity Region[{Sur_UNIFPORT_N~{i}, Sur_COAXPORT}]; } { Name sg~{i}; NameOfCoef gg~{i}; Function BF_Region;Support Region[{Sur_UNIFPORT_N~{i}, Sur_COAXPORT}]; Entity Region[{Sur_UNIFPORT_N~{i}, Sur_COAXPORT}]; } { Name sc~{i}; NameOfCoef cc~{i}; Function BF_Region;Support Region[{Sur_UNIFPORT_N~{i}, Sur_COAXPORT}]; Entity Region[{Sur_UNIFPORT_N~{i}, Sur_COAXPORT}]; } } // for getting global quantity on Region Port i GlobalQuantity { { Name U_port~{i}; Type AliasOf; NameOfCoef vv~{i}; } { Name G_port~{i}; Type AliasOf; NameOfCoef gg~{i}; } { Name LoadCurrent_port~{i}; Type AliasOf; NameOfCoef cc~{i}; } } } EndFor }