Hard to understand temperature variation

Dear users,
i simulated a collision bewteen a particle and block. i defined three groups for block and a group for particle. what i care is the temperature of the bulk_upper group and particle group. Therefore, i compute and monitor their temperature step by step.
unexpectedly, the temperature of the bulk_upper group and thermo_temp is the same as the specified temperature, while the temperature of particle_upper group (T_upper ) is much lower. I don’t understand this. Whether the NVT does not control the whole temperature or anything was wrong in the script.
(btw: i had alread posted one similar subject. Hope i present clearly my question this time and not waste time again.)

input and log

units real
dimension 3
newton on
boundary p p p
atom_style hybrid charge atomic
communicate multi vel yes

neighbor 2.0 nsq
neigh_modify delay 0 every 1 check yes page 100000 one 10000

timestep 0.5

--------------------------definitiophere------------------

read_data data.TIO
orthogonal box = (-30 -30 -30) to (30 30 100)
1 by 1 by 1 MPI processor grid
4335 atoms

#---------------Matsui-Akaogi potential-----------------------

pair_style buck/long/coul/long cut long 10.0

pair_coeff 1 1 7.177e+5 0.154 1.210e+2
pair_coeff 1 2 3.911e+5 0.194 2.904e+2
pair_coeff 2 2 2.717e+5 0.234 6.969e+2

pair_modify table 0
kspace_style ewald 1.0e-4

#-------------------------------define group-------------------
group upper id >= 3970 #upper particle
366 atoms in group upper

group bulk_down region 1
467 atoms in group bulk_down
group bulk_middle region 2
759 atoms in group bulk_middle
group bulk_upper region 3
2743 atoms in group bulk_upper

group bulk_down region 1
group bulk_middle region 2
group bulk_upper region 3

###compute

computer energy

compute new all temp
compute 1 all pe/atom
compute kineng_upper upper ke
compute 4 all stress/atom pair
compute T_middle bulk_middle temp
compute bulk_upper bulk_upper temp
compute T_upper upper temp/com

#initial velocity and temp

velocity all create 300.0 123456 dist gaussian units box
#velocity bulk_down set 0.0 0.0 0.0 units box

###fix—relax-nvt------------

fix 1 all nvt temp 300.0 300.0 10.0 drag 0.2
fix 2 bulk_down setforce 0.0 0.0 0.0

thermo 10
thermo_style custom step temp press pe ke etotal c_T_upper v_position_z v_velocity_z c_bulk_upper
thermo_modify lost warn

dump 1 all xyz 5000 dump.xyz.*
dump_modify 1 element Ti O

run 5000

Step Temp Press PotEng KinEng TotEng T_upper position velocity bulk_upper
0 267.20299 48790.853 -989605.84 3451.9502 -986153.89 281.00529 48.411289 0.0001091628 305.95323
1000 331.44517 4010.0177 -1247721 4281.8841 -1243439.2 149.46128 48.412408 -1.1437591e-006 332.52604
2000 301.79636 4620.8873 -1255331.7 3898.8561 -1251432.8 157.78602 48.411879 -1.3459734e-006 309.92492
3000 296.23474 4332.4544 -1257317.7 3827.0064 -1253490.7 178.3174 48.411191 -1.3087518e-006 305.1288
4000 297.65408 4818.3058 -1258478.2 3845.3427 -1254632.9 161.38247 48.410409 -1.8083279e-006 312.27244
5000 300.54857 4639.2941 -1259125.6 3882.7362 -1255242.8 179.54521 48.40944 -1.902138e-006 318.75308

Loop time of 12729.1 on 1 procs for 5000 steps with 4335 atoms
Pair time () = 746.484 (5.86441) Kspce time () = 11969.7 (94.0347)
Neigh time () = 10.8281 (0.0850662) Comm time () = 0.15625 (0.00122751)
Outpt time () = 0.203125 (0.00159576) Other time () = 1.65625 (0.0130116)

Nlocal: 4335 ave 4335 max 4335 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 603 ave 603 max 603 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 895708 ave 895708 max 895708 min
Histogram: 1 0 0 0 0 0 0 0 0 0

Total # of neighbors = 895708
Ave neighs/atom = 206.622
Neighbor list builds = 84
Dangerous builds = 0

unfix 1
undump 1

sorry, no one is likely to debug a complicated input
script for you. If you don’t know why

the temperature of some group of atoms is
what you expect, you can dump the velocities
of those atoms and compute the temp yourself.
It’s likely you will get the same answer LAMMPS
is producing.

Steve