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

Collected MEAM/C additions #1798

merged 9 commits into from Jan 6, 2020

Collected MEAM/C additions #1798

merged 9 commits into from Jan 6, 2020


Copy link

martok commented Dec 3, 2019


This PR adds a number of features to MEAM/C that have been tested for a while now:

  1. Implement scaling factor for use with fix adapt.
    Suggested by Siavash Bajestani of U of British Columbia.
  2. Remove use of z (first shell coordination number) value given in MEAM library file.
    This field is implied by the reference structure and an unneccessary opportunity to make mistakes. It is still read and checked, but was (inconsistently) not used in most calculations anyway.
  3. Introduce a number of reference structures useful for chain molecules: CH4, TRI, ZIG, LIN
  4. Introduce 3NN diamond reference structure DIA3
    Both sets were implemented by Sungkwang Mun of MS State
  5. Replace all MathSpecial::fm_exp with MEAM::fm_exp
    After a lot of consideration, there is now a rangechecked version of fm_exp - that was the only sensible way to fix all over/underflows once and for all. There were simply too many places that could (mostly) underflow, including many beta exponentiations. The performance impact turned out to be negligible, and it is still much faster than libc's exp.


Sebastian Hütter (OvGU)
Sungkwang Mun (MS State)


By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

Backward Compatibility

The fm_exp change may cause results to change - if that happens, there were unphysical conditions involved and the results were wrong anyway.
Nonstandard coordination numbers are no longer possible. A query on the mailing list remained unanswered, so I assume/hope nobody did that.

Implementation Notes

The adapt scaling is modeled after pair_style eam, with scaling applied on the gradients. Therefore, it gets both energies and forces correct.

Post Submission Checklist

  • The feature or features in this pull request is complete
  • Licensing information is complete
  • Corresponding author information is complete
  • The source code follows the LAMMPS formatting guidelines
  • Suitable new documentation files and/or updates to the existing docs are included
  • The added/updated documentation is integrated and tested with the documentation build system
  • The feature has been verified to work with the conventional build system
  • The feature has been verified to work with the CMake based build system
martok and others added 6 commits Jul 6, 2019
ch4: methane-like structure only for binary system.
dia3: diamond structure with primary 1NN and secondary 3NN inteation
tri: H2O-like structure that has an angle
zig: zigzag structure with a uniform angle
lin: linear structure (180 degree angle)

** tri, zig, and lin reference structures require angle information (in degree)
such as the following.
   theta = 109.5
@akohlmey akohlmey self-assigned this Dec 17, 2019

This comment has been minimized.

Copy link

akohlmey commented Dec 17, 2019

Finally get around to looking over these changes. I would suggest to make the change to fm_exp() in the global version and avoid having a second instance in the MEAM namespace.

@akohlmey akohlmey requested review from athomps and sjplimp Dec 17, 2019

This comment has been minimized.

Copy link
Collaborator Author

martok commented Dec 17, 2019

Works for me. I'll make the change and forcepush the last two commits...

@martok martok force-pushed the martok:meamc-dec19 branch from a847031 to cb20cb9 Dec 17, 2019
@akohlmey akohlmey merged commit 1be8109 into lammps:master Jan 6, 2020
6 checks passed
6 checks passed
lammps/pull-requests/cmake/cmake-kokkos-omp-pr head run ended
lammps/pull-requests/cmake/cmake-serial-pr head run ended
lammps/pull-requests/kokkos-omp-pr head run ended
lammps/pull-requests/openmpi-pr head run ended
lammps/pull-requests/serial-pr head run ended
lammps/pull-requests/shlib-pr head run ended
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
4 participants
You can’t perform that action at this time.