Particle based RESPA

Dear Lammps users,

I just want to know whether Particle based rRESPA is possible or not in LAMMPS where I have mixture of heavy particle and light particle. The heavy particles will be integrated with longer timestep and light particle will be integrated with smaller timestep.

With regards
Shamimul Ahsan

Yes, it is possible assuming the heavier particles have different atom types than the lighter particles and the mass difference is significant.

There is a misconception here about how r-RESPA functions. With r-RESPA the integration of the equations of motion is always done on the innermost, shortest timestep. What differs between r-RESPA levels is whether forces for a r-RESPA level are computed in a step or whether cached copies are used. The time spent on time integration to propagate atoms is very minimal in comparison to the time spent on computing (non-bonded) forces and neighbor lists.

In order to use the multi-timestep division by atom types, you have to set up your calculation to use the pair_style hybrid command — LAMMPS documentation. You can then assign different sub-styles to different r-RESPA levels with the hybrid option of the run_style command — LAMMPS documentation.

Because r-RESPA decomposes the force computation, any interactions that involve lighter atoms, must be used at the inner level and only interactions between the heavy particles can be computed at the outer level. So, unless the number of heavy/slow particles is large compared to the number of light/fast particles, the savings are likely limited.

1 Like

Thanks Prof Axel.
I have followed your suggestion and prepared my input file as follows. Please check whether RESPA is correctly applied or not.

With regards
Shamimul Ahsan

#LAMMPS Input file for lj particle


units lj
dimension 3
boundary p p p
atom_style atomic
#lattice none 0.86
region my_box block 0 10 0 10 0 10
create_box 2 my_box
create_atoms 1 random 40 341341 my_box
create_atoms 2 random 824 127569 my_box

mass 1 1
mass 2 100

pair_style hybrid/overlay lj/cut 3.0 lj/cut 3.0
pair_coeff 1 1 lj/cut 1 1.0 1.0 #2.628
pair_coeff 1 2 lj/cut 2 1.0 1.0
pair_coeff 2 2 lj/cut 2 1.0 1.0 #2.628

fix ensemble all nve
velocity all create 0.67 4928459 rot yes dist gaussian

fix equil all temp/rescale 10 0.67 0.67 0.01 0.1

neighbor 0.2 bin
neigh_modify every 20 delay 0 check yes
minimize 1.0e-6 1.0e-6 1000 1000
thermo_style custom step temp pe ke etotal press vol

timestep 0.02
run_style respa 2 10 hybrid 1 2

thermo 20

Run the simulation

run 1000

reset_timestep 0
unfix equil

thermo 20
dump 1 all xyz 10
dump_modify 1 element He Rn

dump dumpXYZ all custom 10 id x y z
dump dumpVXYZ all custom 10 ljatm_vel.dat id vx vy vz

run 5000

Please check it yourself. This is not an input file validation forum. As a scientist you should be capable of constructing different scenarios that would either produce the same or different output / forces depending on how r-RESPA is applied or not. Please note that with just one level, r-RESPA will degenerate to a velocity Verlet algorithm.