RP Fiber Power 光纤激光器及激光器设计软件一脚本语言26 模型特定函数参考

2021-09-14 11:01发布

26模型特定函数参考

尽管这些函数已经在其他各部分中进行了解释,但在这里您可以找到一个参考部分,列出RP Fiber Power的所有模型特定的函数。

26.1定义或修改光纤模型的函数

以下函数可用于定义模型:

l  set_fiber(L_f, N_z,gainsystem$):定义光纤参数,见第脚本语言。

l  set_phi_steps(n):如果强度分布函数并非全部径向对称,则定义方位角步数(最多128步)

l  make_ring():表示假定为环形激光器配置

l  add_ring(r, N_dop):定义具有外半径r的掺杂环。如果掺杂剂浓度不是径向对称的,则可以使用函数set_N_dop()(见下文)。最多可定义30个环。

l  def_ion(IonType$, l1, l2):定义某些类型的激光活性离子的名称和能级

l  set_N_dop(k, r, phi, N):在半径r和方位角phi处定义(或修改)离子类型数k的掺杂浓度(数密度)N。如果phi为负,则为整个环设置掺杂浓度。如果使用矩形网格,坐标r和phi将替换为x和y。

l  def_spont(l1, l2, R):定义了一个自发(辐射或非辐射,但不是光诱导)从能级l1到能级l2的跃迁,具有给定的速率r。

l  def_stim(l1, l2, ’sigma’):定义从能级l1到能级l2的受激(光诱导)跃迁,跃迁横截面函数的名称为sigma()。

l  def_quench(l1, l2, p, Q):定义一个淬火过程,其中发生从能级l1到l2的跃迁,速率为Q乘以起始能级中分数粒子数的平方(对于p=2)或立方体(对于p=3)。Q的单位是m3/s(p=2)或m6/s(p=3)。(有关详细信息,请参阅在线帮助系统。)

l  def_upcon(l1, l2, l3, p,K):定义一个上转换过程,从能级l1中的两个离子开始,其中一个到能级l2,另一个到能级l3。开始能级的消耗率是K乘以开始能级中分数粒子数的平方(对于p=2)或立方(对于p=3)。K的单位为m3/s(p=2)或m6/s(p=3)。离子进入终态能级l2和l3的速率是耗尽起始能级速率的一半。(有关详细信息,请参阅在线帮助系统。)

l  def_transfer(l1, l2, l3,l4, K):定义能量转移过程,其中一个离子从能级l1转移到l2,另一个离子从能级l3转移到l4。K的单位为m3/s。

l  addinputchannel(P_in,lambda, 'I', loss, direction):定义输入信道。给定的强度函数(第三个参数)也可能依赖于r和phi。如果已使用set_n_profile()定义折射率分布,则还可以引用计算模式函数。例如,对于LP01模式,第三个参数可以是'I_lm(0,1)',对于cosφ依赖的LP11模式,可以是'I_lm(1,1,cos)'。

l  addASEchannel(lambda,dlambda, M, 'I(r) ', loss, direction):定义ASE信道。强度函数也可能依赖于r和phi,或者可以与addinputchannel()一样引用计算模式函数。

l  set_R(ch, R1, R2):设置耦合信道的反射率。

l  set_loss_int(channel,li1,li2) :定义局部功率损耗,分别应用于左侧或右侧光纤端面和对应末端镜之间的路径。

l  set_loss_ext(channel, le1,le2) :定义适用于末端镜外部的局部功率损耗。

l  clear_channels():删除所有信道定义,以便从头重新定义信道。

l  finish_fiber():调用以指示模型定义的结尾。

l  checkplausibility():打开或关闭合理性检查。默认情况下,“合理性检查”处于打开状态,您可能希望在处理极端参数值时将其关闭,其中“合理性检查”会生成错误消息。

l  set_lambda(ch, l):修改信道ch的波长(也可以在完成整个光纤定义后修改)

l  set_dlambda(ch, dl):修改ASE信道ch的波长带宽

l  set_loss(ch, l):修改信道ch的寄生损耗

26.2获取计算结果的函数

以下函数可用于获得用模型计算的结果(不包括用于动态仿真、模式求解器和超短脉冲的函数):

l  P(ch, z):光信道在某一位置的功率传播。

l  P_out(ch):信道输出功率,考虑到端面可能的反射。

l  I(ch, z, r, phi):通道ch在纵向位置z、径向位置r和方位角phi处的光强。对于矩形网格,r和phi替换为x和y。如果给定负z值,则计算光功率为1W的光强。

