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

Check how order parameters treat particles with zero neighbors #678

Open
bdice opened this issue Oct 29, 2020 · 4 comments · May be fixed by #775
Open

Check how order parameters treat particles with zero neighbors #678

bdice opened this issue Oct 29, 2020 · 4 comments · May be fixed by #775
Assignees

Comments

@bdice
Copy link
Member

bdice commented Oct 29, 2020

In #672 and #624, we discussed how the Steinhardt order parameter treats particles with zero neighbors. Steinhardt assigns a value of NaN. We need to check to see how other methods (Hexatic, Translational, SolidLiquid, LocalDescriptors) handle cases with zero neighbors.

The follow-up PR would basically be to review freud for other methods where this problem could arise and copy over the test to make sure the same behavior is consistent, as well as updating docs with the note and snippet added here.

Originally posted by @vyasr in #672 (comment)

@klywang klywang self-assigned this May 20, 2021
@alacour alacour self-assigned this May 21, 2021
@klywang
Copy link
Contributor

klywang commented May 25, 2021

For particles without neighbors:

  • Steinhardt: Returns nan for wl=True and wl=False
  • Hexatic: Returns nan
  • Translational: Returns 0
  • SolidLiquid: Returns cluster_sizes as array of ones
  • LocalDescriptors: num_sphs returns 0 and sph=[]

With the exception of the Translational method, @alacour feel that these are appropriate outputs for particles with zero neighbors.

For the Translational method, we request comments from someone with more expertise on the topic. Specifically, does the value of 0 carry any physical meaning?

@joaander
Copy link
Member

For the Translational method, we request comments from someone with more expertise on the topic. Specifically, does the value of 0 carry any physical meaning?

I don't know of anyone with expertise on the topic. Translational in freud is not a standard translational order parameter.

@bdice
Copy link
Member Author

bdice commented May 25, 2021

Thanks for checking into that! I discussed with @klywang and @alacour. Our goals for the end of the hackathon are to add documentation and tests for the behavior of each of those classes above. Also we might slip in a LaTeX fix for the docstring of https://freud.readthedocs.io/en/latest/modules/order.html#freud.order.SolidLiquid.particle_harmonics. @klywang also noted that SolidLiquid.compute should return self. It'd be great to have a PR with some or all of those changes.

@klywang klywang linked a pull request May 25, 2021 that will close this issue
11 tasks
@vyasr
Copy link
Collaborator

vyasr commented May 26, 2021

@klywang @bdice @alacour Since Translational is deprecated and we're now thinking about plans for 3.0 in light of other open work, I wouldn't worry about the behavior of translational at all.

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

Successfully merging a pull request may close this issue.

5 participants