Measure wire current in H(curl) E field: line integral of curl?

Minimal reproducible example
from collections import defaultdict

import netgen.occ as occ
import ngsolve as ngs
import numpy as np

mm = 1e-3
μ0 = 1.25663706127e-6
ε0 = 8.8541878188e-12
ω = 10e9*2*np.pi
r1, r2 = 0.5*mm, 1*mm

def writeFile(path, data):
	with open(path, "wb") as f: f.write(data)

writeFile("/tmp/shape.brep", b"""DBRep_DrawableShape

CASCADE Topology V3, (c) Open Cascade
Locations 0
Curve2ds 52
8 -5.9999999999999997e-07 0.0200006
1 4.7123889803846897 0 0 1 
8 -5.9999999999999997e-07 0.0200006
1 -0.001 0 0 1 
8 0 0.02
1 4.7123889803846897 0 0 1 
1 0 0.0050000000000000001 1 0 
2 0 0 1 0 -0 1 0.001
8 -5.9999999999999997e-07 0.0200006
1 1.5707963267948966 0 0 1 
8 -5.9999999999999997e-07 0.0200006
1 0.001 0 0 1 
8 0 0.02
1 7.8539816339744828 0 0 1 
1 4.7123889803846897 0 1 0 
8 0.00050000000000000001 0.001
1 0 0.0050000000000000001 -1 0 
8 0.00050000000000000001 0.001
1 0 0 0 -1 
8 999999.9999994 1000000.0200006
1 4.7123889803846897 0 0 1 
8 999999.9999994 1000000.0200006
1 -0.00050000000000000001 -1000000 0 1 
8 1000000 1000000.02
1 4.7123889803846897 0 0 1 
8 -0.001 0.001
1 0 0 0 1 
8 -0.001 0.001
1 0 0 1 0 
1 0 1000000.005 1 0 
2 0 0 1 0 -0 1 0.00050000000000000001
8 -0.001 -0.00050000000000000001
1 0 0.0050000000000000001 -1 0 
8 -0.001 -0.00050000000000000001
1 0 0 0 -1 
8 999999.9999994 1000000.0200006
1 1.5707963267948966 0 0 1 
8 999999.9999994 1000000.0200006
1 0.00050000000000000001 -1000000 0 1 
8 1000000 1000000.02
1 7.8539816339744828 0 0 1 
1 4.7123889803846897 1000000 1 0 
1 0 0.014999999999999999 1 0 
2 0 0 1 0 -0 1 0.001
8 0.00050000000000000001 0.001
1 0 0.014999999999999999 -1 0 
8 0.00050000000000000001 0.001
1 0 0 0 -1 
1 0 1000000.015 1 0 
2 0 0 1 0 -0 1 0.00050000000000000001
8 -0.001 -0.00050000000000000001
1 0 0.014999999999999999 -1 0 
8 -0.001 -0.00050000000000000001
1 0 0 0 -1 
1 7.8539816339744828 0.02 -1 -0 
8 -0.001 0.001
1 0 0 0 1 
8 -0.001 0.001
1 0 0.02 1 0 
1 7.8539816339744828 1000000.02 -1 -0 
1 0 0.02 1 0 
2 0 0 1 0 -0 1 0.001
1 0 0.014999999999999999 1 0 
2 0 0 1 0 -0 1 0.001
2 0 0 1 0 -0 1 0.00050000000000000001
1 0 1000000.02 1 0 
1 0 1000000.015 1 0 
2 0 0 1 0 -0 1 0.00050000000000000001
1 0 0.0050000000000000001 1 0 
2 0 0 1 0 -0 1 0.001
1 0 1000000.005 1 0 
2 0 0 1 0 -0 1 0.00050000000000000001
1 0 0 1 0 
2 0 0 1 0 -0 1 0.001
2 0 0 1 0 -0 1 0.00050000000000000001
1 0 1000000 1 0 
Curves 26
1 -0.001 0 0 0 1 0 
2 0 0.0050000000000000001 0 0 1 0 0 -0 1 1 0 -0 0.001
1 0.001 0 0 0 1 0 
8 0 3.1415926535897931
2 0 0 0 0 1 0 -1 0 -1.8369701987210297e-16 -1.8369701987210297e-16 0 1 0.001
1 0 0.0050000000000000001 0 -1 0 0 
1 -0.00050000000000000001 -1000000 0 0 1 0 
1 0 0 0 1 0 0 
2 0 0.0050000000046566129 0 0 1 0 0 -0 1 1 0 -0 0.00050000000000000001
1 0 0.0050000000000000001 0 -1 0 0 
1 0.00050000000000000001 -1000000 0 0 1 0 
8 0 3.1415926535897931
2 0 0 0 0 1 0 -1 0 -1.8369701987210297e-16 -1.8369701987210297e-16 0 1 0.00050000000000000001
2 0 0.014999999999999999 0 0 1 0 0 -0 1 1 0 -0 0.001
1 0 0.014999999999999999 0 -1 0 0 
2 0 0.015000000013969839 0 0 1 0 0 -0 1 1 0 -0 0.00050000000000000001
1 0 0.014999999999999999 0 -1 0 0 
8 0 3.1415926535897931
2 0 0.02 0 0 -1 0 1 0 6.123233995736766e-17 -6.123233995736766e-17 0 1 0.001
1 0 0.02 0 1 0 0 
8 0 3.1415926535897931
2 0 0.020000000018626451 0 0 -1 0 1 0 6.123233995736766e-17 -6.123233995736766e-17 0 1 0.00050000000000000001
2 0 0.02 0 0 1 0 0 -0 1 1 0 -0 0.001
2 0 0.014999999999999999 0 0 1 0 0 -0 1 1 0 -0 0.001
2 0 0.020000000018626451 0 0 1 0 0 -0 1 1 0 -0 0.00050000000000000001
2 0 0.015000000013969839 0 0 1 0 0 -0 1 1 0 -0 0.00050000000000000001
2 0 0.0050000000000000001 0 0 1 0 0 -0 1 1 0 -0 0.001
2 0 0.0050000000046566129 0 0 1 0 0 -0 1 1 0 -0 0.00050000000000000001
2 0 0 0 0 1 0 0 -0 1 1 0 -0 0.001
2 0 0 0 0 1 0 0 -0 1 1 0 -0 0.00050000000000000001
Polygon3D 0
PolygonOnTriangulations 0
Surfaces 9
10 3.1415926535897931 9.4247779607693793 -2e+100 2e+100
2 0 0 0 0 1 0 0 -0 1 1 0 -0 0.001
2 0 0 0 0 1 0 0 -0 1 1 0 -0 0.001
1 0 0 0 0 0 1 1 0 -0 -0 1 0 
1 0 0.0050000000000000001 0 0 1 0 0 -0 1 1 0 -0 
2 0 -1000000 0 0 1 0 0 -0 1 1 0 -0 0.00050000000000000001
10 3.1415926535897931 9.4247779607693793 -2e+100 2e+100
2 0 -1000000 0 0 1 0 0 -0 1 1 0 -0 0.00050000000000000001
1 0 0 0 0 1 0 0 -0 1 1 0 -0 
1 0 0.014999999999999999 0 0 1 0 0 -0 1 1 0 -0 
1 0 0.02 0 0 1 0 0 -0 1 1 0 -0 
Triangulations 0

TShapes 117
Ve
1.50000000000184e-07
-0.001 0 -1.83697019872103e-19
0 0

0101101
*
Ve
1.5e-07
-0.001 0.005 0
0 0

0101101
*
Ed
 1e-07 1 1 0
1  1 0 0 0.005
2  1 2 0 0 0.005
2  2 3 0 0 0.005
2  3 1 0 0 0.005
0

0101000
+117 0 -116 0 *
Ve
1.5e-07
0.001 0.005 0
0 0

0101101
*
Ed
 1e-07 1 1 0
1  2 0 4.71238898038469 7.85398163397448
2  4 1 0 4.71238898038469 7.85398163397448
2  5 4 0 4.71238898038469 7.85398163397448
0

0101000
+116 0 -114 0 *
Ve
1.50000000000061e-07
0.001 0 6.12323399573677e-20
0 0

0101101
*
Ed
 1e-07 1 1 0
1  3 0 0 0.005
2  6 2 0 0 0.005
2  7 3 0 0 0.005
2  8 1 0 0 0.005
0

0101000
+112 0 -114 0 *
Ed
 1e-07 1 1 0
1  4 0 0 3.14159265358979
2  9 1 0 0 3.14159265358979
0

0101000
+117 0 -112 0 *
Wi

0101100
-115 0 -113 0 +111 0 +110 0 *
Fa
0  1e-07 1 0

0101000
+109 0 *
Ve
1.50004656612769e-07
-0.0005 0.00500000000465661 0
0 0

0101101
*
Ed
 1.5e-07 1 1 0
1  5 0 0.0005 0.001
2  10 3 0 0.0005 0.001
2  11 4 0 0.0005 0.001
0

0101000
+107 0 -116 0 *
Ve
1.50000000000092e-07
-0.0005 0 -9.18485099360515e-20
0 0

0101101
*
Ed
 1e-07 1 1 0
1  6 0 1000000 1000000.005
2  12 5 0 1000000 1000000.005
2  13 3 0 1000000 1000000.005
2  14 6 0 1000000 1000000.005
0

0101000
+105 0 -107 0 *
Ed
 1.5e-07 1 1 0
1  7 0 -0.001 -0.0005
2  15 7 0 -0.001 -0.0005
2  16 3 0 -0.001 -0.0005
0

0101000
+117 0 -105 0 *
Wi

0101100
-115 0 +106 0 +104 0 +103 0 *
Fa
0  1e-07 3 0

0101000
+102 0 *
Ve
1.50004656612769e-07
0.0005 0.00500000000465661 0
0 0

0101101
*
Ed
 1e-07 1 1 0
1  8 0 4.71238898038469 7.85398163397448
2  17 6 0 4.71238898038469 7.85398163397448
2  18 4 0 4.71238898038469 7.85398163397448
0

0101000
+107 0 -100 0 *
Ed
 1.5e-07 1 1 0
1  9 0 -0.001 -0.0005
2  19 3 0 -0.001 -0.0005
2  20 4 0 -0.001 -0.0005
0

0101000
+114 0 -100 0 *
Wi

0101100
+106 0 -99 0 +98 0 +113 0 *
Fa
0  1e-07 4 0

0101000
+97 0 *
Ve
1.50000000000031e-07
0.0005 0 3.06161699786838e-20
0 0

0101101
*
Ed
 1e-07 1 1 0
1  10 0 1000000 1000000.005
2  21 5 0 1000000 1000000.005
2  22 3 0 1000000 1000000.005
2  23 6 0 1000000 1000000.005
0

0101000
+95 0 -100 0 *
Ed
 1.5e-07 1 1 0
1  7 0 0.0005 0.001
2  15 7 0 0.0005 0.001
2  16 3 0 0.0005 0.001
0

0101000
+95 0 -112 0 *
Wi

0101100
-94 0 +98 0 +111 0 +93 0 *
Fa
0  1e-07 3 0

0101000
+92 0 *
Ed
 1e-07 1 1 0
1  11 0 0 3.14159265358979
2  24 6 0 0 3.14159265358979
0

0101000
+105 0 -95 0 *
Wi

0101100
+110 0 -93 0 -90 0 -103 0 *
Fa
0  1e-07 7 0

0111000
+89 0 *
Wi

0101100
-104 0 -99 0 +94 0 +90 0 *
Fa
0  1e-07 6 0

0101000
+87 0 *
Sh

0101100
+108 0 -101 0 +96 0 -91 0 -88 0 -86 0 *
So

0100000
+85 0 *
Ve
1.5e-07
-0.001 0.015 0
0 0

0101101
*
Ed
 1e-07 1 1 0
1  1 0 0.005 0.015
2  1 2 0 0.005 0.015
2  2 3 0 0.005 0.015
2  3 1 0 0.005 0.015
0

0101000
+116 0 -83 0 *
Ve
1.5e-07
0.001 0.015 0
0 0

0101101
*
Ed
 1e-07 1 1 0
1  12 0 4.71238898038469 7.85398163397448
2  25 1 0 4.71238898038469 7.85398163397448
2  26 8 0 4.71238898038469 7.85398163397448
0

0101000
+83 0 -81 0 *
Ed
 1e-07 1 1 0
1  3 0 0.005 0.015
2  6 2 0 0.005 0.015
2  7 3 0 0.005 0.015
2  8 1 0 0.005 0.015
0

0101000
+114 0 -81 0 *
Wi

0101100
-82 0 -80 0 +79 0 +113 0 *
Fa
0  1e-07 1 0

0101000
+78 0 *
Ve
1.50013969839174e-07
-0.0005 0.0150000000139698 0
0 0

0101101
*
Ed
 1.5e-07 1 1 0
1  13 0 0.0005 0.001
2  27 3 0 0.0005 0.001
2  28 8 0 0.0005 0.001
0

0101000
+76 0 -83 0 *
Ed
 1e-07 1 1 0
1  6 0 1000000.005 1000000.015
2  12 5 0 1000000.005 1000000.015
2  13 3 0 1000000.005 1000000.015
2  14 6 0 1000000.005 1000000.015
0

0101000
+107 0 -76 0 *
Wi

0101100
-82 0 +75 0 +74 0 -106 0 *
Fa
0  1e-07 3 0

0101000
+73 0 *
Ve
1.50013969839174e-07
0.0005 0.0150000000139698 0
0 0

0101101
*
Ed
 1e-07 1 1 0
1  14 0 4.71238898038469 7.85398163397448
2  29 6 0 4.71238898038469 7.85398163397448
2  30 8 0 4.71238898038469 7.85398163397448
0

0101000
+76 0 -71 0 *
Ed
 1.5e-07 1 1 0
1  15 0 -0.001 -0.0005
2  31 3 0 -0.001 -0.0005
2  32 8 0 -0.001 -0.0005
0

0101000
+81 0 -71 0 *
Wi

0101100
+75 0 -70 0 +69 0 +80 0 *
Fa
0  1e-07 8 0

0101000
+68 0 *
Ed
 1e-07 1 1 0
1  10 0 1000000.005 1000000.015
2  21 5 0 1000000.005 1000000.015
2  22 3 0 1000000.005 1000000.015
2  23 6 0 1000000.005 1000000.015
0

0101000
+100 0 -71 0 *
Wi

0101100
-66 0 +69 0 +79 0 -98 0 *
Fa
0  1e-07 3 0

0101000
+65 0 *
Wi

0101100
-74 0 -70 0 +66 0 +99 0 *
Fa
0  1e-07 6 0

0101000
+63 0 *
Sh

0101100
+77 0 -72 0 +67 0 -64 0 -96 0 -62 0 *
So

0100000
+61 0 *
Ve
1.50000000000184e-07
-0.001 0.02 -1.83697019872103e-19
0 0

0101101
*
Ed
 1e-07 1 1 0
1  1 0 0.015 0.02
2  1 2 0 0.015 0.02
2  2 3 0 0.015 0.02
2  3 1 0 0.015 0.02
0

0101000
+83 0 -59 0 *
Ve
1.50000000000061e-07
0.001 0.02 6.12323399573677e-20
0 0

0101101
*
Ed
 1e-07 1 1 0
1  16 0 0 3.14159265358979
2  33 1 0 0 3.14159265358979
0

0101000
+57 0 -59 0 *
Ed
 1e-07 1 1 0
1  3 0 0.015 0.02
2  6 2 0 0.015 0.02
2  7 3 0 0.015 0.02
2  8 1 0 0.015 0.02
0

0101000
+81 0 -57 0 *
Wi

0101100
-58 0 +56 0 +55 0 +80 0 *
Fa
0  1e-07 1 0

0101000
+54 0 *
Ve
1.50018626451076e-07
-0.0005 0.0200000000186265 -9.18485099360515e-20
0 0

0101101
*
Ed
 1.5e-07 1 1 0
1  17 0 -0.001 -0.0005
2  34 9 0 -0.001 -0.0005
2  35 3 0 -0.001 -0.0005
0

0101000
+59 0 -52 0 *
Ed
 1e-07 1 1 0
1  6 0 1000000.015 1000000.02
2  12 5 0 1000000.015 1000000.02
2  13 3 0 1000000.015 1000000.02
2  14 6 0 1000000.015 1000000.02
0

0101000
+76 0 -52 0 *
Wi

0101100
-58 0 -51 0 +50 0 -75 0 *
Fa
0  1e-07 3 0

0101000
+49 0 *
Ve
1.50018626451076e-07
0.0005 0.0200000000186265 3.06161699786838e-20
0 0

0101101
*
Ed
 1.5e-07 1 1 0
1  17 0 0.0005 0.001
2  34 9 0 0.0005 0.001
2  35 3 0 0.0005 0.001
0

0101000
+47 0 -57 0 *
Ed
 1e-07 1 1 0
1  18 0 0 3.14159265358979
2  36 6 0 0 3.14159265358979
0

0101000
+47 0 -52 0 *
Wi

0101100
-51 0 -56 0 -46 0 +45 0 *
Fa
0  1e-07 9 0

0111000
+44 0 *
Ed
 1e-07 1 1 0
1  10 0 1000000.015 1000000.02
2  21 5 0 1000000.015 1000000.02
2  22 3 0 1000000.015 1000000.02
2  23 6 0 1000000.015 1000000.02
0

0101000
+71 0 -47 0 *
Wi

0101100
-42 0 -46 0 +55 0 -69 0 *
Fa
0  1e-07 3 0

0101000
+41 0 *
Wi

0101100
-50 0 +45 0 +42 0 +70 0 *
Fa
0  1e-07 6 0

0101000
+39 0 *
Sh

0101100
+53 0 -48 0 +43 0 -40 0 -67 0 -38 0 *
So

0100000
+37 0 *
Ed
 1e-07 1 1 0
1  19 0 1.5707963267949 4.71238898038469
2  37 2 0 1.5707963267949 4.71238898038469
2  38 9 0 1.5707963267949 4.71238898038469
0

0101000
+57 0 -59 0 *
Ed
 1e-07 1 1 0
1  20 0 1.5707963267949 4.71238898038469
2  39 2 0 1.5707963267949 4.71238898038469
2  40 8 0 1.5707963267949 4.71238898038469
0

0101000
+81 0 -83 0 *
Wi

0101100
-35 0 +58 0 +34 0 -55 0 *
Fa
0  1e-07 2 0

0101000
+33 0 *
Ed
 1e-07 1 1 0
1  21 0 1.5707963267949 4.71238898038469
2  41 9 0 1.5707963267949 4.71238898038469
2  42 5 0 1.5707963267949 4.71238898038469
0

0101000
+47 0 -52 0 *
Wi

0101100
+46 0 -31 0 +51 0 +35 0 *
Fa
0  1e-07 9 0

0101000
+30 0 *
Ed
 1e-07 1 1 0
1  22 0 1.5707963267949 4.71238898038469
2  43 5 0 1.5707963267949 4.71238898038469
2  44 8 0 1.5707963267949 4.71238898038469
0

0101000
+71 0 -76 0 *
Wi

0101100
+34 0 -69 0 -28 0 -75 0 *
Fa
0  1e-07 8 0

0101000
+27 0 *
Wi

0101100
-31 0 +50 0 +28 0 -42 0 *
Fa
0  1e-07 5 0

0101000
+25 0 *
Sh

0101100
+32 0 +29 0 +48 0 -26 0 +40 0 -24 0 *
So

0100000
+23 0 *
Ed
 1e-07 1 1 0
1  23 0 1.5707963267949 4.71238898038469
2  45 2 0 1.5707963267949 4.71238898038469
2  46 4 0 1.5707963267949 4.71238898038469
0

0101000
+114 0 -116 0 *
Wi

0101100
-34 0 +82 0 +21 0 -79 0 *
Fa
0  1e-07 2 0

0101000
+20 0 *
Ed
 1e-07 1 1 0
1  24 0 1.5707963267949 4.71238898038469
2  47 5 0 1.5707963267949 4.71238898038469
2  48 4 0 1.5707963267949 4.71238898038469
0

0101000
+100 0 -107 0 *
Wi

0101100
+21 0 -98 0 -18 0 -106 0 *
Fa
0  1e-07 4 0

0101000
+17 0 *
Wi

0101100
-28 0 +74 0 +18 0 -66 0 *
Fa
0  1e-07 5 0

0101000
+15 0 *
Sh

0101100
+19 0 +26 0 +72 0 -16 0 +64 0 -14 0 *
So

0100000
+13 0 *
Ed
 1e-07 1 1 0
1  25 0 1.5707963267949 4.71238898038469
2  49 2 0 1.5707963267949 4.71238898038469
2  50 7 0 1.5707963267949 4.71238898038469
0

0101000
+112 0 -117 0 *
Wi

0101100
-21 0 +115 0 +11 0 -111 0 *
Fa
0  1e-07 2 0

0101000
+10 0 *
Ed
 1e-07 1 1 0
1  26 0 1.5707963267949 4.71238898038469
2  51 7 0 1.5707963267949 4.71238898038469
2  52 5 0 1.5707963267949 4.71238898038469
0

0101000
+95 0 -105 0 *
Wi

0101100
+93 0 -8 0 +103 0 +11 0 *
Fa
0  1e-07 7 0

0101000
+7 0 *
Wi

0101100
-18 0 +104 0 +8 0 -94 0 *
Fa
0  1e-07 5 0

0101000
+5 0 *
Sh

0101100
+9 0 +16 0 +101 0 -6 0 +91 0 -4 0 *
So

0100000
+3 0 *
Co

0100000
+84 0 +60 0 +36 0 +22 0 +12 0 +2 0 *

+1 0 """)

solids = occ.OCCGeometry("/tmp/shape.brep").solids

#set materials and find relevant edges
faceCounts = defaultdict(int)
for solid in solids:
	for f in solid.faces: faceCounts[f] += 1
def setFace(f, name):
	if faceCounts[f] == 1: f.name = name
voltageEdges = {}
currentEdges = {}
for solid in solids:
	solid.name = "dielectric"
	setFace(solid.faces.Min(occ.Y), "dirichlet")
	setFace(solid.faces.Max(occ.Y), "dielectric")
	for f in solid.faces:
		if f.name is None: setFace(f, "conductor")
	for e in solid.edges:
		a, b = np.array([[*e.bounding_box[0]], [*e.bounding_box[1]]])
		if abs(b[1] - a[1]) < 1e-5:
			if abs(b[2] - a[2]) >= 1e-5:
				mx, _, mz = np.maximum(np.abs(a), np.abs(b))
				if max(mx, mz) < 1.001*r1:
					e.name = f"Iedge{int(round(a[1]*1e6))/1e6}"
					currentEdges[e.name] = e
			elif a[0] > 0:
				e.name = f"Vedge{int(round(a[1]*1e6))/1e6}"
				voltageEdges[e.name] = e

mesh = ngs.Mesh(occ.OCCGeometry(solids).GenerateMesh(maxh=10*mm, grading=0.5, minedgelen=None))
mesh.Curve(2)

#material params
ε = {
	"default"   : 0,
	"dirichlet" : 0,
	"dielectric": 2*(1 + 0.1j)*ε0,
	"conductor" : ε0 + 1e4j/ω,
}
εΩ, εΓ = [ngs.CoefficientFunction([ε[m] for m in mats]) for mats in [mesh.GetMaterials(), mesh.GetBoundaries()]]
kΩ, kΓ = [ω*ngs.sqrt(μ0*ε) for ε in [εΩ, εΓ]]

fes = ngs.HCurl(mesh, complex=True, order=3, dirichlet="dirichlet")
E, v = fes.TnT()
A = ngs.BilinearForm((ngs.curl(E)*ngs.curl(v) - kΩ*kΩ*E*v)*ngs.dx - 1j*kΓ*E.Trace()*v.Trace()*ngs.ds, symmetric=True).Assemble().mat

#excite with solution of Laplace equation
rSq = (ngs.x**2 + ngs.z**2)*np.log(r2/r1)
E = ngs.GridFunction(fes)
E.Set(ngs.CoefficientFunction((ngs.x/rSq, 0, ngs.z/rSq)), definedon=mesh.Boundaries("dirichlet"))

#solve
E.vec.data -= A.Inverse(fes.FreeDofs(), inverse="sparsecholesky")*(A*E.vec)
ngs.Draw(E, mesh, "E")

