2021-06-29 15:44:28 +02:00
|
|
|
function visualizeMagneticField(obj, x_range, y_range, z_range)
|
|
|
|
|
|
|
|
f_h = Helper.getFigureByTag('VisualizeMagneticFieldFor2DMOT');
|
|
|
|
set(groot,'CurrentFigure',f_h);
|
|
|
|
a_h = get(f_h, 'CurrentAxes');
|
|
|
|
if ~isempty(get(a_h, 'Children'))
|
|
|
|
clf(f_h);
|
|
|
|
end
|
|
|
|
f_h.Name = 'Visualization';
|
|
|
|
f_h.Units = 'pixels';
|
|
|
|
|
|
|
|
set(0,'units','pixels');
|
|
|
|
screensize = get(0,'ScreenSize');
|
|
|
|
f_h.Position = [[screensize(3)/3.5 screensize(4)/3.5] 820 645];
|
|
|
|
|
|
|
|
xmin = x_range(1);
|
|
|
|
xmax = x_range(2);
|
|
|
|
ymin = y_range(1);
|
|
|
|
ymax = y_range(2);
|
|
|
|
zmin = z_range(1);
|
|
|
|
zmax = z_range(2);
|
|
|
|
dx = (xmax-xmin)/8;
|
|
|
|
dy = (ymax-ymin)/8;
|
|
|
|
dz = (zmax-zmin)/8;
|
|
|
|
if dx ~= 0
|
|
|
|
xm = xmin:dx:xmax;
|
|
|
|
else
|
|
|
|
xm = zeros(1,5);
|
|
|
|
end
|
|
|
|
|
|
|
|
if dy ~= 0
|
|
|
|
ym = ymin:dy:ymax;
|
|
|
|
else
|
|
|
|
ym = zeros(1,5);
|
|
|
|
end
|
|
|
|
|
|
|
|
if dz ~= 0
|
|
|
|
zm = zmin:dz:zmax;
|
|
|
|
else
|
|
|
|
zm = zeros(1,5);
|
|
|
|
end
|
|
|
|
[meshx,meshy,meshz] = meshgrid(xm,ym,zm); % construct data points
|
|
|
|
|
|
|
|
switch obj.SimulationMode
|
|
|
|
case '2D'
|
|
|
|
alpha = obj.MagneticGradient;
|
|
|
|
Bx = @(x,y,z) alpha .* z;
|
|
|
|
By = @(x,y,z) 0 .* y;
|
|
|
|
Bz = @(x,y,z) alpha .* x;
|
|
|
|
Bx_val = Bx(meshx, meshy, meshz);
|
|
|
|
By_val = By(meshx, meshy, meshz);
|
|
|
|
Bz_val = Bz(meshx, meshy, meshz);
|
|
|
|
case '3D'
|
|
|
|
% Development in progress
|
|
|
|
end
|
|
|
|
|
|
|
|
quiver3(meshx, meshy, meshz, Bx_val, By_val, Bz_val, 'Color', ' #6600ff');
|
|
|
|
axis equal
|
|
|
|
|
|
|
|
hXLabel = xlabel('x');
|
|
|
|
hYLabel = ylabel('y');
|
|
|
|
hZLabel = zlabel('z');
|
|
|
|
|
|
|
|
hTitle = sgtitle('Magnetic Field for 2-D MOT');
|
|
|
|
|
|
|
|
set([hXLabel, hYLabel, hZLabel] , ...
|
|
|
|
'FontSize' , 14 );
|
|
|
|
set( hTitle , ...
|
|
|
|
'FontSize' , 18 );
|
2021-07-03 10:19:27 +02:00
|
|
|
|
|
|
|
Helper.bringFiguresWithTagInForeground();
|
2021-06-29 15:44:28 +02:00
|
|
|
end
|