File Exchange

image thumbnail

Sphere scattering

version 1.2 (32.4 KB) by

Solutions to the plane wave scattered by a dielectric sphere and a multi-layer sphere.



View License

Certain electromagnetic scattering problems have analytical solutions. In the spherical coordinate, the solutions are expressed in the series form of the products of the Riccati-Bessel functions, associative Legendre polynomials, and exponential functions. This package contains the code that implements the field solutions as

a) a planewave is scattered by a dielectric sphere,
b) a planewave is scattered by a multi-layer concentric sphere.

The solutions are acquired through the formulation of the radial component of the magnetic and vector potentials [Harrington]. The scattering problem of a homogenous dielectric sphere is on pp. 297 of [Harrington]. The solutions to the the scattering problem of a multi-layer sphere is acquired similarly by solving a linear system for the field coefficients, which is constructed from the boundary conditions. A discussion how to solve this problem is available in [Chew]. There are also wealthy amount of works on acquiring the coefficients of the scattered fields to calculate the scattered and absorbed power of absorbing multi-layer spheres. See [Pena] and the reference there in.

The following scripts demonstrate the use of this package:

plotSphereRCS.m (radar cross-section of a conducting sphere and a dielectric sphere [Djordjevic])



This code provides the visualization of the exact field both inside and outside the sphere. It may also serve to verify the implementations of the numerical methods to solve the Maxwell equations in 3D, such as the finite-difference and finite-element method.


[Chew] W. C. Chew, Waves and Fields in Inhomogeneous Media. Piscataway, NJ: IEEE Press, 1995.

[Djordjevic] M. Djordjevic and B. M. Notaros, "Double higher order method of moments for surface integral equation model of metallic and dielectric antennas and scatterers," IEEE Journal on Antennas and Propagation, vol. 52, no. 8, pp. 2118-2129, 2004.

[Harrington] R. F. Harrington, Time-Harmonic Electromagnetic Fields. Piscataway, NJ: IEEE Press, 2001.

[Pena] O. Pena and U. Pal, “Scattering of electromagnetic radiation by a multilayered sphere,” Computer Physics Communications , vol. 180, no. 11, pp. 2348-2354, 2009.

Comments and Ratings (11)

There was something strange going on in "ric_besselj.m" and "ric_bessely.m"; specifically when calling "a = besselj/y(nu+0.5,x);"
I just replaced those by:
nu2 = nu +0.5;
a = zeros(length(x), length(nu));
for i = 1: length(nu)
a(:,i) = besselj/y(nu2(i),x);

Now I get the [Djordjevic2004] results right.


Yael GV

how does I define a metalic layer?


Dear Kevin

plotSphereRCS.m doesn't work. It gives an error when using besselj.


Chen tongjie


Zhaoyi (view profile)

Thank you very much for your excellent job. I'm just interested if you have considered multiple scattering rather than single scattering.

Thanks again.


Tao (view profile)

it can not run

G. Kevin Zhu

G. Kevin Zhu (view profile)

I am glad to know that. You cannot directly get the scattering coefficients without digging through the code more in depth. The coefficients are labeled as b_n, c_n in getDielectricSphereFieldUnderPlaneWave.m

This code is primarily written for visualization, but not for further post-processing. A word of caution is that you need to make sure that these coefficients are normalized properly if you want to calculate the scattering efficiency.

The reference [Pena2009] is a good place for this kind of calculation.

This file was really useful for me. Thanks a lot. I also need scattering coefficients. I do not know how I can have scattering coefficients from this file.



Minor update to replace the function cart2sph.m by cartToSph.m to avoid overloading the Matlab native cart2sph.m function.

MATLAB Release
MATLAB 7.10 (R2010a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Win prizes and improve your MATLAB skills

Play today