请选择 进入手机版 | 继续访问电脑版

分子模拟论坛 Molecular Simulation Forums

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 499|回复: 10

[原创]谈谈自己对LAMMPS中应力的计算的看法,欢迎大家讨论

[复制链接]

200

主题

1163

帖子

2532

积分

金牌会员

Rank: 6Rank: 6

积分
2532
发表于 2008-8-26 15:41:00 | 显示全部楼层 |阅读模式
LAMMPS的compute stress/atom 命令,提供的计算“原子应力”的功能
相关网址:http://lammps.sandia.gov/doc/compute_stress_atom.html
关于这一点,我从开始学习LAMMPS就对应力感兴趣,到现在也没有搞明白,很是惭愧。把自己的一些看法总结一下,希望大家多多参与讨论,争取能够解决问题。
也希望对此帖有些帮助 http://www.mdbbs.org/thread-5597-1-1.html
该compute将给出每个原子的六个“应力分量”,表达式如下图所示:
需要说明的是,上述“原子应力”和“应力分量”都加了引号,是因为LAMMPS给出的结果并不是普通意义上的原子应力和应力分量。
该compute命令的描述中有这样一段:
It is also really
a stress-volume formulation
, meaning the computed quantity is in units of pressure-volume. It would need to be divided by a per-atom volume to have units of stress (pressure), but an individual atom's volume is not easy to compute in a deformed solid or a liquid.
意思很明确,LAMMPS给出的“应力”是能量量纲,对应你的单位的 压强*体积。
下面再花点儿篇幅介绍一下原子应力的物理意义:
(以下内容引自 纳米铜力学行为的分子动力学模拟,梁海弋,USTC博士学位论文,导师王秀喜,2001.7.1)
宏观应力反映了单位面积上作用力的大小,是关于面积的强度量。离散原子系统的原子应力是关于体积的强度量。实际上,原子应力只是形式地沿用了应力的概念,具有与宏观应力完全不同的特征。
原子应力的表达式:
(可见,与LAMMPS给出的“应力”公式仅差了体积项Omiga)
原子应力具有能量密度的量纲,包括了原子动量流和原子间作用力的贡献。是原子的一种力学“活性能”,反应了原子产生运动的潜在能力。原子应力越高,则原子越容易发生位错运动。
原子应力与宏观应力的关系:(推导过程点击此处下载:)
而每个原子的应力:
通过上两个公式可以看出:对原子应力进行Voronoi体积加权平均即可得到系统瞬时应力;系统瞬时应力的系综平均值为宏观测量的系统应力值。
最后一点:
如同LAMMPS中compute命令的描述中所说,每个原子的体积很不好计算(我想这是问题的难点所在)。梁的论文多次提到 Voronoi体积,通过下图做简要解释:
抛砖引玉,欢迎大家讨论
[ 本帖最后由 fatcharm 于 2008-8-26 15:43 编辑 ]
回复

使用道具 举报

0

主题

46

帖子

94

积分

注册会员

Rank: 2

积分
94
发表于 2008-8-26 20:22:00 | 显示全部楼层
关于原子级应力该如何定义,目前学术界还有争议,这个问题我也没理解透彻,附件里有我收集的最近几年关于这个问题的一些讨论的文献
PS: 不知fatcharm可否将梁海弋的博士论文共享一下。。。。
[ 本帖最后由 lwan 于 2008-8-26 20:43 编辑 ]
回复

使用道具 举报

200

主题

1163

帖子

2532

积分

金牌会员

Rank: 6Rank: 6

积分
2532
 楼主| 发表于 2008-8-26 23:06:00 | 显示全部楼层
应lwan之邀,分享梁海弋的博士论文《纳米铜力学行为的分子动力学模拟》
在 万方数据 上下载的,所以不是一个pdf,而是被按章节拆分为好多个小pdf,不过通过网页浏览是很方面的,
解压之后有个 名为 default.htm 的网页,打开即可
以下是一个纳米盘链接,方便使用纳米盘的不妨用这个下载,毕竟分卷有点儿多
纳米铜力学行为的分子动力学模拟.rar
回复

使用道具 举报

15

主题

56

帖子

133

积分

注册会员

Rank: 2

积分
133
发表于 2008-8-27 10:20:00 | 显示全部楼层
谢谢超版的解释,也就是说通过lammps中compute stress计算得到的结果具有能量的量纲,再求出原子的Voronoi体积,即可得到物质的应力,附件中的文献提供了一种求原子体积的方法
回复

使用道具 举报

17

主题

74

帖子

171

积分

注册会员

Rank: 2

积分
171
发表于 2008-8-30 18:34:00 | 显示全部楼层
最近就在弄这问题,,一点感触是,由于lammps计算结果具有能量量纲,因此且不论原子体积的变化,这种应力描述只适用于温度均匀的体系,对于有温度梯度的系统,计算中会不恰当的加入动能的因素,偏差可能会很大
回复

使用道具 举报

15

主题

56

帖子

133

积分

注册会员

Rank: 2

积分
133
发表于 2008-8-30 21:24:00 | 显示全部楼层
原帖由 wangwy13 于 2008-8-30 18:34 发表

