Dipoles

Setup
Setup for the excitation with a Hertzian or a Fitzgerald dipole.


Definition

The dipoles are defined as infinitesimal time harmonic current elements. Note that the definitions differ from the ones employed in [4, pp. 411ff] basically by a factor of $k$. Hence, they lead to different static fields, i.e., for $k\rightarrow 0$.

Hertzian Dipole

The Hertzian dipole with dipole length $l$, electric current $I$, and orientation $\hat{\bm p}$ at position $\bm r_0$ is assumed to have the current density

\[\bm{j}_\mathrm{HD} = Il \hat{\bm p} \delta (\bm r - \bm r_0) \,,\]

where $\delta$ denotes the Dirac delta distribution.

Fitzgeral Dipole

The Fitzgerald (magnetic) dipole with dipole length $l$, magnetic current $M$, and orientation $\hat{\bm p}$ at position $\bm r_0$ is assumed to have the current density

\[\bm{m}_\mathrm{FD} = Ml \hat{\bm p} \delta (\bm r - \bm r_0) \,.\]


API

The API provides the following constructors with default values:

SphericalScattering.HertzianDipoleType
ex = HertzianDipole(
        embedding   = Medium(ε0, μ0),
        frequency   = error("missing argument `frequency`"),
        amplitude   = 1.0,
        position    = error("missing argument `position`"),
        orientation = SVector{3,typeof(frequency)}(0.0, 0.0, 1.0),
)
source
SphericalScattering.FitzgeraldDipoleType
ex = FitzgeraldDipole(;
        embedding   = Medium(ε0, μ0),
        frequency   = error("missing argument `frequency`"),
        amplitude   = 1.0,
        position    = error("missing argument `position`"),
        orientation = SVector{3,typeof(frequency)}(0.0, 0.0, 1.0),
)
source
Tip

The orientation vector is automatically normalized to a unit vector during the initialization.


Radiated Field

The electric field of the Hertzian dipole itself (without scatterer) is [4, pp. 411ff]

\[\bm e(\bm r) = Z_\mathrm{F} \cfrac{Il}{4 \pi} \mathrm{e}^{-\mathrm{j} k r} \left( \cfrac{k}{r} ((\hat{\bm n} \times \hat{\bm p}) \times \hat{\bm n}) + \left(\cfrac{1}{k r^3} + \cfrac{\mathrm{j}}{r^2} \right) (3 \hat{\bm n} (\hat{\bm n} \cdot \hat{\bm p}) - \hat{\bm p}) \right)\]

with $Z_\mathrm{F} = \sqrt{\mu / \varepsilon}$ and the magnetic field

\[\bm h(\bm r) = \cfrac{Il}{4 \pi} \cfrac{\mathrm{e}^{-\mathrm{j} k r} }{r} \left(k + \cfrac{1}{\mathrm{j} r} \right) (\hat{\bm n} \times \hat{\bm p})\]

where

\[\hat{\bm n} = \cfrac{\bm r - \bm r_0}{|\bm r - \bm r_0|}\,.\]

Note

The fields of the Fitzgerald dipole follow from the duality relations.

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 is a generalization of the analysis in [1, pp. 374ff]. For the magnetic dipole duality relations are employed.

Tip

For the scattered field computation the orientation of the dipole is restricted: the dipole 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 position as a multiple of the orientaion:

position = 2.0 * orientation
Note

Internal details of the computations: Following [1, pp. 347ff] the dipoles are initially assumed to be aligned with the $z$-axis. Arbitrary positions 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))