l  sp_gain(ch):信道的内部单通功率增益(以分贝为单位)

l  考虑到光纤的寄生损耗,以及通过函数set_loss_int()和set_loss_ext()定义的额外损耗,但不考虑端面反射率。

l  gs_abs(ch):信道的基态吸收(单位是分贝/米)

l  E_sat(ch):信道饱和能量

请注意,饱和能量是根据具有最高光强的横环段计算的(取每个环的平均光强)。对于这一量级的脉冲能量,必须预料到离子激发的显著变化。

l  NF(ch):信道噪声指数

l  n(z, l):激光活性离子在某一位置z的能级l的分数激发,横向平均。

l  n_tr(z, r, phi, l):在一定的纵向位置z、径向位置r和方位角phi处激光活性离子的能级l的分数激发。对于矩形网格,r和phi替换为x和y。

l  n_av(l):激光活性离子能级l的平均分数激发(纵向和横向整个光纤的平均值)

l  N_dop(k, r, phi):径向位置r和方位角phi处k型离子的掺杂浓度。对于矩形网格,r和phi替换为x和y。

l  E_sat(ch):是某些光信道的饱和能量。

l  set_P_in(ch, P):设置信道的输入功率

l  get_lambda(ch):检索信道ch的波长

26.3模式求解器函数

l  set_n_profile('n_f',r_core)将折射率分布函数与光纤关联。这是模式求解器的基本输入。第二个参数是纤芯半径。软件假设折射率在这个半径之外保持不变。通过再次调用这个函数,可以修改折射率分布。所有模式将根据需要重新计算。

l  ModeExists(l, m, lambda)如果存在相应的模式,则返回1,否则返回0。

l  A_lm(l, m, lambda, r)是波长lambda在半径r处的模式指数l和m的振幅。必须将其与cos(l phi)或 sin(l phi)相乘,才能获得完整的模式函数。该函数(包括方位角因子)经过归一化,使得其平方模量在整个区域(纤芯和包层)上的积分是统一的。

l  A_lm_xy(l, m, lambda, x,y)是笛卡尔坐标x和y位置的振幅,假设cos(l phi)相关。为了获得sin(l phi)依赖性,取 A_lm_xy(-l, m, lambda, x,y)(即负l的值)。还有一个函数A_lm_xy_oam%(l, m, lambda, x, y),提供轨道角动量模式的复振幅(振幅与exp(ilφ)成比例)

l  I_lm(l, m, lambda, r)是1 W光功率的强度。它是A_lm(l, m, lambda, r)的平方模量。它不包括非零l的方位角依赖性;要包括这一点,必须用2 cos(l phi)^2或2 sin(l phi)^2乘以它。

l  I_lm_xy(l, m, lambda, x,y)是笛卡尔坐标x和y位置的强度,假设cos(l phi)依赖于正l, sin(l phi)依赖于负l。

l  A_ff_lm(l, m, lambda, ax,ay)是角坐标ax和ay的远场振幅(以弧度表示,而不是以度表示)。

l  I_ff_lm(l, m, lambda, ax,ay)是角坐标ax和ay的远场强度(以弧度表示,而不是以度表示)。

l  beta_lm(l, m, lambda)计算模式的传播常数,即单位传播距离的相位变化。

l  n_eff_lm(l, m, lambda)计算模式的有效折射率。

l  w_lm_x(l, m, lambda)和w_lm_y(l, m, lambda)分别计算x或y方向具有coslφ依赖性(正l)或sinlφ依赖性(负l)的模式函数的近场模式半径(基于第二个力矩)。

l  w_ff(lambda)根据常用的测量方法,从远场发散计算出基模的模式半径。仅对于近似高斯模式分布,结果与w_lm_x(0, 1, lambda)很好地一致。

l  A_eff_lm(l, m, lambda)计算模式的有效模式面积,定义为

注意,这不是π乘以x和y方向模式半径的乘积。

l  p_core_lm(l, m, lambda) 计算在纤芯内引导的模式功率的分数。

l  v_g_lm(l, m, lambda)计算模式的群速度。

l  n_g_lm(l, m, lambda)计算模式的群折射率。

l  GVD_lm(l, m, lambda)计算模式的群速度色散(以s2/m为单位)。

l  GVD_ps_lm(l, m, lambda)以ps/(nm km)为单位计算模式的群速度色散。

l  NoModes(lambda) 返回模式数,不考虑偏振。例如,对于单模光纤(仅限LP01模式)为1,对于双模光纤(仅限LP01和LP11模式)为2。

