用户工具

站点工具


adf:optimizeff_crystal

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
adf:optimizeff_crystal [2017/12/04 13:40] liu.junadf:optimizeff_crystal [2024/06/04 11:01] (当前版本) – [使用块体材料DFT计算数据优化ReaxFF力场] liu.jun
行 1: 行 1:
-======使用块体材料数据优化ReaxFF力场======+======使用块体材料DFT计算数据优化ReaxFF力场======
 **提示:下面的操作,除了DFT计算之外,其他只在Linux、Mac系统测试过。** **提示:下面的操作,除了DFT计算之外,其他只在Linux、Mac系统测试过。**
 +
 +**请注意:本教程仅适用于AMS2019.1及其以下版本。新版软件请你不要看这个教程!!**当前最新版相关教程:https://www.scm.com/doc/params/examples/engine_index.html
  
 ADF软件集成了使用蒙特卡洛方法优化力场参数的脚本。目前已经可以较为方便的使用,脚本经过测试,可以正常工作,但大都是在命令行下工作。用“优化”的方式,也可以创建一些新的力场:一般在相似力场的基础上,对力场中的元素进行修改,使用DFT计算这些新元素体系的一些结构的能量,然后使用MCFF对力场参数进行优化。 ADF软件集成了使用蒙特卡洛方法优化力场参数的脚本。目前已经可以较为方便的使用,脚本经过测试,可以正常工作,但大都是在命令行下工作。用“优化”的方式,也可以创建一些新的力场:一般在相似力场的基础上,对力场中的元素进行修改,使用DFT计算这些新元素体系的一些结构的能量,然后使用MCFF对力场参数进行优化。
行 16: 行 18:
     * mcmxst是允许运行的最大步数,这个参数需要改大,否则默认值为0,只运行一步。     * mcmxst是允许运行的最大步数,这个参数需要改大,否则默认值为0,只运行一步。
  
