Obtain a displacement field in k-space.

Dear all,

I've been trying and struggling to obtain a (time dependent) 3d displacement field of an fcc crystal in the k space.
Since the lattice structure is not regular (unlike a simple cubic one), I’m having troubles in Fourier transforming the displacement field into the k-space in the post processing.
Additionally, it seems the “dump h5md” command does not store the information of the ordering of the atoms, which makes the whole analysis very tedious to begin with.

So, I’d like to know if there’s a lammps command to directly calculate a 3d displacement field of any crystal structure in the k space.
It seems it should be possible as lammps should calculate this quantity to calculate the dynamical matrix or phonon frequencies.

In fact, the best would be to obtain the displacement field in the k-omega space.

If this is not implemented, I’d like to know how to properly store the displacement field (or the positions of atoms) in a orderly manner,
so that I can easily post process the raw data to obtain the k-space counterpart.

Thanks in advance
Best,

P.S. Here I attach a video showing the time dependent displacement field, if this helps.
I want to transform this data into the k-omega space.

3d-field-animated0.mp4 (274 KB)

Dear all,

I’ve been trying and struggling to obtain a (time dependent) 3d displacement field of an fcc crystal in the k space.
Since the lattice structure is not regular (unlike a simple cubic one), I’m having troubles in Fourier transforming the displacement field into the k-space in the post processing.
Additionally, it seems the “dump h5md” command does not store the information of the ordering of the atoms, which makes the whole analysis very tedious to begin with.

the dump h5md style is bounded by the h5md convention. this is contributed code, so for more details about the conventions, you have to contact the contributing author or the corresponding website. the most flexible dump style in LAMMPS is the “custom” style, which is a (documented) text format. for supported styles the dump output can be sorted by atom id via the dump_modify command. for details on these issues, please see the documentation for the dump and dump_modify commands.

So, I’d like to know if there’s a lammps command to directly calculate a 3d displacement field of any crystal structure in the k space.

LAMMPS is WYSIWYG or what you see (in the manual) is what you get. In other words, if there is a feature like what you are looking for, it would be documented in the manual.
Since there are so many features and options and many of them contributed by different developers outside the (small) group of core developers, nobody can memorize everything. I would say it would be most likely to find this in the USER-ATC package.

It seems it should be possible as lammps should calculate this quantity to calculate the dynamical matrix or phonon frequencies.

both of these use position data.

In fact, the best would be to obtain the displacement field in the k-omega space.

If this is not implemented, I’d like to know how to properly store the displacement field (or the positions of atoms) in a orderly manner,
so that I can easily post process the raw data to obtain the k-space counterpart.

you can store positions with the dump command. You can also compute displacements by using fix store/state and then define an atom style variable to compute the displacement from the stored position relative to the current position and output that property also in a dump file.

Axel.

Axel,

Thanks for the very quick response :slight_smile:
So, it seems I should either use an additional package or post process it.
I’m opt to post process my data, then.

If you allow me, I have a follow up question.
I want to assign three numbers for each of the atoms, preferably as a form of id.
The three numbers would note the position of a node in the lattice.
A bit of googling led me to that one can sort the atoms by using the 'chunk/atom’ command.
It seems I can use this one.

The caveat is my crystal is fcc. So, simply binning the atomic position won’t give me a desirable outcome.
So, if the crystal structure is fcc then I should tilt my box accordingly?
Or, is there a command that automatically takes care of it?

Thanks again
Best,
Miru

Binning is using orthogonal bins. Always.
So if you are post processing then you need to do the binning as well. This is fast and easy to do, so I wonder why going through the complexity of doing it in another code and then having to parse the result.

Axel