现在开始考虑物理
模型。通过调用数学表达式中的某些函数来定义和使用这些模型:
- 一些函数定义或修改物理模型的细节。例如,函数 addinputchannel()定义了光纤放大器或激光器的光信道。
- 其他函数用于从模型中获得计算结果。例如,函数 p_out()可用于获得光信道的输出功率。
<w:fR|O 我们将首先讨论函数在定义模型时的使用。
LvA IAknc 定义光纤所有
参数的建议方法是将所有相应的函数调用组合到一个函数中(跨越多行),然后调用该函数。这样,以后可以修改模型的某些参数,并再次调用该函数以设置这些值。
gT+/CVj R 给出了一个简单的例子,其中假设已经定义了各种变量(例如,r_c=纤芯半径,n_dop=掺杂剂浓度等),各种函数的具体细节解释如下:
1R:h$*-z def_model() :=
:?^(&3; begin
AzQ}}A;TSx global allow all;
M,{F/Yu set_fiber(L_f, N_z, gainsystem$);
#".{i+3E add_ring(r_c, N_dop);
+,KuYa{lu pump := addinputchannel(P_p_in, l_p, 'I_p', loss_p, backward);
4t+88e sign := addinputchannel(P_s_in, l_s, 'I_s', loss_s, forward);
#?,cYh+ finish_fiber();
UHg^F4>4 end;
|Y99s)2&N calc def_model()
0GG;o[< 不要忘记最后一行——如果没有它,函数 def_model()将被定义,但不会被执行。
?O3G 稍后可以修改一些参数并再次调用函数 def_model(),以使更改生效。(请注意,仅更改光纤长度 L_f 等变量值是不够的;只有在调用 def_model()时,才会调用这些变量的值并将其放入模型中。)
Ln:
y|t 在 def_model()的定义中,您必须遵守以下规则:
- 首先调用 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()以告诉软件光纤定义已完成。
请注意,所有程序特定的函数都在假设使用基本的国际单位制单位的情况下处理具有尺寸的值。例如,假定光纤长度和
波长以米(而非
纳米)为单位,光功率以瓦特为单位等。
~/.&Z`ls +HcH]D;