Polarizability extraction

Version (55.1 KB) by Ondrej
Calculates four polarizability tensors of a highly conducting object at a given electrical size


Updated 7 Jan 2017

View License

This class calculates all four polarizability tensors of a highly conducting object of arbitrary shape at a given electrical size. Detailed mathematical description of the extraction method, together with its validation, can be found at https://arxiv.org/abs/1609.03699.
All tensors are normalized according to:
[alfa_ee, alfa_em; alfa_me, alfa_mm] -> [alfa_ee/eps0, Z0*alfa_em; Z0*alfa_me, mi0*alfa_mm] /V0
where eps0 is pemittivity of vacuum, Z0 is impedance of vacuum, mi0 is permeability of vacuum and
V0 = 0.75*pi*a^3
where a is radius of the smallest sphere which completely surrounds the object.
For calculation of polarizability tensors, the user have to first call the constructor of the class
obj = Polarizability();
Class Polarizability has several required inputs; the main input is a triangular mesh of the studied object. Allowed format is a NASTRAN file. User can easily import data from NASTRAN with command
Imported mesh can be shown in a figure

Second input is a conductivity of the scatterer. It can easily be set by

obj.conductivity = value;

The class supports two types of feeding. If user wants to calculate the tensors with plane waves feeding then he sets feeding to 'PW'. If he wants to use Bessel’s wave so he sets feeding to 'BW'. If he wants to use both feeding he can use 'PWBW'. The command reads

obj.feeding = 'string';

The last input is a vector of electric sizes ka. The first possibility is to set electric sizes directly with command

obj.electricSize = values;

The second possible way is to set frequencies of the object by command

obj.frequency = values;

Property “frequency” is dependent property with setter and getter methods, it depends on “electricSize”, the relation between them is

frequency = electricSize*c0/(2*pi*a)

where a is calculated automatically from the supplied triangular mesh, c0 is speed of light in vacuum.
When all inputs are given in the object then the calculation can start with command


In the first step, this method calls method “fillPrivateProperties”. This method calculates matrices sigma, Z, P and M. When calculation of private properties is finished, then the calculation of the excitation matrix and polarizability tensors begins. Two methods handle this job, one for plane waves and one for Bessel’s waves. Their names are “getPWpolarizabilities” and “getBWpolarizabilities”.
Polarizability tensors are stored in two structure arrays, the first for plane waves and the second for Bessel’s waves. User can access these variables as

struct1 = obj.polBW;
struct2 = obj.polPW;

Results can be saved in a .mat file as


This command saves both polarizability structure arrays, electric sizes and some additional information about triangular mesh.

Graphical user interface was also developed. Print screen of GUI is logo of this web page.

Cite As

Ondrej (2023). Polarizability extraction (https://www.mathworks.com/matlabcentral/fileexchange/57339-polarizability-extraction), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2015b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Added more info.
Minor changes
minor changes
Link change.
Added example and diploma thesis.
minor changes
Change link to the article (not important change).

Link change.
changed summary
edit info