Problems converging a NEB run Quote

本文探讨了使用快速最小化(QM)预收敛而非FIRE方法,以更保守的方式达到路径收敛,尤其是在高度弯曲的路径中。建议使用LCLIMB=.TRUE.以精确找到鞍点,并介绍了如何调整QM和LBFGS优化器参数以加速优化过程。

本文转自:
http://theory.cm.utexas.edu/forum/viewtopic.php?f=2&t=470&p=1497&hilit=velocity+neb#p1497

For a hard to converge paths I would pre-converge using quick-min (QM) as opposed to FIRE. FIRE tends to be more aggressive and will sometimes blow past a minimum into a separate basin.

You should always use LCLIMB = .TRUE.

  • unless for some reason you really don’t want to know the saddle exactly (all method tend to converge better because the path in essence gets pinned at the saddle and the two sides are decoupled making convergence faster)

To pre-converge in a conservative fashion use QM

IOPT=3
TIMESTEP = 0.01
(but can go as low as 0.001 for really high initial forces)
MAXMOVE = 0.2 (you could also control radical change by lowering this but I find it more effective to control the TIMESTEP)

I typically take the view that if an optimizer need to be restricted with maxmove the optimizer/parameters is not well suited for the minimization.

If you path is highly curved in xyz space (ie. rotation around a bond) it would be better to start with a reasonable guess for the saddle oppose to the default linear interpolation. (Note: NEB converges to saddle closest to the initial path not always the lowest saddle)

Once a path seems to be in a reasonable local minima the time step for QM can be increased to speed the optimization. Or you may switch to a more aggressive optimizer like LBFGS

I consider the default parameters for this to be pretty conservative

LBFGS is typically the fastest optimizer but it can have issues/instabilities with tangential movement.
LBFGS optimizer (IOPT=1)
MAXMOVE = 0.2 Maximum allowed step size for translation
ILBFGSMEM = 20 Number of steps saved when building the inverse Hessian matrix
LGLOBAL = .TRUE. Optimize the NEB globally instead of image-by-image
INVCURV = 0.01 Initial inverse curvature, used to construct the inverse Hessian matrix

I typically use a more aggressive INVCURV = 0.05 (should not be used with strong bonds like Oxygen-Oxygen)

Again I feel the best way to control this optimizer is to adjust INVCURV but MAXMOVE can be lowered to 0.05, any lower than that and you might as well return to using QM

I cannot recommended using the line based version of this optimizer (CG would be a better choice if you want to do fd steps and calculate curvatures )
*LLINEOPT = .FALSE. Use a force based line minimizer for translation
*FDSTEP = 5E-3 Finite difference step size for line optimizer

LBFGS biggest instability comes from tangential movements where the NEB is trying to become evenly spaced. The GLOBAL option fixed most of these issues however they can creep back in for a path with many images.

The NEB method works best for 3-8 interior images.

内容概要:本文系统阐述了Java Persistence API(JPA)的核心概念、技术架构、核心组件及实践应用,重点介绍了JPA作为Java官方定义的对象关系映射(ORM)规范,如何通过实体类、EntityManager、JPQL和persistence.xml配置文件实现Java对象与数据库表之间的映射与操作。文章详细说明了JPA解决的传统JDBC开发痛点,如代码冗余、对象映射繁琐、跨数据库兼容性差等问题,并解析了JPA与Hibernate、EclipseLink等实现框架的关系。同时提供了基于Hibernate和MySQL的完整实践案例,涵盖Maven依赖配置、实体类定义、CRUD操作实现等关键步骤,并列举了常用JPA注解及其用途。最后总结了JPA的标准化优势、开发效率提升能力及在Spring生态中的延伸应用。 适合人群:具备一定Java基础,熟悉基本数据库操作,工作1-3年的后端开发人员或正在学习ORM技术的中级开发者。 使用场景及目标:①理解JPA作为ORM规范的核心原理与组件协作机制;②掌握基于JPA+Hibernate进行数据库操作的开发流程;③为技术选型、团队培训或向Spring Data JPA过渡提供理论与实践基础。 阅读建议:此资源以理论结合实践的方式讲解JPA,建议读者在学习过程中同步搭建环境,动手实现文中示例代码,重点关注EntityManager的使用、JPQL语法特点以及注解配置规则,从而深入理解JPA的设计思想与工程价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值