GprMax2D 激勵和輸出命令

2021-09-19 12:21:42 字數 3947 閱讀 8212

#analysis:

#end_analysis:

#tx:

#rx:

#rx_box:

#snapshot:

#tx_steps:

#rx_steps:

#line_source:

#excitation_file:

從gprmax2d 2.0版開始,在開始分析之前,我們需要使用命令指定至少乙個源的特性

#line_source:f1 f2 str1 str2

其中f1和f2分別是線源電流的安培幅度和源激勵波形的赫茲頻率。引數str1控制激勵波形的型別。str1的可用選項是:

引數str2是使用者提供的id,隨後將用於將該源的規範與其在模型中的應用點相關聯。

例如,#line_source:1.0 600e6 ricker mysource

指定具有id mysource並且頻率為600 mhz 的線源,其具有ricker小波的波形,幅度為1.要使用該線源,之後僅僅需要其id(mysource)就可以了。

如果已選擇user型別,則命令

#excitation_file:str1

需要包含在模型中。命令#excitation_file:允許使用者指定單個ascii檔案,其中包含可用於激發模型的振幅值列表。這些值必須至少等於將要執行的迭代次數。如果它們小於此數字,則將零值替換為缺失值。如果指定的值多於所需的值,則它們是多餘的並被忽略。例如,命令

#excitation_file:mysource.dat

將讀取檔案mysource.dat中的值,該檔案可用於代替通過使用gprmax的內建激勵函式之一獲得的值來描述模型中源的脈衝形狀。

在引入源型別之後,在gprmax2d中放置源和輸出點是使用一對新命令#analysis:和#end_analysis:完成的,源命令#tx:和接收器命令#rx:/或#rx_box:放在這兩個命令之間。

#analysis命令的語法是

#analysis:i1 file1 c1

引數i1是模型的新執行次數。這類似於舊#scan命令中的掃瞄次數,這意味著對於每個i1,模型將在重新設定所有陣列和時間為零之後再次執行。引數file1是將要儲存此#analysis的所有結果的檔案的名稱,引數c1是單個字元a或b,分別表示輸出檔案(file1)的格式為ascii或是binary。使用#analysis:命令啟動分析部分。

重要的是遵循#analysis:命令 - 在插入其他源和輸出控制命令之後 - 執行以下命令

#end_analysis:

表示分析部分的結束。該#end_analysis:命令有沒有引數。在您的輸入檔案中,可以有任意數量的#analysis:和#end_analysis:命令對。

命令#tx:,#rx:和#rx_box:一起使用以引入源位置(#tx :)和輸出點(#rx:和#rx_box :)。

可以在模型中指定任意數量的#tx:命令以及任何數量的#rx:和#rx_box:命令。

#tx:命令的新語法是:

#tx:f1 f2 str1 f3 f4

