lammps模拟“lost atoms”原子原因及解决方法

2023-11-04 01:31

本文主要是介绍lammps模拟“lost atoms”原子原因及解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

lammps模拟过程中,最怕的是模拟过程中出错,其中,比较常见的一个错误是“lost atoms”,也就是常说的原子丢失。

正常情况下,分子动力学模拟要保证原子数目保持不变。

nve、nvt、npt系综中的“n”就是原子数目,这些系综已经明确了模拟过程中要保证原子数目“n”不变,原子数目减少则会中止模拟,并给出“lost atoms”错误提示。

“lost atoms”错误出现的最主要的原因是某些原子在积分过程中求解得到的速度过大,根据该速度计算出的下一步位移过大,已经超出了体系盒子的范围,换句话说,速度过快的原子已经跑出了盒子,造成“lost atoms”。

导致原子速度过快的原因有以下几个方面:

(1)模型设置不合理

一般出现在多原子建模中,比如一层石墨烯原子插入到Al原子之间,由于建模时石墨烯C原子位置设置不合理,导致与Al原子重叠。
在这里插入图片描述

在进行积分时,位置重叠或者距离过近的原子之间的排斥力过大,因此原子获得的速度过大,容易飞出box。

解决方法:
建模时注意原子排列位置,宁可离的稍远一些,也不要靠的过近。

建模之后使用minimize命令对体系进行能量最小化,minimize命令不用设置力场,是拓扑结构上对体系进行最小化,能够解决大部分的原子重叠问题。

(2)边界条件设置不合理

如果建模过程没有问题,也没出现明显的原子重叠现象,考虑一下是否是边界条件原因。

例如,边界条件为固定f条件,由于建模原因,模型的初始内应力又比较大,正常弛豫下,盒子应该会扩大以释放掉内应力从而达到系统平衡,而固定边界条件又不允许盒子尺寸发生变化,此时,边界上的原子会被挤出盒子,造成原子丢失。
在这里插入图片描述

解决方法:

将边界条件改为s,查看驰豫结果,如果盒子只是稍微扩大,没有出现盒子爆炸性的扩大,基本上属于这种问题,将初始盒子尺寸扩大可以解决此类问题。
(3)力场设置不合理

如果是发生了盒子“爆炸”,原子完全散开,单纯的扩大盒子尺寸没有意义,需要考虑力场设置是否合理。

力场描述原子之间的受力情况,如果力场设置不合理,可能会出现原子之间受力计算错误,原子之间的力远超正常值,也会造成原子丢失。

解决方法:更换力场。

(4)模拟步长设置不合理

当以上原因都排除后,如果还是存在“lost atoms”,考虑是否是timestep设置过大,设置更小的步长试试。

当出现丢失原子错误提示时,添加thermo_modify lost ignore 命令可以关掉错误提示,使程序能够运行下去。

但是,不建议这么做,这个命令仅仅是强制程序继续运行,不能解决原子丢失问题,程序“带病”运行,有可能会得到不正确的运行结果。

更多lammps教程请关注微信公众号:lammps加油站
扫码关注微信公众号
lammps交流请加qq群:
在这里插入图片描述

这篇关于lammps模拟“lost atoms”原子原因及解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/342294

相关文章

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

springboot报错Invalid bound statement (not found)的解决

《springboot报错Invalidboundstatement(notfound)的解决》本文主要介绍了springboot报错Invalidboundstatement(not... 目录一. 问题描述二.解决问题三. 添加配置项 四.其他的解决方案4.1 Mapper 接口与 XML 文件不匹配

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域