The two versions have different calculations

I get an error when I run the following in file on lammps-23Jun2022, but running it on lammps-3Mar2020 with the same in file doesn’t produce this error? What I want to know is, is this bug generated with the version upgrade or some other issue? And how can I fix this? Thanks for the valuable input.

units metal
boundary p p s
atom_style atomic
neighbor 2.0 bin
neigh_modify every 1 delay 5 check yes
region box block -180.75 180.75 -180.75 180.75 -361.5 361.5 units box
create_box 3 box
lattice fcc 3.615
create_atoms 1 box
region cy1 cylinder z 0 0 48 -100 100 units lattice
delete_atoms region cy1
create_atoms 2 region cy1
region zhu cylinder z 0 0 45 -100 100 units lattice
delete_atoms region zhu
create_atoms 3 region zhu
group zhu region zhu
group cy region cy1
group cons subtract cy zhu
group yueshu subtract all cy
mass 1 64
mass 2 64
mass 3 64
write_data tongzhu.xyz
pair_style eam
pair_coeff * * Cu_u3.eam
thermo 1000
thermo_style custom step temp pe ke pxx pyy pzz lx ly lz

minimize 1.0e-12 1.0e-12 10000 10000
fix 1 all box/relax x 0 y 0 #xy 0
minimize 1.0e-12 1.0e-12 10000 10000
unfix 1
minimize 1.0e-12 1.0e-12 10000 10000
fix 1 all box/relax x 0 y 0 #xy 0
minimize 1.0e-12 1.0e-12 10000 10000
unfix 1
minimize 1.0e-12 1.0e-12 10000 10000
fix 1 all box/relax x 0 y 0 #xy 0
minimize 1.0e-12 1.0e-12 10000 10000
unfix 1
minimize 1.0e-12 1.0e-12 10000 10000
fix 1 all box/relax x 0 y 0 #xy 0
minimize 1.0e-12 1.0e-12 10000 10000
unfix 1
minimize 1.0e-12 1.0e-12 10000 10000
fix 1 all box/relax x 0 y 0 #xy 0
minimize 1.0e-12 1.0e-12 10000 10000
unfix 1
minimize 1.0e-12 1.0e-12 10000 10000

minimize 1.0e-13 1.0e-13 10000 10000

timestep 0.001
reset_timestep 0

velocity all create 300 99999 dist gaussian
fix re all npt temp 300 300 0.1 x 0 0 1 y 0 0 1
run 50000

unfix re

#fix hengwen yueshu nvt 300 300 0.1
#fix stable yueshu rigid single
#neigh_modify exclued group yueshu yueshu

velocity yueshu set 0 0 0
fix fixed yueshu setforce 0 0 0

compute T zhu temp
compute t cons temp

compute vcentro all centro/atom fcc
compute vpe all pe/atom
compute vcna all cna/atom 3.085764

#compute s zhu stress/atom NULL
#compute v zhu voronoi/atom
#variable stressx atom c_s[1]/c_v[1]/10000
#variable stressy atom c_s[2]/c_v[1]/10000
#variable stressz atom c_s[3]/c_v[1]/10000
#compute 1 zhu reduce/region film_layer ave v_stressx
#compute 2 zhu reduce/region film_layer ave v_stressy
#compute 3 zhu reduce/region film_layer ave v_stressz

thermo 1000
thermo_style custom step temp pe ke pxx pyy pzz lx ly lz c_T c_t #c_1 c_2 c_3

fix hengwen cons npt temp 300 300 0.1 x 0 0 1 y 0 0 1
fix_modify hengwen temp t

#variable x1 equal “xlo”
#variable x2 equal “xhi”
#variable y1 equal “ylo”
#variable y2 equal “yhi”
#variable z1 equal “zlo”
#variable z2 equal “zhi”
#region cub block {x1} {x2} {y1} {y2} {z1} {z2}
#group cub region cub
#group excess subtract all cub

velocity zhu create 300 98998 dist gaussian
fix w1 zhu npt temp 300 300 0.1 x 0 0 1 y 0 0 1
fix_modify w1 temp T
run 50000

error:
unfix re
#fix hengwen yueshu nvt 300 300 0.1
#fix stable yueshu rigid single
#neigh_modify exclued group yueshu yueshu
velocity yueshu set 0 0 0
fix fixed yueshu setforce 0 0 0
compute T zhu temp
compute t cons temp
compute vcentro all centro/atom fcc
compute vpe all pe/atom
compute vcna all cna/atom 3.085764

#compute s zhu stress/atom NULL
#compute v zhu voronoi/atom
#variable stressx atom c_s[1]/c_v[1]/10000
#variable stressy atom c_s[2]/c_v[1]/10000
#variable stressz atom c_s[3]/c_v[1]/10000
#compute 1 zhu reduce/region film_layer ave v_stressx
#compute 2 zhu reduce/region film_layer ave v_stressy
#compute 3 zhu reduce/region film_layer ave v_stressz

thermo 1000
thermo_style custom step temp pe ke pxx pyy pzz lx ly lz c_T c_t #c_1 c_2 c_3
fix hengwen cons npt temp 300 300 0.1 x 0 0 1 y 0 0 1
fix_modify hengwen temp t
WARNING: Temperature for fix modify is not for group all (…/fix_nh.cpp:1423)

#variable x1 equal “xlo”
#variable x2 equal “xhi”
#variable y1 equal “ylo”
#variable y2 equal “yhi”
#variable z1 equal “zlo”
#variable z2 equal “zhi”
#region cub block {x1} {x2} {y1} {y2} {z1} {z2}

#group cub region cub
#group excess subtract all cub
velocity zhu create 300 98998 dist gaussian
fix w1 zhu npt temp 300 300 0.1 x 0 0 1 y 0 0 1
fix_modify w1 temp T
WARNING: Temperature for fix modify is not for group all (…/fix_nh.cpp:1423)
run 50000
ERROR: Must not have multiple fixes change box parameter x (…/domain.cpp:168)
Last command: run 50000

Your input is very convoluted and because of the large number of commented out lines particularly hard to read. You usually get the best help if you produce a minimal input that has just enough statements to reproduce an error (it is also easier to debug and understand issues on your own this way.).

The error message is pretty much self-explanatory. The “bug” is very obviously with your input and not LAMMPS. The old version didn’t properly check for this condition and would just produce bogus results. In general, there is very little physical meaning in applying fix npt to a subset of atoms.

Please note that having an input that runs without LAMMPS stopping with an error or the simulation crashing does not mean that the simulation is correct. The GI-GO (= garbage in, garbage out) rule always applies and the simulation software often has no means to detect if an input will result in a meaningful simulation or just, well, garbage.