Polarizability extraction
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
obj.readNastran('nameOfFile.nas');
Imported mesh can be shown in a figure
obj.plot();
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
obj.getPolarizabilities();
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
obj.save('nameOFfile');
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
Platform Compatibility
Windows macOS LinuxCategories
- MATLAB > App Building >
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
codes/
codes/@Polarizability/
Version | Published | Release Notes | |
---|---|---|---|
1.0.0.0 | Added more info.
Link change.
|