I found that the maximum velocity of dark matter particles is proportional to 10^3 km/s at z=0. However, after I assigned the particle velocity components respectively to 1024^3 mesh, the maximum velocity on the grids is proportional to 10^7 km/s. This maximum value is even greater than light speed. Whether it is reasonable?
Dylan Nelson
20 Sep '20
Hello,
I agree that the maximum velocities you find should be about 10^3 km/s or so. But I don't know exactly what you mean "assigned the particle velocity components respectively to a mesh". I guess in this procedure there must be a bug, if the mean/min/max velocities change significantly.
Yun Wang
21 Sep '20
I mean, I am trying to assigned the particle velocity to the grid, just like assigned the mass to the grid using 'cloud in cell' assignment scheme.
As you've mentioned, I must be doing something wrong in this procedure.
Dylan Nelson
21 Sep '20
Perhaps you are taking the sum instead of the mean?
The truth is that I don't know the details of the assignment procedure, since I import the 'nbodykit' (Nick2017) in Python environment to do all the assignment operations.
By this means, firstly I loaded in the snapshot hdf5 files as one catalog:
Finally, the result is that the momentum field, i.e. "[1+delta(x_g)] times V_x(x_g)", where x_g is the coordinate of the grid.
In order to obtain the velocity field, I computed "momentum field / (1+delta)" by using the code V_x = np.divide(momentum, dens_contra, out=np.zeros(momentum.shape, dtype='float32'), where=dens_contra!=0). However, the result is ridiculous just like I said in the first comment.
Hello Nelson,
I found that the maximum velocity of dark matter particles is proportional to 10^3 km/s at z=0. However, after I assigned the particle velocity components respectively to 1024^3 mesh, the maximum velocity on the grids is proportional to 10^7 km/s. This maximum value is even greater than light speed. Whether it is reasonable?
Hello,
I agree that the maximum velocities you find should be about 10^3 km/s or so. But I don't know exactly what you mean "assigned the particle velocity components respectively to a mesh". I guess in this procedure there must be a bug, if the mean/min/max velocities change significantly.
I mean, I am trying to assigned the particle velocity to the grid, just like assigned the mass to the grid using 'cloud in cell' assignment scheme.
As you've mentioned, I must be doing something wrong in this procedure.
Perhaps you are taking the sum instead of the mean?
The truth is that I don't know the details of the assignment procedure, since I import the 'nbodykit' (Nick2017) in Python environment to do all the assignment operations.
By this means, firstly I loaded in the snapshot hdf5 files as one catalog:
cat = HDFCatalog('/home2/TNG100-1/output/snapdir_099/snap_099.*', dataset='PartType1')
cat['Vx'] = cat['Velocities'][:,0]
Then I called the
to_mesh()
function to create mesh:in_mesh = cat.to_mesh(Nmesh=1024, BoxSize=75.0, position='Coordinates', compensated=False, resampler='cic', value='Vx')
Finally, the result is that the momentum field, i.e. "[1+delta(x_g)] times V_x(x_g)", where x_g is the coordinate of the grid.
In order to obtain the velocity field, I computed "momentum field / (1+delta)" by using the code
V_x = np.divide(momentum, dens_contra, out=np.zeros(momentum.shape, dtype='float32'), where=dens_contra!=0)
. However, the result is ridiculous just like I said in the first comment.