File:Scattering theory illust.png

Description Illustration of en:Scattering theory.
Date (UTC)
Source self-made with en:Matlab. See the source at Image:Scattering_total_field.png
Author Oleg Alexandrov
 
This diagram was created with MATLAB.
Category:PNG created with MATLAB#Scattering%20theory%20illust.png
Public domain I, the copyright holder of this work, release this work into the public domain. This applies worldwide.
In some countries this may not be legally possible; if so:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.
Category:Self-published work#Scattering%20theory%20illust.pngCategory:PD-self#Scattering%20theory%20illust.png

Source code (MATLAB)

 

function main(Nx, Iters)

Box_x = 3;
Scale = 0.5;
Box_y = Box_x/Scale;

%Nx = 50;
Ny = Nx/Scale;

wavenumber = 10;

XX = linspace(-Box_x, Box_x, Nx);
YY = linspace(-Box_y, Box_y, Ny);
hx = XX(2) - XX(1);
hy = YY(2) - YY(1);
[X, Y] = meshgrid(XX, YY);

Source_size  = 0.5;
Source_shift = 0;
n0=0.5;
Scatterer =  n0*sign(max(Source_size^2 - X.^2-(Y-Source_shift).^2, 0));

I = sqrt(-1);
Uinc = exp(I*wavenumber*Y);

% plot the initial planewave
figure(1); clf; hold on; axis equal; axis off; colormap copper;
Tweak=0*Uinc; Tweak(1, 1)=-2; Tweak(1, 2) = 4;
imagesc(real(Uinc)+Tweak); % a hack to have the same colormap as the images below
iter = 1;
saveas(gcf, sprintf('Scattering_frame%d_Nx%d.eps', iter, Nx), 'psc2');

%figure(3); clf; hold on; axis equal; axis off; colormap copper;
%imagesc(Scatterer);

% Approximate the Uscatter by 0
Uscatter = 0*Scatterer;

% Several iterations to improve upon the starting Born approximation
% I hope this is the right way to do things. The plotted solution looks plausible
% but I don't know if this is rigurous.

for iter=2:(1+Iters)

   % Here we use an approximate source
   Source = wavenumber^2*Scatterer.*(Uinc+Uscatter);

   % calc the solution solution to the Helmholtz equation
   Uscatter = 0*X;
   [m, n] = size(Source);
   for i=1:m
      i
      for j=1:n
	 
	 if Source(i, j) ~= 0
	    
	    x0 = X(i, j);
	    y0 = Y(i, j);
	    
            % add the contribution from the current source, average over four corners of current rectangle
	    Uscatter = Uscatter ...
		+ (I/16)*(...
		   besselh(0, 1, wavenumber*sqrt((X-x0-hx/2).^2+(Y-y0-hy/2).^2) + eps)*Source(i, j) ...
		   + besselh(0, 1, wavenumber*sqrt((X-x0-hx/2).^2+(Y-y0+hy/2).^2) + eps)*Source(i, j) ...
		   + besselh(0, 1, wavenumber*sqrt((X-x0+hx/2).^2+(Y-y0-hy/2).^2) + eps)*Source(i, j) ...
		   + besselh(0, 1, wavenumber*sqrt((X-x0+hx/2).^2+(Y-y0+hy/2).^2) + eps)*Source(i, j))*hx*hy;
%Uscatter = Uscatter +(I/4)*besselh(0, 1, wavenumber*sqrt((X-x0).^2+(Y-y0).^2) + eps)*Source(i, j)*hx*hy;
	 end
	 
      end
   end

   Utotal = Uinc + Uscatter;
   
   figure(1); clf; hold on; axis equal; axis off; colormap copper;
   imagesc(real(Utotal)); 
   saveas(gcf, sprintf('Scattering_frame%d_Nx%d.eps', iter, Nx), 'psc2');
end
Category:Wave equation Category:Cymatics Category:Electromagnetic forces Category:Waves Category:Unidentified waves Category:Files by User:Oleg Alexandrov from en.wikipedia Category:Images with Matlab source code Category:Scattering theory
This math image could be re-created using vector graphics as an SVG file. This has several advantages; see Commons:Media for cleanup for more information. If an SVG form of this image is available, please upload it and afterwards replace this template with {{vector version available|new image name}}.
It is recommended to name the SVG file “Scattering theory illust.svg”—then the template Vector version available (or Vva) does not need the new image name parameter.
Category:Math images that should use vector graphics#%20Scattering%20theory%20illust.pngCategory:PNG that should use vector graphics
Category:Cymatics Category:Electromagnetic forces Category:Files by User:Oleg Alexandrov from en.wikipedia Category:Images with Matlab source code Category:Math images that should use vector graphics Category:PD-self Category:PNG created with MATLAB Category:PNG that should use vector graphics Category:Pages using deprecated source tags Category:Scattering theory Category:Self-published work Category:Unidentified waves Category:Wave equation Category:Waves