npt with rigid and non-rigid bodies code questions

Hello,

I am working with a system which includes a molecule “linker”. Within the “linker" there are two aromatic groups that I want to make rigid. I am trying to apply the “fix/rigid” command to the these parts of the “linker” while keep the rest nonrigid.

CODE:

group linker type 1:4 #type 1-4 encompasses all atoms in my molecule linker

group pyrene id 1:16 # first aromatic group
group antrecene id 24:37 #second aromatic group

fix 12 linker rigid/npt group 2 pyrene antrecene #npt arg to follow

What I believe I am doing with the fix code is taking the linker group, and within the
linker group, making the pyrene and antrecene rigid.

I want to then run npt calculations on the system in correspondence with water. I’ve read in the fix/rigid lammps section that you can not run them together in such way. So I was going to run the non rigid as nvt.
My question is then, did I make the whole linker above rigid or just sections of it which I intended to do?

Also it says to add dilate to the rigid/npt code, specifically dilate all. Does this mean that the dilate arg is all?

Thanks,

Michael Goytia
Graduate Student
University of Utah Chemistry Department

Hello,

I am working with a system which includes a molecule “linker”. Within the
“linker" there are two aromatic groups that I want to make rigid. I am
trying to apply the “fix/rigid” command to the these parts of the “linker”
while keep the rest nonrigid.

CODE:

group linker type 1:4 #type 1-4 encompasses all atoms in my molecule
linker
group pyrene id 1:16 # first aromatic group
group antrecene id 24:37 #second aromatic group

fix 12 linker rigid/npt group 2 pyrene antrecene #npt arg to follow

What I believe I am doing with the fix code is taking the linker group, and
within the
linker group, making the pyrene and antrecene rigid.

I want to then run npt calculations on the system in correspondence with
water. I’ve read in the fix/rigid lammps section that you can not run them
together in such way. So I was going to run the non rigid as nvt.

correct.

My question is then, did I make the whole linker above rigid or just
sections of it which I intended to do?

with the group option each group becomes an independent rigid object

Also it says to add dilate to the rigid/npt code, specifically dilate all.
Does this mean that the dilate arg is all?

the dilate takes a group name as an argument. all is one possible
option and definitely the best choice if all other particles are
mobile. if you have immobile atoms in your system, you may have to
test very carefully. and it may also matter how you compute the
pressure and what interactions you include and particularly exclude
with neigh_modify.

what you have is a quite complex setup and thus there are no simple
directions as to what is the correct choice. in essence, there is no
100% correct choice, only you get to choose where you have errors and
how much. that can be at best found empirically. using dilate all is
definitely the option to try out first.

axel.

Hello,

I really appreciate the help so far.

To Clarify on the question and answer below

Q. My question is then, did I make the whole linker above rigid or just sections of it which I intended to do?
A. with the group option each group becomes an independent rigid object

Clarification Questions.

As I understand the “pyrene” and “anthracene”, in my group “linker”, with the line of code fix rigid, makes the two groups, pyrene and anthracene, two independent rigid bodies. Is this correct thinking?

Does this command also strip the rigid bodies of interactions within itself but keeps interactions between the two independent rigid bodies if specified in the input file under say pair coeff?

Thanks,

Michael Goytia
Graduate Student
University of Utah Chemistry Department

Hello,

I really appreciate the help so far.

To Clarify on the question and answer below

Q. My question is then, did I make the whole linker above rigid or just
sections of it which I intended to do?
A. with the group option each group becomes an independent rigid object

Clarification Questions.

As I understand the "pyrene" and "anthracene", in my group “linker”, with
the line of code fix rigid, makes the two groups, pyrene and anthracene, two
independent rigid bodies. Is this correct thinking?

where is the difference in this context between what you write here
and what i wrote?

Does this command also strip the rigid bodies of interactions within itself
but keeps interactions between the two independent rigid bodies if specified
in the input file under say pair coeff?

no. you seem to be assuming that LAMMPS is not a computer program but
some remote controlled human that can make informed choices based on
its own learning. but how should the part of LAMMPS computing the
forces know about which atoms are in a rigid body and which are not,
specifically considering that LAMMPS is a highly modular and flexible
MD code? for the most part, LAMMPS will just execute the commands you
provide and then execute them in the way as the respective
documentation describes it. most commands will be executed
immediately. some commands add or replace class instances to be
executed at specific times during the time integration. that is it.

so, if you want to remove intra-body interactions, you have to
explicitly tell LAMMPS to do that. see the neigh_modify command for
details.

axel.

Copy that,

Thanks for the help.

Michael Goytia
Graduate Student
University of Utah Chemistry Department

To add a bit to Axel’s answer. Each of your groups (py and anth)

become an independent rigid body. However there can be

forces between them due to bonds (or angles, etc) that

bridge the 2 bodies, or non-bond interactions. That’s up to

you to specify. As Axel said, you can turn-off forces internal

to the body via neigh-modify exclude, assuming you have labeled

the 2 bodies with unique moleclue IDs. That is only for

convenience/efficiency as internal forces should sum to 0.0 and

not produce a net force or torque on the body.

Steve