Convergence of the volume-averaged demagnetising field $\langle H_z \rangle$ for uniformly magnetised bodies ($M_s$ = 800,000 A/m, magnetised along $z$). The analytical reference is $\langle H_z \rangle = -\mu_0 M_s^2 N_z$ where $N_z$ is the demagnetising factor.
All methods use the same underlying FEM mesh for the body region. The x-axis shows the number of nodes in the body (material region), giving a fair comparison between plain and shell meshes. Field values are volume-weighted averages using the FEM nodal volumes.
Solver methods:
| Method | Description |
|---|---|
| FK BEM (FMM GPU) | Fredkin-Koehler with GPU fast multipole BEM |
| FK BEM (H2Lib CPU/GPU) | Fredkin-Koehler with H2-matrix BEM (CPU) + GPU FEM |
| FK BEM (Dense GPU) | Fredkin-Koehler with dense BEM on GPU |
| Shell (Spherical GPU) | Shell transform with spherical mapping |
| Shell (Parallelepiped GPU) | Shell transform with 6-frustum mapping |
| Volume FMM (GPU) | Direct volumetric FMM (no Fredkin-Koehler) |
Sphere (r=0.5)#
$N_z$ = 0.333333 (Nz = 1/3 (exact by symmetry)) — analytical $\langle H_z \rangle$ = -268,082.57

