Help with the use of ELECTRODE package!

After studying this article recently (Cookie Absent), I started using the ELECTRODE package provided in the latest version of lammps released this year. Thanks to the selfless developers for the excellent MD simulation program.
After initial study and use, I have the following doubts:

  1. What is the difference between the left and right electrode groups in the fix electrode/conp command, i.e. how to correctly apply the potential to the positive and negative electrodes? I used the following command to achieve this, the electrodes group contains both positive and negative electrodes, is this correct? Do I need two fix electrode/conp commands to apply a fixed potential to the positive and negative electrodes.

fix fxconp electrodes electrode/conp 1.0 1.805 symm on

  1. In the above command, if ffield on is used, does it mean that the FF method sets the correct Ez=-Δψ/Lz?
  2. fix electrode/thermo method was used in the beginning for NVT_CPM simulation in AIMD, so what does he do in CMD?
    Finally, is it possible to have a more detailed tutorial on the use of electrode? (The manual on the official website is a bit sketchy and difficult to understand)

Hi there! I’m glad you think this package will be useful.

You will find it helpful to look at the scripts in the examples/PACKAGES/electrode folder.

Usually we expect that users will impose a potential difference between two electrodes. You would then provide them as two separate groups to the fix electrode command using the couple keyword. So for example,

fix fxconp electrode1 electrode/conp 1.0 1.805 couple electrode2 0.0 symm on

will set electrode1 to have a potential that is 1.0 volts higher than electrode2. If the electrode groups are being kept overall neutral (i.e. the charge on one group is always exactly negative of the charge of the other group, with symm on) then the absolute potentials of the electrodes are not physically controllable, only their potential difference.

The keyword ffield on should be “transparent” – that is, the relevant electric field and change in potential will be applied by fix electrode itself and you shouldn’t impose an additional external fix efield command (you will get a warning if you try to).

fix electrode/thermo uses the equations in Deissenbeck et al to determine the instantaneous total electrode charges and voltages, and then distributes and updates the charge across the electrode following the usual constant potential procedure.

Thanks for your feedback on the documentation! Let us know how it can be made clearer.

Dear Professor,

Thanks again to you and your team for the excellent program for simulating electrochemical interfaces.
After your patient and detailed instruction, I think I have a better understanding of CPM usage.
Here, I have one more doubt or request, whether this program can be used for different shapes of electrodes (not only flat plates), such as MOF, COF, etc.

In addition, for ELECTRODE package, is it possible to create a separate communication site (similar to the issue of github), I think this for the use, learning, new feature requests and the development of ELECTRODE package has a certain positive effect, because currently there is a little less information on the Internet. A little advice, please forgive me!

Thanks again for your guidance! And I hope ELECTRODE grows better and better!

Best regards!

There have been successful studies of nanoporous electrodes with the constant potential methodology, such as by Jesse McDaniel’s group (using a different software). Those have been limited to CDCs and graphene-like structures.

The problem for MOFs specifically is that where there are heteroatomic materials, the different atoms would have different partial charges even at equilibrium. Mathieu Salanne and his group have recently published a study where they used different electronegativities to simulate an MoS2 electrode. But this is an area where cross checking between constant potential MD and DFT is very desperately needed. The ELECTRODE package does not have these capabilities yet and this is because (for me at least) I don’t feel confident putting a technique like that out into the LAMMPS ecosystem without confidence that it is theoretically justified.

I think we can continue having ELECTRODE discussions in the usual places. I.e. general questions can be posted here, and bugs and feature requests can be posted on the LAMMPS GitHub.

Thanks for your reply, I’ve understood! Thank you for your help!