In this article authors show crystal and liquid phase from two dimensional crystals by calculating structure factor (Fourier transform of 2D points).

enter image description here

I have generated set of points in 2D that represent lattice points of a perfect triangular lattice and a non perfect lattice. (images below)

perfect lattice enter image description here not perfect lattice enter image description here

I want plot similar results from figure 2 of the article (image below) for both cases perfect and not perfect lattice. Can I do this in mathematica?

not perfect The plot here shows for totally random points (left), not perfect lattice (middle), and perfect lattice (right)

Thank you.

  • $\begingroup$ Perhaps Fourier[] would work? $\endgroup$
    – bill s
    Commented Jun 16, 2020 at 2:34
  • $\begingroup$ Since you have already generated the points, you should share their coordinates so people can play with concrete ideas and try out proposed solutions. Otherwise you will only get generic suggestions. $\endgroup$
    – MarcoB
    Commented Jun 16, 2020 at 3:57
  • $\begingroup$ @bills Since points are not on the regular lattice, one cannot use Fourier. I am afraid a brute force implementation of the formula is the only choice. At least it is simple. $\endgroup$
    – yarchik
    Commented Jun 16, 2020 at 7:35
  • $\begingroup$ @yarchik One can take Fourier of the ImageData matrix. $\endgroup$ Commented Jun 16, 2020 at 13:51
  • $\begingroup$ @DanielLichtblau I see what do you mean. I took a physical approach that each black dot is infinitesimally small characterized by the position $\vec r_\alpha$ only. It is clear that if one has just a few dots, the brute force formula will be faster. But very soon FFT will beat it. Would be interesting to compare both methods for reasonably small number of dots. $\endgroup$
    – yarchik
    Commented Jun 16, 2020 at 14:37


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.