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

FDTD_3 d mie_仿真

空心球的太复杂了);直接加不久仿真出来了嘛;

###########################################################################

# Scriptfile: mie_analysis_3d.lsf

#

# Description:

# This file shows how to use analysis groups in mie_example_3d.fsp to do 4

# types of analyses for 3D Mie scattering

# 1) The far field angular scattering in the x-y, x-z and y-z planes

#x-y, x-z和y-z平面的远场角散射

# 2) The far field XY half space (Note: This calculation can be time consuming)

#远场XY半空间(注意:这个计算可能会很耗时)

# 3) The absorption/scattering cross section

#吸收/散射截面

# 4) The field enhancement calculation

#场增强计算电场

# Copyright 2018, Lumerical Solutions, Inc.

###########################################################################

#判断仿真run,若没有,执行run

if(getresult("FDTD","status")==0) { # Run the simulation if it is in layout mode

run;

}

# Choose which of the 4 possible analyses you want to do从4个可能的分析中选择你想做的

#polar:极坐标散射相位;半区间(halfspace),截面,场增强

#,一个总开关,if判断

do_polar_plot = true; # true to perform the test and false to skip

do_halfspace = false; # true to perform the test and false to skip

do_cross_sections = true; # true to perform the test and false to skip

do_field_enhancement = true; # true to perform the test and false to skip

# Define target wavelength used for polar plot and field enhancement when enabled:

#定义用于极性图极坐标和场增强的目标波长。

target_wavelength = 0.5e-6;

# Define the resolution for the far field plots远场图的分辨率

polar_plot_res = 51;

halfspace_res = 31; # this number will significantly affect the time to run this analysis

# Far field polar plot and halfspace远场极坐标图和半场

setnamed("scat_ff", "target wavelength", target_wavelength);#目标波长

#总开关,用if

if(do_polar_plot & do_halfspace ) {

?" Calculating far field angular distribution and halfspace";

?" NOTE: This calculation takes time!!";

setnamed("scat_ff", "do polar plot",0);#这的0(不开启)和1(开启)

setnamed("scat_ff", "do halfspace",1);

setnamed("scat_ff", "halfspace res", halfspace_res);

setnamed("scat_ff", "polar plot res", polar_plot_res);

runanalysis("scat_ff");

?" Calculation done!";

}else{

if(do_polar_plot) {

?" Calculating far field angular distribution";

setnamed("scat_ff", "do polar plot",0);

setnamed("scat_ff", "do halfspace",0);

setnamed("scat_ff", "halfspace res", halfspace_res);

setnamed("scat_ff", "polar plot res", polar_plot_res);

runanalysis("scat_ff");

}

if(do_halfspace) { # only for 3D simulation

?" Calculating far field halfspace";#远场半距

?" NOTE: This calculation takes time!!";

setnamed("scat_ff", "do polar plot",0);

setnamed("scat_ff", "do halfspace",1);

setnamed("scat_ff", "halfspace res", halfspace_res);

setnamed("scat_ff", "polar plot res", polar_plot_res);

runanalysis("scat_ff");

?" Calculation done!";

}

}

#开始判断,然后作图

