現在開始考慮物理
模型。通過調用數學表達式中的某些函數來定義和使用這些模型:
- 一些函數定義或修改物理模型的細節(jié)。例如,函數 addinputchannel()定義了光纖放大器或激光器的光信道。
- 其他函數用于從模型中獲得計算結果。例如,函數 p_out()可用于獲得光信道的輸出功率。
\!r,>P 我們將首先討論函數在定義模型時的使用。
P;p20+ 定義光纖所有
參數的建議方法是將所有相應的函數調用組合到一個函數中(跨越多行),然后調用該函數。這樣,以后可以修改模型的某些參數,并再次調用該函數以設置這些值。
E-$N!KY 給出了一個簡單的例子,其中假設已經定義了各種變量(例如,r_c=纖芯半徑,n_dop=摻雜劑濃度等),各種函數的具體細節(jié)解釋如下:
M >s,I^ def_model() :=
w"E.Va begin
D}pNsQ global allow all;
r@H7J 5<Y- set_fiber(L_f, N_z, gainsystem$);
59a7%w add_ring(r_c, N_dop);
+~EFRiP] pump := addinputchannel(P_p_in, l_p, 'I_p', loss_p, backward);
a0B,[i sign := addinputchannel(P_s_in, l_s, 'I_s', loss_s, forward);
9M .cTIO{ finish_fiber();
Q\Nz^~dQ:Y end;
{UOR_Vt!* calc def_model()
9,AHC2kn% 不要忘記最后一行——如果沒有它,函數 def_model()將被定義,但不會被執(zhí)行。
:k oXS 稍后可以修改一些參數并再次調用函數 def_model(),以使更改生效。(請注意,僅更改光纖長度 L_f 等變量值是不夠的;只有在調用 def_model()時,才會調用這些變量的值并將其放入模型中。)
SBG.t: 在 def_model()的定義中,您必須遵守以下規(guī)則:
- 首先調用 set_fiber(),以初始化光纖定義并定義光纖的基本參數。
- 如果強度分布存在方位角依賴性,請調用 set_phi_steps()定義方位角步長。
- 在某些情況下,矩形網格更可取。這可以通過 set_xy_steps(x_min, x_max, dx, y_min,y_max, dy)之類的函數調用來完成,該函數定義了最小和最大x和y值以及步長大小。
- 然后調用 add_ring()定義摻雜劑的徑向結構。
- 然后通過調用函數 addinputchannel()和/或 addASEchannel()定義所有光信道。
- 最后,調用 finish_fiber()以告訴軟件光纖定義已完成。
請注意,所有程序特定的函數都在假設使用基本的國際單位制單位的情況下處理具有尺寸的值。例如,假定光纖長度和
波長以米(而非
納米)為單位,光功率以瓦特為單位等。
u-X P` /y5a~3