File:Helmholtz solution.png

Description Illustration of en:Helmholtz equation.
Date (UTC)
Source self-made with en:Matlab. See the source code below.
Author Oleg Alexandrov
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#Helmholtz%20solution.pngCategory:PD-self#Helmholtz%20solution.png


Source code (MATLAB)

 

% Plot the solution to the Helmholtz equation with a given source
clear all;

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

Nx = 200;
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 = 2;
Source =  max(Source_size^2 - X.^2-(Y-Source_shift).^2, 0) + max(Source_size^2 - X.^2-(Y+Source_shift).^2, 0) ;

% plot the source
figure(1); clf; hold on; axis equal; axis off;
imagesc(Source);


% plot the solution to the Helmholtz equation
I = sqrt(-1);
Field = 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
	 Field = Field + (I/4)*besselh(0, 1, wavenumber*sqrt((X-x0).^2+(Y-y0).^2) + eps)*Source(i, j)*hx*hy;
      end
      
   end
end


figure(2); clf; hold on; axis equal; axis off;
imagesc(real(Field));

% Save to disk and convert to png right away
figure(1); 
saveas(gcf, 'Helmholtz_source.eps', 'psc2');
%! convert -density 200 Helmholtz_source.eps Helmholtz_source.png

figure(2); 
saveas(gcf, 'Helmholtz_solution.eps', 'psc2');
%! convert -density 200 Helmholtz_solution.eps Helmholtz_solution.png
Category:Helmholtz equation solution Category:Cymatics Category:Differential equations Category:Files by User:Oleg Alexandrov from en.wikipedia Category:Images with MATLAB source code
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 “Helmholtz solution.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#%20Helmholtz%20solution.pngCategory:PNG that should use vector graphics
Category:Cymatics Category:Differential equations Category:Files by User:Oleg Alexandrov from en.wikipedia Category:Helmholtz equation solution 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:Self-published work