【DDSCAT——离散偶极近似仿真程序03】近场计算及其呈现
这一部分,我们在上一部分的基础上,加上近场计算,同时改变参数计算多个波长下的消光值。
一、添加近场计算
这次我们选择RCTGLPRSM_NEARFIELD示例,根据文件夹的名称就可知,和RCTGLPRSM不同的是此示例增加了近场计算。
看文件夹中的内容发现,除了我们考进来的ddscat.exe和ddpostprocess.exe之外,和RCTGLPRSM相比,多了几个ddpostprocess开头的文件,这些文件和近场计算的结果相关,我们后面再讲。
现在,我们打开ddscat.par文件,发现和RCTGLPRSM中该文件的唯一不同的地方就是,NRFLD的值为1,说明改项目需要进行近场计算。
二、多个波长计算
如上图,想要在一次程序运行中进行多个入射波长下的消光计算,需要改变第27行wavelengths的参数。
0.4000和0.6000表示第一和和最后一个波长,10表示在这个范围内我们总共设置十个波长,'LIN'表示这十个波长在规定范围内是成线性分布的。结果就是我们设置了在一次程序中,同时计算了在波长分别为0.4000 0.4222 0.4444 0.4667 0.4889 0.5111 0.5333 0.5556 0.5778 0.6000下的消光值。wavelengths后括号中的INV和LOG表示波长的跨度变化呈倒数和指数增长。
三、程序运行结果
运行完成之后,项目文件夹里又多出了很多文件,其中,以.E1结尾的,就是我们想要的近场文件。稍后我们用软件来可视化这些近场计算结果。
仔细观察,会发现这些相同类型的文件,总共有十个,分别为从以w000r000开头的文件到以w009r009开头的文件。这就是我们设置了一次计算十个波长的结果。
现在我们看qtable里面的内容。
总共产生了十组数据。将这些数据用Origin等作图软件进行分析可以研究消光值在不同波长下的变化,如下图。
四、结果文件后处理
在可视化之前,我们需要对于w000r000k000.E1等以.E1结尾的近场文件进行后处理,处理之后才能产生可以用来可视化的文件。后处理的过程是,先配置后处理文件ddpostprocess.par,然后运行ddpostprocess.exe程序(这和我们前面运行ddscat.exe的方式是一样的,现在可以知道,DDSCAT的运行方式都是先配置参数文件,然后再运行对应的程序了)。
现在,我们可以打开本文一开始提到的ddpostprocess.par文件,进行一番参数设置。
我们一行一行看。
line1 设置选择需要被进行处理的近场文件
line2 设置后处理后产生的vtr文件名(这个命名结尾会自动追加一个_number)
line3 设置后处理之后是否生成用来可视化的vtr文件,1为生成,0为不生成
line4 设置后处理是需要得出一条线路上的近场值
line5 设置后处理近场值一条线的起止点和需要计算的点的个数(XA,YA,XA和XB,YB,ZB分别表示该线路上的起点和终点,NAB表示这条线路上总共的近场点个数)
ddpostprocess.par文件中主要有两个参数的设定,即IVTR和ILINE,分别表示是否产生vtr文件和单条线路上的近场值文件ddpostprocess.out。
我们就使用默认的配置,即IVTR和ILINE都设置为1,然后直接运行ddpostprocess.exe,程序运行结束产生了一些以ddpostprocess.out开头和以VTRoutput开头的文件。
我们先看简单一点的ddpostprocess.out文件,如下图,其中的一系列的结果就是我们在ddpostprocess.par中设定的从点-0.2 0.0 0.0到点0.1 0.0 0.0总共301个点的消光值。
接下来,是本篇的重点,如何使用VTRoutput_1.vtr文件。
五、使用Vislt呈现近场结果。
首先在Vislt的官网上下载软件(https://wci.llnl.gov/simulation/computer-codes/visit/executables,点击链接将页面往下拉就能看见不同系统的Vislt版本),安装也非常简单。安装成功后,我们开始添加VTRoutput_1.vtr文件。
第一步。点击左窗口的Open选项,会弹出一个添加文件子窗口,然后我们在子窗口的目录中找到我们项目的文件夹(这个软件对中文路径的显示会是乱码,所以大家尽量不要使用中文路径,怕你们找不到项目路径),并选择VTRoutput_1.vtr文件,点击OK。
第二步。点击Add,并选择Pseudocolor->Insensity,表示添加伪彩强度图。
第三步。点击Draw就可以将场强图在右侧窗口中“画”出来。
第四步。鼠标点住场强图,拖动一下,你会发现它是一个立体的场强模型。所以,你可以靠鼠标拉拽,产看各各面上的近场效果。
第五步。右键Intensity(在这里说明一下,如果你之前选择了64位的ddscat.exe运行程序进行近场计算,这里就不会出现Intensity,这可能是DDSCAT的一个bug),会弹出一些选项,我们选择Operators->Slicing->Slice,可以查看模型某个切面上的近场情况。
同样,点击Draw之后出现下图的切面场强图。
双击Slicing之后,会有一个子窗口弹出,可以对切面的方向和位置进行选择。Orthogonal为正交选择三个维度上的方向,而Arbitrary和Theta-Phi可以让我们自己选择位置和角度。
你还可以选择ThreeSlicing,即同时又三个方向上的切面场强图。
再补充一点,没有添加Slicing或者其他Operators之前,双击Pseudocolor - Intensity,也会又一个子窗口弹出。我们勾选Mininum和Maxinum可以调整ColorBar的最大值最小值,这样做多个不同近场图时可以统一ColorBar。
至此,我们介绍完了对近场文件的后处理和用Vislt软件对近场图的呈现。