apply "fix rigid" to the rings in a polymer containing 250 rings

Dear LAMMPS developers,

I’m working with a system which includes four polymers with water solution. Each of the polymer consists of 250 aromatic rings linked by the “linker” atoms. I am trying to apply the “fix rigid” or “fix rigid/small” command to these rings, treating each ring as a separate rigid entity while keep the rest nonrigid.

I found that LAMMPS only allows as many as 32 “groups” to be defined. I read the mailing list of LAMMPS, and knew that it is not a clever idea to increase this number in the source code. There might be some cleverer ways to apply the "fix rigid", such as using the “molecule” bodystyle for the “fix rigid’ command. However, since each of the polymer molecule consists of 250 rings, which belong to the same molecule. My question is, is it still possible to apply the “fix rigid” to the rings in my system in LAMMPS?

Thank you so much!

Best,
Jibao

Dear LAMMPS developers,

I’m working with a system which includes four polymers with water solution. Each of the polymer consists of 250 aromatic rings linked by the “linker” atoms. I am trying to apply the “fix rigid” or “fix rigid/small” command to these rings, treating each ring as a separate rigid entity while keep the rest nonrigid.

I found that LAMMPS only allows as many as 32 “groups” to be defined. I read the mailing list of LAMMPS, and knew that it is not a clever idea to increase this number in the source code. There might be some cleverer ways to apply the "fix rigid", such as using the “molecule” bodystyle for the “fix rigid’ command. However, since each of the polymer molecule consists of 250 rings, which belong to the same molecule. My question is, is it still possible to apply the “fix rigid” to the rings in my system in LAMMPS?

yes, the molecule id in LAMMPS is nothing but a number assigned to
atoms. there is no requirement that it has to coincide with real
molecules. thus you can use it in different ways to enumerate segments
of your system.

so make one group that has all the ring atoms and then give the atoms
in each ring a different molecule id and you should be able to
successfully run with the molecule body style.

with this many rigid objects, you definitely want to try out the
rigid/small family of fixes.

axel.

Hi Axel,

Got it. Thank you so much for your help!

Best,
Jibao

Dear LAMMPS developers,

I run into a problem, and need help…
I’m working with a system containing a lot of aromatic rings separated by linker atoms. I want to keep the rings as separated rigid entities, while keep the rest nonrigid. I know that for a system with so many rigid bodies, I should use the “fix rigid/small” instead of “fix rigid”. However, while “fix rigid” works, the “fix rigid/small” does not work. The simulation always stays at the status “Setting up run …”, and cannot proceed. I paste the output information here for reference:

Total # of neighbors = 42368
Ave neighs/atom = 16.55
Ave special neighs/atom = 3.85
Neighbor list builds = 0
Dangerous builds = 0
64 rigid bodies with 384 atoms
  2.79134 = max distance from body owner to body atom
64 rigid bodies with 384 atoms
  2.79323 = max distance from body owner to body atom
WARNING: Using a manybody potential with bonds/angles/dihedrals and special_bond exclusions (../pair.cpp:207)
Neighbor list info ...
  6 neighbor list requests
  update every 1 steps, delay 10 steps, check yes
  master list distance cutoff = 14
Setting up run ...

Could you please help me figure out the where the problem comes from?

Thank you so much!

All the best,
Jibao

Dear LAMMPS developers,

I run into a problem, and need help…
I’m working with a system containing a lot of aromatic rings separated by linker atoms. I want to keep the rings as separated rigid entities, while keep the rest nonrigid. I know that for a system with so many rigid bodies, I should use the “fix rigid/small” instead of “fix rigid”. However, while “fix rigid” works, the “fix rigid/small” does not work. The simulation always stays at the status “Setting up run …”, and cannot proceed. I paste the output information here for reference:

Total # of neighbors = 42368
Ave neighs/atom = 16.55
Ave special neighs/atom = 3.85
Neighbor list builds = 0
Dangerous builds = 0
64 rigid bodies with 384 atoms
  2.79134 = max distance from body owner to body atom
64 rigid bodies with 384 atoms
  2.79323 = max distance from body owner to body atom
WARNING: Using a manybody potential with bonds/angles/dihedrals and special_bond exclusions (../pair.cpp:207)
Neighbor list info ...
  6 neighbor list requests
  update every 1 steps, delay 10 steps, check yes
  master list distance cutoff = 14
Setting up run ...

Could you please help me figure out the where the problem comes from?

not without you providing more help to us to help you.

have you tested the very latest LAMMPS version?
can you provide a complete input deck that we can try to reproduce it.

it is practically impossible to give advice on "it doesn't work". of
course nobody would want to publish software when he knows that it
fails so badly without at least documenting it.

so either there is something wrong in what you are doing that is not
shown or explained, or you have found a problem that has already been
solved, but you have not updated LAMMPS or it is a rather obscure bug
that cannot be corrected without being able to reproduce it.

axel.

Dear Axel,

Sorry that I didn’t provide sufficient information. I attached here the input and out put files in my simulation for reference. The version I’m using is the one released on Mar 18, 2015. I appreciate your help.

Thank you so much!
Jibao

log.lammps (10.2 KB)

out.50507 (5.55 KB)

in.adopted (5.88 KB)

CG_checked.data (8.25 KB)

ppotma.sw (26 KB)

Dear Axel,

Sorry that I didn’t provide sufficient information. I attached here the
input and out put files in my simulation for reference. The version I’m
using is the one released on Mar 18, 2015. I appreciate your help.

as i already mentioned, *before* reporting a problem, you should
*first* test whether the potential problem can be reproduced with the
very latest version of LAMMPS (10 Aug 2015 currently).

nobody wants to spend (read: waste) time on trying to fix a problem
which may already have been fixed in a patch that has been released
between march and now.

axel.

FWIW, the attached input doesn't even run on my machine. it
immediately stops with:

LAMMPS (10 Aug 2015-ICMS)
WARNING: OMP_NUM_THREADS environment is not set. (../comm.cpp:89)
  using 1 OpenMP thread(s) per MPI task
ERROR: Illegal pair_style command (../pair_sw.cpp:223)

so please first update your LAMMPS version, correct your input and
then test it and if the problem persists post the corrected input.

axel.

Dear Axel,

Thank you for your help. I will first run the simulation using an updatedLAMMPS version to see whether the problem persists.

All the best,
Jibao