引數f1和f2是模型中源的座標(x,y),以公尺為單位。引數str1是在使用源描述命令(即#line_source :)之前指定的源id 。引數f3是源啟動的延遲。如果它大於零,那麼在經過該時間延遲之後,源將處於活動狀態。引數f4是源移除的時間。如果模擬執行的時間超過源的移除時間,則源將在f4秒後停止在模型中執行。如果源移除時間長於模擬時間視窗,源對於完整模擬是活動狀態的,而且使用的是時間視窗值。

#rx:命令的語法是:

#rx:f1 f2

引數f1和f2是輸出(接收器)點的座標(x,y),以公尺為單位。#rx_box:命令的語法是:

#rx_box:f1 f2 f3 f4 f5 f6

引數f1和f2是輸出區域的右下座標(x,y)。f3和f4是輸出區域的右上座標(x,y),最後f5和f6是定義在每個方向上輸出的點的數目的步長。最小值f5是δ x,f6是δ y

例如,使用命令:

#analysis:1 test1.out a

#tx:0.5 0.5 mysource 0.0 10e-9

#rx:0.5 0.7

#rx:0.5 0.8

#rx:0.6 0.5

#rx_box:0.3 0.3 0.5 0.5 0.01 0.01

#end_analysis:

gprmax2d將執行一次模型。只有乙個源點位於(0.5,0.5),並且將使用id mysource的激勵- 應該在檔案的前面指定。源從時間0.0開始有效,直到模擬時間為10納秒,這可能是所請求時間視窗的結束或早於此時間視窗。

輸出將以ascii格式儲存在檔案test1.out中。在(0.5,0.7),(0.5,0.8)和(0.6,0.5)處的三個#rx:命令指定的點,他們的電磁場時間演變將儲存在輸出檔案中。除了使用#rx:命令定義的三個點之外,輸出也將在#rx_box:命令定義的點處定義

如果#analysis:命令的i1大於1,模型將再次執行以計算當前分析中的新步驟。

為了使其有意義,我們需要包括兩個或至少乙個命令

#tx_steps:

#rx_steps:

它將分別通過定義為上述命令引數的增量來提公升#tx:和#rx:命令的座標。#tx_steps:的定義是

#tx_steps:f1 f2

其中引數f1和f2是使用#tx:命令指定的所有源的x和y座標的增量(公尺)。同樣,命令#rx_steps:定義為:

#rx_steps:f1 f2

其中引數f1和f2是使用#rx:命令指定的所有接收器的x和y座標的增量(公尺):

例如,以下語句

#analysis:10 test1.out a

#tx:0.5 0.5 mysource 0.0 10e-9

#rx:0.6 0.5

#tx_steps:0.01 0.0

#rx_steps:0.01 0.0

#end_analysis:

將允許模擬10個gpr跡線。該#tx:用於所述第一跡線是在(0 .5 ,0 .5),#rx:在(0 .6 ,0 .5)。發射器和接收器的x方向以0.01的步長收集剩餘的痕跡。重要說明:使用#rx_box:命令指定的任何輸出點(即接收器)的座標不會使用#rx_steps:命令進行更新,並且在整個分析過程中保持與輸入檔案中定義的相同。

最後乙個命令 - 在下面描述 - 可以在一對#analysis和#end_analysis:命令之間插入——#snapshot命令:

為了在給定時刻獲得有關模型區域內電磁場的資訊,可以使用#snapshot:命令。該命令的語法是:

#snapshot:i1 f1 f2 f3 f4 f5 f6 f7 file1 c1

或#snapshot:i1 f1 f2 f3 f4 f5 f6 i2 file1 c1

該命令的引數是:

i1是乙個稱為全域性源位置的計數器,用於確定應該為其拍攝快照的源位置。全域性源位置的值介於1和#analysis:命令中定義為第乙個引數的步數之間。

f1 f2是快照的矩形區域的左下(x,y)座標,以公尺為單位

f3 f4是快照的矩形區域的右上(x,y)座標,以公尺為單位

f5 f6分別是x和y方向上的以公尺為單位的取樣間隔

f7 或 i2 分別是以秒為單位的快照時間(浮點數)或迭代次數(整數),表示拍攝快照的時間點

file1 是要儲存快照的檔案的檔名

如果快照檔案的格式分別為ascii或binary,則 c1 可以是 a 或 b 。例如命令:

#analysis:10 test1.out a

#tx:0.5 0.5 mysource 0.0 10e-9

#rx:0.6 0.5

#snapshot:5 0.0 0.0 1.0 1.0 0.1 0.1 3e-9 snap1.out b

#tx_steps:0.01 0.0

#rx_steps:0.01 0.0

#end_analysis:

當模型計算第五個 gpr跡線時,將允許在3納秒內獲得模型中電磁場的快照。

2D縮放和3D位移

2d 平面空間的元素變形。變形屬性 transform transform的屬性值為功能函式。2d功能函式 2d的位移 2d的旋 2d的縮放 2d的傾斜 transform translate x,y 位移 transform translatex x軸移動的距離 transform transla...

(譯)使用cocos2d和box2d製作滾動背景

前言 這次我要翻譯的兩篇教程,其實和大家比較關心的 超級瑪利 有關,就是如何使用cocos2d和box2d製作乙個帶有滾動背景的platform遊戲。但是,這兩篇教程並沒有教大家如何製作超級瑪利。但是,一些關鍵技術點還是有涉及到。相信看完這兩篇文章,應該能對大家有所啟發。如果哪位朋友有空,能利用本教...

jsoi2015R2D2和R3D1測試總結

傳送門 然而並沒有.這兩天測試狀態比較奇怪,前面1.5h 2h完全不知所措,一臉茫然,感覺自己吃棗藥丸 後面才發現有很多題可捉的,並沒有想象的那麼難,但是時間已經不充裕了.r2d2 t1 不知所措數學題 一開始總想著有什麼dp可以拿一些部分分 然而連30分dp都不會.咦,好像有大樣例 那就找一發規律...