-[[https://www.jianguoyun.com/p/DZ3SvS4QmZ2ZBhis2S0|详细英文教程下载(点击)]]+{{ :adf:mcff.pdf |详细英文教程下载(点击)}}
  
 本文以石墨烯片层为例,DFT计算得到的层间距为3.355埃(如下图中所示,单胞内的两层石墨烯): 本文以石墨烯片层为例,DFT计算得到的层间距为3.355埃(如下图中所示,单胞内的两层石墨烯):
行 22: 行 24:
 {{ :adf:opimizeff_crystal01.png?400 }} {{ :adf:opimizeff_crystal01.png?400 }}
  
-而CHO.ff力场优化得到的间距是3.10埃([[https://www.jianguoyun.com/p/DQ8hVvwQmZ2ZBhiwvDk|文件下载]])+而CHO.ff力场优化得到的间距是3.10埃。
  
 本文尝试通过优化CHO.ff的参数,使得新的CHO.ff力场也能优化出与DFT接近的间距。因此DFT计算主要围绕这一点,计算了平衡间距附近的一些结构的能量,用这些计算结果优化CHO.ff力场。如果用户关心其他方面,例如其他键长,也可以用DFT计算类似的计算。ReaxFF中有的晶体常数计算不准确,也可以通过调整不同的晶格常数来计算DFT能量,并以此优化对应的力场。 本文尝试通过优化CHO.ff的参数,使得新的CHO.ff力场也能优化出与DFT接近的间距。因此DFT计算主要围绕这一点,计算了平衡间距附近的一些结构的能量,用这些计算结果优化CHO.ff力场。如果用户关心其他方面,例如其他键长,也可以用DFT计算类似的计算。ReaxFF中有的晶体常数计算不准确,也可以通过调整不同的晶格常数来计算DFT能量,并以此优化对应的力场。
 ====注意==== ====注意====
 下文生成的geo、trainset.in、ffield、ffield_min、ffield_max、ffield_bool、ffield、mcff.run文件必须在同一个目录下,优化力场的过程也是通过命令行,在该文件夹进行。因此要确保在该文件夹下,可以直接运行*.run,并且该文件夹的完整路径中不包含中文字符、空格等。 下文生成的geo、trainset.in、ffield、ffield_min、ffield_max、ffield_bool、ffield、mcff.run文件必须在同一个目录下,优化力场的过程也是通过命令行,在该文件夹进行。因此要确保在该文件夹下,可以直接运行*.run,并且该文件夹的完整路径中不包含中文字符、空格等。
 +
 +<color grey>Windows中的运行命令行的方法:</color>
 +  * <color grey>双击运行adf201*.*/adf_command_line.bat打开命令行</color>
 +  * <color grey>输入sh或bash回车,之后就可以像Linux一样使用脚本了</color>
 +  * <color grey>例如下文的第一个命令,需要输入:</color>
 +<code bash>$ADFBIN/startpython LT_to_trainset.py *.t21</code>
 +<color grey>后面其他的命令,也需要在前面加${$ADFBIN/}$,但是像cp、chmod这样的命令,并不是ADF的命令,而是系统的基本命令,前面不需要加${$ADFBIN/}$,用户需要自行尝试。</color>
 =====1. 一系列结构的DFT计算===== =====1. 一系列结构的DFT计算=====
-这里我们使用ADF软件中,用于计算周期性体系DFT计算的BAND模块进行计算。改变两层石墨烯之间的距离,分别为3.913、3.718、3.416、3.355、2.992、2.618、2.316埃,计算了他们的能量([[https://www.jianguoyun.com/p/DUXozi8QmZ2ZBhjRvDk|计算输入输出、文件下载]])。如下图所示:+这里我们使用ADF软件中,用于计算周期性体系DFT计算的BAND模块进行计算。改变两层石墨烯之间的距离,分别为3.913、3.718、3.416、3.355、2.992、2.618、2.316埃,计算了他们的能量。如下图所示:
  
 {{ :adf:opimizeff_crystal02.png?600 }} {{ :adf:opimizeff_crystal02.png?600 }}
行 81: 行 90:
   - 参考上面所示的geo的格式,略作修改:**1)**添加能量信息;**2)**插入一行:“UNIT ENERGY   kcalmol”;**3)**插入一行“RUTYPE SINGLE POINT”(这一行不插入也可以,用于说明数据来源)   - 参考上面所示的geo的格式,略作修改:**1)**添加能量信息;**2)**插入一行:“UNIT ENERGY   kcalmol”;**3)**插入一行“RUTYPE SINGLE POINT”(这一行不插入也可以,用于说明数据来源)
   - 将所有DFT计算的结果,类似地添加到geo文件中。   - 将所有DFT计算的结果,类似地添加到geo文件中。
- 
-本例中,生成的geo文件下载,[[https://www.jianguoyun.com/p/DfkrSpYQmZ2ZBhifvTk|请点击此处]](如果下载后名字变了,需要手动改回geo,注意没有后缀)。 
 =====3. 生成trainset.in文件===== =====3. 生成trainset.in文件=====
 这个文件并不是geo文件相同的作用,而是对力场优化的过程进行一些权重设置,也就是用户可能特别要求某些参数更重要,权重就可以设置的很高,这样在优化力场过程中,就会更大程度地满足该参数条件。 这个文件并不是geo文件相同的作用,而是对力场优化的过程进行一些权重设置,也就是用户可能特别要求某些参数更重要,权重就可以设置的很高,这样在优化力场过程中,就会更大程度地满足该参数条件。
行 168: 行 175:
 第一个结构1_reax就是DFT优化的最优结构。可以设置这个权重非常大,例如是其他条件的权重的10倍(即1.0)。但本例中,实际上并没有这样做。使用了默认的trainset.in文件。 第一个结构1_reax就是DFT优化的最优结构。可以设置这个权重非常大,例如是其他条件的权重的10倍(即1.0)。但本例中,实际上并没有这样做。使用了默认的trainset.in文件。
  
 +Trainset.in文件格式,参考:https://www.scm.com/doc/ReaxFF/trainset_descrp.html
 =====4. 准备ffield、ffield_min、ffield_max、ffield_bool文件===== =====4. 准备ffield、ffield_min、ffield_max、ffield_bool文件=====
 ====生成ffield==== ====生成ffield====
 本例中,我们可以直接在CHO.ff的基础上修改,所以直接将其拷贝过来,改名为ffield即可。 本例中,我们可以直接在CHO.ff的基础上修改,所以直接将其拷贝过来,改名为ffield即可。
 ====生成ffield_min、ffield_max==== ====生成ffield_min、ffield_max====
-ffield的格式、参数的具体含义,参考[[https://www.scm.com/doc/ReaxFF/_downloads/ReaxFF-users-manual-2002.pdf|英文手册]](page 16)。+ffield的格式、参数的具体含义,参考{{ :adf:reaxff-users-manual-2002.pdf |英文手册}}(page 16)。
  
 我们这里可以只优化: 我们这里可以只优化:
行 203: 行 211:
 因为只优化4个参数,所以只将ffield_bool文件中,四个参数对应位置的数字,从0改为1。 因为只优化4个参数,所以只将ffield_bool文件中,四个参数对应位置的数字,从0改为1。
  
-[[https://www.jianguoyun.com/p/DSEZdKoQmZ2ZBhjVvTk|四个ffield文件下载(点击)]] 
  
 =====5. mcff.run文件===== =====5. mcff.run文件=====
-[[https://www.jianguoyun.com/p/DeC_4V4QmZ2ZBhjWvTk|mcff.run文件下载]]。注意根据实际需求,灵活修改(参数的含义在本文前面已经进行了说明):+注意根据实际需求,灵活修改(参数的含义在本文前面已经进行了说明):
   * mcbeta可以用默认值;   * mcbeta可以用默认值;
   * mcdbet设置的越小越好,降温越慢,蒙特卡洛模拟效果越好,但所需的步数就越多,默认值实际上已经比较小了;   * mcdbet设置的越小越好,降温越慢,蒙特卡洛模拟效果越好,但所需的步数就越多,默认值实际上已经比较小了;
行 223: 行 230:
  
 生成的summery.txt列出了蒙特卡洛的过程,比较重要的数据是能量误差(Current error这一列数据),当然误差越小越好。生成的ffield_best是优化得到的力场,修改成自己希望的名字,例如CHO_modified.ff即可。 生成的summery.txt列出了蒙特卡洛的过程,比较重要的数据是能量误差(Current error这一列数据),当然误差越小越好。生成的ffield_best是优化得到的力场,修改成自己希望的名字,例如CHO_modified.ff即可。
- 
-[[https://www.jianguoyun.com/p/DQxJWhUQmZ2ZBhjfvTk|生成的CHO_modified.ff文件下载。]] 
  
 使用该力场,在ReaxFF中优化,我们得到的层间距3.41埃,很接近DFT的结果3.355埃: 使用该力场,在ReaxFF中优化,我们得到的层间距3.41埃,很接近DFT的结果3.355埃:
行 231: 行 236:
  
 注意,这里我们没有优化二面角参数,也没有在trainset.in里面限定二面角,所以为了保证层间距,优化键能的同时,二面角的结果变差了,石墨烯变得不是平面的了。 注意,这里我们没有优化二面角参数,也没有在trainset.in里面限定二面角,所以为了保证层间距,优化键能的同时,二面角的结果变差了,石墨烯变得不是平面的了。
 +
 +{{ :adf:mcff_crystal.zip |本例文件计算文件下载}}
adf/optimizeff_crystal.1512366014.txt.gz · 最后更改: 2017/12/04 13:40 由 liu.jun

© 2014-2022 费米科技(京ICP备14023855号