24小时热门版块排行榜    

查看: 6844  |  回复: 13
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

shiling1813

新虫 (小有名气)

[求助] lammps中的fix npt命令用后压强不为零的原因?已有1人参与

大家好!
       我最近在使用lammps计算金属的剪切模量,想在xy方向施加剪切应变,产生xy方向的剪切应力,且其它五个方向(x、y、z、xz、zy方向)的应力为零,从而计算xy方向的剪切模量。控压命令使用的是fix npt命令。
       为什么计算出来的压强或应力在其它五个方向(x、y、z、xz、zy方向)不为零?
       我的in文件和应力计算结果如下:
units                metal
boundary        p p p
atom_style        atomic
lattice                fcc 1

read_data   noreallrelax000lamyb.dat
change_box all triclinic

pair_style  eam/alloy
pair_coeff  * * nialre_djp.eam.alloy Ni Al Re

velocity    all create 0.5 49280 rot yes dist gaussian
thermo      1000
timestep    0.001
#fix         1 all nvt temp 0.5 0.5 0.1
fix         1 all npt temp 0.5 0.5 0.1 x 0.0 0.0 1 y 0.0 0.0 1 z 0.0 0.0 1 yz 0.0 0.0 1 xz 0.0 0.0 1 xy 0.0 0.0 1 couple none drag 1.0                                                                                          

compute            spa all stress/atom NULL
compute            spb all stress/atom thermo_temp
compute            spc all stress/atom NULL virial
compute     ppptem zhongjian reduce sum c_spb[1] c_spb[2] c_spb[3] c_spb[4] c_spb[5] c_spb[6]
compute     ppp zhongjian reduce sum c_spc[1] c_spc[2] c_spc[3] c_spc[4] c_spc[5] c_spc[6]

fix avt zhongjian ave/time 1 1000 10000 c_ppp
  • file tmp1.rdf mode vector
    fix avttem zhongjian ave/time 1 1000 10000 c_ppptem
  • file tmp2.rdf mode vector

    run             10000

    unfix 1
    fix         2 all npt temp 0.5 0.5 0.1 x 0.0 0.0 1 y 0.0 0.0 1 z 0.0 0.0 1 yz 0.0 0.0 1 xz 0.0 0.0 1 couple none drag 1.0

    label loopa
    variable        u loop 50

    change_box all xy delta 0.1219364 units box

    run                10000

    next            u
    jump in.lamstressnpt loopa


    tmp1.rdf文件中的应力计算结果如下:

    # Time-averaged data for fix avt
    # TimeStep Number-of-rows
    # Row c_ppp
    10000 6
    1 -23328.7
    2 -108325
    3 -23041.5
    4 -1066.45
    5 7104.27
    6 -11874
    20000 6
    1 -424350
    2 35272.4
    3 458826
    4 -107510
    5 -3254.15
    6 5063.74
    30000 6
    1 568412
    2 201561
    3 -427249
    4 2.29794e+06
    5 -873.69
    6 1600.17
    40000 6
    1 357465
    2 258743
    3 -154082
    4 2.55284e+06
    5 -2511.4
    6 3019.35
    50000 6
    1 141415
    2 221818
    3 -8094.18
    4 2.99189e+06
    5 -5015.37
    6 8539.99
       。
       。
       。
  • 回复此楼
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

    zhaijianhui

    铁杆木虫 (正式写手)

    再向你请教个问题,change box tri,这个命令是用来把模型变成非正交的是吧?为什么只有变成非正交之后才能控制xy yz xz的压强?

    发自小木虫IOS客户端
    13楼2017-09-06 06:29:35
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
    查看全部 14 个回答

    iSimuLy

    捐助贵宾 (正式写手)

    资深专家顾问


    统计平均才有意义,压力本身涨落就很大

    发自小木虫Android客户端

    » 本帖已获得的红花(最新10朵)

    2楼2017-08-10 09:50:59
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

    shiling1813

    新虫 (小有名气)

    送红花一朵
    引用回帖:
    2楼: Originally posted by iSimuLy at 2017-08-10 09:50:59
    统计平均才有意义,压力本身涨落就很大

    谢谢!
    可是对时间统计平均也没看到结果应力控制为零啊?是我统计的原子数太少了吗?
    我从体系中选取了120个原子,统计了1000个时间步得到的应力结果如下:
    # Time-averaged data for fix avt
    # TimeStep Number-of-rows
    # Row c_ppp
    10000 6
    1 -23328.7
    2 -108325
    3 -23041.5
    4 -1066.45
    5 7104.27
    6 -11874
    20000 6
    1 -424350
    2 35272.4
    3 458826
    4 -107510
    5 -3254.15
    6 5063.74
    30000 6
    1 568412
    2 201561
    3 -427249
    4 2.29794e+06
    5 -873.69
    6 1600.17
    40000 6
    1 357465
    2 258743
    3 -154082
    4 2.55284e+06
    5 -2511.4
    6 3019.35
    50000 6
    1 141415
    2 221818
    3 -8094.18
    4 2.99189e+06
    5 -5015.37
    6 8539.99
       。
       。
       。
    3楼2017-08-10 13:24:19
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

    iSimuLy

    捐助贵宾 (正式写手)

    资深专家顾问


    【答案】应助回帖

    ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
    感谢参与,应助指数 +1
    shiling1813: 金币+10, ★★★很有帮助, 解决了我的问题 2017-08-11 13:35:26
    这个平均,是所有原子的,你这是算的什么,stress/atom?

    感觉你对定义不太理解,需要好好学习下基础知识呀
    4楼2017-08-10 21:56:35
    已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
    信息提示
    请填处理意见