|
|
本帖最后由 sj12138 于 2024-1-10 16:52 编辑
各位老师好,我发现我拉伸之后的应力应变曲线不是从0开始的,查阅了一些资料,说要在npt弛豫时将拉伸方向的压力设为0,修改后还是不行,下面附上我的in文件,请教各位应该怎么解决?
#minimize
min_style sd
minimize 1.0e-20 1.0e-20 100000 100000
fix mom all momentum 10 linear 1 1 1 angular
fix 1 all box/relax iso 0.0
velocity all create 270 $R mom yes rot yes dist gaussian
velocity all scale 270
run 0
unfix 1
fix shake all shake 0.0001 20 0 b 1 a 1
#NVT
thermo_style custom time atoms step temp press vol lx ly lz enthalpy pe ke etotal density pxx pyy pzz pxy pxz pyz
thermo ${thermo}
fix NVT all nvt temp 270 270 100
dump 1 all xyz ${thermo} nvt_${name}.xyz
dump_modify 1 element O H C
fix vt all print 200 "${istep} ${T0} ${V}" screen no file nvt_${name}.dat
run ${runnvt}
unfix NVT
unfix vt
undump 1
reset_timestep 0
#npt弛豫
fix NPT all npt temp 270 270 100 x 98 98 1000 y 98 98 1000 z 0 0 1000
thermo_style custom time atoms step temp press vol lx ly lz enthalpy pe ke etotal density pxx pyy pzz pxy pxz pyz
thermo ${thermo}
dump 1 all xyz ${thermo} npt_${name}.xyz
dump_modify 1 element O H C
fix pt all print 200 "${istep} ${etol} ${han} ${T0} ${V} ${PE} ${P0}" screen no file npt_${name}.dat
run ${runmd}
undump 1
unfix pt
unfix NPT
reset_timestep 0
#stress-strain
variable tmpx equal "lx"
variable tmpy equal "ly"
variable tmpz equal "lz"
variable Lx0 equal ${tmpx}
variable Ly0 equal ${tmpy}
variable Lz0 equal ${tmpz}
variable strainx equal "(lx - v_Lx0)/v_Lx0"
variable strainy equal "(ly - v_Ly0)/v_Ly0"
variable strainz equal "(lz - v_Lz0)/v_Lz0"
variable stressx equal "-pxx/10000"
variable stressy equal "-pyy/10000"
variable stressz equal "-pzz/10000"
#z向拉伸
fix 2 all npt temp 270 270 100 x 98 98 1000 y 98 98 1000
fix 3 all deform 100 z erate 0.00000001 remap x units box
thermo_style custom time atoms step temp press vol lx ly lz density pxx pyy pzz pxy pxz pyz
thermo ${thermo}
dump 1 all xyz ${thermo} tension_${name}.xyz
dump_modify 1 element O H C
#保存应力应变数据
fix def3 all print 100 "${strainx} ${stressx} ${strainy} ${stressy} ${strainz} ${stressz}" screen no file stress-strain_${name}.dat
run ${runten}
|
|