以下我們使用一個很簡單的共振器范例模型進行功能示范
此范例將會示范如何使用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中留待以后使用。這些宏指令列將不需縮排。但使用縮排將會使這些指令更容易閱讀。 |