Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Faber-Ziman Partial Structure Factors Normalization #1313

Open
nnn911 opened this issue Feb 25, 2025 · 4 comments · May be fixed by #1314 or glotzerlab/freud-examples#83
Open

Faber-Ziman Partial Structure Factors Normalization #1313

nnn911 opened this issue Feb 25, 2025 · 4 comments · May be fixed by #1314 or glotzerlab/freud-examples#83

Comments

@nnn911
Copy link

nnn911 commented Feb 25, 2025

In the Freud documentation, the following image is presented for the Faber-Ziman decomposition of partial structure factors:

Image
Source

From this image, we can clearly see that the like partial structure factors (e.g., Sαα) converge to their respective concentrations at large k, while the unlike partial structure factors converge to zero.

Comparing this with other references, we observe that Faber-Ziman partial structure factors typically converge to 1 in the large k or Q regime. This behavior is evident in the following examples:

Image

L. Giacomazzi, C. Massobrio, and A. Pasquarello, “First-principles investigation of the structural and vibrational properties of vitreousGeSe2,” Phys. Rev. B Condens. Matter Mater. Phys., vol. 75, no. 17, 2007.

Image

M. Maret, A. Pasturel, C. Senillou, J. M. Dubois, and P. Chieux, “Partial structure factors of liquid al80 (mnx(fecr) 1-x)20 alloys,” Journal Phys., vol. 50, no. 3, pp. 295–310, 1989.

Image

Y. Xu, W. B. Muir, Z. Altounian, W. J. L. Buyers, and R. L. Donaberger, “Consistent partial structure factors for amorphousNi0.33(ZryHf1−y)0.67using x-ray and neutron diffraction,” Phys. Rev. B Condens. Matter, vol. 53, no. 14, pp. 8983–8992, 1996.

This discrepancy is quite interesting; however, it can be explained by the work of:

H. Liu and S. J. Paddison, “Direct calculation of the X-ray structure factor of ionic liquids,” Phys. Chem. Chem. Phys., vol. 18, no. 16, pp. 11000–11007, 2016.

In their paper, the authors state: "The like partial structure factors, Sαα(q), converge to the mole fraction of the α species at infinite q, while the unlike ones converge to zero."

This is exactly in line with the structure factors computed by Freud. Therefore, I would assume that the Faber-Ziman partial structure factors calculated in Freud correspond to the quantity labeled as the partial structure factor (Sαβ​) in this paper.

Later in the paper, the authors show how their structure factors (Sαβ​) can be transformed into Faber-Ziman partial structure factors (Aαβ):

Image

Applying the inverse transformation to the Freud partial structure factors yields the expected behavior, where the Faber-Ziman partial structure factors converge to 1:

Image

I'm not sure whether this requires any modifications on your end, but I mainly wanted to highlight the discrepancy and hear your thoughts on the matter.

Disclaimer: I work for OVITO GmbH and work on implementing our own structure factor analysis, which explains my interest in this topic.

@joaander
Copy link
Member

Thanks for the thorough description of the behavior and clearly describing the root cause. Do you think our users would benefit from an option to use the Faber-Ziman normalization scheme? Or do you think this is something we only need to clarify in the documentation?

@nnn911
Copy link
Author

nnn911 commented Feb 26, 2025

The normalization itself is pretty straightforward once you know what to look for. Therefore, I would argue that a clarification in the documentation should suffice.

I can share the Jupyter notebook used to create the comparison plot between both methods if you're interested.

@DomFijan
Copy link
Contributor

Yeh, this analysis is spot on. We don't comment on this issue directly anywhere in docs, but mention that the implementation here supports calculation of total structure factor from its partials via a formula given in the docs. This indirectly implies that S(k) converges to mole fraction value of that species at high k values, otherwise you can't sum them properly to obtain total S(k). We could add a note that states this explicitly in the docstring. Perhaps we could also add a formula in the docs that shows how one can convert between the two normalization schemes?

@nnn911
Copy link
Author

nnn911 commented Feb 27, 2025

This indirectly implies that S(k) converges to mole fraction value of that species at high k values, otherwise you can't sum them properly to obtain total S(k).

At least for me this implication was not clear until I really started going through different papers and comparing plots and equations. Maybe this time could be saved for the next person trying to compare their results to references. I would probably extend the example to show how to re-normalize the partial structure factors to the other convention.

Do you think our users would benefit from an option to use the Faber-Ziman normalization scheme?

I spend some more time thinking about this question and came to the conclusion that this is what we're going to do with the OVITO implementation. Mostly because we have a GUI which comes with different constraints compared to a library / module like Freud.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants