Scaling the scatterer might be beneficial when using SCUFF SCATTER - HomerReid/scuff-em GitHub Wiki

Introduction

'Scaling the scatterer' here means changing its size. You can do this and still get correct results because Maxwell's equations are invariant under simultaneous scaling of space and time.

If your scatterer is not micron-sized, replacing it with an equivalent micron-sized scatterer might have two benefits:

  • It might speed up calculation.
  • It might eliminate WARNING: panel integration irregularities detected warnings.

I make this claim based on my own experience running SCUFF-SCATTER (the January 24, 2016 commit) under Docker on Windows. I had a centimetre-sized object. I had WARNING: panel integration irregularities detected warnings. I reduced the object to micron-size. The warnings went away. The simulations also ran much faster (about five times faster). As I will now show using the Mie scattering example, simulations might run much faster even if you don't have warnings.

Mie scattering example

The Mie scattering example uses a sphere of radius 1 (which, simplifying a little, SCUFF interprets as 1 micron). Here is its .msh file: Sphere.msh.

I took Sphere.msh and rescaled it to make spheres of radius 1e4, 1e5, and 1e6 (i.e. 1cm, 10cm, and 1m). The files are Sphere1e4.msh, Sphere1e5.msh, and Sphere1e6.msh. (Note that I made these .msh files by putting Sphere.msh through a python script that simply multiplied the position of each node by the appropriate scale factor so, round-off errors aside, they are exactly the same as Sphere.msh only with larger radii.) I then rescaled Sphere1e6.msh back down to a radius of 1 micron to make the file Sphere1from1e6.msh (the purpose of this will become apparent in a moment).

I ran the five spheres through SCUFF. For each run, I reduced the OmegaValues.dat file to a single angular frequency as listed in the following table. For spheres Sphere1e4.msh to Sphere1from1e6.msh I put a scale factor, SF, into one line of the SiCSphere.scuffgeo file to undo the changes I had made to the frequency:

Eps(w) = EpsInf * (a0 + i*a1*w*SF + w*w*SF*SF) / ( b0 + i*b1*w*SF + w*w*SF*SF);

The values for SF are listed in the following table. After each run I deleted the .cache file (so each run starts from nothing). The absorbed and scattered powers (from the resulting .pft files) and the time taken for the simulation (from scuff-scatter.log) are also on the table. (The time for the simulation is totally dominated by the time taken Assembling BEM matrix block (0,0).)

                        OmegaValues.dat   SF       ​Powers from .pft file       Time (seconds)
                                                   ​Absorbed     Scattered      for simulation
 
 ​Sphere.msh                 1.000         ---    1.530004e-05  5.401862e-03           6
 Sphere1e4.msh             1.000e-4       1e4    1.530004e+03  5.401862e+05          20
​ Sphere1e5.msh             1.000e-5       1e5    1.530004e+05  5.401862e+07          18
​ Sphere1e6.msh             1.000e-6       1e6    1.530003e+07  5.401862e+09          39
​ Sphere1from1e6.msh        1.000e0        1e0    1.530004e-05  5.401862e-03           6

From the table:

  • The frequency of each simulation has been chosen to be inversely proportional to the radius of the sphere. This is the appropriate choice because Maxwell's equations are invariant if space and time are scaled by the same amount (and frequency is inversely proportional to time).
  • Because of our use of the scale factor SF, the relative permittivity (Eps(w)) will be the same in all simulations (which is what we want).
  • The absorbed and scattered powers are the same apart from a scale factor that can be understood as follows: The powers are proportional to the volume of the object (which seems reasonably obvious) and the frequency of the radiation (because the frequency determines the number of times the electric field pushes the charges of the dielectric back and forth each second). Hence, comparing the 1m sphere and 1 micron sphere, the 1m sphere has a volume larger by a factor of (1e6)^3 and a frequency reduced by a factor of 1e6. Hence, overall, the 1m sphere has a power larger by a factor of (1e6)^3/(1e6)=1e12.
  • The simulations take significantly longer for the larger spheres (more than six times as long for the 1m sphere).

Note that, because Sphere1from1e6 runs in exactly the same time as Sphere, the longer run-times observed for the larger spheres is not some byproduct of my methodology (and it demonstrates explicitly that, if an object is larger than micron-size, reducing its size can significantly increase speed).

Further information that might be relevant