Questions about using fix rigid/small with dpd+srp in a nanocomposite system

Hi LAMMPS,

I want to simulate an nanoparticle+polymer system using DPD, the system contains small rigid particles (no bond inside each particle) and polymers, no bonds between polymers and particles. I want to capture the entanglements among the polymers by using the hybrid DPD+SRP pair style, for the particles I use fix rigid/small to make sure they move as rigid bodies.

However,in lammps the SRP pair style is incompatible with the fix rigid integrator. Is there anyway to fix this incompatible problem to simulate this nanocompsite systems? I’ll appreciate if anyone can solve this problem.

The version of lammps I am using is lammps-patch_17Mar2017.

For your convenient, the script is posted as follow.

#DPD simulation for bulk polymerization with termination
units lj
atom_style molecular
boundary p p p

#Geometry
read_data linear_np001_p03.dat
lattice fcc 3.0

group polymer type 1
group solv type 2
group particle type 3
group mixture type 1 2 3

#Interaction parameter setting
mass * 1.0

pair_style hybrid dpd 1.0 1.0 12345 srp 0.8 * mid exclude no
comm_modify mode single cutoff 8.0 vel yes

pair_coeff * * dpd 25 4.5 1.0
pair_coeff 1*3 4 none
pair_coeff 4 4 srp 100.0 0.8

bond_style harmonic
bond_coeff * 64 0.7
special_bonds lj 1 1 1 extra 4

angle_style cosine
angle_coeff * 4.0

velocity all create 1 8577 dist gaussian mom yes

#Integrator control
neighbor 0.3 bin
neigh_modify every 1 delay 5 check no
timestep 0.02

best,

shensheng

I’m CCing Tim Sirk, author of the SRP pair style.
First, what do you mean by pair srp is incompatible
with rigid bodies? Do you get an error message,
does something blow up or not work, etc?

Steve

I’m CCing Tim Sirk, author of the SRP pair style.
First, what do you mean by pair srp is incompatible
with rigid bodies? Do you get an error message,
does something blow up or not work, etc?

I don’t know if this helps, but I noticed that the doc page to pair_style srp claims that it does not work with rigid body integrators.

https://lammps.sandia.gov/doc/pair_srp.html

(Perhaps Tim can clarify. We were looking at pair stop and thinking of generating a version of pair_style srp that might be able to simulate membranes. But then I got distracted and lazy and moved on. Unfortunately, we do use rigid bodies a lot in our simulations, so this was a deal-breaker for us.)

I’m CCing Tim Sirk, author of the SRP pair style.
First, what do you mean by pair srp is incompatible
with rigid bodies? Do you get an error message,
does something blow up or not work, etc?

I don’t know if this helps, but I noticed that the doc page to pair_style srp claims that it does not work with rigid body integrators.

https://lammps.sandia.gov/doc/pair_srp.html

(Perhaps Tim can clarify. We were looking at pair stop and thinking of generating a version of pair_style srp that might be able to simulate membranes. But then I got distracted and lazy and moved on. Unfortunately, we do use rigid bodies a lot in our simulations, so this was a deal-breaker for us.)

well, pair style SRP generates additional particles at the beginning of a run (and then deletes them at the end) and moves them according to the motion of the bonds to prohibit bonds in coarse grain models to pass “through” each other. because rigid bodies are assembled at the beginning of the run and then the geometry kept during the run, there is a principal conflict. however, if objects are already rigid, then the effect of pair srp can be easily emulated by manually inserting the corresponding repulsive particles in the center of the bonds for all rigid object (and then give them a very, very small mass (e.g. 1.0e-10). since the rigid objects move as a whole, there is no need for a special handling of the positions in the way pair srp does it. the major challenge is to write a script that loops over the bonds and computes the corresponding particle positions. this can be done with some careful scripting in VMD for example, but could also be done with a custom python or other script, especially when the molecule positions are also generated the same way.

axel.