2
# We define non-bonded and bonded (angular) interactions between atoms
3
# belonging to "2bead" molecules.
4
# We define the settings for angles or dihedrals which might be present
5
# later when we connect multiple "2bead/H" and "2bead/P" molecules together to
12
# LAMMPS supports a large number of force-field styles. We must select
13
# which ones we need. This information belongs in the "In Init" section.
14
# (Hybrid styles used for portability. These choices can be overridden later.)
16
write_once("In Init") {
17
# -- Default styles for "2bead" --
18
# (Hybrid force fields were not necessary but are used for portability.)
19
bond_style hybrid harmonic
20
angle_style hybrid harmonic
21
dihedral_style hybrid charmm
22
pair_style hybrid lj/cut 11.0
24
# If charges are needed, (assuming biopolymers), try one of:
26
#pair_style hybrid lj/cut/coul/debye 0.1 11.0
27
# or (for short distances, below a couple nm)
28
#pair_style hybrid lj/charmm/coul/charmm/implicit 9.0 11.0
30
pair_modify mix arithmetic
31
special_bonds lj 0.0 0.0 0.0
35
# OPTIONAL: Enclose these angle settings within the 2bead {...} environment.
36
# We do this for the same reason we enclosed "H" and "P" in "2bead".
37
# This does not overwrite the definition of 2bead. Here we are only
38
# augmenting "2bead" to include the following force field information.
40
# 2-body (non-bonded) interactions:
42
# Uij(r) = 4*eps_ij * ( (sig_ij/r)^12 - (sig_ij/r)^6 )
44
# Hydrophobic side-chains are attractive (large epsilon parameter).
45
# Polar side-chains and backbone atoms are not attractive (small epsilon).
47
# i j pairstylename eps sig
49
write_once("In Settings") {
50
pair_coeff @atom:CA @atom:CA lj/cut 0.10 2.0
51
pair_coeff @atom:H/R @atom:H/R lj/cut 2.50 3.6
52
pair_coeff @atom:P/R @atom:P/R lj/cut 0.10 3.6
55
# (Interactions between different atom types use "arithmetic" mixing rules.)
57
write_once("Data Bonds By Type") {
58
@bond:backbone @atom:CA @atom:CA
59
@bond:sidechain @atom:CA @atom:*/R
62
# 2-body (bonded) interactions:
64
# Ubond(r) = (k/2)*(r-0)^2
66
# The corresponding command is:
68
# bond_coeff bondType bondstylename k r0
71
write_once("In Settings") {
72
bond_coeff @bond:sidechain harmonic 30.0 3.4
73
bond_coeff @bond:backbone harmonic 30.0 3.7
77
# Rules for determining 3 and 4-body bonded interactions by type
79
# angle-type atomType1 atomType2 atomType3
81
write_once("Data Angles By Type") {
82
@angle:backbone @atom:CA @atom:CA @atom:CA
83
@angle:sidechain @atom:CA @atom:CA @atom:*/R
86
# dihedral-type AtomType1 AtomType2 AtomType3 AtomType4
88
write_once("Data Dihedrals By Type") {
89
@dihedral:CCCC @atom:CA @atom:CA @atom:CA @atom:CA
90
@dihedral:RCCR @atom:*/R @atom:CA @atom:CA @atom:*/R
93
# 3-body interactions in this example are listed by atomType and bondType
94
# The atomIDs involved are determined automatically. The forumula used is:
96
# Uangle(theta) = (k/2)*(theta-theta0)^2
97
# (k in kcal/mol/rad^2, theta0 in degrees)
99
# The corresponding command is:
101
# angle_coeff angleType anglestylename k theta0
103
write_once("In Settings") {
104
angle_coeff @angle:backbone harmonic 30.00 114
105
angle_coeff @angle:sidechain harmonic 30.00 123
109
# 4-body interactions in this example are listed by atomType and bondType
110
# The atomIDs involved are determined automatically. The forumula used is:
112
# Udihedral(phi) = K * (1 + cos(n*phi - d))
114
# The d parameter is in degrees, K is in kcal/mol/rad^2.
116
# The corresponding command is
117
# dihedral_coeff dihedralType dihedralstylename K n d w
118
# "w" is the weight for 1-4 pair interactions, which we set to 0.0
120
write_once("In Settings") {
121
dihedral_coeff @dihedral:CCCC charmm -0.5 1 -180 0.0
122
dihedral_coeff @dihedral:RCCR charmm -1.5 1 -180 0.0
123
} # write_once("In Settings")