计算化学公社

标题: 请教如何使用dimer算法计算过渡态 [打印本页]

作者
Author:
winterzen    时间: 2016-11-21 15:33
标题: 请教如何使用dimer算法计算过渡态
我在学习使用CP2K中的dimer计算过渡态,进行了一些试算,但总出现下列错误:
  1. *******************************************************************************
  2. *   ___                                                                       *
  3. *  /   \                                                                      *
  4. * [ABORT]                                                                     *
  5. *  \___/                 BFGS method not yet working with DIMER               *
  6. *    |                                                                        *
  7. *  O/|                                                                        *
  8. * /| |                                                                        *
  9. * / \                                             motion/bfgs_optimizer.F:147 *
  10. *******************************************************************************


  11. ===== Routine Calling Stack =====

  12.             8 geoopt_bfgs
  13.             7 cp_rot_opt
  14.             6 cp_eval_at_ts
  15.             5 cp_eval_at
  16.             4 cp_cg_main
  17.             3 geoopt_cg
  18.             2 cp_geo_opt
  19.             1 CP2K
复制代码
我已经将优化算法改成了CG,不知道为什么还是出现BFGS的错误,请教大家该如何正确使用dimer?
我的CP2K版本为4.1版,输入文件如下:
  1. &GLOBAL
  2.   PROJECT dimer_test
  3.   RUN_TYPE GEO_OPT
  4.   PRINT_LEVEL MEDIUM
  5. &END GLOBAL

  6. &FORCE_EVAL
  7.   METHOD Quickstep
  8.   &DFT
  9.     BASIS_SET_FILE_NAME  BASIS_MOLOPT
  10.     POTENTIAL_FILE_NAME  POTENTIAL

  11.     &POISSON
  12.       PERIODIC XYZ
  13.     &END POISSON
  14.     &SCF
  15.       SCF_GUESS ATOMIC
  16.       EPS_SCF 1.0E-5
  17.       MAX_SCF 200
  18.     &END SCF
  19.     &XC
  20.       &XC_FUNCTIONAL PBE
  21.       &END XC_FUNCTIONAL
  22.     &END XC
  23.   &END DFT

  24.   &SUBSYS
  25.     &CELL
  26.       ABC 10. 10. 10.
  27.       PERIODIC XYZ
  28.     &END CELL
  29.     &TOPOLOGY
  30.       &CENTER_COORDINATES
  31.       &END
  32.       COORD_FILE_FORMAT xyz
  33.       COORD_FILE_NAME  ./ts_guess.xyz
  34.     &END
  35.     &KIND H
  36.       ELEMENT H
  37.       BASIS_SET DZVP-MOLOPT-GTH
  38.       POTENTIAL GTH-PBE-q1
  39.     &END KIND
  40.     &KIND C
  41.       ELEMENT C
  42.       BASIS_SET DZVP-MOLOPT-GTH
  43.       POTENTIAL GTH-PBE-q4
  44.     &END KIND
  45.   &END SUBSYS
  46. &END FORCE_EVAL

  47. &MOTION
  48.   &GEO_OPT
  49.     OPTIMIZER CG
  50.     TYPE TRANSITION_STATE
  51.   &END GEO_OPT
  52. &END MOTION
复制代码



作者
Author:
winterzen    时间: 2016-11-21 20:02
终于找到出错的原因了,原来还需要把dimer旋转的优化算法改成CG,另外CG的line search类型还要改成基于两点外推方式。完整的MOTION部分如下:
  1. &MOTION
  2.   &GEO_OPT
  3.     OPTIMIZER CG
  4.     &CG
  5.       &LINE_SEARCH
  6.         TYPE 2PNT    ! 基于两点外推
  7.       &END LINE_SEARCH
  8.     &END CG
  9.     TYPE TRANSITION_STATE
  10.     &TRANSITION_STATE
  11.       &DIMER
  12.         &ROT_OPT    ! dimer旋转的优化设置
  13.           OPTIMIZER CG
  14.           &CG
  15.             &LINE_SEARCH
  16.               TYPE 2PNT
  17.             &END LINE_SEARCH
  18.           &END CG
  19.         &END ROT_OPT
  20.       &END DIMER
  21.     &END
  22.   &END GEO_OPT
  23. &END MOTION
复制代码

这参数隐藏的太深了 。其他还有不少可调参数,需要仔细看一下dimer原始文献(J. Chem. Phys. 111, 7010 (1999); http://dx.doi.org/10.1063/1.480097)。看来用cp2k确实需要对原理有比较好的理解。




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3