soifaint的个人博客分享 http://blog.sciencenet.cn/u/soifaint

博文

模拟与理论:(二)粒子云网格模拟方法与长程势问题

已有 2874 次阅读 2016-12-11 18:49 |系统分类:科普集锦

前面我们提到了DSMC方法,由于这个方法和气体动理学的Boltzmann方程的关系,这个方法还是比较容易被研究人员接受的。而且,其中出现的理论问题(就是说,具体什么机理要用什么样的算法才能避免算出讲不通的结果),大部分都有了至少在某些条件下讲得通的解决方法。

这种方法可以拿来计算稀薄气体的各种流动行为,尤其是涉及到气体向真空中流动或者稀薄气体和固体壁面的摩擦。正好这两种问题在现代技术中越来越常见,所以这方法从一个纯粹的基础研究变成了一种基本的仿真技术。

我这里不去详细讨论这里技术,现在我们要考虑一个相关的问题,假如稀薄气体中的粒子不是分子,而是电子和离子,也就是所谓的等离子体,结果又会如何?

首先,前面的模型是在分子之间作用是短程势,或者分子是一个小微粒的条件下建立的。当系统中存在电磁力或者引力的时候,你很容易的会想到我们应该把粒子自由飞行的那段计算改成按照牛顿定律和库仑定律计算,这样问题就解决了?60年代确实有这么个想法,然后差不多立刻就发现这样不能解决问题。

不解决问题的原因是这样:我们如果想把N*M个真正的粒子用M个抽样粒子来描述,为了保证总电荷的守恒性,我们需要让每个抽样粒子带上N倍电荷和N倍质量。现在假设两个分子靠近到距离d处,那么这俩分子在这个过程中受到的实际排斥力大概是Ke^2/d,加速度就是Ke^2/(md),可是如果你让两个抽样粒子也靠近到这个距离?排斥力是K N^2 e^2/d,而加速度是kN e^2/(md),于是对于抽样粒子来说,直接计算作用力会导致经常性的出现粒子被“踢飞”的情况,因为经常会碰到随机的巨大加速度。这种加速度会导致整个计算变成一坨屎。(你可以说平均没有变,但是你想想,如果某个班上的女生身高平均值不变而只是峰值扩大了一万倍,你还能愉快的玩耍吗?或者地球气温平均不变只是极端气温上升下降一百倍如何?)

此外还有个相对来说比较小的问题,两个粒子之间的作用力并不真的是库仑定律决定的:电磁力存在一个推迟效应,效应传播速度等于光速。如果你真的要计算所有作用力,你马上就会陷于无穷多的延迟距离计算之中。

幸运的是,这问题有很简单的解决方法。说到底,抽样粒子和实际粒子作用力上的巨大差距,只有在距离非常近的时候才会发生(如果距离够远,那么一团电荷的总效果等于把它们集合到中心),所以我们只要假设作用力是个软球势就好了:当两个粒子靠的太近的时候,作用力就变成0。技术上这就是两个均匀电荷球之间的排斥力,如果俩球真的重合到一起,作用力会变成0

软球势当然也可以用直接计算作用力来完成,这时候我们碰上了另一个头痛的问题,作用力一共有M*M-1/2,由于M很大,这个计算量会大到不能忍受,所以问题变成了一个计算机算法问题。

然后最重要的一个进展出现了:某人说,上面的三个问题可以一起解决:我们在空间划分一组网格,然后当一个抽样粒子位于某个网格中的时候,我们认为它其实是弥散在空间的一个电荷云,所以我们把它的电荷和电流值投影到附近的网格格点上去,这样实际上我们是得到了一个弥散化的电荷/电流分布,或者说把空间的一堆点状粒子映射成了一个连续分布的电荷电流云雾,因此没有了点状粒子导致的作用力Kick to Heaven问题;然后在这个网格上求解麦克斯韦方程组或者Poisson方程得出网格上的电磁场,因为网格只有L个,所以计算量是正比于L+M而不是M^2,其中计算量M用来完成从M个粒子到L个网格的投影;计算量L用来完成求解网格麦克斯韦方程组;第三,这方法显然是自动的处理了推迟势问题。

当你计算出了网格电磁场之后,根据每个抽样粒子的位置来算出其应受的作用力,然后让粒子运动一个小时间片dT,重复上面的计算。反复执行很多很多个dT,从直觉上来说,模拟结果就应该等价于等离子体的演化结果。这方法被称为粒子云网格模拟方法,简称PIC

相信你一定会有一种感觉就是“这方法这么复杂,会不会结果根本不对啊”。还好,通过某些专家的研究,理论上我们可以证明在模拟粒子数足够多,网格足够密的条件下这个方法的结果等于对应的无碰撞(!)Boltzmann方程的结果。当然,实践中这问题不会那么简单。

我们暂时不提这个东西是否那么简单,在某一年,发表这个算法的期刊开了个经典论文回顾,内容就是编辑认为几十年来这个期刊上发表的最有意义的论文回顾,这个算法文章赫然在列。原因是什么呢?因为在几十年来的发展发现,这个算法真的可以拿来计算等离子体问题,给出用其他方法做不出来而实用中又很重要的结果。当然,现在的算法和当年的工作已经有了非常多的修改,毕竟这方面的纯算法文章我下载的都好几百了,加上对其中数值方法改进的文章,估计到现在一万篇打不住。

当然,就像谢力老师能理解的那样,这个算法多半要属于“经不住时代考验”的工作,至少当时肯定是。这个算法基本框架的成型大概是1979年左右,在80年代完成了收敛性和合法性的证明,但是要把实际问题用这个算法表达出来,其计算量在当时看来简直荒谬(可能对于LLNLLANL稍有例外,他们那时候就有了大号计算机)。所以当时这个算法只是用来研究一些理论问题,比如等离子体的稳定性之类的。1985年那作者写了一本专著用来介绍这个算法,后来基本上提到这个算法就会参考这本书。然而这不能改变这个算法没大用的本质。

大概到了80年代末期,问题突然改变了,改变的原因是这样:首先,有种设备叫做真空微波器件,就是拿一个电子束穿过一个真空管道,把管道做成奇葩的形状,然后电子束就会激发出微波来。这东西其实早就有,早期飞机和轮船上的雷达全是用这个东西做的。然而在以前这种东西的设计只能靠理论和经验,或者邹谋炎老先生说的“各种复杂的公式分析”。然后,有人把这种设备的工作机理用上面的算法实现了,于是你只要随便在屏幕上画一下管道形状,再设置一下电子束的加速电压,它就能正确地算出产生微波的频率和功率,甚至还能算出来什么时候这设备完蛋!于是各种奇葩的软件被开发出来用来完成这些计算。(当然和你能想得到的那样,设备不断在发展,算法也要不断更新来处理越来越新奇的设计结构,毕竟算出来的结果对不对在这种事情上还是很重要的!)

其次,90年代初期,有人发现了一个重要的问题,那就是上面的算法如果添加蒙特卡洛过程,就能用来研究气体的电离(一般叫放电)过程。所以20多年来也有很多人去开发针对各种放电过程的模拟算法(我自己就是这个跟风研究的研究者之一,反正这东西至少目前还能卖出钱去)。

那么为什么说这个算法要“经不住时代考验”呢?原因很简单,首先是真空微波器件在这10年来开始过气了,现在大概只有极少数几种设备还必须使用真空微波源:(1)卫星上的通信设备(2)一些非常大功率的设备,比如加速器(3)微波炉(4)极少数对重量和效率要求苛刻的场合。不出问题,再有10几年,我们可能就除了微波炉看不到其他真空微波设备了,皮之不存毛将焉附?其次,放电技术虽然非常重要,估计还能再用个三十年五十年(我是乐观的药丸说),但这个算法本身其实并不是准确的,我们用这个算法只是为了减小计算量。假如科研用计算机的性能在现在基础上再提高一档也就是一百万倍,那么我们应该可以直接求解Boltzmann方程来解决问题,而不是现在这样转来转去。考虑过去计算机技术的奇迹,二十年把性能提高一百万倍怎么看都不是很困难的事情。所以,你看这算法的应用领域,一个问题乙烷,一个问题药丸,最多二十年后,这算法大概就该歇了,前后一算,这算法也就存在了五十年。

【注】总是有人问我既然这算法药丸你还研究这个造论文干啥?这问题其实很简单,人类早晚都药丸,难道你因为人类最后必然药丸的命运现在就自宫吗?当然如果有人问我搞这种算法研究是不是骗论文,这个我是不回答的,因为这种问题实在不值得回答。




http://blog.sciencenet.cn/blog-224732-1020073.html

上一篇:中国足球队的任务,里皮能完成多少?
下一篇:刻舟求鱼,奇点和瞬变的一些有趣问题

11 谢力 张云 马红孺 姬扬 徐晓 应行仁 李天成 曾泳春 张海涛 xlsd haipengzhangdr

该博文允许注册用户评论 请点击登录 评论 (12 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2019-7-23 10:49

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部