Grating coupler - Matlab-driven optimization (2D)
Main函数
%添加Lumerical Matlab API
path(path,'C:\Program Files\Lumerical\FDTD\api\matlab'); %将Lumerical API路径添到Matlab;
sim_file_path=('C:\Learning\Matlab Nonlinear optimization'); %用matlab打开的fdtd文件所在的存放位置
sim_file_name=('grating_coupler_2D_Matlab_Optimization.fsp'); %用matlab打开的名为grating_coupler_2D_Matlab_Optimization.fsp的文件
%Open FDTD session
h=appopen('fdtd');
%Pass the path variables to FDTD
appputvar(h,'sim_file_path',sim_file_path); %通过h将Matlab工作空间中的变量sim_file_path作为变量sim_file_path发送到Lumerical的工作空间中
appputvar(h,'sim_file_name',sim_file_name);
%Load the FDTD simulation file and get simulation parameters
code=strcat('cd(sim_file_path);',...
'load(sim_file_name);',...
'select("grating_coupler_2D");',...
'coupler_y_pos=get("y");',... %strcat 水平串联字符串
'coupler_thickness=get("h total");',...
'select("fiber::source");',...
'source_y_pos=get("y");',...
'select("fiber");',...
'fiber_y_pos=get("y");',...
'gap=abs(fiber_y_pos+source_y_pos-coupler_y_pos-coupler_thickness);',...
'select("FDTD");',...
'FDTD_span=get("x span");');
%send the script in 'code' to Lumerical FDTD Solutions
appevalscript(h,code); %在fdtd中执行code命令
%Get variables 'FDT