LAMMPS中的系综(NPTNVT)命令

LAMMPS中的系综(NPTNVT)命令
语法:
fix ID group-ID style_name keyword value ...
ID 是fix名,group-ID是fix所作⽤的组名。这两个是所有fix命令都需要的。
style_name可以选择NVT、NPT或者NPH试衣
关键词keyword和对应的数值value可以添加
keyword = temp or iso or aniso or tri or x or y or z or xy or yz or xz or couple
or tchain or pchain or mtk or tloop or ploop or nreset or drag or dilate
or scalexy or scaleyz or scalexz or flip or fixedpoint or update
temp values = Tstart Tstop Tdamp
Tstart,Tstop = external temperature at start/end of run
Tdamp = temperature damping parameter (time units)
iso or aniso or tri values = Pstart Pstop Pdamp
Pstart,Pstop = scalar external pressure at start/end of run (pressure units)
Pdamp = pressure damping parameter (time units)
x or y or z or xy or yz or xz values = Pstart Pstop Pdamp
Pstart,Pstop = external stress tensor component at start/end of run (pressure units)
Pdamp = stress damping parameter (time units)
couple = none or xyz or xy or yz or xz
tchain value = N
N = length of thermostat chain (1 = single thermostat)
pchain values = N
N length of thermostat chain on barostat (0 = no thermostat)
mtk value = yes or no = add in MTK adjustment term or not
tloop value = M
M = number of sub-cycles to perform on thermostat
ploop value = M
M = number of sub-cycles to perform on barostat thermostat
nreset value = reset reference cell every this many timesteps
drag value = Df
Df = drag factor added to barostat/thermostat (0.0 = no drag)
dilate value = dilate-group-ID
dilate-group-ID = only dilate atoms in this group due to barostat volume changes
scalexy value = yes or no = scale xy with ly
scaleyz value = yes or no = scale yz with lz
scalexz value = yes or no = scale xz with lz
flip value = yes or no = allow or disallow box flips when it becomes highly skewed
fixedpoint values = x y z
x,y,z = perform barostat dilation/contraction around this point (distance units)
update value = dipole or dipole/dlm
dipole = update dipole orientation (only for sphere variants)
dipole/dlm = use DLM integrator to update dipole orientation (only for sphere variants)
例⼦:
fix 1 all nvt temp 300.0 300.0 100.0
可控硅触发电路fix 1 water npt temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0
fix 2 jello npt temp 300.0 300.0 100.0 tri 5.0 5.0 1000.0
fix 2 ice nph x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000
详细说明:
这些命令⽤来对Nose-Hoover型的non-Hamiltonian运动⽅程进⾏时间积分。该运动⽅程⽤以从正则系综、等温等压系综、等焓系综采样⽣成原⼦的位置和速度,从⽽对所定义的组内的原⼦在每⼀个时间步进⾏位置和速度的更新。(添注:事实上,系综最简单的理解是通过命令的字母,譬如NVT中N代表系统的原⼦数、V代表系统的体积、T代表系统的温度,因此NVT就代表恒原⼦数恒温恒体积的系综,具体的积分迭代形式可以查阅相关的分⼦动⼒学模拟专著。)
控温器(thermostatting)和控压器(barostatting)通过添加⼀些动态变量来实现,这些动态变量与粒⼦速度(控温)和模拟区域的尺⼨(控压)相关联。在基本单向的控温和控压之外,这些命令还可以与粒⼦控温器耦合创建控温器链,或者与控压变量耦合创建另⼀条控温器链。控压器与盒⼦的总体积、或者包括xy、xz及yz的盒⼦夹⾓相互耦合。来⾃于控压器的外部压强可以定义为⼀个标量(等压系综)
手机背光源
也可以定义为对称应⼒张量(固定应⼒系综)。如果命令被正确使⽤,时间平均的温度和应⼒张量会与通过“Tstart/Tstop”和“Pstart/Pstop”所指定的⽬标值相符。(添注:简单的理解来说,控温改变粒⼦速度;控压改变系统盒⼦的尺⼨。注意⽐较控压器定义为标量或者是对称应⼒张量的区别,在后者盒⼦会有剪切⾃由度,⽽前者情况下,盒⼦在控压过程中⼀直保持只是长⽅体的block。)
所使⽤的运动⽅程是Shinoda等⼈的⽅程,将Martyna、Tobias和Klein的流体静⼒学⽅程与Parrinello中的Parrinello和Rahman提出的应变能结合在⼀起。时间积分框架采⽤Tuckerman等⼈推导的时间可逆测度保持(time-reversible measure-preserving)Verlet和rRESPA积分器。——————————————————————————————————————
fix命令下通过nvt和npt的控温参数是⽤temp关键词来进⾏设定。其它控温相关的关键词包括tchain、tloop和drag,下⾯对此进⾏讨论。
控温器仅仅应⽤在拥有平移⾃由度的粒⼦。平移⾃由度可以在进⾏控温前移除偏速度(bias velocity),参见下⾯进⾏的讨论。期望的温度在运⾏的每⼀个时间步都随着Tstart到Tstop不断上升。Tdamp参数的单位是时间单位,⽤来决定温度的释放速度的快慢。举例来说,Tdamp的数值如果设定为10.0,这意味着释放温度在⼤概10个时间步的范围内进⾏(譬如tau,fa及ps,这根据units命令中的设定时间单位来确定)。只有在fix命令中所指定的group,他们的速度和位置才会通过指定系综下进⾏积分更新。
NOTE
Nose-Hoover 控温器不会在Tdamp取任意值得情况下都能很好地⼯作。如果Tdamp取值太⼩了,温度会剧烈的抖动;如果取值太⼤了,温度需要很长的时间才能取得平衡。对于⼤多数模型,⼀个很好地选择是Tdamp取值⼤约为100个时间步。值得注意的是,对于绝⼤部分时间设定,这不等同于100个时间单位。⼀个简单的办法来确定这项,是通过直接变量定义的⽅法来确定,例⼦如下:(添注:这很重要,注意区别时间单位和时间步的区别,这两者只有dt=1的时候才是⼀致的,举例来说,如果在metal单位制下,时间单位是ps,Tdamp的单位也是ps。此时如果时间步设定为0.001,也就是1fs,这个时候,Tdamp取100个时间步,那就是0.1ps,那么Tdamp=0.1,⽽不是100。)
fix 1 all nvt temp 300.0 300.0 $(100.0*dt)——————————————————————————————————————
在该fix命令下npt和nph的控制器参数可以使⽤⼀个或⼀个以上,分别为iso, aniso, tri, x, y, z, xy, xz, yz 和couple 等关键词。这些关键词可以⽤来特定控制外部应⼒张量的六个分量,或者耦合这些分量⼀起因此他们(应⼒分量)所代表的尺⼨可以在⼀个恒压模拟中⼀起变化。
其它相关的关键词pchain, mtk, ploop, nreset, drag, 和dilate 会在接下来进⾏讨论。
正交模拟盒⼦(长⽅体)有三个可以调整的尺⼨(x, y, z)。三斜(⾮正交)模拟盒⼦可以有六个可以调整的尺⼨(x, y, z, xy, xz, yz)。通过命令,  和命令可以指定模拟盒⼦是正交还是⾮正交的,并且明⽩xy,xz,yz等倾⾓参数的内涵。(添注:相关内容可以参见我的知乎专栏)
六种应⼒张量分量下的⽬标压强可以独⽴的通过x, y, z, xy, xz, yz 关键词来控制,分别对应于模拟盒⼦的六个尺⼨。对于每⼀种分量,外部压强或张量分量在每⼀个时间步都由Pstart向Pstop演化。如果⽬标压强是指定为⼀个分量,那么该分量对应的盒⼦尺⼨也会在模拟中发⽣变化。例如,如果使⽤关键词y,那么盒⼦在y⽅向的长度就会发⽣变化。如果xy被使⽤,那么盒⼦xy夹⾓参数也会发⽣改变。在未指定应⼒分量的情况下,对应的盒⼦尺⼨就不会发⽣改变,但是你仍然有机会可以通过另外的fix deform命令来改变尺⼨。(添注:fix deform在NVT系综中同样可以改变盒⼦尺⼨,很多⼈困惑的是,如果是NVT,那么体积不变尺⼨不变,为什么fix deform可以改变尺⼨呢,可以理解为每⼀次deform后的体积是不变的,此时在NVT中进⾏驰豫。就相当于拉伸过程中,每次拉伸后都是⼀个独⽴的NVT系综。)
值得注意的是,如果使⽤xy, xz, 或者yz 关键词,模拟盒⼦必须是⾮正交三斜的,尽管初始参数可以设置为0.0 。(添注:简单理解,必须允许盒⼦的夹⾓有⾃由度,如果你定义成正交的长⽅体,相当于就不允许夹⾓有⾃由度,初始参数只是结构的初始构型。)
在所有控压器关键词中,Pdamp参数操作起来和Tdamp基本是⼀致的,⽤来决定压强释放的时间尺度。例如,取值10.0就意味着在⼤约10个时间单位下释放(进⾏控制)⼀次压强。
NOTE
Nose-Hoover 控压器不会在Pdamp取任意值得情况下都能很好地⼯作。如果Pdamp取值太⼩了,压强和体积会剧烈抖动;如果取值太⼤了,压强需要很长的时间才能取得平衡。对于⼤多数模型,⼀个很好地选择是Tdamp取值
⼤约为1000个时间步。然⽽,Pdamp的单位是时间单位,对于绝⼤部分模拟的单位设定中,这不等同于时间步。
不管在fix命令中所指定的group组包括哪些原⼦(只有这些原⼦需要进⾏时间积分),压强或者应⼒张量的作⽤是全局性质的,是作⽤在整体所有原⼦上的。类似的,当模拟盒⼦的尺⼨发⽣改变时,所有的原⼦会缩放到新的位置。除⾮,对
于dilate-group-ID下的原⼦使⽤了关键词dilate。这种⽅法在某些情况下是⼗分必要的,例如,对于固体基质中原⼦进⾏固定⽽控制周边流体的压强。⽽使⽤该选项需要⼗分谨慎,由于它会按照不符合物理规律的⽅式膨胀⼀些原⼦⽽对另⼀些原⼦不采取这⼀作⽤,这⼀会使得在⼀对原理膨胀起源的原⼦
(⼀个已膨胀,⼀个未膨胀)之间引⼊不合理的⼤的瞬时位移。同样需要说明的是,对于没有在fix nvt中所定义组的原⼦,可以采⽤其他的时间积分,包括fix nve 和fix nvt,不管他们是否受到膨胀作⽤。闸机门禁系统
——————————————————————————————————————
关键词couple允许将两个或三个压强张量的对⾓线分量耦合作⽤。⽤关键词指定的值来确定耦合的对象。例如,xz表⽰应⼒张量的Pxx和Pzz分量耦合。 Xyz表⽰所有3个对⾓线分量都已耦合。耦合意味着两件事:瞬时应⼒将作为相应对⾓线分量的平均值进⾏计算,并且耦合盒⼦尺⼨将以锁定步长⼀起更改,这意味着耦合尺⼨将在每个时间步上以相同的百分⽐进⾏扩张或收缩。任何耦合尺⼨的Pstart,Pstop,Pdamp参数必须相同。耦合xyz可以⽤于2d仿真; z维度只是被忽略。
——————————————————————————————————————
iso,aniso和tri关键词只是等同于⼀起指定其他⼏个关键字的快捷⽅式。
关键词iso意味着三个对⾓线分量⼀起耦合来计算静⽔压强,并且膨胀/收缩作⽤在三个维度上同时作⽤,当使⽤“iso Pstart Pstop Pdamp”时等同于设定以下四个关键词(添注:更加简单的理解,此时压强在三个⽅向是各向同性的,意味着Pstart和Pstop在三个⽅向都是⼀致的。):
单片机解码x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
couple xyz
关键词aniso意味着x,y和z尺⼨是相互独⽴的进⾏控制的,分别采⽤Pxx, Pyy和Pzz。当使⽤“aniso Pstart Pstop Pdamp”时等同于设定以下四个关键词(添注:更加简单的理解,此时压强在三个⽅向是各向异性的,意味着Pstart和Pstop在三个⽅向都是相互独⽴的,可以⼤⼩不⼀样。):
x Pstart Pstop Pdamp
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
couple none
关键词tri意味着x,y,z,xy,xz和yz尺⼨是分别独⽴的控制的,采⽤“tri Pstart Pstop Pdamp”默认采
⽤以下七个关键词进⾏设定(添注:值得注意的是,tri适⽤于三斜⾮正交盒⼦,此时允许盒⼦的所有⾃由度。):
x Pstart Pstop Pdamp烘干机组
y Pstart Pstop Pdamp
z Pstart Pstop Pdamp
xy 0.0 0.0 Pdamp
yz 0.0 0.0 Pdamp
xz 0.0 0.0 Pdamp
couple none
——————————————————————————————————————
在某些情况下(譬如固体),当向系统施加Nose/Hoover控压和控温器的时候,系统的压强(体积)和温度会意料之外的剧烈振荡。此时,采⽤关键词drag可以阻缓这些振荡的发⽣,但是这将修改Nose/
Hoover⽅程。当drag值设定为0.0时,意味着Nose/Hoover⽅程不发⽣改变。当采⽤⾮零值时,此时会向⽅程添加⼀个drag项;drag值设定的越⼤,阻尼效应越明显。短期执⾏并监视压强和温度是确定阻尼项是否起作⽤的最佳⽅法。通常,介于0.2到2.0之间的值⾜以抑制⼏个周期后的振荡。请注意,使⽤drag关键词将⼲扰能量守恒,并且还将更改位置和速度的分布,以使其与名义上的NVT,NPT或NPH系综不完全相符。
控制初始振荡的另⼀种⽅法是使⽤链式控温器。关键词tchain⽤以确定粒⼦控温器中控温器的数量。数值1对应于原始的Nose/Hoover控温器。关键词pchain⽤以指定控温器链中控温器的⾃由度和控温器数量。数值0对应于控压器变量中没有进⾏控温。
关键词mtk控制运动⽅程式中是否包括由Martyna,Tuckerman和Klein提到的校正项。如果不指定,则将复制原始的Hoover
控压器,其体积概率分布函数与真实的NPT和NPH系综相差1 / V。因此,使⽤yes更为正确,但是在许多情况下,差异可以忽略不计。

本文发布于:2024-09-22 08:29:04,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/277515.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:时间   关键词   耦合
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议