something wrong in NPT

Thanks very much, Axel!


OTOH, there is the energy drift from numerical noise and truncation
and discretization errors that is unphysical, too.
thus i would start with nve and then see what kind of a total
energy drift you accumulate (with the piston is fixed position),
and then run nvt adjusted in a way to remove that drift, but only
barely so. that should give you a long enough reaction time of
the thermostat to not mess up your simulation by removing kinetic
energy too eagerly.

But I don't know what are the other possible reasons for those unphysical
energy drift except kinetic energy. For the system , to control the
pressure, the errors should be resulted from wrong calculated volume. To my
best knowledge, the error should be a constant for a long simulation. What's
worst consequent if I just remove kinetic energy?

you are not looking at your problem from the right direction.
it is not about forcing your system to behave the way that
you want, it first and foremost about _understanding_ why
it doesn't act the way you expect. thus the resolution is
different and thus in first order approximation, using _any_
temperature control algorithm is "bad".