最近就在弄这问题,,一点感触是,由于lammps计算结果具有能量量纲,因此且不论原子体积的变化,这种应力描述只适用于温度均匀的体系,对于有温度梯度的系统,计算中会不恰当的加入动能的因素,偏差可能会很大
想问下,对于温度均匀的体积,比如平衡好的液态体系,这种由lammps计算出来的应力,具有的是能量的量纲,它的实际意义是什么,我算了一下,前三个的平均值大小在一个量级,后三个的大小在一个量级,它们与体系的总能量有什么关系?
回复

使用道具 举报

17

主题

74

帖子

171

积分

注册会员

Rank: 2

积分
171
发表于 2008-8-30 22:00:00 | 显示全部楼层
原帖由 good-hao 于 2008-8-30 21:24 发表

想问下,对于温度均匀的体积,比如平衡好的液态体系,这种由lammps计算出来的应力,具有的是能量的量纲,它的实际意义是什么,我算了一下,前三个的平均值大小在一个量级,后三个的大小在一个量级,它们与体系的总 ...
这个我也在苦恼研究中,与总能量的关系可能不太好说,后三个应该是与剪切有关的,而前三个与拉压有关,液态剪切很小吧,我是这么理解的
回复

使用道具 举报

0

主题

46

帖子

94

积分

注册会员

Rank: 2

积分
94
发表于 2008-8-31 23:04:00 | 显示全部楼层
lammps计算的应力有两种:
一是体系整体的应力状态,通过在thermo_style custom里加上pxx pyy pzz pxy pxz pyz字段可将给定时间步(由thermo N命令所指定)的体系应力值输出,再求时间平均即可(实际上求出的是压强张量,即负的应力值); 该应力的计算用的是统计力学里的Virial定理(参见> by Allen & Tildesley),所算出来的应力与宏观应力是一致的(强调一下,用于平衡态);
二是单个原子的应力,也就是楼主所讨论的,通过compute stress/atom命令所计算出来的六个值;这个应力的计算则是通过对上述Virial定理所定义的体系应力按原子分解,即将公式中的按原子求和的算符拿掉(同时应将体系的体积换为单个原子的体积),不过,正如楼主所指出的,由于单个原子的体积计算太麻烦,lammps在计算时干脆去掉了体积项,这就是为什么用compute stress/atom命令所算出来的“应力”具有能量的单位的原因。
可以看出,在lammps里,如果要计算体系中某个区域(由region定义,可以是整个模拟盒)所围成的“块”的应力,只需将该区域里的所有原子的单原子应力值加起来,再除以这个区域的体积即可,无须进行单个原子体积的计算。

问题是,将Virial定理所定义的体系应力按原子分解所给出的量是否就是单个原子上所受的应力?它与宏观应力的概念对应吗?我在2楼所提供的文献:2003PRTSA-A new look at the atomic level virial stress.pdf 对这个问题有详细讨论,但目前似乎还没有形成统一的认识。
[ 本帖最后由 lwan 于 2008-8-31 23:38 编辑 ]
回复

使用道具 举报

5

主题

9

帖子

25

积分

新手上路

Rank: 1

积分
25
发表于 2008-8-31 23:35:00 | 显示全部楼层
可以看出,在lammps里,如果要计算体系中某个区域(由region定义,可以是整个模拟盒)所围成的“块”的应力,只需将该区域里的所有原子的单原子应力值加起来,再除以这个区域的体积即可,无须进行单个原子体积的计算。谢谢lwan的解释,关于上面这一点,我还有些疑问
如果说“块”中原子分布均匀,即每个原子占有的体积差不多,那以上的方法无疑是最好的了,我本科论文的时候就是采用这种方法处理的。
可是另外一种情况,如果“块”中各个原子所占的体积差别很大,那体积的加权效应就比较明显。“原子应力”加和再除以体积得到的数值就跟上面各贴讨论的理论得出来的数值就有一定的误差。
如何是这样的误差尽量小呢? 突然想到一点,就是:如果在这些不均匀的地方, 让“块”取的足够小,从而避免上述不均匀性?
初步想法,欢迎大家继续讨论。
------by fatcharm,今天出了点问题,fatcharm不能发帖了,所以换了马甲,没做什么坏事儿,大家不要去举报哦,呵呵
回复

使用道具 举报

0

主题

46

帖子

94

积分

注册会员

Rank: 2

积分
94
发表于 2008-9-1 00:02:00 | 显示全部楼层
原帖由 wolfshow 于 2008-8-31 23:35 发表

如果说“块”中原子分布均匀,即每个原子占有的体积差不多,那以上的方法无疑是最好的了,我本科论文的时候就是采用这种方法处理的。
可是另外一种情况,如果“块”中各个原子所占的体积差别很大,那体积的加权效应就比较明显。“原子应力”加和再除以体积得到的数值就跟上面各贴讨论的理论得出来的数值就有一定的误差。
如何是这样的误差尽量小呢? 突然想到一点,就是:如果在这些不均匀的地方, 让“块”取的足够小,从而避免上述不均匀性?
个人认为,不存在体积加权效应,从你给出的梁海弋的推导可看出,单个原子应力含有该原子Voronoi体积的倒数项,在求Voronoi体积加权平均时,这个单原子体积项会被消去,因此,二者的结果应该是一样的。
P.S. 不明白你的问题,将“块”取得足够小,不就成了单个原子了吗?
回复

使用道具 举报

Archiver|手机版|小黑屋|分子模拟论坛  

GMT+8, 2018-11-21 00:27 , Processed in 0.097572 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表