老司机午夜精品_国产精品高清免费在线_99热点高清无码中文字幕_在线观看国产成人AV天堂_中文字幕国产91

切換到寬版
  • 廣告投放
  • 稿件投遞
  • 繁體中文
    • 451閱讀
    • 0回復(fù)

    [技術(shù)]GLAD 5.0功能介紹 [復(fù)制鏈接]

    上一主題 下一主題
    離線infotek
     
    發(fā)帖
    5280
    光幣
    20640
    光券
    0
    只看樓主 倒序閱讀 樓主  發(fā)表于: 2023-06-26

    以下我們使用一個很簡單的共振器范例模型進行功能示范

    此范例將會示范如何使用GLAD。我們將使用resonator.inp這個檔案示范共振器。即使使用者對共振器不感興趣,這個范例也將會展示在GALD中解決問題的幾個重要步驟:

     初始化計算機數(shù)組及單位

     選擇波長

     定義初始分布

     使用宏進行重復(fù)運算

     建立數(shù)據(jù)顯示計算結(jié)果

    此共振器將使用半對稱的結(jié)構(gòu)進行計算,由半徑50cm的球面鏡及平面鏡所組成。共振器的長度為46cm。輸出將由平面鏡輸出。下表1顯示其結(jié)構(gòu)參數(shù)

    圖1-穩(wěn)定的共振器結(jié)構(gòu)。其光腰將會在平面鏡上形成,及其相曲率將與曲面鏡的理想模態(tài)曲率相同

    為了簡化討論,我們將忽略增益及形成bare-cavity分析。我們開始分析從準備一個命令檔案如下:

    variab/dec/int pass

    macro/def reson/o

    pass = pass + 1 # increment pass counter

    prop 45 # propagate 45 cm.

    mirror/sph 1 -50 # mirror of 50 cm. radius

    clap/c/n 1 .14 # .14 cm. radius aperture

    prop 45 # propagate 45 cm. along beam

    mirror/flat 1 # flat mirror

    variab/set Energy 1 energy # set variable to energy value

    Energy = Energy - 1 # calculate energy difference

    udata/set pass pass Energy # store energy differences

    energy/norm 1 1 # renormalize energy

    plot/l 1 xrad=.15 # make a plot at each pass

    macro/end

    array/set 1 64 # set array size

    wavelength/set 0 1.064 # set wavelengths

    units/set 1 .005 # set .005 cm sample spacing

    resonator/name reson # set name of resonator macro

    resonator/eigen/test 1 # find resonator properties

    resonator/eigen/set 1 # set surrogate beam to eigen mode

    clear 1 0 # clear the array

    noise 1 1 # start from noise

    energy/norm 1 1 # normalize energy

    pass = 0 # initialize pass counter

    reson/run 100 # run resonator 100 times

    title Energy loss per pass

    plot/watch plot1.plt # set plot name

    plot/udata min=-.05 max=.0 # plot summary of eigenvalues

    title diffraction mode shape

    set/density 32 # set plot grid to 32 x 32

    set/window/abs -.05 .05 -.05 .05 # set plot window

    plot/watch plot2.plt # set plot name

    plot/iso 1 # make an isometric plot

    以下就對每一項指令來做介紹:

    variab/dec/int pass

    此行定義一整數(shù)變量叫pass。我們將使用pass來儲存數(shù)據(jù),變量如果不清楚的定義為整數(shù),將會被定義為實數(shù)變量。

    macro/def reson/o

    此行開始定義宏,就像是子程序或函式一樣。所有介于macro/def與macro/end之間的指令都將定義為宏。這些指令暫時不會被執(zhí)行。這些指令列將被放在MACLIB中留待以后使用。這些宏指令列將不需縮排。但使用縮排將會使這些指令更容易閱讀。

    pass = pass + 1 # increment pass counter

    此行將pass變數(shù)加一。這是一個簡單的數(shù)學(xué)式。我們使用pass來計算執(zhí)行宏的次數(shù)。#字符表示其后的字為批注。當我們在下指令時使用批注是很重要的一件事。prop 45 # propagate 45 cm.

    此行表示繞射傳播45cm。繞射傳播的計算花費最多的時間。但是,對現(xiàn)代的計算機而言64X64的矩陣運算只是很短的時間而已。

    此45cm的傳播距離是將光線由左邊的平面鏡,傳播至右邊的曲面鏡如圖一。mirror/sph 1 -50 # mirror of 50 cm. radius

    此行為設(shè)定球面鏡為曲率50cm!1”表示設(shè)為鏡面對光束 1作用。光束最多可達40道,但只有一道用在此一分析中。在指令中的負號表示為一凹面鏡。此凹面鏡使光線收斂并將光線反向。

    clap/c/n 1 .14 # .14 cm. radius aperture

    此一指令建立一圓形的0.14的孔徑對光束1作用?讖绞欠浅V匾脑诠舱衿髦校罅康臏p少了散射光線。并且,孔徑將光束減為剩下最少的模態(tài)。prop 45 # propagate 45 cm. along beam

    此為第二次傳播將光束由右邊的球面鏡向左傳播回平面鏡。

    mirror/flat 1 # flat mirror

    建立一平面鏡在左邊針對光束1。對bare-cavity共振器分析,光束只是直接反射回右邊。在真實的雷射中,鏡面將會是部份反射讓光束傳播出去。variab/set Energy 1 energy

    變數(shù)Energy設(shè)為光束1的總能量(真實能量)。我們沒有將其定義為實數(shù)變量,但在GLAD中將會自動設(shè)為實數(shù)變量。

    Energy = Energy - 1 # calculate energy difference

    此算式將能量減1計算每次傳遞所損失的能量。udata/set pass pass Energy # store energy differences

    此處使用udata這個指令將Energy數(shù)據(jù)存入數(shù)組中,使用兩個pass變量,分別為數(shù)組的橫坐標及縱坐標。

    energy/norm 1 1 # renormalize energy

    此行將共振器中的能量歸一化。在真實的雷射中,能量被孔徑及其它效應(yīng)所損失,以及被其它放大器的能量增幅,在穩(wěn)定態(tài)時所平衡。在bare-cavity分析中,就像我們在這里所做的,我們模擬擬穩(wěn)定態(tài)增益簡化為將增益值做再歸一化,在每次傳播的最后。plot/l 1 xrad=.14 # make a plot at each pass

    畫出空腔分布使用等比例的繪圖顯示模態(tài)形式對時間的關(guān)系圖。

    macro/end

    結(jié)束宏定義array/set 1 64 # set array size

    此指令是定義Beam 1為64 x 64的矩陣。此數(shù)據(jù)為計算的主體,任何尺寸的矩陣都可以被定義。對一個小型的穩(wěn)定空腔共振器而言,一個小的矩陣已經(jīng)足夠準確,因為只有低階模態(tài)是最重要的。

    wavelength/set 0 1.064 # set wavelengths

    設(shè)定Beam 1 的波長為1.06μmunits/set 1 .005 # set array size

    此行定義數(shù)組的尺寸為0.005 cm,所以64 x 64的數(shù)組大小為0.32 cm

    resonator/name reson # set name of resonator macro

    此行定義共振器的宏名稱為”reson”resonator/eigen/test 1 # find resonator properties

    此行進行共振器的測試,得到其基本特性。GLAD使用此一信息來決定所使用的數(shù)值算法。使用正確的數(shù)值算法是非常重要的,可讓我們在每次的傳遞后得到正確的結(jié)果。光束的強度及相位在每次傳遞后都會改變,但其算法必須保持不變才能得到正確的結(jié)果。

    resonator/eigen/set 1 # initialize surrogate beam

    此處確定光束最初的初級損失模態(tài),藉由此一指令resonator/eigen/set來確定?梢源_定用來計算高斯光束的演算已設(shè)定完成。我們可以變更光線的資料,在下面兩行指令完成后。clear 1 0 # clear the array

    noise 1 1 # start from noise

    第一行設(shè)定整個光線矩陣為零。第二行放入隨機數(shù)噪聲在數(shù)組中,仿真自發(fā)輻射所造成的噪聲影響。

    大部份的雷射都從自發(fā)輻射開始,所以此一設(shè)定更增加了真實性,而不是簡單的平面波而已。當然,穩(wěn)定態(tài)的解不會因為我們的初始條件而有所影響。

    energy/norm 1 1 # normalize energy

    此行調(diào)整光線的強度,不需要改變其外形,所以其總能量將會是歸一化的。我們將會量測能量在每次傳遞后并減1,此一差異將表示出能量的損失。

    pass = 0 # initialize variable

    將pass這個變數(shù)設(shè)為0reson/run 100

    執(zhí)行reson此一宏100次,有時候我們會需要執(zhí)行超過100次或少于100次的執(zhí)行得到穩(wěn)定

    的效能。

    title Energy loss per pass

    定義下式繪圖所使用的標題plot/watch plot1.plt # set plot name

    此指令建立繪圖文件名稱。繪圖數(shù)據(jù)將會儲存在此一檔案中。Watch程序會自動的顯示繪圖數(shù)據(jù)并自動更新數(shù)據(jù),當新的繪圖數(shù)據(jù)建立在同一個文件名稱中。Watch將會針對不同的文件名稱建立不同的繪圖窗口?梢宰屛覀兺瑫r觀察到許多圖形。

    plot/udata min=-.05 max=.0

    此行畫出在宏中使用udata/set所收集的數(shù)據(jù)。最小及最大值的定義更有效的顯示出損失。title diffraction mode shape

    此行定義下圖的標題

    set/density 32 # set plot grid to 32 x 32

    set/window/abs -.05 .05 -.05 .05

    第一行定義網(wǎng)格線密度為32x32。第二行定義繪圖寬度為0.05 x 0.05 cm。此指令讓繪圖區(qū)域正好足夠繪出主要的光線部份。plot/watch plot2.plt # set plot name

    此行定義新的繪圖檔案。Watch將會定義新的繪圖窗口給新的檔案。

    plot/iso 1

    此行定義等比例圖顯示共振圖的模態(tài)在100次的傳遞后。因為我們開始于隨機數(shù)噪聲,經(jīng)過100步

    之后并未完全收斂,還有一些低階的Hermite-gaussian模式存在。如果我們執(zhí)行更多步計算,終究會得到期待的穩(wěn)定高斯模態(tài)。執(zhí)行此一檔案只要輸入read/disk resonator.inp就可執(zhí)行剛才輸入的指令

     
    分享到