QTPIE , how to use QTPIE in lammps?

Hi all:
I read some articles about QTPIE, it seems useful to deal with the transfer of charge and calculation of dipole moment.
They use "USER-REAXC package and fix qeq/reax " to accomplish QTPIE.
But I can not find this features in the new version of lammps, REAXC has been replaced by REAXFF.
I wonder to know how to use QTPIE in the new version of lammps.
Thanks.

Then why don’t you contact the authors of those papers? That would seem more productive than to post here.

I have done a little research on what QTPIE actually is (Note, it is not a good idea to use acronyms that are very domain specific like this one). It is quite a popular term, so it is used for a lot of different things (companies, artists, technical terms (queue to printer interface), software). But reducing the search to scientific terms quickly showed that this would be an alternative algorithm to charge equilibration. With that information, I can tell you with confidence, that no such feature exists in the current LAMMPS distribution and the only publications that I have seen to mention both ReaxFF and QTPIE were studies comparing QEq to QTPIE. So there is a good chance you are mixing things up. For your reference USER-REAXC and REAXFF are the same code (with some bug fixes and refactoring applied to the latter that the former does not have).

I cannot exclude that somebody has actually implemented QTPIE for use with LAMMPS, but if that is the case, that person (or group) has not yet contributed it for inclusion to the official LAMMPS distribution.

It seems like your best bet is to contact the authors of this paper: https://pubs.acs.org/doi/10.1021/acs.jpca.0c08040

Yes I would contact the authors. They were responsive and gave us a copy of their QTPIE code a couple years ago. We were experimenting with it here: GitHub - stanmoore1/lammps at qtpie. We originally wanted to get QTPIE integrated into main LAMMPS, but it didn’t happen and we no longer have funding to work on this, so use anything in that branch at your own risk.

1 Like

Thanks all, I connect the author, the reply is “I must clarify that the QTPIE code is not yet implemented in the official version of LAMMPS. In the paper you referred to, I used an in-house code that I developed based on LAMMPS. We are considering with the developers of LAMMPS to make this integration official though it has not happened yet.”
This is confused problem, we can not repeat the paper that have published.

Unfortunately, this is a common situation. Since LAMMPS (cost) free and open source software, the very thing that makes it easily accessible and easy to modify, makes it also easy for people to implement features on top of it yet withhold their implementation or make it available in a format that renders is mostly unusable.

All you can do in this situation is to complain to the editor(s) of the respective journal(s) that publications based on unavailable software must not be accepted.

However, there is little hope that this will change the situation. The pressure on journals to attract publications is high, the pressure to publish equally high and the reward for writing software that is generic (and not just usable for one specific case) and maintaining and supporting it is very small.

I have seen plenty of cases where a publication promises to have the feature added to the corresponding package software (e.g. LAMMPS), but there are many reasons why it does not happen. For example:

  • the author has graduated or his postdoc contract has ended and moved on to a different project using a different software
  • the software turns out to have significant bugs or has been written at such low quality that it requires a substantial rewriting effort to make it fit for general use in a package program
  • the software has only been used and tested in serial runs and the algorithm does not lend itself to domain decomposition parallelization
  • the author doesn’t care to work on this on his personal time and works in a place like a national lab where funding is required to work on specific topics, so if the project funding runs out, all work on it has to be stopped until new funding is acquired
  • authors, especially those early in their career, have not been sufficiently trained in how to write a comprehensive publication and what is required to reproduce the described research and which materials need to be provided and how
  • authors are afraid that making their software available allows others to scoop them on attractive topics
  • authors are afraid that someone else would be able to identify serious bugs and thus attack their work and credibility

LAMMPS currently has about 1500 forks on GitHub but only about 100 external collaborators that have contributed significant changes as pull requests and this does not count people that do not use GitHub to do manage their modifications to LAMMPS or people that use GitHub only to manage their contributions as standalone folder. This means that is a high probability that there are more publications of a similar nature that are in practice not reproducible.

Reproducibility of research data is a growing problem. Not just in computational research. And it exposes the some of the core weaknesses of the peer review process.

1 Like

I should add to this, that we (the LAMMPS developers) now also offer a place to have their code set up so it can be compiled and used with LAMMPS without having to go through the review and QA process that is now part of contributing to the LAMMPS distribution. Prerequisite is that the contribution is sufficiently independent so that it can be compiled as a plugin. GitHub - lammps/lammps-plugins: Collection of LAMMPS plugins
Out of these, due to its popularity, one plugin has since been updated/refactored and integrated into the regular LAMMPS distribution. So this can be a pathway to get your contribution included.

We also now offer a porting guide for people that need to update their code written for an older version of LAMMPS to the current development tree: 4.9. Notes for updating code written for older LAMMPS versions — LAMMPS documentation

Both offers are with the intent to contain the fragmentation of the LAMMPS development efforts and lower the barrier to contribute generally useful modifications back to the community.

Hi @WildonCao , I’m happy to give the programming side of things a go – this doesn’t seem too different from some of my own work and if they have good tests ready to go it shouldn’t take too long*. You can CC me into the discussion at [email protected].

*famous last words

1 Like

ok :wink: