I perform a test dpd simulation of membrane started from the generation of structures. packmol is used for generate the input structure. lammps is used as the simulator.

The lipid structure is as follow(lipid.xyz):

11

C 0.0 0.0 0.0
C 0.5 0.0 0.0
C 1.0 0.0 0.0
C 1.5 0.0 0.0
C 0.0 0.6 0.0
C 0.5 0.6 0.0
C 1.0 0.6 0.0
C 1.5 0.6 0.0
H 2.0 0.0 0.0
H 2.0 0.5 0.0
H 2.5 0.0 0.0

which is like the pic shown below.

Alt Text

also a water sturcture is listed(water.xyz). Because only one particle will represent one water.

1

W 0.0 0.0 0.0

a packmol input(bilayer_packmol.in) script is used here to generate the structure of the total system.

tolerance 0.5
filetype xyz
output bilayer.xyz

structure lipid.xyz
  number 250
  inside box 0. 0. 10. 19.428 19.428 13.0
  atoms 1
    below plane 0. 0. 1. 10.5
  end atoms
  atoms 11
    over plane 0. 0. 1. 12.5
  end atoms
end structure

structure lipid.xyz
  number 250
  inside box 0. 0. 7.0 19.428 19.428 10.0
  atoms 1 5
    over plane 0. 0. 1. 9.5
  end atoms
  atoms 11
    below plane 0. 0. 1. 7.5
  end atoms
end structure

structure water.xyz
  number 8250
  inside box 0. 0. 12.5 19.428 19.428 19.428
end structure

structure water.xyz
  number 8250
  inside box 0. 0. 0. 19.428 19.428 7.5
end structure

And also I have a script for the generation of psf and lammps data file.

mol new bilayer.xyz

pbc set { 19.428 19.428 19.428 }
topo clearbonds
for {set i 0} {$i < 500} {incr i} {
    topo addbond [expr $i*11] [expr $i*11+1]
    topo addbond [expr $i*11+1] [expr $i*11+2]
    topo addbond [expr $i*11+2] [expr $i*11+3]
    topo addbond [expr $i*11+4] [expr $i*11+5]
    topo addbond [expr $i*11+5] [expr $i*11+6]
    topo addbond [expr $i*11+6] [expr $i*11+7]
    topo addbond [expr $i*11+3] [expr $i*11+8]
    topo addbond [expr $i*11+7] [expr $i*11+9]
    topo addbond [expr $i*11+8] [expr $i*11+9]
    topo addbond [expr $i*11+8] [expr $i*11+10]
    topo addangle [expr $i*11] [expr $i*11+1] [expr $i*11+2]
    topo addangle [expr $i*11+1] [expr $i*11+2] [expr $i*11+3]
    topo addangle [expr $i*11+2] [expr $i*11+3] [expr $i*11+8]
    topo addangle [expr $i*11+4] [expr $i*11+5] [expr $i*11+6]
    topo addangle [expr $i*11+5] [expr $i*11+6] [expr $i*11+7]
    topo addangle [expr $i*11+6] [expr $i*11+7] [expr $i*11+9]
}

animate write psf bilayer.psf
topo writelammpsdata bilayer.data

The final version of the input structure is showed as follow

Alt Text

I use this structure for the input of DPD simulation, and the input file for lammps is as follow.

The input files: bilayer.data, dpd_test.in

units       lj
atom_style full
comm_modify vel yes
pair_style  dpd 1.0 1.0 34387

read_data bilayer.data
# create simulation box
#lattice     fcc 3
#region      mybox block -4 4 -4 4 -4 4 units lattice
#create_box  1 mybox
#create_atoms    1 box

# define masses and interaction coefficient
#mass        * 1
pair_coeff  1 1 10 4.5
pair_coeff  2 2 30 4.5
pair_coeff  3 3 25 4.5
pair_coeff  1 2 35 4.5
pair_coeff  1 3 75 4.5
pair_coeff  2 3 30 4.5

bond_style harmonic
bond_coeff 1 128.0 0.5

angle_style cosine/delta
angle_coeff 1 7.5 180.0

# create initial velocities
velocity    all create 1.0 4928459 dist gaussian

# change neighbor list parameters to avoid dangerous builds
neighbor    2.0 bin
neigh_modify    delay 3

# specify simulation parameters
timestep    0.04
thermo      10

# first equilibrate the initial condition
fix     1 all nve
run     500

dump traj all xtc  50 traj.xtc
dump_modify traj unwrap yes

dump traj_xyz all xyz 50 traj.xyz

# production run
run     50000

The result movie is shown as below

Alt Text