The 'Velocity' field of particles is created automatically when you add a physics evolver.
by default, it's set to 0 (no movement)
you can change it in the spawn-script, by doing, for example:
Velocity = vrand();
this will set the velocity to a random unit vector (length = 1), therefore the particles will travel at 1 world unit / second.
if you do in the spawn script:
Velocity = vrand() * 40;
They will travel at 40 world units / second along the velocity vector.
Velocity = float3(10, 0, 1);
will make particles travel at 10 world units/second along the 'X' axis, and 1 unit/sec along the 'Z' axis, etc..
So, 'Velocity' isn't the vector between the previous position to the current position. you can get this vector in an evolve script by doing (assuming there's no gravity and no drag) "Velocity * dt", 'dt' being the timestep of the current simulation frame.
An evolver script in itself doesn't do anything to the velocity, unless you explicitely type a line of script that does something with it.
The main evolver that updates the velocity is the physics evolver. It will change velocity based on the ConstantAcceleration, Drag, VelocityFieldSampler, MassField, AccelField, ForceField, VelocityField, collisions, etc..