当前位置: 首页 > news >正文

逆向设计——CWDM_splitter

一、创建结构

switchtolayout;
selectall;
delete;## SIM PARAMS
num_wg = 4;
wg_width = 0.5e-6;
out_wg_dist = 1e-6;
mode_width = 3*wg_width;
total_wg_h = num_wg*wg_width + (num_wg-1)*out_wg_dist;opt_size_x=6e-6;
opt_size_y=6e-6;size_x=opt_size_x+1e-6;
size_y=opt_size_y+1e-6;wg_index = 2.8;
bg_index = 1.44;dx = 20e-9;addrect;
set('name','input wg');
set('x min',-size_x);
set('x max',-opt_size_x/2 + 5e-7);
set('y',0);
set('y span',wg_width);
set('z span',220e-9);
set('index',wg_index);for( i=1:num_wg ) {addrect;set('name','output wg '+num2str(i));set('x min',opt_size_x/2 - 5e-7);set('x max',size_x);set('y',-total_wg_h/2 + (wg_width/2) + (i-1)*(out_wg_dist+wg_width));set('y span',wg_width);set('z span',220e-9);set('index',wg_index);
}addmode;
set('direction','Forward');
set('injection axis','x-axis');
set('y',0);
set('y span',mode_width);
set('x',-size_x/2+0.2e-6);
set('center wavelength',1550e-9);
set('wavelength span',0);
set('mode selection','fundamental TE mode');addfdtd;
set('dimension','2D');
set('index',bg_index);
set('mesh accuracy',3);
set('x min',-size_x/2);
set('x max',size_x/2);
set('y min',-size_y/2);
set('y max',size_y/2);
set('auto shutoff min',1e-6);
set('simulation time',5000e-15);addpower;
set('name','opt_fields');
set('monitor type','2D Z-normal');
set('x',0);
set('x span',opt_size_x);
set('y min',-opt_size_y/2);
set('y max',opt_size_y/2);for( i=1:num_wg ) { addpower;set('name','fom_'+num2str(i));set('monitor type','2D X-normal');set('x', size_x/2-0.2e-6);set('y',-total_wg_h/2 + (wg_width/2) + (i-1)*(out_wg_dist+wg_width));set('y span',mode_width);addmesh;set('name','fom_'+num2str(i)+'_mesh');set('override x mesh',true);set('dx',dx);set('override y mesh',false);set('override z mesh',false);set('x', size_x/2-0.2e-6);set('x span',2*dx);set('y',-total_wg_h/2 + (wg_width/2) + (i-1)*(out_wg_dist+wg_width));set('y span',mode_width);
}   ## Global index monitor for visualization (export to VTK)
addindex;
set('name','global_index');
set('x min',-size_x/2);
set('x max',size_x/2);
set('y min',-size_y/2);
set('y max',size_y/2);## Optional: Naive design which can be used as initial guess
addstructuregroup;
set("name","initial_guess");
for( i=1:num_wg ) { 
addwaveguide;
set("name","bend"+num2str(i));
set("base width",500e-9);
set("base height",240e-9);
set("base angle",90);
poles = [-opt_size_x/2,0;0,0;0,-total_wg_h/2 + (wg_width/2) + (i-1)*(out_wg_dist+wg_width);opt_size_x/2,-total_wg_h/2 + (wg_width/2) + (i-1)*(out_wg_dist+wg_width)];
set("poles",poles);
set("index",wg_index);
addtogroup("initial_guess");
}

二、 优化算法

######## IMPORTS ########
# General purpose imports
import os
import sys
import numpy as np# Optimization specific imports
from lumopt import CONFIG
from lumopt.ge

相关文章:

  • 8.2 段落格式
  • 一文了解 模型上下文协议(MCP)
  • 数据库Mysql学习——day7(多表查询(JOIN)进阶)
  • 检测图片指定多个位子像素坐标与目标比较。外部图像识别。如红色,黄色,绿色。。。
  • HTML 从标签到动态效果的基础
  • [计算机科学#4]:二进制如何塑造数字世界(0和1的力量)
  • JAVA:线程池
  • H3C华三:单臂路由配置
  • 用Postman验证IAM Token的实际操作
  • 2025年五一数学建模竞赛AI辅助全网专业性第一
  • 网络安全入门综述
  • 乐理学习笔记(一)---节拍与音符
  • Python依据卫星TLE轨道根数,计算可见时间窗口
  • CMake:设置编译C++的版本
  • 卧式五轴加工中心市场报告:智能制造浪潮下的机遇与挑战
  • 国内外都有哪些医药医学方面的指南检索数据库?
  • 基于强化学习的用于非刚性图像配准的引导式超声采集|文献速递-深度学习医疗AI最新文献
  • 前端性能优化(实践篇)
  • 简单了解跨域问题
  • JAVA中Spring全局异常处理@ControllerAdvice解析
  • 监狱法修订草案提请全国人大常委会会议审议
  • 国家发改委回应美加征关税:典型的单边主义霸凌做法
  • 加拿大驾车撞人事件遇难人数升到11人
  • 十四届全国人大常委会第十五次会议在京举行,审议民营经济促进法草案等
  • 伊朗国防部发言人:发生爆炸的港口无进出口军用物资
  • 加拿大温哥华一车辆冲撞人群,造成多人伤亡