t = ngs.specialcf.tangential(3)
voltages = {name: ngs.Integrate(E*t, mesh.BBoundaries(name)) for name, e in voltageEdges.items()}
print(voltages)

#netgen.libngpy._meshing.NgException: GridFunctionCoefficientFunction: SIMD: don't know how I shall evaluate
currents = {name: -1j/(ω*μ0)*ngs.Integrate(ngs.curl(E)*t, mesh.BBoundaries(name)) for name, e in currentEdges.items()}
print(currents)

I am solving time-harmonic Maxwell’s equations/vector Helmholtz equation on a section of coax:

∇×∇×E - k²E = 0 in Ω
tr(∇×E) = i k n×tr(E) on Γ=∂Ω #Leontovich surface impedance boundary condition

Measuring voltages via ∫(E⋅t) works:

fes = HCurl(mesh, complex=True, order=3, dirichlet="dirichlet")
E = GridFunction(fes)
n = specialcf.normal(3)
t = specialcf.tangential(3)
voltages = {name: Integrate(E*t, mesh.BBoundaries(name)) for name, e in voltageEdges.items()}

Trying to measure inner conductor current via I = ∬(J_f⋅n) = ∮(H⋅t) = 1/(i ω μ)*∮((∇×E)⋅t):

currents = {name: Integrate(curl(E)*t, mesh.BBoundaries(name)) for name, e in currentEdges.items()}

gives NgException: GridFunctionCoefficientFunction: SIMD: don't know how I shall evaluate.
I’ve tried several ways and they all return zero or an error.
Is there any way to do this?

The error message is a bit cryptic here, but the issue is that curl(E) has no well defined trace on edges in HCurl.

You can Interpolate H = 1/(i * omega * mu) * curl(E) into HCurl and then compute the intergal.

1 Like