【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軟件對近場圖的呈現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章