I am trying to simulate dimer particles (two charged point particles separated by a length). The bond length is maintained when I initialize these dimers and simulate them using fix rigid and fix langevin. However, when I apply a radial electric field, dimers move in closer to each other and the dimer length is reduced and dimers behavior is lost. Below is my code snippet to have a look. In my data file I have two atom types and I have 50(A-A) dimers of each type (no A-B). I want help with this code, so that I can have dimers whose lengths don’t change through out the simulation.
#Initialization
units si
atom_style hybrid charge
atom_modify map array first big
atom_modify map array first small
dimension 2
boundary p p p
#Atom definition
fix molprop all property/atom mol
read_data data.dimer fix molprop NULL Molecules
group big type 1
group small type 2
velocity big create {T} 239874 loop all
velocity small create {T} 239874 loop all
velocity all zero angular
Force field
pair_style coul/debye {kappa} {cutf}
pair_coeff * *
#Settings
neighbor ${ngh} bin
neigh_modify every 1 delay 0 check yes one 50000 page 560000 ### this one is used not to overflow the neighbor
comm_modify mode single group all vel yes
neigh_modify include all
variable K2 equal 25000.0
variable xn atom x-0.05
variable yn atom y-0.05
variable Ehx atom {K2}*v_xn variable Ehy atom {K2}*v_yn
temperature controller
compute new3d big temp
timestep ${dt}
fixes
fix r1 all rigid/nve molecule reinit no
fix l1 all langevin {T} {T} 0.00002 92647382
fix 2d all enforce2d
fix ef all efield v_Ehx v_Ehy 0.0
fix_modify ef energy yes
Outputs
thermo_style custom step temp pe ke etotal epair press
thermo ${Nth}
thermo_modify temp new3d
dump dp1 all custom 1000 dump_lang.lammpstrj mol type x y z vx vy vz
run ${nt}