计算物理课程简介

庞龙刚@华中师范大学

课程主页:http://www.ai4physics.cn:8080

开源代码:https://gitee.com/lgpang/mclphysics_notebooks.git

内容会随课程进行同步更新

自我介绍

邮箱:lgpang@mail.ccnu.edu.cn

研究方向:

  1. 高能核物理,编写过模拟高能核碰撞的 3+1 维粘滞流体力学程序 PyVisc
  2. PyVisc 使用 Python 编程语言和 OpenCL GPU 并行编程语言
  3. 参与过 Smash 强子输运程序的编写以及 Jetscape 项目(关于高能部分子在QGP中的能损研究)
  4. 熟悉机器学习与深度学习,近期研究聚焦于高能核碰撞中的反问题:使用贝叶斯推理或深度神经网络,从核碰撞末态反推初态核结构以及核物质状态方程

计算物理介绍

计算物理是使用计算机辅助物理学研究的方法,包括公式推导、数值求解、数据分析与可视化。

  • 计算物理与理论物理和实验物理三足鼎立
  • 物理、计算数学与计算机科学三个学科的交叉

有人说物理学家只能处理“真空中的球形鸡”问题,对于大部分物理问题,如果只想求解析解, 那只能做各种对称性、近似性(比如微扰展开)假设。

但是,如果允许物理学家求数值解,则能处理非常复杂而接近现实的系统。

计算物理 起源于二战时期使用计算机辅助弹道计算与核武器设计。

image.png

世界上很多人相信第一台计算机是 ENIAC, 而实际上 ABC(Atanasoff-Berry Computer,阿塔纳索夫-贝瑞计算机)才是真正意义上的第一台电子计算机。

ENIAC 的发明者之一莫科里见到 ABC 后向阿塔纳索夫请教,然后与合作者埃克特一起制造了 ENIAC 并申请了专利。美国法院后来推翻了莫科里的专利。

很多人认为美国制造第一颗原子弹的时候使用了 ENIAC (上图中的庞然大物),但是

  • ENIAC 诞生于1946年2月14日的美国宾夕法尼亚大学
  • 第一颗原子弹爆炸发生在 1945年

难道 ENIAC 辅助核武器研发是传说?

实际上,ENIAC 确实为第一颗原子弹的设计出过力,因为 ENIAC 的研发者之一是冯诺依曼,

他带着原子弹设计遇到的大量科学计算问题加入的 ENIAC 的研发。

  • 上面这个大家伙 ENIAC 每秒可做 5000 次加法,或者 400 次乘法(比人快 20 万倍)
  • 中国的第一台大型数字电子计算机 104 机,每秒能做 1万次浮点数运算(用于天气预报、核武器研发)
  • 目前最新的华为手机、苹果手机,每秒能做 1 万亿 次浮点数运算!

目前穿越剧很火,如果有人随身携带华为手机,穿越到 104 机时代,就能接手当时几乎所有的大规模工程计算任务!

计算物理领域的扩张

随着计算能力的逐步提高,计算物理在科学和工程的各个方向发挥重要作用。

  • 宇宙学模拟、引力透镜(暗物质分布)、双黑洞并合(爱因斯坦方程、流体力学方程)、双中子星并合(爱因斯坦方程、流体力学方程和 Maxwell 方程)、中子星结构(TOV)、恒星演化、元素合成
  • 核武器研发(中子输运方程、辐射流体力学)、天气预报(流体力学)、大桥、大坝、汽车撞击受力分析、热传导、计算电磁学(有限元分析)
  • 蛋白质折叠、材料性质、分子的电结构、原子核的核结构(分子动力学、多体量子力学:ab-initio,hartree-fork,coupled cluster,GFMC,DFT密度泛函,张量网络,shell model, nocore shell model ...)
  • 高能核碰撞仿真(蒙特卡洛、部分子输运、相对论流体力学、强子输运),高能部分子在 QGP 中的能损(弹性散射、胶子辐射)
  • 高能核与粒子物理大数据处理(统计方法、机器学习与深度学习)
  • 核子结构、强子质量、高温高密核物质性质、状态方程(Lattice QCD)

计算物理新方向

  1. 基于显卡的高性能并行计算
  2. 机器学习技术在物理学分类、回归、偏微分方程、变分、反问题中的应用逐渐超越传统算法
  3. 量子计算在多体量子力学、格点规范场论中的探索性应用

课程覆盖内容

因计算物理涵盖内容太广,本课程尽量避免在一个方向过于深入,而是使用物理中的具体例子介绍下列这些通用的技术,

其中很多是个人多年学习研究中最希望曾经在计算物理课上学过的内容,

  • Python 编程基础, 数据操作(文件读取,保存,可视化)
  • 数值计算最常见的陷阱
  • 计算机上的微分:解析、数值与自动微分
  • 计算机上的积分:低维积分(牛顿科茨、Gauss Quadrature)
  • 蒙特卡洛算法:高维蒙特卡洛积分、各种分布函数的介绍与抽样(直接法、舍选法、重要抽样、马尔科夫链蒙特卡洛、Hybrid Monte Carlo)、蒙特卡洛仿真
  • 机器学习:scikit-learn 中传统机器学习方法、深度神经网络在物理学中的应用
  • 计算机上的线性代数:线性代数在计算物理、机器学习中的诸多应用场景
  • 常微分方程与偏微分方程的数值解:龙格库塔、有限差分、有限体积和有限元简介
  • 量子计算:量子计算的基本原理、一个玩具级量子计算机模拟器的构建
  • GPU 并行计算:GPU并行计算编程

课程参考书:

  1. 计算物理学,马文淦, 科学出版社,2011.12
  2. Computational Physics (second edition), J. M. Thijssen(世图出版社)
  3. Computational Physics, Philipp O. J. Scherer (世图出版社)
  4. An introduction to Computational Physics, Tao Pang (世图出版社)
  5. An Advanced Course in Computational Nuclear Physics, Morten Hjorth-Jensen 等, Springer 出版社
  6. 统计学习方法 (第二版),李航,清华大学出版社
  7. Hands-on machine learning with scikit-learn & tensorflow, A. Geron
  8. 数值分析(第二版),李红,华中科技大学出版社

课程打分机制

  1. 平时作业:50%
  2. 期末考试:50%