Filter löschen
Filter löschen

I need help in solving a matrix (Tensors)

4 Ansichten (letzte 30 Tage)
CHARUMATHI P R
CHARUMATHI P R am 6 Feb. 2024
Kommentiert: Morgan am 7 Feb. 2024
clc
clear all
close all
E0 = 5; % Permivittity at infinite frequency
W_P = 13.4e15; % Plasma Frequency
Gamma = 0.7e14; % collison Frequency
c = 3e8; % Speed of light in vacuum
e0 = 8.85e-12; % Permivittity in free space
lambda=1350e-9:10e-9:1750e-9;
f=c./lambda;
w=2*pi*f;
e11 = E0-(W_P^2./(w.^2-(1i*Gamma.*w)));
e22=16.2;
e33=11.9;
h1= 8; %Silver
h2= 25; %Silica
h3=19; %Germanium
e_TM=(e11.*e22.*e33)./((e22.*e33.*h1)+(e11.*e33.*h2)+(e11.*e22.*h3))./(h1+h2+h3);
e_TE=((e11.*h1)+(e22.*h2)+(e33.*h3))./(h1+h2+h3);
figure
plot(lambda,real(e_TM),'b',lambda,imag(e_TM),'g')
xlabel('Wavelength')
ylabel('permivittity (TM Mode)')
legend('Real','Imag')
figure
plot(lambda,real(e_TE),'b',lambda,imag(e_TE),'g')
xlabel('Wavelength')
ylabel('permivittity (TE Mode)')
legend('Real','Imag')
Here, I need to caluculate
figure
plot(lambda,real(e_eff),'b',lambda,imag(e_eff),'g')
Unrecognized function or variable 'e_eff'.
legend('real','Im','Location','southeast');
xlabel('Wavelength (nm)');
ylabel('Effective Permittivity');

Akzeptierte Antwort

Morgan
Morgan am 7 Feb. 2024
Bearbeitet: Morgan am 7 Feb. 2024
If I'm understanding your question correctly, you're trying to calculatte an effective medium tensor of the form:
where
Usually , , and are fill fractions for each composite material and have values in the range of 0 to 1, but I could just be unfamiliar with the exact effective medium model you're using. I've also never encountered a material with only one dispersive (varies with frequency) tensor element. Usually each tensor element is dispersive.
Assuming this is the case, however, the code you're looking for is:
e_eff = zeros(3,3,length(w));
e_eff(1,1,:) = e0*e_TE(:);
e_eff(2,2,:) = e0*e_TE(:);
e_eff(3,3,:) = e0*e_TM(:);
This creates a permittivity tensor that follows the effective medium model at each frequency w you've provided.
Also, I noticed you wanted to plot the effective tensor with:
figure
plot(lambda,real(e_eff),'b',lambda,imag(e_eff),'g')
legend('real','Im','Location','southeast');
xlabel('Wavelength (nm)');
ylabel('Effective Permittivity');
MATLAB will error out saying "Data cannot have more than 2 dimensions" since you're attempting to plot 9 tensor elements per wavelength. If you could clarify what exactly you're trying to plot, I might be able to assist further.
  4 Kommentare
CHARUMATHI P R
CHARUMATHI P R am 7 Feb. 2024
Sir, How to plot effective permittivity vs wavelength
Morgan
Morgan am 7 Feb. 2024
If you're trying to plot the effective permittivity tensor, this does not make sense. I recommend plot each unique element of the tensor ( and ) separately like the code you had previously:
% PLOT EFFECTIVE PERMITTIVITY (TE MODE)
figure
plot(lambda,real(e_TE),'b',lambda,imag(e_TE),'g')
xlabel('Wavelength')
ylabel('permivittity (TE Mode)')
legend('Real','Imag')
% PLOT EFFECTIVE PERMITTIVITY (TM MODE)
figure
plot(lambda,real(e_TM),'b',lambda,imag(e_TM),'g')
xlabel('Wavelength')
ylabel('permivittity (TM Mode)')
legend('Real','Imag')
By chance, if you're referring to plotting an Index Ellipsoid this will be slightly more complicated and doesn't show refractive index as a function of wavelength unless you animate the plot.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by