LAMMPS.docx

上传人:b****4 文档编号:3506970 上传时间:2022-11-23 格式:DOCX 页数:21 大小:35.09KB
下载 相关 举报
LAMMPS.docx_第1页
第1页 / 共21页
LAMMPS.docx_第2页
第2页 / 共21页
LAMMPS.docx_第3页
第3页 / 共21页
LAMMPS.docx_第4页
第4页 / 共21页
LAMMPS.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

LAMMPS.docx

《LAMMPS.docx》由会员分享,可在线阅读,更多相关《LAMMPS.docx(21页珍藏版)》请在冰豆网上搜索。

LAMMPS.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1