lammps速度velocity加载怎么换算成应变率

如题所述

换算方法如下:
1.应变的输出

假如在Z方向上进行拉伸,应变strain可以这样计算:

variable tmp equal "lz"
variable L0 equal ${tmp}
variable strain equal "(lz - v_L0)/v_L0"
2. 应力的输出

对于全部原子体系的应力,可通过在thermo_style custom里加上pxx pyy pzz pxy pxz pyz字段讲体系应力值输出。注意:pxx pyy pzz这些值为负值。

可以使用下面的公式进行转换,在units metal下,除以10000将应力单位转换为GPa:

streesx=-pxx/10000
streesy=-pyy/10000
streesz=-pzz/10000

thermo 100
thermo_style custom step temp stressx stressy stressz
如果输出某个原子组的应力,需要使用compute计算单个原子的应力,将这个组内的所有原子应力求和,然后除以体积。

compute s mobile stress/atom
compute 2 mobile reduce sum c_s[1] c_s[2] c_s[3]
variable stressx equal c_2[1]/(v_Vol)
variable stressy equal c_2[2]/(v_Vol)
variable stressz equal c_2[3]/(v_Vol)
thermo_style custom step temp v_stressx v_stressy v_stressz
3.将应力-应变数值输出为文件

以上代码中,应力、应变数据输出到log文件中,后期处理稍微麻烦,也可以单独把应力、应变数据存储到一个单独文件中。

#--------------------------应力应变----------------------------------
variable tmp equal "lz"
variable L0 equal ${tmp}
variable strain equal "(lz - v_L0)/v_L0"
variable stressz equal "-pzz/10000"

#-------------------------应力应变保存到文件---------------------------
fix def3 all print 100 "${strain} ${stressz}" file stress-strain.dat screen no
温馨提示:答案为网友推荐,仅供参考
相似回答