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

逆向设计——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
http://www.xdnf.cn/news/2811.html

相关文章:

  • 10.Excel:快速定位目标值
  • QT—布局管理器之BoxLayout篇
  • 【Java ee初阶】多线程(4)
  • 培养一个输出型的爱好
  • Profinet 从站转 EtherNet/IP 从站网关
  • MATLAB实现神经网络的OCR识别
  • 爬虫学习笔记(三)--Http协议
  • CSS元素动画篇:基于页面位置的变换动画
  • leetcode 19. 删除链表的倒数第 N 个结点
  • [多彩数据结构] 笛卡尔树
  • 智能Python开发工具PyCharm v2025.1——AI层级功能重磅升级
  • Ajax 提交表单与文件上传
  • Windows 图形显示驱动-待机休眠优化
  • 升级Xcode16,flutter项目报错
  • 浏览器插件,提示:此扩展程序未遵循 Chrome 扩展程序的最佳实践,因此已无法再使用
  • jeecgboot 3.8.0 集成knife4j问题一文解决
  • MCP:如何通过模型控制推理助力AI模型实现“深度思考”?
  • 机器视觉的坐标标定
  • Python分支结构全面解析与实战应用指南
  • opendds编译开发(c#封装)
  • Android WebRTC回声消除
  • 具身智能:从理论突破到场景落地的全解析
  • 小目标检测的集成融合论文阅读
  • 项目实战-贪吃蛇大作战【补档】
  • 快速搭建对象存储服务 - Minio,并解决临时地址暴露ip、短链接请求改变浏览器地址等问题
  • 对比N+1查询和关联聚合查询
  • Spring Cloud Config 自定义配置源与动态刷新:从原理到企业级实践
  • Kafka 配置参数性能调优建议
  • 31、简要描述Promise.all的用途
  • 在 Ubuntu 22.04 x64 系统安装/卸载 1Panel 面板