if(do_polar_plot) {

XY = getresult("scat_ff","XY");

f1 = getnamed("mie_source","frequency start");

f2 = getnamed("mie_source","frequency stop");

n2 = getfdtdindex("Au (Gold) - Johnson and Christy Copy 1",XY.f,f1,f2);#设定了材料

n1 = getnamed("FDTD","background index");

m = n2/n1;

r = getnamed("sphere","radius"); # the radius of the mie particle粒子半径

size_parameter = 2*pi*r/XY.lambda * n1;#周长/波长*n1背景折射率

phi = XY.phi;

theta = 90*pi/180;

S = mie3ds12(cos(theta),m,size_parameter);

k = meshgridy(phi,2*pi/XY.lambda * n1);

phi = meshgridx(phi,2*pi/XY.lambda * n1);

R = 1;

fpoint = find(XY.lambda,target_wavelength);

Etheta = exp(1i*k*R)/(-1i*k*R)*cos(phi)*meshgridy(XY.phi,S.S2);

Ephi = exp(1i*k*R)/(1i*k*R)*sin(phi)*meshgridy(XY.phi,S.S1);

polar(XY.phi,pinch(XY.E2,2,fpoint),pinch(abs(Etheta)^2+abs(Ephi)^2,2,fpoint),"","","XY");

plot(XY.phi,pinch(XY.E2,2,fpoint),pinch(abs(Etheta)^2+abs(Ephi)^2,2,fpoint),"","","XY");

这段代码是在FDTD(有限差分时间域)仿真环境中对Mie散射情况进行计算和可视化的一部分。以下是对每个部分的解释:

XY = getresult("scat_ff","XY"); 这行获取了名为“scat_ff”的结果数据集,其中包含XY坐标的数据。

f1 = getnamed("mie_source","frequency start"); f2 = getnamed("mie_source","frequency stop"); 获取Mie源频率范围的开始和结束点。

n2 = getfdtdindex(...); 根据给定的金(Au)的复介电常数(n2),以及从之前的结果得到的波长(frequency)范围,计算出Mie粒子所在区域的相对折射率。

n1 = getnamed("FDTD","background index"); m = n2/n1; 得到背景介质(通常是真空)的折射率,并计算粒子相对背景的折射率比(m)。

r = ...; size_parameter = ...; 计算Mie粒子的大小参数,涉及粒子的半径、波长和背景折射率。

phi = XY.phi; theta = ...; S = mie3ds12(...): 算法可能涉及到Mie散射函数(S)的计算,依赖于角度(φ, θ)。

k = meshgridy(...); phi = meshgridx(...); R = 1; 创建网格变量,用于后续的物理量计算。

fpoint = find(...): 寻找目标波长对应的索引位置。

Etheta, Ephi = ...: 计算θ和φ方向上的场强分布。

polar(...,"XY"): 最后,使用polar函数进行二维极坐标表示,显示目标波长处的极化强度分布图,参数包括φ轴的数据、极化强度及坐标轴标签。

http://www.xdnf.cn/news/1464373.html

相关文章:

  • 计算机毕设选题:基于Python数据挖掘的高考志愿推荐系统
  • AI+消费,阿里的新故事很性感
  • 新后端漏洞(上)- Aapache Tomcat AJP 文件包含漏洞(CVE-2020-1938)
  • sub3G、sub6G和LB、MB、HB、MHB、LMHB、UHB之间的区别和联系
  • STM32——WDG看门狗
  • Typer 命令行工具使用示例
  • SQL Server全链路安全防护
  • 【Python】QT(PySide2、PyQt5):点击不同按钮显示不同页面
  • 中天互联:AI 重塑制造,解锁智能生产新效能​
  • [网鼎杯 2020 青龙组]AreUSerialz
  • Excel数据导出小记二: [大数据示例]
  • JP4-7-MyLesson后台前端(一)
  • yolov8部署在一台无显卡的电脑上,实时性强方案
  • 【分享】基于百度脑图,并使用Vue二次开发的用例脑图编辑器组件
  • 探讨Xsens在人形机器人研发中的四个核心应用
  • 产线相机问题分析思路
  • 基于单片机的六足机器人控制系统设计
  • HTML文本格式化标签
  • 嵌入式解谜日志—多路I/O复用
  • AI日报 - 2025年09月05日
  • 专题:2025电力行业5G工厂及绿色转型、市场机制研究报告|附100+份报告PDF、数据仪表盘汇总下载
  • Ubuntu22.04-ROS2下navgation2编译到运行
  • 机器学习入门,用Lima在macOS免费搭建Docker环境,彻底解决镜像与收费难题!
  • 基于muduo库的图床云共享存储项目(五)
  • webshell及冰蝎双击无法打开?
  • 如何将视频从 iPhone 转移到 Mac
  • 开学信息收集不再愁,这个工具太省心
  • JavaEE---7.文件操作和IO
  • The Algorithmic Foundations of Differential Privacy - 3(2)
  • Windows Server2012 R2 安装.NET Framework 3.5