📄 display_material_mesh_gui.m
字号:
handles.line_thickness_factor = handles.line_thickness_factor + 1; [handles] = initialize_plotting_arrays(handles); [handles] = plot_mesh(handles); guidata(hObject,handles); endfunction fPushThicknessUp(hObject,eventdata) handles.line_thickness_factor = handles.line_thickness_factor - 1; if handles.line_thickness_factor == 1 handles.line_thickness_factor = 2; end [handles] = initialize_plotting_arrays(handles); [handles] = plot_mesh(handles); guidata(hObject,handles); endfunction fCheckColorbar(hObject,eventdata) [handles] = plot_mesh(handles);endfunction [handles] = read_data_file() fid = fopen('mesh_data_file.mat','r'); if fid==-1 msgbox('mesh_data_file does not exist'); handles = []; return; end fclose(fid); load('mesh_data_file.mat', 'eps_r_x', 'eps_r_y', 'eps_r_z', ... 'mu_r_x', 'mu_r_y', 'mu_r_z',... 'sigma_e_x', 'sigma_e_y', 'sigma_e_z', ... 'sigma_m_x', 'sigma_m_y', 'sigma_m_z', ... 'nx','ny','nz','dx','dy','dz','fdtd_domain'); delete('mesh_data_file.mat'); handles.eps_r_x = eps_r_x; handles.eps_r_y = eps_r_y; handles.eps_r_z = eps_r_z; handles.mu_r_x = mu_r_x; handles.mu_r_y = mu_r_y; handles.mu_r_z = mu_r_z; handles.sigma_e_x = sigma_e_x; handles.sigma_e_y = sigma_e_y; handles.sigma_e_z = sigma_e_z; handles.sigma_m_x = sigma_m_x; handles.sigma_m_y = sigma_m_y; handles.sigma_m_z = sigma_m_z; handles.nx = nx; handles.ny = ny; handles.nz = nz; handles.dx = dx; handles.dy = dy; handles.dz = dz; handles.min_x = fdtd_domain.min_x; handles.min_y = fdtd_domain.min_y; handles.min_z = fdtd_domain.min_z;endfunction [handles] = initialize_plotting_arrays(handles) dx = handles.dx; dy = handles.dy; dz = handles.dz; nx = handles.nx; ny = handles.ny; nz = handles.nz; min_x = handles.min_x; min_y = handles.min_y; min_z = handles.min_z; t = handles.line_thickness_factor; t1 = t-1; mx = min(min(min(handles.eps_r_x))); my = min(min(min(handles.eps_r_y))); mz = min(min(min(handles.eps_r_z))); handles.eps_r_minval = min([mx my mz]); mx = max(max(max(handles.eps_r_x))); my = max(max(max(handles.eps_r_y))); mz = max(max(max(handles.eps_r_z))); handles.eps_r_maxval = max([mx my mz]); mx = min(min(min(handles.mu_r_x))); my = min(min(min(handles.mu_r_y))); mz = min(min(min(handles.mu_r_z))); handles.mu_r_minval = min([mx my mz]); mx = max(max(max(handles.mu_r_x))); my = max(max(max(handles.mu_r_y))); mz = max(max(max(handles.mu_r_z))); handles.mu_r_maxval = max([mx my mz]); mx = min(min(min(handles.sigma_e_x))); my = min(min(min(handles.sigma_e_y))); mz = min(min(min(handles.sigma_e_z))); handles.sigma_e_minval = min([mx my mz]); mx = max(max(max(handles.sigma_e_x))); my = max(max(max(handles.sigma_e_y))); mz = max(max(max(handles.sigma_e_z))); handles.sigma_e_maxval = max([mx my mz]); mx = min(min(min(handles.sigma_m_x))); my = min(min(min(handles.sigma_m_y))); mz = min(min(min(handles.sigma_m_z))); handles.sigma_m_minval = min([mx my mz]); mx = max(max(max(handles.sigma_m_x))); my = max(max(max(handles.sigma_m_y))); mz = max(max(max(handles.sigma_m_z))); handles.sigma_m_maxval = max([mx my mz]); %eps_r xy plane x component npatches = nx*(ny+1); fac = 1:npatches*6; fac = reshape(fac,6,[]).'; handles.faces_xy_x = fac; x = meshgrid(0:nx-1,1:ny+1)*dx; x = reshape(x,1,[]).'; x = [x x+dx/t x+t1*dx/t x+dx x+t1*dx/t x+dx/t]; x = reshape(x.',1,[]).'; handles.vertices_xy_x_x = x + min_x; y = (meshgrid(0:ny,1:nx)*dy).'; y = reshape(y,1,[]).'; y = [y y-dy/t y-dy/t y y+dy/t y+dy/t]; y = reshape(y.',1,[]).'; handles.vertices_xy_x_y = y + min_y; %eps_r xy plane y component npatches = ny*(nx+1); fac = 1:npatches*6; fac = reshape(fac,6,[]).'; handles.faces_xy_y = fac; y = meshgrid(0:ny-1,1:nx+1)*dy; y = reshape(y,1,[]).'; y = [y y+dy/t y+t1*dy/t y+dy y+t1*dy/t y+dy/t]; y = reshape(y.',1,[]).'; handles.vertices_xy_y_y = y + min_y; x = (meshgrid(0:nx,1:ny)*dx).'; x = reshape(x,1,[]).'; x = [x x-dx/t x-dx/t x x+dx/t x+dx/t]; x = reshape(x.',1,[]).'; handles.vertices_xy_y_x = x + min_x; %eps_r yz plane y component npatches = ny*(nz+1); fac = 1:npatches*6; fac = reshape(fac,6,[]).'; handles.faces_yz_y = fac; y = meshgrid(0:ny-1,1:nz+1)*dy; y = reshape(y,1,[]).'; y = [y y+dy/t y+t1*dy/t y+dy y+t1*dy/t y+dy/t]; y = reshape(y.',1,[]).'; handles.vertices_yz_y_y = y + min_y; z = (meshgrid(0:nz,1:ny)*dz).'; z = reshape(z,1,[]).'; z = [z z-dz/t z-dz/t z z+dz/t z+dz/t]; z = reshape(z.',1,[]).'; handles.vertices_yz_y_z = z + min_z; %eps_r yz plane z component npatches = nz*(ny+1); fac = 1:npatches*6; fac = reshape(fac,6,[]).'; handles.faces_yz_z = fac; z = meshgrid(0:nz-1,1:ny+1)*dz; z = reshape(z,1,[]).'; z = [z z+dz/t z+t1*dz/t z+dz z+t1*dz/t z+dz/t]; z = reshape(z.',1,[]).'; handles.vertices_yz_z_z = z + min_z; y = (meshgrid(0:ny,1:nz)*dy).'; y = reshape(y,1,[]).'; y = [y y-dy/t y-dy/t y y+dy/t y+dy/t]; y = reshape(y.',1,[]).'; handles.vertices_yz_z_y = y + min_y; %eps_r zx plane z component npatches = nz*(nx+1); fac = 1:npatches*6; fac = reshape(fac,6,[]).'; handles.faces_zx_z = fac; z = meshgrid(0:nz-1,1:nx+1)*dz; z = reshape(z,1,[]).'; z = [z z+dz/t z+t1*dz/t z+dz z+t1*dz/t z+dz/t]; z = reshape(z.',1,[]).'; handles.vertices_zx_z_z = z + min_z; x = (meshgrid(0:nx,1:nz)*dx).'; x = reshape(x,1,[]).'; x = [x x-dx/t x-dx/t x x+dx/t x+dx/t]; x = reshape(x.',1,[]).'; handles.vertices_zx_z_x = x + min_x; %eps_r zx plane x component npatches = nx*(nz+1); fac = 1:npatches*6; fac = reshape(fac,6,[]).'; handles.faces_zx_x = fac; x = meshgrid(0:nx-1,1:nz+1)*dx; x = reshape(x,1,[]).'; x = [x x+dx/t x+t1*dx/t x+dx x+t1*dx/t x+dx/t]; x = reshape(x.',1,[]).'; handles.vertices_zx_x_x = x + min_x; z = (meshgrid(0:nz,1:nx)*dz).'; z = reshape(z,1,[]).'; z = [z z-dz/t z-dz/t z z+dz/t z+dz/t]; z = reshape(z.',1,[]).'; handles.vertices_zx_x_z = z + min_z; %mu_r xy plane x component npatches = (nx+1)*ny; fac = 1:npatches*6; fac = reshape(fac,6,[]).'; handles.mu_faces_xy_x = fac; x = meshgrid(0:nx,1:ny)*dx; x = reshape(x,1,[]).'; x = [x x+dx/t x+t1*dx/t x+dx x+t1*dx/t x+dx/t]; x = reshape(x.',1,[]).'; handles.mu_vertices_xy_x_x = x-dx/2 + min_x; y = (meshgrid(0:ny-1,1:nx+1)*dy).'; y = reshape(y,1,[]).'; y = [y y-dy/t y-dy/t y y+dy/t y+dy/t]; y = reshape(y.',1,[]).'; handles.mu_vertices_xy_x_y = y+dy/2 + min_y; %mu_r xy plane y component npatches = (ny+1)*nx; fac = 1:npatches*6; fac = reshape(fac,6,[]).'; handles.mu_faces_xy_y = fac; y = meshgrid(0:ny,1:nx)*dy; y = reshape(y,1,[]).'; y = [y y+dy/t y+t1*dy/t y+dy y+t1*dy/t y+dy/t]; y = reshape(y.',1,[]).'; handles.mu_vertices_xy_y_y = y-dy/2 + min_y; x = (meshgrid(0:nx-1,1:ny+1)*dx).'; x = reshape(x,1,[]).'; x = [x x-dx/t x-dx/t x x+dx/t x+dx/t]; x = reshape(x.',1,[]).'; handles.mu_vertices_xy_y_x = x+dx/2 + min_x; %mu_r yz plane y component npatches = (ny+1)*nz; fac = 1:npatches*6; fac = reshape(fac,6,[]).'; handles.mu_faces_yz_y = fac; y = meshgrid(0:ny,1:nz)*dy; y = reshape(y,1,[]).'; y = [y y+dy/t y+t1*dy/t y+dy y+t1*dy/t y+dy/t]; y = reshape(y.',1,[]).'; handles.mu_vertices_yz_y_y = y-dy/2 + min_y; z = (meshgrid(0:nz-1,1:ny+1)*dz).'; z = reshape(z,1,[]).'; z = [z z-dz/t z-dz/t z z+dz/t z+dz/t]; z = reshape(z.',1,[]).'; handles.mu_vertices_yz_y_z = z+dz/2 + min_z; %mu_r yz plane z component npatches = (nz+1)*ny; fac = 1:npatches*6; fac = reshape(fac,6,[]).'; handles.mu_faces_yz_z = fac; z = meshgrid(0:nz,1:ny)*dz; z = reshape(z,1,[]).'; z = [z z+dz/t z+t1*dz/t z+dz z+t1*dz/t z+dz/t]; z = reshape(z.',1,[]).'; handles.mu_vertices_yz_z_z = z-dz/2 + min_z; y = (meshgrid(0:ny-1,1:nz+1)*dy).'; y = reshape(y,1,[]).'; y = [y y-dy/t y-dy/t y y+dy/t y+dy/t]; y = reshape(y.',1,[]).'; handles.mu_vertices_yz_z_y = y+dy/2 + min_y; %mu_r zx plane z component npatches = (nz+1)*nx; fac = 1:npatches*6; fac = reshape(fac,6,[]).'; handles.mu_faces_zx_z = fac; z = meshgrid(0:nz,1:nx)*dz; z = reshape(z,1,[]).'; z = [z z+dz/t z+t1*dz/t z+dz z+t1*dz/t z+dz/t]; z = reshape(z.',1,[]).'; handles.mu_vertices_zx_z_z = z-dz/2 + min_z; x = (meshgrid(0:nx-1,1:nz+1)*dx).'; x = reshape(x,1,[]).'; x = [x x-dx/t x-dx/t x x+dx/t x+dx/t]; x = reshape(x.',1,[]).'; handles.mu_vertices_zx_z_x = x+dx/2 + min_x; %mu_r zx plane x component npatches = (nx+1)*nz; fac = 1:npatches*6; fac = reshape(fac,6,[]).'; handles.mu_faces_zx_x = fac; x = meshgrid(0:nx,1:nz)*dx; x = reshape(x,1,[]).'; x = [x x+dx/t x+t1*dx/t x+dx x+t1*dx/t x+dx/t]; x = reshape(x.',1,[]).'; handles.mu_vertices_zx_x_x = x-dx/2 + min_x; z = (meshgrid(0:nz-1,1:nx+1)*dz).'; z = reshape(z,1,[]).'; z = [z z-dz/t z-dz/t z z+dz/t z+dz/t]; z = reshape(z.',1,[]).'; handles.mu_vertices_zx_x_z = z+dz/2 + min_z;endfunction [handles] = plot_mesh(handles) f = figure(111111); set(f,'name','Material Mesh'); set(f,'numbertitle','off'); cameratoolbar(f); po = findobj(gca,'type','patch'); delete(po); daspect([1 1 1]); if get(cRadioPermittivity,'value')==1 if get(cToggleXYplane,'value')==1 [handles] = plot_eps_r_xy(handles); end if get(cToggleYZplane,'value')==1 [handles] = plot_eps_r_yz(handles); end if get(cToggleZXplane,'value')==1 [handles] = plot_eps_r_zx(handles); end end if get(cRadioPermeability,'value')==1 if get(cToggleXYplane,'value')==1 [handles] = plot_mu_r_xy(handles); end if get(cToggleYZplane,'value')==1 [handles] = plot_mu_r_yz(handles); end if get(cToggleZXplane,'value')==1 [handles] = plot_mu_r_zx(handles); end end if get(cRadioEconductivity,'value')==1 if get(cToggleXYplane,'value')==1 [handles] = plot_sigma_e_xy(handles); end if get(cToggleYZplane,'value')==1 [handles] = plot_sigma_e_yz(handles); end if get(cToggleZXplane,'value')==1 [handles] = plot_sigma_e_zx(handles); end end if get(cRadioMconductivity,'value')==1 if get(cToggleXYplane,'value')==1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -