C++蒙卡

C++蒙卡

💡 原文中文,约21900字,阅读约需52分钟。
📝

内容提要

介绍了基于C++的声子蒙特卡洛模拟程序,使用模板类和动态数组实现声子的漂移、边界发射、散射等过程,并计算温度分布。讲解了C++标准库中的数学函数和使用方法,提及了并行化边界发射和散射过程的优化方法。

🎯

关键要点

  • 介绍了基于C++的声子蒙特卡洛模拟程序。
  • 使用模板类和动态数组实现声子的漂移、边界发射、散射等过程。
  • 计算温度分布,并讲解C++标准库中的数学函数及其使用方法。
  • 提及并行化边界发射和散射过程的优化方法。
  • 声子蒙特卡洛模拟程序需要用C++17以上版本编译。
  • 模拟参数设置为左侧高温热沉301K,右侧低温热沉299K,参考温度300K。
  • 模拟薄膜长度为100nm,均匀离散为20个网格,时间步长为1ps,时间步数为100步。
  • loadDispersionData函数用于加载声子的色散关系数据。
  • initialize函数计算散射和边界发射过程的概率抽样矩阵。
  • runSimulation函数运行声子蒙特卡洛模拟,更新声子位置并处理散射。
  • 程序中删除声子的过程占据了大部分运行时间。
  • C++知识包括模板类、动态数组和VSCODE中C++项目配置。
  • 使用GDB调试器可以实现程序的断点调试和逐步执行。
  • STL提供的函数如transform和accumulate可用于动态数组操作。
➡️

继续阅读