⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display_material_mesh_gui.m

📁 this a 3d fdtd code using matlab and it can be used as a reference for other structures. Dear sir,
💻 M
📖 第 1 页 / 共 3 页
字号:
    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 + -