l  NoModes_h(lambda)与NoModes(lambda)相似,但它考虑了l不为零的模式的不同方向(coslφ和sinlφ版本)。例如,对于模式为LP01和LP11的光纤为3,因为后者具有coslφ和sin lφ版本。

l  l_max(lambda)返回所有模式最大l值。

l  m_max(lambda) 返回所有模式最大m值。

l  cut_off(l, m) 返回模式的截止波长,即模式存在的波长。

26.4数值光束传播函数

l  bp_set_device(j) 定义一个光束传播设备,该设备以1到100之间的数字作为参考。例如,这个定义以下的函数调用定义网格或光通道,始终引用当前设置的光束传播设备。

l  bp_set_direction(backward) 反转传播方向,bp_set_direction(forward)再次反转传播方向。

l  bp_set_R('R_x(z)', '0') 意味着x方向的曲率半径由先前定义的函数R_x(z)给出,而y方向没有曲率。(无限曲率半径指定为零。)

l  bp_set_grid(x_max, N_x, y_max,N_y, z_max, N_z, N_s) 定义光信道的数字网格。它涵盖了x的范围,从-x_max到+x_max,步长为N_x。步长尺寸为2 x_max/N_x(注意系数2),步数必须是2的幂。类似的规则适用于y方向。z的范围是从0到z_max,N_z步长,因此z步长尺寸是dz=z_max/N_z。每个dz步长数值细分为N_s子步长。(N_s的值也可以在仿真过程中自动更改–请参见函数bp_set_N_s()。

l  bp_set_reflection('x') 仅在x方向设置网格的反射边界。类似地,使用bp_set_reflection('y')或bp_set_reflection('xy')(用于所有边界的反射)。

l  bp_set_reflection('(x /a_x)^2 + (y / a_y)^2 >= 1') (作为网格内边界的示例)定义椭圆反射边界:反射部分是表达式计算为非零值的部分。

l  bp_set_n2('n2(x, y)') 将材料的非线性指数设置为依赖于x和y或径向坐标r的表达式。

l  bp_set_XPM(r) 设置交叉相位调制(XPM)的相对强度。参数的默认值是2,但对于交叉偏振信道,可以使用2/3。

注意:不要将上述函数与适用于超短脉冲传播模型的set_n2()和set_XPM()函数混淆。

l  bp_set_SRS('g_R') 设置拉曼增益系数,该系数可能取决于光学频率差df和径向坐标r,或者取决于x和y。这是考虑受激拉曼散射所必需的。

l  bp_set_SRS_steps(N) 定义受激拉曼散射增加的数值步长尺寸。

l  bp_set_N_dop('Yb','N_dop(x, y)') 定义光纤中激光活性离子的类型,及其浓度(单位为1/m3)作为x和y的函数。

l  bp_set_I_p('I_p(x, y, z)',lambda_p) 定义具有给定强度分布(第一个参数)和波长(第二个参数)的泵浦波。bp_set_I_s('I_s(x, y, z)',lambda_s)同样的用于信号波。

l  bp_set_dt(dt) 定义动态仿真的时间间隔。它决定了在每个传播步长之后,光场作用于激光活性离子的时间。

l  bp_do_pumping(t) 仅在给定时间内模拟泵浦波的影响。如果没有泵浦波,它只模拟激励的衰减。

l  bp_set_excitation(x, y, z,n) 为某些位置设置激光活性离子的激发度(0到1之间)。

l  bp_excitation(x, y, z) 在某个位置恢复激光活性离子的激发度(0到1之间)。

l  bp_set_alpha(alpha) 定义线宽增强因子,即振幅/相位耦合的参数。一个z步长中的相位变化是线宽增强因子乘以振幅增益。

l  bp_define_channel(lambda) 定义用于光束传播的光信道,其中lambda是信道的真空波长,函数结果是信道数(例如,第二个定义的信道为2)。

l  bp_set_n(func$)定义了折射率分布。参数是一个字符串,它根据x和y定义一个数学表达式。例如,'n_f(sqrt(x^2 + y^2))'将引用以前定义的径向坐标函数。

l  bp_set_n_z(func$, test$)定义也可能依赖z的折射率函数。第二个参数是用于确定是否必须重新计算某个z位置的折射率的函数:仅当测试函数的值更改时才重新计算。

l  bp_set_n_smooth(r) 使计算的折射率分布平滑;r可以介于0(无平滑)和10(强平滑)之间。1表示大多数情况下只有直接相邻的点用于平滑。

l  bp_set_N_s('N_s(z)', u) 为每个z步长后重新计算N_s指定一个z相关表达式(第一个参数)。该值必须介于0(有效值为1)和1000之间。如果第二个参数不是零,则将在每个子步长中重新计算空间因子(由折射率和曲率半径产生)。

l  bp_set_loss(func$)定义线性损耗分布。参数是x和y的函数,其值表示以dB/m为单位的局部传播损耗。例如,使用bp_set_loss('((x^2 + y^2)/ (10 um)^2)^4')可以定义在网格边缘急剧上升的损耗。

l  bp_set_A_factors(z, 'f%(x,y)') 定义一个复因子,当达到某个z位置时,该因子将应用于空间域中的复场振幅。(可为多个z位置定义此类系数。)如果给定的z值为负值,则在每个z步长进后应用这些振幅。

l  bp_set_A_f_factors(z,'f%(f_x, f_y)') 与函数bp_set_A_factors()相同,但在空间傅立叶域。

l  bp_set_A0(func$)将当前信道的初始振幅分布定义为x和y的函数。例如,'sqrt(P / (0.5 * pi *w0^2)) * exp(-(x^2 + y^2) / w0^2)'将定义具有功率P、高斯半径w0和零复相位的高斯函数。振幅按比例缩放,使其模量平方等于光强度(每单位面积功率)。

l  bp_set_A(z, func$)定义一个振幅分布,就像bp_set_A0(func$)一样,但在任意z位置。

l  bp_copy_A(d, ch, z) 将某个光束传播装置d和信道ch在z位置的场分布复制到当前传播信道的初始场分布。(所涉及的光信道必须具有相同的波长。)例如,可以复制同一传播信道末端的场,以便在不需要更多内存的情况下开始进一步传播。如果两个场具有不同的数值网格(在大小或分辨率方面),则使用二次插值计算新场值。在z_ow之后的z位置的先前的场值将被丢弃,以便在必要时通过光束传播重新计算它们。

l  bp_set_color(j) 定义分布查看器窗口中信道的颜色设置。参数1对应于第一个可能的设置,2对应于第二个设置,等等。

l  bp_set_label(s$)为当前光信道设置文本标签,该标签可显示在光束分布查看器中。

l  bp_remove_channel(j) 移除光信道,例如为了节约内存。

l  bp_A%(x, y, z) 为给定的位置和当前选定的光信道提供复振幅。

l  bp_I(x, y, z) 是光强度(振幅的平方模量)。

l  bp_I_max(z) 是分布的最大光强。

l  bp_P(z) 是指光功率,即整个区域的综合强度。

l  bp_x_m(z) 是给定z坐标下光束分布的平均x位置。计算为强度分布的“重心”。以类似的方式,bp_y_m(z)是平均y位置。

l  bp_w_x(z)和bp_w_y(z) 根据强度分布的第二个力矩,分别计算x和y方向的光束半径。

l  bp_A_eff(z)计算有效模式面积为

。请注意,这与基于强度分布的第二个力矩的光束半径没有直接关系;这些不同半径的比率取决于强度分布的形状。

l  bp_A_f%(fx, fy, z) 在傅立叶空间中传递振幅分布。(使用x-y平面中的二维傅立叶变换。)

l  bp_theta_x(z)和bp_theta_y(z) 计算光束的半角发散,如果在该位置的光束分布被释放到真空中。

l  bp_M2_x(z)和bp_M2_y(z) 分别计算了x和y方向的光束质量M2系数。如果已知波前是平的,例如对于无损耗光纤中的模式,可以使用更快版本的bp_M2_x_col(z)和bp_M2_y_col(z)。

l  bp_set_interpol(1) 会导致x-y平面中的线性插值,以便稍后调用函数,例如bp_I(x, y, z)。使用参数2而不是1,可以得到二次插值,参数0关闭插值。

l  bp_set_storage(x_max, N_x,y_max, N_y, N) 定义一个存储区域,该存储区域有一个带给定扩展名的数值网格,以及x和y方向上的点数。在该函数调用之后,可以用0到N光束分布。

l  bp_store_profile(z, j) 使用存储位置j将当前光束分布存储在存储区域中给定的z位置。

l  bp_get_stored()使用bp_I(x, y, z)或bp_P(z)等函数使存储的光束分布可访问。

l  bp_save_grid(FileName$)将当前光束传播设备的所有网格数据(即所有信道的三维振幅分布)保存到具有给定名称的二进制文件中。如果成功则返回1,否则返回0。

l  bp_load_grid(FileName$)从具有给定名称的文件中加载当前光束传播设备的所有网格振幅数据(即所有信道)。如果成功则返回1,否则返回0

l  bpv_show(r)显示(对于非零r)或隐藏光束分布查看器。

l  bpv_set_device(j)设置一个特定的光束传播设备作为查看器的光源。

l  bpv_set_channel(j)设置一个特定的光束传播信道。

l  bpv_set_domain(s$)使用参数'real space'或'Fourier space'设置空间域。

l  bpv_set_interpolation(s$)使用参数'none'、'linear'或'quadratic'设置插值。

l  bpv_set_resolution(s$)使用参数'coarse'、'middle'或'fine'设置分辨率。

l  bpv_set_color(s$)使用参数'default'、'red'、'green'、'blue'或'user'设置颜色。

l  bpv_set_plot(s$)使用参数'intensity'、'amplitude'或'function'设置绘图。

l  bpv_set_function(s$)设置绘图函数。

l  bpv_set_log_scaling(r) 打开(r≠0)或关闭(r=0)对数缩放。

l  bpv_set_remove_fast_phase(r) 打开(r≠0)或关闭(r=0)移除z方向的快速相位变化。

l  bpv_set_plane(s$)使用参数'xy'、'xz'或'yz'设置显示平面。

l  bpv_set_show_parameters(r) 打开或关闭参数显示。

l  bpv_set_show_grid_lines(r) 打开或关闭网格线的显示。

l  bpv_set_scaling(j) 将颜色值的缩放比例设置为10到+10之间的一些分贝数。

l  bpv_set_zoom(j) 设置缩放级别。x和y坐标范围减小了系数2j。

l  bpv_set_position(r) 将x、y或z位置(取决于显示平面)设置为特定值(以米为单位,如果为yz或xz平面设置了傅里叶空间,则以1/m为单位)。


26.5专门用于动态仿真的函数

l  set_P_in_dyn(ch,Filename$):定义信道ch的时间相关输入功率

l  set_R_dyn(ch, R1$, R2$):定义给定信道的光纤两端的时间相关反射率

l  set_loss_int_dyn(signal,'l1(t)', 'l2(t)'):为光纤左侧和右侧的局部损耗(介于0和1之间)定义时间相关函数。

l  set_delays(T1, T2):定义活性光纤左侧和右侧分别发生的额外时间延迟(以秒为单位)(用于动态激光仿真)

l  calc_P_dyn_z(ch, 1):表示必须为该光信道存储位置相关的动态功率

l  calc_n_dyn_z(1):表示该光信道必须存储位置相关的动态激发。

l  calc_dyn(t1, t2, dt):启动一个动态仿真

l  calc_dyn_cond(t1, t2, dt,cond$)启动一个动态仿真,只要满足某个条件,该模拟就会完成。

l  P_out_dyn(ch, t):动态仿真中信道的输出功率

l  P_dyn(ch,z, t):动态仿真中信道z位置处的功率

l  P_out_dyn_max(ch):信道的最大输出功率

l  t_peak(ch) :最大输出功率的时间位置

l  n_av_dyn(l, t):激光活性离子能级l的时间相关平均分数激发(纵向和横向整个光纤的平均值)

l  sp_gain_dyn(ch, t) 信道的时间相关单通功率增益


26.6用于超短脉冲仿真的函数

定义数值网格:

l  set_pulse_grid(T, N,lambda) 定义了时间域的数值网格。T是时间范围的宽度,N是数值样本数(必须是2的幂次),lambda是中心波长。

初始脉冲的定义:

l  startpulse_G(E, tau,chirp) 定义一个高斯形状的初始脉冲,其中E是脉冲能量,tau是脉冲持续时间(最大一半时的全宽)和chirp啁啾参数(光频率变化的速率,单位为Hz/s)。假设光谱最大值在所选光信道的中心波长处。

l  startpulse_s(E, tau,chirp) 定义sech2形脉冲。脉冲形状(没有啁啾)是基本孤子脉冲的典型。

l  startpulse_t("A0%")定义了基于时间脉冲分布的任意初始脉冲。参数是先前定义的脉冲分布函数的名称,由复包络函数A0%(t)给出。

l  startpulse_f("A0%")定义了初始脉冲的光谱分布,由函数A0%(f)定义,其中f是绝对光频率。

光纤属性和光纤特定仿真参数的定义:

l  set_GVD(GVD) 定义光纤的恒定群速度色散(以s2/m为单位)。

l  set_GVD_l("GVD

赞赏支持