The Nyström method

Vitality Learning
6 min readDec 31, 2022

In this post, we will shortly describe the Nyström method [1], a valid alternative to the Method of Moments (MoM) [2] for numerically solving integral equations and we will use it to solve an electromagnetic scattering problem from an indefinitely long, perfectly conducting cylinder.

The Nyström method evaluates integrals using quadrature rules so that the unknown is not represented by the expansion coefficients of the induced current density over a certain basis, but rather by the current density at the quadrature nodes.

The Nyström Method should be applied with care to cases when the integral equation exhibits a singular kernel as in the case of the Electric Field Integral Equation [1,2] dealt with in this post.

This post is divided into three parts: theory, validation formulas and numerical implementation with Python. The validation formulas refer to the scattering by a circular cylinder. The Python implementation is available at this link and comprises both the Nyström Method code and the validation code.

Theory

The Electric Field Integral Equation (EFIE) for an indefinitely long, perfectly conducting cylinder embedded in free space under Transverse Magnetic (TM) incidence is the following:

In such an equation, C represents the contour of the cylinder’s cross section, ω is the angular frequency, μ0 is the free-space permeability, Jz is the only (z) component of the current density induced over the cylinder’s surface, x and y represent generic observation and source points over C, respectively, R=|x-y|, G is the Green’s function

provided by an Hankel function of zero-th order and second kind, k0 is the free space wavenumber and the left hand side of the EFIE is the only (z) component of the impinging electric field.

After having introduced the following parameterization of the contour C,

the EFIE can be rewritten as

Electric Field Integral Equation (EFIE).

where

An accurate application of the Nyström method requires to extract the logarithmic singularity of M(t,t’). For this reason, such a function is rewritten as

where

is the coefficient to give to the logarithmic singularity and

is the regular part of the kernel M(t,t’) which can be expressed as

and C=0.5772156649.

The EFIE can be then rewritten as:

The first integral refers to the irregular part of the kernel, while the second integral refers to the regular part.

As far as the second integral is concerned, it can be evaluated by a simple quadrature rule involving 2N points. In other words:

In order to properly deal with the logarithmic singularity, the first integral is evaluated by approximating Jz using a global trigonometric polynomial which is integrated exactly, see [1]:

where

By a point matching approach in t, the following system of linear equations is finally defined:

The above system can be recast in matrix form as:

Linear system equation.

In such a system of linear equations, the data are represented by the impinging field while the unknowns are the samples of the current density distribution.

Validation

A validation test of the method can be set up in the case of a circular cylinder with radius a. In this case, indeed, both the scattered field and the induced current density can be represented by cylindrical harmonics for which the expansion coefficients can be given in closed form [2].

Under the incidence of a plane wave propagating along the x1 axis

the z-component of the scattered field can be expanded as:

Reference scattered field.

where Jn is the Bessel function of n-th order and

Finally, the z-component of the induced current density can be represented as

Reference current density.

Python code

The first step of the Python code is to define the electromagnetic constants:

Later on, the parameters defining the object’s contour are defined. In the available code, the contour is assumed to be elliptical so that the lengths of the two half-axes need to be defined:

Once defined the contour, we need to select the number of quadrature nodes 2N. The number N is decided thanks to an iterative approach. The surface discretization level is fixed and the number of quadrature points is increased until their distance is larger than the fixed discretization level:

After having decided the number of quadrature nodes 2N, their positions on the object’s contour as well as the derivatives of the contour parameterization at the quadrature nodes are computed:

In the above snippet, the quadrature nodes are uniformly spaced in the independent variable of the contour representation parameter.

It is now time to fill in the matrix of the linear system representing the Nyström method. This is done by the following snippet implementing the equations detailed above:

In the above code snippet, the trigInterp function represents the trigonometric interpolation function used by the Nyström method and is below reported:

The last steps to achieve the unknown current distribution are represented by defining the impinging field and by the solution of the linear system:

Following the unknown determination, the series for the calculation of the reference current is summed up in order to check for the reconstruction accuracy:

Finally, starting from the calculation of the unknown current density, the radiated field is computed by the relation:

Such a computation is worked out in the far-field, namely when

where D is the diameter of the smaller circle enclosing the scatterer and λ is the wavelength:

The reference scattered field is calculated by summing up the above indicated cylindrical waves series

References

[1] D. Colton, R. Kress, Inverse Acoustic and Electromagnetic Scattering Theory, Springer, Fourth Edition.

[2] C.A. Balanis, Advanced Engineering Electromagnetics, J. Wiley & Sons.

--

--

Vitality Learning

We are teaching, researching and consulting parallel programming on Graphics Processing Units (GPUs) since the delivery of CUDA. We also play Matlab and Python.