Velocity Command Necessary

All,

I have been running LAMMPS Simulations for years with no issues and have continually gotten reasonable results, but I was just asked a question regarding my codes which I do not know the answer to. I create my atoms and their initial coordinates in a separate python random number generator and input the file as usual, but I have never employed the velocity create command for the velocities. I’ve always just initiated a Nose-Hoover thermostat and given the system ample time to equilibrate, as seen below. My question is, is it necessary to use the velocity create command, or is what i’ve been doing with just thermostatting to start every thing correct? I ran a sample of the same type of code using the velocity create command and the results were largely consistent, with some differences which will clearly be do to initial conditions being different. Thanks for your help.

Nick

units metal
dimension 3
boundary p p p
atom_style atomic
pair_style eam/fs

read_data Cu64Zr36_Guassian_Coords_t=0_28.txt

pair_coeff * * Cu-Zr_2.eam.fs Cu Zr
timestep 0.005 #timestep=5fs
neigh_modify every 1 check yes
neighbor 4.0 bin

fix Thermostat all npt temp 2500.0 2500.0 0.5 iso 1.0 1.0 5.0

thermo_style custom step temp etotal press vol cpu
run 0

run_style verlet

variable Temperature equal temp
variable Volume equal vol
variable TimeStep equal step*5
variable Pressure equal press
variable E_Density1 equal etotal/vol
variable E_Density2 equal etotal/5000
Energy equal etotal

#Allow System to equilibrate for 1 ns

fix Temp_print all print 10 “{TimeStep} {Temperature}” append TempGauss_1200_28.txt title “” screen no
fix Pressure_print all print 10 “{TimeStep} {Pressure}” append PressureGauss_1200_28.txt title “” screen no
fix Volume_print all print 10 “{TimeStep} {Volume}” append VolumeGauss_1200_28.txt title “” screen no

run 200000 upto

It is probably fine. If you use LAMMPS to sample equilibrium properties at constant temperature, then all that matters is that your system is properly equilibrated before you start sampling. Whether you start with velocities of zero or some distribution, in both cases you still have to equilibrate before you start sampling, so it really makes no difference I think. You might reach an equilibrium state quicker with the velocity command, but I would not worry about it too much.

All,

     I have been running LAMMPS Simulations for years with no issues and
have continually gotten reasonable results, but I was just asked a question
regarding my codes which I do not know the answer to. I create my atoms and
their initial coordinates in a separate python random number generator and
input the file as usual, but I have never employed the velocity create
command for the velocities. I've always just initiated a Nose-Hoover
thermostat and given the system ample time to equilibrate, as seen below. My
question is, is it necessary to use the velocity create command, or is what
i've been doing with just thermostatting to start every thing correct? I ran
a sample of the same type of code using the velocity create command and the
results were largely consistent, with some differences which will clearly be
do to initial conditions being different. Thanks for your help.

the use of the velocity command (and initially a dissipative
thermostat instead of nose-hoover) will speed up the process of
reaching equipartitioning of energy, which is a prerequisite to
equilibration. however, by how much this is sped up and more generally
how long it will take until equilibrium is reached with any kind of
initial setup and input depends very much on the specific systems. for
uncritical systems (e.g. liquids at high temperature) this may have no
impact, for pathological systems, the impact may be drastic and
negatively affect any kind of outcome. some geometries are notoriously
difficult to equilibrate even when following best practices. please
note that most "non-dissipative" thermostats (like nose-hoover) do not
encourage equipartitioning directly and most of those based on
rescaling (temp/rescale and berendsen) even tend to counteract it.

axel.

p.s.: using random coordinates in particular is conceptionally not
very different from assigning random velocities. atoms will have more
or less random potential energy and some of which will quickly be
converted into kinetic energy.