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

Pair entropy fingerprint #925

Merged
merged 17 commits into from Jun 26, 2018

Conversation

Projects
None yet
3 participants
@PabloPiaggi
Collaborator

PabloPiaggi commented May 22, 2018

Purpose

This pull request includes a new compute style that implements a fingerprint to distinguish liquid and solid-like environments. The fingerprint is described in this article and is based on a two-body approximation for the entropy of fluids, we therefore call it "pair entropy fingerprint". One of the advantages of this parameter over others is that no a priori information about the solid structure is required.

Author(s)

Pablo M. Piaggi
Ecole Polytechnique Fédérale de Lausanne (EPFL)
Switzerland

Implementation Notes

The fingerprint is implemented using the equations described in the article cited above. I tested the correctness of this implementation by comparing the results with another implementation. The normalization of g(r) was verified.

Post Submission Checklist

Please check the fields below as they are completed

  • The feature or features in this pull request is complete
  • Suitable new documentation files and/or updates to the existing docs are included
  • One or more example input decks are included
  • The source code follows the LAMMPS formatting guidelines

Further Information, Files, and Links

The relevant files are:

  • src/USER-MISC/compute_pair_entropy_atom.cpp
  • src/USER-MISC/compute_pair_entropy_atom.h
  • examples/USER/misc/pair_entropy/*
  • doc/src/compute_pair_entropy_atom.txt

Link to the publication
https://aip.scitation.org/doi/full/10.1063/1.4998408

@akohlmey

This comment has been minimized.

Member

akohlmey commented Jun 15, 2018

Thanks for your contribution to LAMMPS. I renamed the files to be consistent with the style name and added a few entries to integrate your contribution into the document builds and README file.

@akohlmey akohlmey assigned sjplimp and unassigned akohlmey Jun 15, 2018

@sjplimp

This comment has been minimized.

Contributor

sjplimp commented Jun 18, 2018

This all looks great. Thanks Pablo for adding this new functionality.
My only quibble is the naming of several of the files. In order to keep
them consistent with the rest of LAMMPS. Pair is an overloaded term
for LAMMPS. So I suggest:

name of command: compute entropy/atom
source files: compute_entropy_atom.cpp/h
name of class in source files: ComputeEntropyAtom
name of eq files: compute_entropy_atom.tex/jpg
name of example dir: examples/USER/misc/entropy or entropy_atom

Unless you think that there may be future variants
of this which are not pairwise and require their
own command (as opposed to an option added to
the existing command). In which case:

name of command: compute entropy/pair/atom
likewise for other names

@PabloPiaggi

This comment has been minimized.

Collaborator

PabloPiaggi commented Jun 19, 2018

Thanks Axel and Steve for the suggestions and changes. I'm afraid that naming this command compute entropy/atom might lead users to think that the command magically computes the entropy in every system. There is evidence that it is a good approximation for simple liquids but it is certainly not quantitative for solids. Perhaps the word "pair" hints at the limitation of the calculation. That being said, I agree to name it any way you see fit.

As far as variants of the command are concerned, there are higher order terms of the entropy expansion in multi body correlation functions. The three body term has been calculated but I think it requires lots of statistics and therefore would not be very useful as a fingerprint. For this reason I am not planning to program higher order terms.

Thanks again and let me know which names for the command and files you prefer.

@akohlmey

This comment has been minimized.

Member

akohlmey commented Jun 19, 2018

i suspect @sjplimp may not have studied the logged changes here carefully enough and thus may have drawn conclusions that are not consistent with the state of affairs. i am quite comfortable with the current name of the compute style pentropy/atom. i would consider a name like entropy/pair/atom more misleading.

@sjplimp

This comment has been minimized.

Contributor

sjplimp commented Jun 19, 2018

Thanks for the feedback. Regardless of the command name, all the
other things I listed need to be consistent with the command name.
I think we should go with compute entropy/atom. The majority of
compute names are simple words (sometimes shorter abbrevs).
This compute calcs per-atom entropy. Its limitations (liquids) and its method
(pairwise) should be explained in its doc page. If we have future
contributions that compute entropy in other ways, then we usually
go the route of compute entropy/alternate/atom. Just like there
are many variants of compute temp. Thanks.

@PabloPiaggi

This comment has been minimized.

Collaborator

PabloPiaggi commented Jun 26, 2018

I changed the name of the compute style to entropy/atom and updated all the files that were affected by this change. Perhaps @akohlmey and @sjplimp can confirm that they agree with the changes? Thank you.

@akohlmey akohlmey requested review from sjplimp and akohlmey Jun 26, 2018

@sjplimp

This comment has been minimized.

Contributor

sjplimp commented Jun 26, 2018

Looks great - thanks for morphing it to the new name.

@sjplimp sjplimp merged commit 8e14143 into lammps:master Jun 26, 2018

5 checks passed

lammps/pull-requests/build-docs-pr head run ended
Details
lammps/pull-requests/kokkos_omp head run ended
Details
lammps/pull-requests/openmpi-pr head run ended
Details
lammps/pull-requests/serial-pr head run ended
Details
lammps/pull-requests/shlib-pr head run ended
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment