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

Update for the ELECTRODE package #4095

Merged
merged 19 commits into from
Mar 5, 2024
Merged

Update for the ELECTRODE package #4095

merged 19 commits into from
Mar 5, 2024

Conversation

ludwig-ahrens
Copy link
Contributor

Summary

  1. README
    The directory 'src/ELECTRODE' was lacking a README file which is now added.
  2. Warning for mobile atoms
    If an electrode fix uses a matrix of interactions, atoms in the electrode must not move. The fix now checks for time integrating fixes and a warning is given if electrode atoms are in the groups of these fixes.
  3. New 'qtotal' keyword
    A new keyword for the electrode fixes is added which allows to set a constraint on the total charge of all electrodes to a given value or equal style variable. This can be used to assert charge neutrality of the simulation if the electrolyte is not charge neutral or not all electrodes are included in the electrode fix.
  4. New 'eta' keyword
    A new keyword for the electrode fixes is added which allows to set the eta parameter for individual atoms via a property/atom fix.

Related Issue(s)

Author(s)

Ludwig Ahrens-Iwers (@ludwig-ahrens)
Shern Tee (@srtee) (s.tee@griffith.edu.au)
Robert Meißner (@robeme) (robert.meissner@tuhh.de)

Licensing

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

Changes are backwards compatible.

Implementation Notes

  • 'qtotal' keyword
    For the matrix inversioin 'update_psi_qtotal()' has been added to shift the potential to obtain electrodes with a total charge of qtotal. For the conjugate gradient the method 'constraint_correction()' was changed to project into a hyperplane with the desired total charge.
  • 'eta' keyword
    The keyword uses the new 'find_custom_ghost()' method to find a property/atom which uses the 'ghost on' option. If the keyword is used, the ElectrodeMatrix and ElectrodeVector classes have to use the atom property for calculations of the interactions.

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
  • Suitable tests have been added to the unittest tree.
  • A package specific README file has been included or updated
  • One or more example input decks are included

Further Information, Files, and Links

Copy link
Contributor

@sjplimp sjplimp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all looks good - just add the sentence to the README we talked about with info on the CMake keyword

@akohlmey akohlmey requested a review from sjplimp March 5, 2024 10:23
@akohlmey akohlmey merged commit 1909233 into lammps:develop Mar 5, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

Successfully merging this pull request may close these issues.

None yet

5 participants