LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Mailing List Archives
Re: [lammps-users] QMMM with lammps
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lammps-users] QMMM with lammps

From: daniele selli <daniele.selli@...7246...>
Date: Mon, 20 Nov 2017 15:41:16 +0100

Ok I will try to figure out how to correctly use massless charged atoms to mimic point charges.

However, the QMMM implementation I would like to use is the one provided by the
Atomic Simulation Environment (ASE) toolkit.
They use what they call "Explicit Interaction QMMM" which I think is a simple electrostatic embedded QMMM scheme.
The QM part can be whatever is interfaced with ASE (I am using GAUSSIAN09), but regarding the MM part they have
few codes interfaced. One of those is AMBER, but since I am kind of more used to LAMMPS I would like to try to merge it
to ASE.

2017-11-20 15:15 GMT+01:00 Axel Kohlmeyer <akohlmey@...24...>:

On Mon, Nov 20, 2017 at 8:54 AM, daniele selli <daniele.selli@...7246...> wrote:
Dear Axel,

thank you for your reply.
I knew about the first point you reported on LAMMPS coupled to quantum espresso, but the second and third points
are new to me. However, it seems that there isn't a proper QM-MM interaction between the LATTE or DFTB+ codes and lammps.

​i didn't mention those as examples for QM/MM but as examples for coupling two codes.​

I try to be more specific with my problem. I know you can set a certain charge for atoms in lammps,
and on those atoms the code can calculate potential and forces.
But I would like to know if I can define external charges, just charges not charged atoms and if on these
POINT charges the code can calculate electrostatic potential (I am pretty sure it does) and forces (not all
codes calculate forces on external point charges).

​i don't see the particular difference between point charges and "atoms". 

​what you describe is what typically the QM/MM *interface* code does, not the classical MD code. there is no predefined mechanism for adding external charges, but it would be trivial to include their effect by defining them as additional atoms (that are not time integrated and for which the interaction can be selectively set through the pair_coeff settings). the only codes where i have seen a feature to compute interactions with a (usually fixed in space) point charge field are QM software packages.

of course you can define your own computations and have them any which way you want, but then you have to program your own fix style and do this there.

let me repeat, the main problem here is the lack of details of your QM/MM implementation and its way of coupling. also, it might be helpful to know which QM and MM codes you are supporting and which mechanism of exchanging information between those you are using. also, it would be hugely important to know how you are handling long-range coulomb interactions.




2017-11-20 12:49 GMT+01:00 Axel Kohlmeyer <akohlmey@...92......>:

On Mon, Nov 20, 2017 at 4:16 AM, daniele selli <daniele.selli@...7246...> wrote:
Dear All,

I would like to use lammps to perform QMMM calculations using our
own QM-MM interface.
In order to do that, we need lammps to handle external charges. This means
that at each MD step, the forces on the QM atoms due to the MM point charges are calculated, as well as the forces on the MM charges due to interaction with the QM atoms.

​this is a rather vague description and thus difficult to provide any specific advice.​
Does lammps allows to calculate forces on point charges?

​interaction with point charges is what all */coul/* styles do. again, because if your vague description, it is not possible to provide a specific answer.​
If yes, which is the command to do that?

​it is unlikely that you will be able to set this up without some C++ programming.
there are multiple ways, how LAMMPS is coupled to external programs.
- there is the generic QM/MM library in LAMMPS that currently couples LAMMPS to quantum espresso, where there is a driving code, which uses different MPI partitions and through that manages 2 copies of LAMMPS and 1 copy of quantum espresso and then a fix qmmm to communicate the information between the different partitions.
- there is the LATTE package, which couples LAMMPS to a tight-binding code, where LAMMPS is the driver and then the LATTE code is called through a library interface from fix latte
- there is the coupling of LAMMPS to the DFTB+ code, where the DFTB+ code is the driver and interaction with LAMMPS is handled through callback functions registered with fix external

i suggest you study those three examples and the related documentation and readme files. then identify which of those is closest to what you need and then copy/rename/adapt the corresponding code to your needs.



Thank you all for your willingness,

Daniele Selli

Check out the vibrant tech community on one of the world's most
engaging tech sites,!
lammps-users mailing list

Dr. Axel Kohlmeyer  akohlmey@...33....24...
College of Science & Technology, Temple University, Philadelphia PA, USA
International Centre for Theoretical Physics, Trieste. Italy.

Dr. Axel Kohlmeyer  akohlmey@...24...
College of Science & Technology, Temple University, Philadelphia PA, USA
International Centre for Theoretical Physics, Trieste. Italy.