资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
计算凝聚态物理凝聚态物质的数值模拟方法(2)马红孺http:/hrma.physics.sjtu.edu.cn/Ccmp/index.htmMonte Carlo 模拟基础随机变量及其分布随机变量(以下用表示)可分为两类, 一类是离散型随机变量, 它可以取一系列 分立值 x1, x2, , xn, , 其对应的取某一值的几率为p1, p2, , pn, . pi称为的几率分布; 另一类是连续型随机变量, 可连续取值, 设在区间x, x+x内取值的几率为 p(x 0, 有这一定理指出, 不论随机变量的分布如何, 只要n足够大, 则算术 平均与数学期望值可无限接近, 也就是说, 算术平均以几率收敛于 其数学期望值.中心极限定理: 设 1, 2,n, 为一随机变量序列, 相互独立, 具有同样分 布, 且 E(i)=a, D(i)=2 存在, 则当n!1时,推论: 令:成立的几率为 1-, (A) 1-称为可信水平. , 1-和X的数值关系0.50.050.020.011-0.50.950.980.99X0.67451.96002.32632.5758由表可见, 当X=2.5758时, (A)成立的几率已经为99%, 也就是说, 该式的可靠性已相当高.Markov 链 构造一个过程, 从系统的某一微观状态出发, 并在过程的每 一步转移到一个新的状态. 为了确定起见, 下面用xi代表系统 的微观状态, 如果从x0出发, 则这一过程产生一系列状态 x1,x2, xi, , 这一系列状态构成一个链. Markov过程, 是指这样一种过程, 在过程的每一步所达到的 状态只与前一状态有关, 从一状态r到另一状态s的转移通过 一转移几率w(xr!xs) 来实现. 由 Markov 过程产生的一系列 状态所构成的链称为 Markov 链.为了实现按照正则分布抽样, 我们可以构造这样一个 Markov 链, 使得无论从何状态出发, 存在一个大数M, 在丢掉链的前 面M个状态后, 链上其余的状态满足正则分布.只要取w(xr!xs) 满足如下条件, 就可达到我们的要求. 式中P(x)为所要达到的分布, 此处为正则分布. 这一式子 又称为细致平衡条件. 为了证明上式, 我们考虑很多个 平行的Markov链, 在一个给定的某一步, 有Nr个链处于 第r个态, Ns个链处于第s个态. 于是在下一步从r态到s态 的数目为从s态到r态的数目为从r态到s态的净转移的数目为若w( xr! xs)满足细致平衡条件, 则上式成为这是一个十分重要的结果, 上式表明, 如果二个状态之间 不满足正则分布, 则这一Markov 过程的演化结果将总是 使其趋于满足. 这样, 就证明了我们的论断.正则分布的抽样方法: 选择一个满足细致平衡条件的转移几率; 产生一个Markov 链, 丢掉链的前而面M个状态; 用其余状态进行物理量的计算.这一算法是五十年代初由 Metropolis 提出来的,因此现在一般称为 Metropolis 算法.考虑从r态到s态的转移, 若二状态的能量差为则:当年Metropolis 选择 :目前常用的另一种选择是:应当注意的是, w的选择并不唯一, 只要满足细致平衡条件 的要求即可, 但不同的w收敛速度往往差别很大, 如何选择 合适的w以达到尽可能快的收敛速度和尽可能高的计算精 度仍然是当前Monte Carlo算法研究的前沿课题之一.例题, Ising模型的模拟Ising 模型:式中J称为交换积分, h为外场, si 可取值(1, -1), 称为自旋变量. Ising 模型是最简单的非平庸统计物理模型, 它是由德国物理学家 Lenz 在二十年代 提出的, 这一模型可用来描述单轴各向异性磁性系统, 合金等物理体系, 同时 也是一个十分有兴趣的理论模型.Ising 最早给出了这一模型在一维情况下的严格解, 证明了在一维下这一 模型不存在相变. Onsager 于1944 年做出了零场下这一模型在二维空间的 严格解并计算了它的相变温度, 比热在相变点的行为等热力学量. 杨振宁 在1952 年解出了外场很小时二维空间的 Ising 模型, 求出了序参量的临界 行为. 由于对这一模型的很多形为目前了解的比较透彻, 因此它经常被用来做为 检验各种数值方法或解析近似方法的标准. 对于Ising模型, 人们通常感兴趣的热力学量是能量 E=h Hi , 序参量 , 能量的涨落 hH2i-hHi2 , 序参量的涨落hS2i -hSi2等. 能量的涨落与系统的比热成正比, 而序参量的涨落则正比于 系统的磁化率.一个算法 选择一个格点 i, 其自旋将考虑作翻转 si! -si. 计算与此翻转相联系的能量变化 H. 计算这一翻转的转移几率 w. 产生一在 0,1 之间均匀分布的随机数 . 如果w, 则翻转该自旋, 否则, 保持不变. 不论何种情况, 其结果都作为一新的状态. 分析该状态, 为计算平均值收集数据.讨论:关于每一步要翻转的格点i的选择, 一般来说可有很多种不同的方法, 最常用的有两种, 一种是顺序取每一个格点, 另一种是随机的选取. 在 随机选取时, 应使每个格点平均说来被访问的次数相同, 通常每个格点 被访问一次称为一个 Monte Carlo 步(Monte Carlo Step or MCS), 一 次有价值的计算通常需要做几千或几万个MCS. 有时, 为了得到高精度的 结果, 甚至要作百万MCS以上的计算. 由于每一个状态与其前导状态最多相差一个自旋翻转, 因而其物理性质 具有很强的关联. 这样, 上述过程的第6步不必对每次自旋都进行, 而是 每间隔一个或数个MCS(视问题的关联时间的大小)进行一次. 另外, 如在 前面已经指出过的, 前面若干个MCS应舍弃.计算能量差是最费时的工作, 对于Ising 模型, 由于能量差只能取很少 几个数值, 我们可以予先算好存起来以节省计算量. 这一技巧不仅适用 于Ising 模型, 也适用于其它分立变量的模型如 Potts 模型等.模拟技术细节为了模拟Ising 模型: 要确定一个晶格和晶格的尺寸. 例如, 我们可以取一个简单立方格子, 取三个方向的大小均为L;其它取法包括FCC, BCC, 金刚石结构, 六角密堆结构等.模拟的盒子可以取为立方体,也可以取其它形状,如各种多面体 ;如果利用周期性边界条件,则对盒子的形状有限制盒子的 周期性排列应该能够填满整个空间。模拟技术细节要指定一个初始位形.在临界温度之下进行计算, 取所有自旋沿同一方向为 初始位形. 在临界温度之下的平衡位形是有序的, 若从一无序位形出发, 系 统在演变中将形成若干个有序的区域, 相邻区域的边界上将出 现畴壁. (畴壁具有一定的能量,是一种拓扑性缺陷,在周期性 边界条件下很难通过长时间的模拟消除).如果计算的目的是为了研究畴壁, 则必须从一自旋取 向为随机分布的初始位形出发;或直接产生畴壁,研究 其性质。在临界温度之上进行计算, 取随机分布的自旋取向为 初始位形或取所有自旋沿同一方向为初始位形. 模拟技术细节要确定适当的边界条件因为计算总是对有限大小的系统进行的, 选择合适的边界条件对于得到 好的结果是十分重要的, 如果我们感兴趣的是系统的体性质, 则应尽量 消除边界的影响, 此时一般取周期性边界条件, 即在每个方向上, 取 sL+1=s1. 周期性边界条件对于写并行计算的程序不太方便, 而并行计算是当前计 算机发展的一个重要方向, 因此, 另一种称为螺旋周期边界条件得到了 较多的应用,以二维正方格子为例, 这种边界条件是让每一行的最后一个 自旋与其下一行的第一个自旋相同.模拟技术细节其它边界条件:自由边界条件自由边界条件+周期性边界条件平均场边界条件固定和部分固定边界条件反周期边界条件(用于界面的研究)模拟技术细节选取产生一系列状态的方式.一般来说, Markov 链中的每一个状态与其前一个状态相差应较小, 因 为如果两个状态相差过大, 其能量差亦较大, 从而转移几率太小, 计算 很容易陷入相空间中初态附近一个很小的子空间内.通常有两种作法, 一种是一次翻转一个自旋, 这是一种不保持总自旋守 恒的计算, 另一种是每次交换一对相邻自旋, 这种计算将保持总自旋守 恒.模拟技术细节讨论:关于每一步要翻转的格点i的选择, 一般来说可有很多种不同的方法, 最常用的有两种, 一种是顺序取每一个格点, 另一种是随机的选取. 在随机选取时, 应使每个格点平均说来被访问的次数相同. 通常格子上 每个格点平均都被访问一次称为一个 Monte Carlo 步(Monte Carlo Step or MCS), 例如对于N=L L L的格子, 可以把自旋翻转N次做为一 个MCS. 一次有价值的计算通常需要做几千或几万个MCS. 有时, 为了得 到高精度的结果, 甚至要作百万MCS以上的计算. 模拟技术细节讨论:由于每一个状态与其前导状态最多相差一个自旋翻转, 因而其物理性质 具有很强的关联. 这样, 上述过程的第6步不必对每次自旋都进行, 而是 每间隔一个或数个MCS(视问题的关联时间的大小)进行一次. 另外, 如在 前面已经指出过的, 前面若干个MCS应舍弃.每隔多少MCS取一次样的问题是由状态的关联决定的, 考虑物理量A, 并 计算A的关联函数模拟技术细节G(t)一般是指数衰减的, 如图所示. t 的单位是MCS. 由于先后状态的 关联, 可以导致误差估计的偏小, 可以证明, 如果G(t)的衰减时间为 , 则实际误差与计算得到的误 差估计差一个因子.t 为取样间隔, 只有当 t 时, 修正因子才为1, 当 t 2时 , 修正因子为2. 一般为23个MCS.模拟技术细节计算能量差是最费时的工作, 对于Ising 模型, 由于能量差只能取很少 几个数值, 我们可以予先算好存起来以节省计算量. 这一技巧不仅适用 于Ising 模型, 也适用于其它分立变量的模型如 Potts 模型等.例如, 对于正方格子上的Ising模型, 每个自旋(设为s0)有四个近邻, 设 为s1, s2, s3, s4, 则s0与近邻的相互作用能量为: 翻转一个自旋(s0)可能的能量差为:S0是翻转前的自旋值, 于是 求出 E0 和exp(- E0)的几个数值并保存下来, 每次查表, 可以节省很多计算时间.其它常用的模型:Potts 模型:其中的求和对近邻格点对进行。i 可以取值 1, 2, q, 当q=2时,对应于Ising模型。对于二维晶格,q 5时, 系统具有二级相变,当 时,系统具有一级相变。 对于三维晶格,当 时为一级相变。在转变的q处(q=3(3D), q=5(2D), 是非常弱的一级相变 ,通过模拟很难与二级相变区分。 Potts模型描述了从 二级相变到弱一级相变再到强一级相变的各种情况,是 验证各种理论方法和模拟方法的试验模型。Potts 模型的模拟方式与Ising模型非常相似。代替自旋 的翻转,可以在q-1个态中随机取一个。Heisenberg类模型是一个定义在格点上的单位矢量,一般有三个分量,最早由 Heisenberg提出以描述铁磁性(原始的Heisenberg模型中 是自旋 算符). 如果把自旋限制在平面上, 只有二个分量,这样的模型称为XY 模型,在二维XY模型中发现了很多非常有趣的物理现象。 如果把此模型做一推广,使得 有n个分量,则成为所谓的n-矢量 模型,当n! 1时,成为球模型,而当n! 0时,可以用来描述高分子链 的相变等问题。下页
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号