# Kerr Comb Simulator
This MATLAB application was developed during my [master thesis](http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-188085) project (now also available in docs if link does not work) to aid in conducting numerical simulations of Kerr frequency combs. It provides a graphical user interface to rapidly schedule, execute and inspect simulations of Kerr cavities over a two-dimensional parameter space corresponding to pump frequency detuning and power.
![Example](/docs/Example.PNG)
## Governing equations
The intracavity field $\psi$ can be modelled either by a normalized Lugiato-Lefever Equation (LLE)
$$ \frac{\partial \psi}{\partial \eta} = -(\alpha + i \delta) \psi - i s \frac{\partial^2 \psi}{\partial \tau^2} + i |\psi|^2 \psi + \sqrt{\alpha} \psi_{\text{in}},$$
where $\eta$ is the slow time (evolution variable) and $\tau$ the fast time (field profile), or by a normalized Ikeda map
$$ \frac{\partial \psi^m}{\partial \xi} = -\frac{\alpha}{2} \psi^m - i s \frac{\partial^2 \psi^m}{\partial \tau^2} + i |\psi^m|^2 \psi^m,$$
$$\psi^{m + 1}(0, \tau) = \sqrt{1 - \alpha} e^{-i \delta} \psi^m(1, \tau) + \sqrt{\alpha} \psi_{\text{in}}, $$
where the superscript of the field indicates the current roundtrip and the second equation constitute the time-varying boundary condition coupling the fields from successive roundtrips. The equations are expressed using the normalized variables
$$ \xi = \frac{z}{L}, \quad \tau = \sqrt{\frac{2}{|\beta_2| L}} \ t, \quad \psi = \sqrt{L \gamma} \ A, $$
where $z$ is the longitudinal distance in the cavity, $L$ is the cavity length, $t$ is the fast time, $\beta_2 = s |\beta_2|$ is the group velocity dispersion at the pump frequency $\omega_0$, $A$ is the pulse envelope amplitude (scaled such that $|A|^2$ is measured in units of power) and $\gamma = \omega_0 n_2 / c A_{\text{eff}}$ is the nonlinear coefficient with $n_2$ being the Kerr coefficient, $c$ the vacuum speed of light and $A_{\text{eff}}$ the effective mode area. Further, $\alpha$ is the total cavity loss related to the cavity finesse through $\mathcal{F} = \pi / \alpha$ which equals the power coupling coefficient since critical coupling is assumed, $\delta$ is the pump frequency detuning and $\psi_{\text{in}} = \sqrt{L \gamma} \ A_{\text{in}}$ is the normalized pump field.
The two models were normalized with the intent to reduce the parameter space to two dimensions (after choosing the resonator finesse and group velocity dispersion sign), where both models use the same parameter space. This was to make the produced phase diagrams directly comparable since the project was in part intended to look at the differences between the often-employed LLE model and the more general Ikeda map model.
## Basic usage guide
A batch, representing a collection of systems, can be created or loaded from the 'File' tab. All systems in a batch share certain parameters (resonator finesse and group-velocity dispersion sign) and the model used to simulate them (LLE or Ikeda map), along with a few other tuning parameters (see tooltips for documentation).
After a batch is created it can be populated using the 'Create system' panel. Some of the options include initial field (noise, Gaussian, sech), the size of the circular buffer storing the field history for playback, the initial and final values for the pump detuning and power (can be set graphically by enabling the 'Fig' toggles).
When a system is created it is automatically selected, highlighting it on the parameter map and in the system table. When one or more system is selected, the 'Edit system' and 'Fork system' panels replace the 'Display' and 'Create system' ones. From here, collective actions on selected systems can be performed, such as renewing budgets and 'forking' systems using the fields of selected systems as initial values. To select other systems, either use the 'Select' button and brush systems in the parameter map or (shift) click systems in the table. To clear the selection, select click the map or table.
Once one or more systems have been scheduled for simulation, press the 'Run' button to execute them. To execute simulations in parallel, check the 'Parallel execution' box (requires Parallel computing toolbox). When a system is finished executing it reports the expended budget to the progress bar.
When a system finish simulating, it becomes available for inspection when selected. The right-side windows enable playback of the field, spectrum and CW reference evolution through field snapshots captured each series (as far back as the buffer spans). Additionally, the convergence of the system (field variation between series) can be viewed over the entire field history with accompanying color indicating the automatic classification (sweep, stationary, fluctuating, CW). Check the 'Legend' box for color correspondence.
## Compatibility
The app has been tested on MATLAB R2021b using Windows 10. There are some bugs that I know about and likely far more that I don't.
In order to enable graphical selection ('brushing') on the parameter map, the use of the undocumented property 'BrushData' was necessary. In the (unlikely) scenario that this property is changed in future MATLAB releases, this might break things.
没有合适的资源?快使用搜索试试~ 我知道了~
matlab仿真光频梳代码
共28个文件
m:18个
mlapp:4个
md:2个
5星 · 超过95%的资源 需积分: 0 79 下载量 69 浏览量
2023-02-02
19:26:21
上传
评论 14
收藏 3.85MB ZIP 举报
温馨提示
matlab仿真光频梳代码
资源推荐
资源详情
资源评论
收起资源包目录
kerr_comb_simulator-master.zip (28个子文件)
kerr_comb_simulator-master
autofork_window.mlapp 60KB
.gitignore.txt 5B
LICENSE.md 1KB
conv_edit_window.mlapp 14KB
CITATION.cff 265B
docs
Example.PNG 114KB
Thesis.pdf 3.47MB
impl
sim_par.m 2KB
fan_system.m 1KB
freeze_system.m 276B
add_system.m 3KB
unfreeze_system.m 308B
cw_Ikeda.m 3KB
split_step_Ikeda.m 2KB
remove_system.m 368B
frame_iterators.m 8KB
Ikeda_batch.m 3KB
update_state.m 551B
sim_seq.m 1KB
split_step_LLE.m 2KB
renew_system.m 656B
LLE_batch.m 3KB
fork_system.m 1KB
cw_LLE.m 1KB
adjust_noise.m 240B
new_batch_window.mlapp 45KB
app.mlapp 315KB
README.md 5KB
共 28 条
- 1
资源评论
- qq_489275332023-05-30请问有主函数么
weixin_41300507
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 最新运营商归属地数据库
- 111111111111111111111
- 汉诺塔python代码递归
- 汉诺塔python代码递归
- 汉诺塔python代码递归
- MySQL 8.0 实战教程从入门到项目实战.docx
- 汉诺塔问题是一个经典的递归问题 在这个问题中,我们有三个塔座(通常被称为A、B和C),并且我们有一堆大小不同的盘子,每个盘子都可
- TB-03 二次开发环境搭建指导
- 汉诺塔问题是一个经典的递归问题 在这个问题中,我们有三个塔座(通常被称为A、B和C),并且我们有一堆大小不同的盘子,每个盘子都可
- 汉诺塔问题是一个经典的递归问题 在这个问题中,我们有三个塔座(通常被称为A、B和C),并且我们有一堆大小不同的盘子,每个盘子都可
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功