FK BEM (FMM GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 258 | -263,764.75 | 1.61e-02 |
| 388 | -265,039.19 | 1.14e-02 |
| 469 | -265,430.83 | 9.89e-03 |
| 775 | -266,338.97 | 6.50e-03 |
| 1,021 | -266,682.51 | 5.22e-03 |
| 1,487 | -267,055.69 | 3.83e-03 |
| 2,100 | -267,281.82 | 2.99e-03 |
| 3,134 | -267,487.62 | 2.22e-03 |
FK BEM (H2Lib CPU/GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 258 | -263,764.75 | 1.61e-02 |
| 388 | -265,039.19 | 1.14e-02 |
| 469 | -265,430.83 | 9.89e-03 |
| 775 | -266,338.97 | 6.50e-03 |
| 1,021 | -266,682.50 | 5.22e-03 |
| 1,487 | -267,055.69 | 3.83e-03 |
| 2,100 | -267,281.82 | 2.99e-03 |
| 3,134 | -267,487.62 | 2.22e-03 |
FK BEM (Dense GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 258 | -263,764.75 | 1.61e-02 |
| 388 | -265,039.19 | 1.14e-02 |
| 469 | -265,430.83 | 9.89e-03 |
| 775 | -266,338.97 | 6.50e-03 |
| 1,021 | -266,682.51 | 5.22e-03 |
| 1,487 | -267,055.69 | 3.83e-03 |
| 2,100 | -267,281.82 | 2.99e-03 |
| 3,134 | -267,487.62 | 2.22e-03 |
Shell (Spherical GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 245 | -237,330.72 | 1.15e-01 |
| 388 | -240,485.67 | 1.03e-01 |
| 445 | -245,926.37 | 8.26e-02 |
| 766 | -248,568.81 | 7.28e-02 |
| 1,007 | -252,818.20 | 5.69e-02 |
| 1,495 | -254,363.01 | 5.12e-02 |
| 2,119 | -256,783.07 | 4.21e-02 |
| 3,145 | -258,641.93 | 3.52e-02 |
Shell (Parallelepiped GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 238 | -251,378.69 | 6.23e-02 |
| 341 | -255,316.11 | 4.76e-02 |
| 464 | -258,702.07 | 3.50e-02 |
| 685 | -260,711.96 | 2.75e-02 |
| 975 | -262,551.21 | 2.06e-02 |
| 1,432 | -263,640.92 | 1.66e-02 |
| 2,083 | -264,442.73 | 1.36e-02 |
| 3,085 | -265,245.37 | 1.06e-02 |
Volume FMM (GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 258 | -259,096.88 | 3.35e-02 |
| 388 | -261,088.90 | 2.61e-02 |
| 469 | -261,651.67 | 2.40e-02 |
| 775 | -263,262.22 | 1.80e-02 |
| 1,021 | -263,879.91 | 1.57e-02 |
| 1,487 | -264,645.90 | 1.28e-02 |
| 2,100 | -265,150.77 | 1.09e-02 |
| 3,134 | -265,651.73 | 9.07e-03 |
Cube (side=1.0)#
$N_z$ = 0.333333 (Nz = 1/3 (exact by symmetry)) — analytical $\langle H_z \rangle$ = -268,082.57

FK BEM (FMM GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 143 | -255,892.13 | 4.55e-02 |
| 144 | -255,784.64 | 4.59e-02 |
| 237 | -259,569.70 | 3.18e-02 |
| 343 | -261,594.87 | 2.42e-02 |
| 460 | -263,141.75 | 1.84e-02 |
| 683 | -264,035.24 | 1.51e-02 |
| 910 | -264,724.58 | 1.25e-02 |
| 1,492 | -265,799.70 | 8.52e-03 |
FK BEM (H2Lib CPU/GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 143 | -255,892.13 | 4.55e-02 |
| 144 | -255,784.64 | 4.59e-02 |
| 237 | -259,569.70 | 3.18e-02 |
| 343 | -261,594.87 | 2.42e-02 |
| 460 | -263,141.75 | 1.84e-02 |
| 683 | -264,035.24 | 1.51e-02 |
| 910 | -264,724.58 | 1.25e-02 |
| 1,492 | -265,799.69 | 8.52e-03 |
FK BEM (Dense GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 143 | -255,892.13 | 4.55e-02 |
| 144 | -255,784.64 | 4.59e-02 |
| 237 | -259,569.70 | 3.18e-02 |
| 343 | -261,594.87 | 2.42e-02 |
| 460 | -263,141.76 | 1.84e-02 |
| 683 | -264,035.25 | 1.51e-02 |
| 910 | -264,724.59 | 1.25e-02 |
| 1,492 | -265,799.72 | 8.52e-03 |
Shell (Spherical GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 142 | -195,800.55 | 2.70e-01 |
| 234 | -200,790.68 | 2.51e-01 |
| 337 | -227,094.40 | 1.53e-01 |
| 460 | -230,890.23 | 1.39e-01 |
| 664 | -237,896.34 | 1.13e-01 |
| 885 | -246,371.19 | 8.10e-02 |
| 1,162 | -250,246.35 | 6.65e-02 |
| 1,834 | -254,032.06 | 5.24e-02 |
Shell (Parallelepiped GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 143 | -199,010.39 | 2.58e-01 |
| 139 | -195,216.57 | 2.72e-01 |
| 237 | -227,850.69 | 1.50e-01 |
| 338 | -233,126.76 | 1.30e-01 |
| 461 | -242,292.33 | 9.62e-02 |
| 683 | -246,209.18 | 8.16e-02 |
| 879 | -247,760.57 | 7.58e-02 |
| 1,478 | -254,184.16 | 5.18e-02 |
Volume FMM (GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 143 | -249,349.51 | 6.99e-02 |
| 144 | -249,193.15 | 7.05e-02 |
| 237 | -254,039.19 | 5.24e-02 |
| 343 | -256,686.01 | 4.25e-02 |
| 460 | -258,765.94 | 3.48e-02 |
| 683 | -260,271.68 | 2.91e-02 |
| 910 | -261,242.77 | 2.55e-02 |
| 1,492 | -262,919.72 | 1.93e-02 |
Prolate cuboid (0.5 x 0.5 x 1.0)#
$N_z$ = 0.198316 (Nz computed via Ravaud & Lemarquand volume-averaged Hz) — analytical $\langle H_z \rangle$ = -159,495.07

FK BEM (FMM GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 203 | -153,213.37 | 3.94e-02 |
| 249 | -153,294.06 | 3.89e-02 |
| 351 | -155,115.71 | 2.75e-02 |
| 506 | -156,181.02 | 2.08e-02 |
| 619 | -156,112.63 | 2.12e-02 |
| 849 | -156,960.54 | 1.59e-02 |
| 1,261 | -157,481.21 | 1.26e-02 |
| 1,957 | -158,115.05 | 8.65e-03 |
FK BEM (H2Lib CPU/GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 203 | -153,213.37 | 3.94e-02 |
| 249 | -153,294.06 | 3.89e-02 |
| 351 | -155,115.72 | 2.75e-02 |
| 506 | -156,181.03 | 2.08e-02 |
| 619 | -156,112.64 | 2.12e-02 |
| 849 | -156,960.55 | 1.59e-02 |
| 1,261 | -157,481.23 | 1.26e-02 |
| 1,957 | -158,115.03 | 8.65e-03 |
FK BEM (Dense GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 203 | -153,213.38 | 3.94e-02 |
| 249 | -153,294.06 | 3.89e-02 |
| 351 | -155,115.72 | 2.75e-02 |
| 506 | -156,181.02 | 2.08e-02 |
| 619 | -156,112.64 | 2.12e-02 |
| 849 | -156,960.55 | 1.59e-02 |
| 1,261 | -157,481.22 | 1.26e-02 |
| 1,957 | -158,115.06 | 8.65e-03 |
Shell (Spherical GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 202 | -136,180.17 | 1.46e-01 |
| 242 | -146,278.31 | 8.29e-02 |
| 352 | -150,262.06 | 5.79e-02 |
| 507 | -150,414.99 | 5.69e-02 |
| 610 | -149,501.72 | 6.27e-02 |
| 844 | -152,562.35 | 4.35e-02 |
| 1,229 | -154,501.05 | 3.13e-02 |
| 1,956 | -156,923.99 | 1.61e-02 |
Shell (Parallelepiped GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 202 | -138,239.44 | 1.33e-01 |
| 246 | -146,085.13 | 8.41e-02 |
| 353 | -146,005.89 | 8.46e-02 |
| 503 | -154,777.85 | 2.96e-02 |
| 600 | -149,902.41 | 6.01e-02 |
| 843 | -155,258.73 | 2.66e-02 |
| 1,222 | -156,087.96 | 2.14e-02 |
| 1,969 | -155,145.10 | 2.73e-02 |
Volume FMM (GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 203 | -149,942.08 | 5.99e-02 |
| 249 | -150,053.32 | 5.92e-02 |
| 351 | -152,352.01 | 4.48e-02 |
| 506 | -153,723.69 | 3.62e-02 |
| 619 | -153,661.56 | 3.66e-02 |
| 849 | -154,772.51 | 2.96e-02 |
| 1,261 | -155,618.30 | 2.43e-02 |
| 1,957 | -156,568.48 | 1.83e-02 |
Oblate cuboid (1.0 x 1.0 x 0.5)#
$N_z$ = 0.495922 (Nz computed via Ravaud & Lemarquand volume-averaged Hz) — analytical $\langle H_z \rangle$ = -398,844.41

FK BEM (FMM GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 154 | -383,037.80 | 3.96e-02 |
| 214 | -386,582.33 | 3.07e-02 |
| 307 | -389,553.39 | 2.33e-02 |
| 412 | -391,507.74 | 1.84e-02 |
| 696 | -393,816.33 | 1.26e-02 |
| 870 | -394,628.14 | 1.06e-02 |
| 1,336 | -395,625.62 | 8.07e-03 |
| 1,907 | -396,293.11 | 6.40e-03 |
FK BEM (H2Lib CPU/GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 154 | -383,037.80 | 3.96e-02 |
| 214 | -386,582.33 | 3.07e-02 |
| 307 | -389,553.39 | 2.33e-02 |
| 412 | -391,507.74 | 1.84e-02 |
| 696 | -393,816.30 | 1.26e-02 |
| 870 | -394,628.12 | 1.06e-02 |
| 1,336 | -395,625.56 | 8.07e-03 |
| 1,907 | -396,293.07 | 6.40e-03 |
FK BEM (Dense GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 154 | -383,037.81 | 3.96e-02 |
| 214 | -386,582.34 | 3.07e-02 |
| 307 | -389,553.39 | 2.33e-02 |
| 412 | -391,507.75 | 1.84e-02 |
| 696 | -393,816.34 | 1.26e-02 |
| 870 | -394,628.17 | 1.06e-02 |
| 1,336 | -395,625.65 | 8.07e-03 |
| 1,907 | -396,293.15 | 6.40e-03 |
Shell (Spherical GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 153 | -322,301.75 | 1.92e-01 |
| 212 | -339,763.86 | 1.48e-01 |
| 310 | -346,566.40 | 1.31e-01 |
| 411 | -359,635.81 | 9.83e-02 |
| 696 | -368,741.33 | 7.55e-02 |
| 862 | -367,910.08 | 7.76e-02 |
| 1,336 | -375,496.27 | 5.85e-02 |
| 1,903 | -380,247.74 | 4.66e-02 |
Shell (Parallelepiped GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 153 | -296,854.83 | 2.56e-01 |
| 213 | -313,237.15 | 2.15e-01 |
| 304 | -319,481.89 | 1.99e-01 |
| 412 | -319,932.39 | 1.98e-01 |
| 696 | -337,309.00 | 1.54e-01 |
| 855 | -340,698.02 | 1.46e-01 |
| 1,331 | -358,284.06 | 1.02e-01 |
| 1,892 | -366,264.67 | 8.17e-02 |
Volume FMM (GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 154 | -371,984.94 | 6.73e-02 |
| 214 | -376,780.69 | 5.53e-02 |
| 307 | -380,809.85 | 4.52e-02 |
| 412 | -384,021.53 | 3.72e-02 |
| 696 | -387,537.93 | 2.83e-02 |
| 870 | -388,869.03 | 2.50e-02 |
| 1,336 | -390,689.29 | 2.04e-02 |
| 1,907 | -391,959.47 | 1.73e-02 |
Prolate ellipsoid (a=b=0.25, c=0.5)#
$N_z$ = 0.173564 (Nz from ellipsoid integral formula (exact)) — analytical $\langle H_z \rangle$ = -139,588.45

FK BEM (FMM GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 167 | -136,140.27 | 2.47e-02 |
| 200 | -137,025.96 | 1.84e-02 |
| 288 | -137,618.03 | 1.41e-02 |
| 397 | -138,063.16 | 1.09e-02 |
| 619 | -138,582.74 | 7.20e-03 |
| 862 | -138,819.10 | 5.51e-03 |
| 1,264 | -138,986.46 | 4.31e-03 |
| 1,878 | -139,149.29 | 3.15e-03 |
FK BEM (H2Lib CPU/GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 167 | -136,140.27 | 2.47e-02 |
| 200 | -137,025.96 | 1.84e-02 |
| 288 | -137,618.03 | 1.41e-02 |
| 397 | -138,063.16 | 1.09e-02 |
| 619 | -138,582.74 | 7.20e-03 |
| 862 | -138,819.10 | 5.51e-03 |
| 1,264 | -138,986.46 | 4.31e-03 |
| 1,878 | -139,149.29 | 3.15e-03 |
FK BEM (Dense GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 167 | -136,140.27 | 2.47e-02 |
| 200 | -137,025.96 | 1.84e-02 |
| 288 | -137,618.03 | 1.41e-02 |
| 397 | -138,063.16 | 1.09e-02 |
| 619 | -138,582.74 | 7.20e-03 |
| 862 | -138,819.10 | 5.51e-03 |
| 1,264 | -138,986.46 | 4.31e-03 |
| 1,878 | -139,149.29 | 3.15e-03 |
Shell (Spherical GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 167 | -137,360.18 | 1.60e-02 |
| 198 | -137,400.90 | 1.57e-02 |
| 289 | -140,790.62 | 8.61e-03 |
| 395 | -141,365.27 | 1.27e-02 |
| 608 | -140,559.70 | 6.96e-03 |
| 890 | -141,732.18 | 1.54e-02 |
| 1,251 | -142,130.52 | 1.82e-02 |
| 1,853 | -141,665.30 | 1.49e-02 |
Shell (Parallelepiped GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 202 | -78,300.50 | 4.39e-01 |
| 206 | -99,435.25 | 2.88e-01 |
| 279 | -106,475.51 | 2.37e-01 |
| 401 | -111,278.29 | 2.03e-01 |
| 689 | -116,148.17 | 1.68e-01 |
| 887 | -120,256.92 | 1.38e-01 |
| 1,388 | -126,314.23 | 9.51e-02 |
| 1,948 | -128,574.75 | 7.89e-02 |
Volume FMM (GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 167 | -133,727.36 | 4.20e-02 |
| 200 | -134,711.87 | 3.49e-02 |
| 288 | -135,595.47 | 2.86e-02 |
| 397 | -136,282.86 | 2.37e-02 |
| 619 | -137,095.78 | 1.79e-02 |
| 862 | -137,493.72 | 1.50e-02 |
| 1,264 | -137,842.97 | 1.25e-02 |
| 1,878 | -138,149.10 | 1.03e-02 |
Oblate ellipsoid (a=b=0.5, c=0.25)#
$N_z$ = 0.527200 (Nz from ellipsoid integral formula (exact)) — analytical $\langle H_z \rangle$ = -423,999.62

FK BEM (FMM GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 293 | -416,204.83 | 1.84e-02 |
| 359 | -417,539.50 | 1.52e-02 |
| 516 | -419,031.91 | 1.17e-02 |
| 729 | -420,221.70 | 8.91e-03 |
| 1,108 | -421,323.13 | 6.31e-03 |
| 1,609 | -422,044.09 | 4.61e-03 |
| 2,305 | -422,467.87 | 3.61e-03 |
| 3,424 | -422,865.39 | 2.68e-03 |
FK BEM (H2Lib CPU/GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 293 | -416,204.83 | 1.84e-02 |
| 359 | -417,539.50 | 1.52e-02 |
| 516 | -419,031.91 | 1.17e-02 |
| 729 | -420,221.70 | 8.91e-03 |
| 1,108 | -421,323.13 | 6.31e-03 |
| 1,609 | -422,044.09 | 4.61e-03 |
| 2,305 | -422,467.87 | 3.61e-03 |
| 3,424 | -422,865.39 | 2.68e-03 |
FK BEM (Dense GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 293 | -416,204.83 | 1.84e-02 |
| 359 | -417,539.50 | 1.52e-02 |
| 516 | -419,031.91 | 1.17e-02 |
| 729 | -420,221.70 | 8.91e-03 |
| 1,108 | -421,323.13 | 6.31e-03 |
| 1,609 | -422,044.09 | 4.61e-03 |
| 2,305 | -422,467.87 | 3.61e-03 |
| 3,424 | -422,865.39 | 2.68e-03 |
Shell (Spherical GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 295 | -374,115.48 | 1.18e-01 |
| 354 | -375,180.93 | 1.15e-01 |
| 506 | -385,876.87 | 8.99e-02 |
| 684 | -389,532.26 | 8.13e-02 |
| 1,064 | -395,056.06 | 6.83e-02 |
| 1,577 | -399,195.15 | 5.85e-02 |
| 2,147 | -403,414.70 | 4.85e-02 |
| 3,239 | -406,066.69 | 4.23e-02 |
Shell (Parallelepiped GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 338 | -315,716.12 | 2.55e-01 |
| 345 | -347,684.34 | 1.80e-01 |
| 499 | -353,733.30 | 1.66e-01 |
| 714 | -361,411.97 | 1.48e-01 |
| 1,210 | -375,338.72 | 1.15e-01 |
| 1,587 | -375,205.01 | 1.15e-01 |
| 2,410 | -386,011.08 | 8.96e-02 |
| 3,617 | -392,526.54 | 7.42e-02 |
Volume FMM (GPU)
| Body nodes | Hz mean | Rel. error |
|---|---|---|
| 293 | -407,391.60 | 3.92e-02 |
| 359 | -409,382.13 | 3.45e-02 |
| 516 | -411,969.28 | 2.84e-02 |
| 729 | -413,936.49 | 2.37e-02 |
| 1,108 | -416,053.21 | 1.87e-02 |
| 1,609 | -417,430.83 | 1.55e-02 |
| 2,305 | -418,401.33 | 1.32e-02 |
| 3,424 | -419,345.25 | 1.10e-02 |