Ring Currents

Setup
Setup for the excitation with an electric or a magnetic ring current.


Definition

The ring currents are defined by a circular loop of radius $a$ carrying a uniform time-harmonic current.

Electric Ring Current

The electric ring current with amplitude $I$, and orientation $\hat{\bm p} = \hat{\bm e}_z$ with its center at position $\bm r_0 = (0,0,z_0)$ is assumed to have the current density

\[\bm{j}_\mathrm{rc} = I \hat{\bm e}_{\varphi'} \delta (r - R_0) \delta (\vartheta - \vartheta_0)\,,\]

where $\delta$ denotes the Dirac delta distribution and $R_0 = \sqrt{z_0^2 + a^2}$.

Magnetic Ring Current

The magnetic ring current with amplitude $M$, and orientation $\hat{\bm p} = \hat{\bm e}_z$ at position $\bm r_0 = (0,0,z_0)$ is assumed to have the current density

\[\bm{m}_\mathrm{rc} = M \hat{\bm e}_{\varphi'} \delta (r - R_0) \delta (\vartheta - \vartheta_0)\,.\]

Note

Arbitrary center positions $\bm r_0$ and orientations $\hat{\bm p}$ are computed by rotations and translations of the corresponding fields.


API

The API provides the following constructors with default values:

SphericalScattering.electricRingCurrentFunction
ex = electricRingCurrent(;
        embedding   = Medium(ε0, μ0),
        frequency   = error("missing argument `frequency`"),
        amplitude   = 1.0,
        radius      = error("missing argument `radius`"),
        center      = error("missing argument `center`"),
        orientation = SVector{3,typeof(frequency)}(0.0, 0.0, 1.0),
)
source
SphericalScattering.magneticRingCurrentFunction
ex = magneticRingCurrent(;
        embedding   = Medium(ε0, μ0),
        frequency   = error("missing argument `frequency`"),
        amplitude   = 1.0,
        radius      = error("missing argument `radius`"),
        center      = error("missing argument `center`"),
        orientation = SVector{3,typeof(frequency)}(0.0, 0.0, 1.0),
)
source

Radiated Field

The electric field of the electric ring current itself (without scatterer) is computed as a series expansion as defined in [1, pp. 362ff].

Note

The fields of the magnetic ring currents are computed via duality relations.

Note

It seems there exist other ways of computing the radiated fields. The different formulations should be compared someday.

API

The general API is employed:

E  = field(ex, ElectricField(point_cart))

H  = field(ex, MagneticField(point_cart))

FF = field(ex, FarField(point_cart))

Scattered Field

The scattered field computation follows [1, pp. 368ff]. For the magnetic ring current duality relations are employed.

Tip

For the scattered field computation the orientation of the ring current is restricted: the orientation vector has to be perpendicular to the surface of the sphere.

This can be achieved, e.g., by defining the orientation first

orientation = normalize(SVector(0.0,1.0,1.0))

and then setting the center position as a multiple of the orientaion:

center = 2.0 * orientation
Note

Internal details of the computations: Following [1, pp. 368ff] the orientation vectors of the ring currents are initially assumed to be aligned with the $z$-axis. Arbitrary centers and orientations (forming a valid pair) are obtained via rotations.

API

The general API is employed:

E  = scatteredfield(sp, ex, ElectricField(point_cart))

H  = scatteredfield(sp, ex, MagneticField(point_cart))

FF = scatteredfield(sp, ex, FarField(point_cart))

Total Field

API

The general API is employed:

E  = field(sp, ex, ElectricField(point_cart))

H  = field(sp, ex, MagneticField(point_cart))

FF = field(sp, ex, FarField(point_cart))