计算物理学(英语:Computational physics)是研究如何使用数值方法分析可以量化的物理学问题的学科[1]。 历史上,计算物理学是计算机的第一项应用;目前计算物理学被视为计算科学的分支[2]。
计算物理有时也被视为理论物理的分支学科或子问题,但也有人认为计算物理与理论物理与实验物理联系紧密,又相对独立,是物理学第三大分支[3]。
背景
在物理学中,要求基于各种数学模型的理论,都能够对这些理论所描述的系统的行为给出精确的描述。不幸的是,很多问题无法得到精确解(即解析解),或求精确解的过程过于复杂。(比如,经典力学中的多体问题。量子力学中,除少数极端近似的大多数问题。)此时,将会使用数值近似的方法来求解这类问题。计算物理学就是这样一门数值近似的学科,它使用计算有限的计算步数(往往计算量很大)与简单的数学方法(算法),利用计算机操作、演算,得到相应的近似解与相应的逼近误差。[1]
计算物理学在物理学中的地位目前存在着争议[4] 。有时候它被视作理论物理的重要工具,有时也被看做一种“计算机实验”[4] ,同时也有人将其看作介于理论物理与实验物理之间的第三条物理学分支。考虑到计算机也同时被应用于记录实验数据并进行相应分析,它也可能不应被单纯地归类为计算科学。
问题与挑战
即使使用了计算物理方法,物理问题也时常难以求解。这通常由如下几个(数学)原因造成:缺少相应算法、无法对数值解进行相应分析、复杂度过高和混沌现象。比如,斯塔克效应现象中电子波函数的求解(量子力学中,当原子处在强电场时,电子行为会发生相应变化),将需要一套很复杂的算法才能求解(目前只能求解其中的一部分情况);有些问题,则必须使用暴力计算或者时间空间复杂度很高的算法,比如一些复杂方程的求解和图形化方法。有时也会需要使用数学中的摄动理论(如量子力学中的微扰理论)进行近似求解,比如上面提到的斯塔克效应。
此外,量子力学中很多问题的解是指数形式的,其数值解也会相应地发生指数暴增;此外,宏观系统往往包含1023数量级巨大的分子数目,也提高了模拟计算的难度。[5]
最后,很多物理系统本质上是非线性的,甚至是混沌的。这也使得我们难以确定计算机得到的“解”是否是由数值近似带来的逼近误差本身造成的。
方法与算法
由于计算物理学可以研究的问题十分广泛,人们通常按照其解决的数学问题或使用的数学方法来分类,一般可归类如下:
这些方法被用来研究所建模系统的物理特性。
计算物理学也时常受到计算化学的影响,比如固体物理学家利用密度泛函理论研究固体的物理特性的方式,与化学家研究分子行为的方式基本一致。
此外,计算物理学研究也需要相应的软件与硬件来支撑,有时会需要超级计算机和高性能运算的相关技术支持。比如热核聚变的研究中就使用了超级计算机来模拟等离子体行为。
分支与交叉
几乎所有物理学的主要分支都能在计算物理学的应用中找到一席之地,比如计算力学、计算电动力学、计算等离子体等。计算力学又由计算流体力学(CFD)、计算固体力学、计算接触力学组成。而计算流体力学与计算电动力学又共同促成了计算磁流体力学。量子力学N体问题中,当N趋近于无穷大时就变成了计算化学问题。 作为计算物理重要分支的计算固体物理,又直接应用于材料科学。
一个与计算凝聚态物质特性相关的分支叫做计算统计力学,用于解决其他方法难以解决的一些问题(比如渗透过滤、磁旋等)。
计算天体物理学,乃是对于天体物理学问题所进行的技术与方法。
应用
主要用于解决计算物理学的问题,应用在物理学不同领域皆,现代物理学研究的重要组成部分。如:加速器物理学、天体物理学、流体力学(含:计算流体力学)、晶体场理论/格点规范理论(尤其是格点量子色动力学)、等离子体(见:等离子体模拟)、模拟物理系统(应用在分子动力学)、蛋白质结构预测、固体物理学、软物质等诸多物理学之领域。
计算化学在固体物理学,例如用密度泛函理论计算固体的特性,是一种类借助于计算化学理念研究来研究固体分子的物理特性的策略,以及参与其他大量的固体物理学计算。又如电子能带结构和磁性能,电荷密度可以通过这几种方法计算,包括卢京格尔科恩–模型/K·p微扰理论和从头计演算法。
应用软件
计算物理常用软件主要为Matlab、和Mathematica和Maple等数值计算软件,这些软件提供了大量求解常见计算物理问题的工具,供使用者直接应用。常见的高级语言也可以实现相同的计算功能,有时甚至能够更高速完成任务,但这也需要相应的编程技巧与计算物理知识作支撑。