以下我們使用一個很簡單的共振器范例模型進(jìn)行功能示范 此范例將會示范如何使用GLAD。我們將使用resonator.inp這個檔案示范共振器。即使使用者對共振器不感興趣,這個范例也將會展示在GALD中解決問題的幾個重要步驟: 初始化計算機數(shù)組及單位 選擇波長 定義初始分布 使用宏進(jìn)行重復(fù)運算 建立數(shù)據(jù)顯示計算結(jié)果 此共振器將使用半對稱的結(jié)構(gòu)進(jìn)行計算,由半徑50cm的球面鏡及平面鏡所組成。共振器的長度為46cm。輸出將由平面鏡輸出。下表1顯示其結(jié)構(gòu)參數(shù): 圖1-穩(wěn)定的共振器結(jié)構(gòu)。其光腰將會在平面鏡上形成,及其相曲率將與曲面鏡的理想模態(tài)曲率相同 為了簡化討論,我們將忽略增益及形成bare-cavity分析。我們開始分析從準(zhǔn)備一個命令檔案如下: 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中留待以后使用。這些宏指令列將不需縮排。但使用縮排將會使這些指令更容易閱讀。 |