LAMMPS.docx
《LAMMPS.docx》由会员分享,可在线阅读,更多相关《LAMMPS.docx(21页珍藏版)》请在冰豆网上搜索。
![LAMMPS.docx](https://file1.bdocx.com/fileroot1/2022-11/23/bf033de2-de64-49a6-9de9-8dfd713254cf/bf033de2-de64-49a6-9de9-8dfd713254cf1.gif)
LAMMPS
Minimize命令
Minimize命令
使用格式:
minimize(命令名)tolerance(误差限)maxiter()maxeval()
说明:
tolerance=stoppingtolerance停止公差、容差
maxiter=优化器的最大叠代次数(maxiterationsofminimizer)
maxevel=总的(力/能)评估值的最大个数(maxnumberoftotalforce/
energyevalutions)
例子:
minimze1.0e-41001000
描述:
该命令用来执行一个系统的能量的最小化(energyminimization),通过调整每个原子的原子坐标。
使用的优化算法由命令
min_style设置。
能量最小化命令可以被和run命令交替使用(interspersed),在松弛和动力学之间分布(Minimize
commandscanbeinterspersedwithruncommandstoalternatebetween
relaxationanddynamics.)。
最小化器areimplementedinarobustfashion坚固的方式thatshouldallowfor
systemswithhighlyoverlappedatoms(largeenergiesandforces)to
stillbeminimizedbypushingtheatomsoffofeachother.(通过推开每个原子,使得即
使有重叠的原子(具有高的能量和力)仍然可以优化,因为算法是很强壮的。
不知道这样翻译对不对,这句太难理解了。
最优化器involves包括一个外部迭代循环outeriterationloop(用以设置搜索迭代方向,在这个方向上坐标被改变),内部的迭
代使用一个线搜索算法(Aninneriterationisthenperformedusingalinesearch
algorithm.T)。
线搜寻专门评估力和能量(几次),以设置新的坐标。
最小化器在满足下列的任何一个准则的时候停止:
*thechangeinenergybetweenouteriterationsislessthanthe
tolerance
*外部迭代的能量的改变小于容许限的时候
*thenumberofouteriterationsexceedsmaxiter
*外部迭代超出最大迭代次数
*thenumberofforceevaluationsexceedsmaxeval
*力评估次数超限
*the3Ndimensionalforcevectorgoes(nearly)tozero
*三维力矢量接近与零
对第一个准则,指定的误差是无单位的。
当能量delta(即能量之差吧)对能量的幅度magnitude的比等于容差限的时候满足。
(e.g.在上面
的例子中为onepartin1.0e4,某分之一)
在优化期间,外层的迭代次数被当做一个时间步。
输出是被这个时间步触发的。
即动力学输出或者dump和restart文件等。
Outputis
triggeredbythistimestep,e.g.thermodynamicoutputordumpand
restartfiles.
Foroptimalconvergence对优化收敛性,pair_style最好在能量和力的截断距离上是光滑到零的,尽管不是必须的,但是是
最好使用。
例子包括了pair/lj/charmm/coul/charmmandpair/lj/charmm/coul/long.。
如果一个
软势函数被使用,则Astop值用来做预先因子(不和时间有关)IfasoftpotentialisusedtheAstop
valueisusedfortheprefactor(notimedependence).有点晕户,希望明白的后面之解释一
下。
在优化期间,只有施加了力约束的fix(操作)才被调用。
目前的执行表列出:
Thelistofthecurrently
implementedonesincludefixaddforce,aveforce,enforce2d,indent,
lineforce,planeforce,setforce,andwall/lj93。
注意indent和wall/lj93有一个联合势能。
如果你希望这个能量被包括在系统的总势能中,(属性量正在优化的系统),你必须使得
fix_modify命令的能量energy选项对这个fix有效。
youmustenablethe[url=file:
///D:
/
My%20Documents/桌面/lammps-11Sep06/doc/fix_modify.html]fix_modify[/url]
energyoptionforthatfix.
接着优化器的是一个统计的特征总结被打印出来,其中有能量的变化,收敛准则信息等。
限制:
这里列出来的两个特征还不能做。
万一,以防,incase,有些人知道怎么写代码。
两个不能被最优化器调用的fix分别是fix_shake和fix_rigid。
Itisanerrortousefixshakewithminimizationbecauseitturnsoff
(关闭)bondsthatshouldbeincludedinthepotentialenergyofthesystem
(应当被包括在系统势能汇总的键).Theeffectofafixshakecanbeapproximated(近似)
duringaminimizationbyusingstiffspringconstantsforthebonds
and/oranglesthatwouldnormallybeconstrainedbytheSHAKE
algorithm.
Fixrigidisalsonotsupportedbyminimization.Itisnotanerrorto
haveitdefined(?
?
?
?
?
),buttheenergyminimizationwillnotkeepthe
definedbody(s)rigid(不能保持定义的刚体?
?
?
)duringtheminimization.
Notethatifbonds,angles,etcinternaltoarigidbodyhavebeen
turnedoff(e.g.vianeigh_modifyexclude),theywillnotcontribute
tothepotentialenergywhichisprobablynotwhatisdesired(可能就不符合实际情
况的意思吧).
Thevolumeofthesimulationdomainisnotallowedtochange(不许改变)
duringaminimzation.Ideally理想的wewouldallowafixsuchasnptto
imposeanexternalpressurethatwouldbeincludedintheminimization
(i.e.allowtheboxdimensionstochange),butthishasnotyetbeen
implemented.
88888888888888888888888888888888888888
下面的是老版本文字的说明
Theeffectofafixshakecanbeapproximated近似duringaminimization
byusingstiffspringconstants刚性弹簧常数forthebondsand/oranglesthat
wouldnormally通常,正常beconstrainedbytheSHAKEalgorithm.
在最小化期间,模拟域的体积是不容许改变的。
理想的,我们容许诸如npt的操作fix来施加一个外部的压力(将被包含在优化器中),即容许模拟盒子的
纬度改变,但是这个部分还没有实现。
()Thevolumeofthesimulationdomainisnotallowed
tochangeduringaminimzation.Ideallywewouldallowafixsuchas
npttoimposeanexternalpressurethatwouldbeincludedinthe
minimization(i.e.allowtheboxdimensionstochange),butthishas
notyetbeenimplemented
相关命令min_modifymin_stylerun_style
默认:
无
min_stylecommand最小化类型命令格式:
min_stylestyle
*style=cgorcg/frorsd
例子
min_stylecgmin_stylesd描述:
选择一个最小化算法,为minimize命令的执行。
类型cg是共轭梯度算法(CG)的Polak_Ribiere(PR)版本)
Ateachiteration在每个叠代中,theforcegradientiscombinedwiththe
previousiterationinformation联合前一个叠代的信息tocomputeanewsearch
direction以计算一个新的搜索方向,perpendicular(conjugate)toprevioussearch
directions.和前一个方向是正交的(共轭)。
ThePRvariant变化(变量)affectshowthedirectionischosen方向如何选择andhow
theCGmethodisrestartedCG方法如何被重启,whenitceasestomakeprogress当为了
进一步而停止的时候.ThePRvariantisthoughttobethemosteffectiveCG
choice.
Stylecg/fristheFletcher-Reevesversionoftheconjugategradient
algorithm.共轭梯度算法的另一个版本
Stylesdisasteepestdescentalgorithm最速降线法,.Ateachiteration,the
downhilldirection下降方向correspondingtotheforcevector(negative
gradientofenergy)issearchedalongbya1dlinesearch沿一个一维线查找.
Typically,steepestdescentwillnotconverge不收敛asquicklyasCG,but
maybemorerobustinsomesituations.
限制无
相关命令min_modifyminimize
默认:
min_stylecg
min_modifycommand
格式:
min_modifykeywordvalues...
*oneormorekeyword/valuepairsmaybelisted(变量)
·keyword=linestyleordminordmaxor
lineiter·
linestylevalue=secant正割orscan
·dminvalue=min
·min=minimumdistanceforlinesearchtomove
(distanceunits)·
dmaxvalue=max
·max=maximumdistanceforline
searchtomove(distanceunits)·
lineitervalue=N
·N=maxnumberofiterationsina
linesearch
Examples:
min_modifylinestlescandmin0.001dmax0.2min_modifylineiter5
Description:
Thiscommandsetsparameters设置参数thataffecttheminimization
algorithms.Thevarioussettings不同的设置mayeffecttheconvergencerate收敛
速率andoverallnumberofforceevaulationsrequiredbyaminimization整个
力计算的次数,souserscanexperimentwiththeseparameterstotune协调their
minimizations.
Thelinestylesetsthealgorithmusedfor1dlinesearches一维线查找at
eachouteriterationoftheminimizer.
Thesecantstyleusestwosuccessiveforce/energyevaluations两个继承的to
createaparabola抛物线andpickitsminimumasanestimateofthenext
iteration's1dminimum选择最小值做为下一次叠代的一维最小的估计值.Thescanstylestartsits
1dsearchatdmin开始一维搜索在一个维度上anddoubles加倍thedistancealongthe
lineatwhichtheenergyiscomputeduntiltheminimumispassed直到能量超
过.Itcontinuesonlyasfarasdmax.Normally通常,thesecantmethod
shouldfindmoreaccurate1dminimumsinlessiterations,butthescan
methodcanbemorerobust.
Thedminanddmaxsettingsarebothusedbythescanlinesearchas
describedabove.Forthesecantlinesearch,onlythedminvalueis
usedtopickaninitialpointtobeginthesecantapproximation.
Thelineitersettingisusedbythesecantalgorithmtolimitits
iterations叠代.Thesmallerthesetting,themoreinaccurate越不准确the
linesearchbecomes.
Nonlinearconjugategradientisnotthoughttorequirehigh-accuracy
linesearchesinordertoconvergeefficiently收敛效率.
忘记谁写的了,是你的话来认领吧
谈谈关于LAMMPS输出【Output】的问题
无论任何模拟,我们都是想从模拟中得到我们想要的数据【data】,然后分析这些数据,从而提取出相关的信息【MAYBE新的发现】,那么数据的输出是
必然的一道程序,下面谈谈LAMMPS软件是如何输出data。
LAMMPS中处理的输出数据主要分一下三个大的部分:
1.断点数据,这个主要是为了防止模拟过程中出现意外,比如实验室或机房突然断电,程序部分阶段有错误等等。
2.系统热力学量的输出,这些量一般是体系中各个原子的集体行为量,比如温度,压强等
3.单原子详细信息的输出,如我们想得到的轨迹文件
对应于上面的三大部分,LAMMPS设置了不同的命令,有些命令结合在一起实现相关的功能。
1.对于断点数据,原始数据,LAMMPS主要有一下命令进行数据的输入输出。
read_data,read_restart【读入】,
restart,write_restart【输出】,如果能灵活运用这几个命令,会让你的模拟在突发事件下得到经济上的收获。
其中命令里有两类通配
符,*表示时间步,%表示CPU编号。
2.全局热力学数据,也就是所谓的thermodynamicoutput,这些量是面向于系统的,而不是面向于某一类,某一组,原子的。
一般是系统
宏观信息的数据。
处理这些数据的命令主要有如下几个thermo,thermo_modify,thermo_style[这个命令对于初学者要
认真研究和调试],还有相关的把单原子信息转换为【globalquantities】的辅助命令:
fixave/time,fixave/
spatial,computereduce这些命令可以自己设定输出的频率,文件名等等。
thermo_style和compute/
fix/variable命令结合进行数据的处理和输出是个大学问,这个需要不断的调试才能熟练掌握。
其实研究variablecompute和少数
关于数据处理的fix可以节约你大量后期数据处理的时间。
3.单原子数据。
相关命令主要有dump,dump_modify,undump.时刻牢记这些命令用于处理atom的数据对于你出现的错误就有敏感
性了,呵呵。
4。
echo,print,fixprint结合variable可以用于调试你的脚本,纠错。
5.秀个例子,用于输出setforce,group原子于其他相互作用力
#------------------------------------------------------------------------------------
fix3tetrassetforce0.00.00.0
variablefxequalf_3[1]
variablefyequalf_3[2]
variablefzequalf_3[3]
fix4tetrasprint1"--${fx}${fy}${fz}--"
#------------------------------------------------------------------------------------
thermo2
thermo_stylecustomstepf_3[1]f_3[1]f_3[1]
#------------------------------------------------------------------------------------
以上由redream/一下是fc所写
关于output,手册4.15,曾粗略翻译过
除了restart文件,LAMMPS还有两种基本的输出。
第一种是热力学输出,每隔一定的时间步就打印到屏幕和log文件的一列数。
第二种是dump
文件,包括按照一定的频率写入文件的原子位置快照和各种per-atom数值。
每个模拟打印一组热力学输出;可能生成任意数目的dump文件。
如下所讨
论的,LAMMPS为你提供多种方式来决定当热力学信息和dump文件输出的时候,哪些量是需要计算和打印的。
有3个fix命令可以按照用户选择的量执
行它们自己的输出:
fixave/time用来做时间平均,fixave/spatial用来做空间平均,以及fixprint。
下面会详述。
贯
穿这个讨论,用户要注意他们可以添加自己的compute命令和fix命令,通过这些命令定义自己的输出。
Thermodynamicoutput热力学输出的频率和格式是由thermo、thermo_style、thermo_modify命令设置
的。
thermo_style命令也指定了哪些数值需要被计算输出。
可以指定预先定义的变量(例如press、etotal等等)。
还可以指定三类
keyword(c_ID、f_ID、v_name),分别由compute、fix、variable命令提供相应的数据。
以下依次讲述。
在LAMMPS中,有两种类型的compute命令:
一种计算globalvalue(例如温度,压强张量)另一种计算per-atom
values。
只有前者可以作为热力学输出。
用户指定的compute命令的ID加上一个可选的下标作为thermo_style命令的一部分。
例如
c_myTemp输出由该compute得到的标量值;c_myTemp[2]输出第2个矢量分量。
注意computereduce可以对per-
atom的量加和得到global标量和矢量。
fix命令可以生成由热力学输出的globalscalar或vector,例如压头(indenter)与原子之间的相互作用能。
这些数值可以通过
与前述compute命令同样的格式,如f_ID、f_ID[N]。
至于哪个fix计算可通过热力学信息输出的globalvalues请参阅见各
个fix的手册。
fixave/time生成的时间平均的全局量可由热力学输出,例如按时间平均的压强。
可以在in文件中定义变量,除了atomstyle的变量之外,其它所有的变量都可以通过热力学信息输出,因为at