Polarizable Drude Oscillator Format by Benoit Roux (roux@uchicago.edu) and Guillaume Lamoureux (Guillaume.Lamoureux@umontreal.ca) and Alex MacKerell Jr. (alex@outerbanks.umaryland.edu) Classical drude particles are generated for all atoms for which polarizabilities (ie. via the ALPHA keyword) are specified in the RTF file. This allows for the drudes to be generated automatically when a molecule is generated in CHARMM (only the heavy atoms carry a polarizability in the current force field but the code is general and allows assigning a polarizability to any atom including hydrogens). In addition, code has been developed to allow for inclusion of atom-based Thole scale factors, atom-based anisotropic polarizabilities and the addition of lone pairs to selected atoms at the RTF level. These capabilities allow for all the information for the polarizable Drude force field to be included in the RTF and parameter files. This implementation replaces the old "Drude Oscillator Command" and "ANISOTROPY keyword" (see below) used to generate the Drude polarizable model prior to July 2007. For each atom with a specified polarizability, a "Drude oscillator" is created by attaching to the atom an additional particle (using a fictitious chemical bond of length zero and of force constant 'KDRUDE = k/2'). Each Drude particle is given a mass and a charge, taken from the mass and the charge of its atom (so that the total mass and charge are conserved for the "atom-Drude" pair). As a whole, each "atom-Drude" pair carries a total charge 'q', unchanged From the partial charge the non-polarizable atom had prior to calling the DRUDE command during system generation. The "atom-Drude" pair forms a dipole 'q*d', where 'q' is the charge on the Drude particle and 'd' is the displacement vector going from the atom to its Drude particle. Any external electrostatic field 'E' creates a net displacement 'd = q*E/k', and thus the "atom-Drude" pair behaves as a point charge 'q' with a polarizability 'alpha = q**2/k'. The polarizabilities (in Angst**3) are specified with the ALPHA command in the RTF, along with the THOLE factors (see below), and converted into charges 'q', assuming a force constant 'k = 2*KDRUDE', where KDRUDE is specified in the parameter file (see below); a value of 500 should always be used. See J. Chem. Phys. 119, 3025-3039 (2003) for more details. In the Drude treatment of polarization the force constant of the spring between the atom-Drude pair is a diagonal rank-2 tensor with components KDRUDE. This leads to an isotropic atomic polarizability, 'alpha = alpha_{11} = alpha_{22} = alpha_{33} = q**2/k'. The ANISOTROPY command, which is typically included in the RTF, modifies the components of the Drude force constant tensor allowing for anisotropic atomic polarizabilites. See J. Chem. Theory Comput. 2, 1587-1597 (2006) for more details. The bonded lists are modified so that, if the "real" atoms are in a 1-2, 1-3, or 1-4 relationship, their corresponding Drude particles will also be in a 1-2, 1-3, or 1-4 relationship, respectively. For a single atom (charges in parenthesis): DRUDE A --------> A~DA For a diatomic molecule: A1 DRUDE A1~DA1 | --------> | A2 A2~DA2 1-2 pairs: A1-A2, A1-DA2, DA1-A2, DA1-DA2 For a triatomic molecule: A1 A1~DA1 \ DRUDE \ A2 --------> A2~DA2 / / A3 A3~DA3 1-2 pairs: A1-A2, A1-DA2, DA1-A2, DA1-DA2, A2-A3, A2-DA3, DA2-A3, DA2-DA3 1-3 pairs: A1-A3, A1-DA3, DA1-A3, DA1-DA3 Thus, the bonded interactions are modified to allow 1-2 and 1-3 screened dipole-dipole interactions, as proposed by Thole [see Chem.Phys. 59, 341 (1981)]. If two atoms were not "seeing" each others in the non-polarizable force field, their dipoles (and only their dipoles, not their net partial charges) will "see" each others in the polarizable force field. The screening function strength is modulated by a parameter "a" that has been generalized to depend on the atom type associated with the interacting pair of Drude oscillators and are then generated via a standard arithmetic combination rule (a = a_i + a_j). These variable atomic THOLE parameters "a_i" are specified in the RTF through the THOLE keyword. * Menu: * Description:: Description of new DRUDE model RTF Description of new DRUDE model RTF 1) Items in RTF file A) The AUTOGENERATE command now includes a flag for the drude particles. This should be specified at the beginning of the RTF. Note that the use of the PATCh keyword assures that autogenerate is applied after all patches. This should be used. AUTO ANGLES DIHE DRUDE PATCH B) MASS statements must be included for Drude particle types. MASS 104 DRUD 0.00000 DD ! drude particle The default drude type is DRUD. However, alternate drude types may be specified. These additional drude types must be i) specified with MASS statements, ii) the ATOMs to which they are applied must include a "TYPE drudetype" statement and iii) the NONBond parameters must be specified. For example, to include a special drude type on water the following would be needed in the RTF i) MASS 153 DOH2 0.00000 DD ! water Drude ii) ATOM OH2 ODW 0.00000 ALPHA -0.97825258 TYPE DOH2 iii) (NONBOND section) D* 0.0 -0.0000 0.0000 ! Wildcard for Drudes and dummy atom iv) (via NBFIX) MAGD DOH2 -0.01000 3.10000 Term iv) is an NBFIX that allows for the interactions between, for example, magnesium and the water drude to be treated with a special LJ term. Indeed, the motivation for additional drude types are such special terms may be applied in special cases. Note that NBFIX terms have been used between select real atoms in the Drude force field to improve the free energies of hydration. See J. Chem. Theory Comput. 6. 1181-1198 (2010) for more details. C) ALPHA and THOLE parameters are set in the RTF after the charge. The presence of the "ALPHA" keyword flags that atom as being polarizable and a drude particle is created and assigned to it when calling the GENERATE command. An atom based Thole scale factor may also be specified via the "THOLE" keyword. If the THOLE term is missing, a default value of 1.3 is assigned to that atom. This corresponds to a parameter a = a_i + a_j = 2.6 which is the THOLE parameter in the old Drude command syntax. ATOM C C 0.630 ALPHA -1.104 THOLE 1.073 Note that a negative sign on alpha leads to the charge on the Drude particle to be negative. This convention was chosen because the Drudes are meant to represent electronic degrees of freedom of the system. D) Specific drude types for a polarizable atom may be specified as follows using the "TYPE" keyword. See 1A) above, sections i to iv for more details. ATOM C C 0.630 ALPHA -1.104 TYPE DC E) Lone pairs may now be set directly in the RTF using a syntax similar to the standard lonepair command (lonepair.doc). All options for the generation of lonepairs (FIXed, CENTer, COLOcate etc.) as specified in the lonepair documentation may be used although the atom selection specification is simplified as shown in the following example. LONEPAIR relative LPA O C CL distance 0.3 angle 91.0 dihe 0.0 LONEPAIR relative LPB O C N distance 0.3 angle 91.0 dihe 0.0 F) Atom based anisotropic polarizabilities may be assigned to selected atoms via the ANISOTROPY keyword in the RTF. The anisotropic polarizability tensor is defined as ALPHA_iso (the isotropic polarizability) times a tensor A whith trace{A}=3. The tensor A is diagonal in the local reference frame and is completely specified by {A11, A22, A33}. The first atom selects the atom on which the polarizability is to be made anisotropic. The second atom along with the first defines the "11" direction of the {A} tensor and the 3rd and 4th atom selections define the "22" direction of the tensor, with the anisotropy defined by fractional polarizability components. Accordingly, only the 11 and 22 direction are needed since the trace of the {A} tensor is set to 3. An example follows ANISOTROPY O C CA N A11 0.6968 A22 1.2194 In the code, the variables A11 and A22 are read into the variables A11ANIS(IPT) and A22ANIS(IPT). We define the components of the tensor relative to the isotropic drude, so ALPHA11+ALPHA22+ALPHA33 = 3*ALPHA_iso. The factors A11 and A22 (and A33) represent the factors modifying the components of the isotropic polarizability tensor q**2/KDRUDE. For example, setting A11=A22=1 would keep the Drude completely isotropic. By virtue of the trace we know that A11+A22+A33=3, so we only need to set two of these terms. Thus A33 = THREE-A11ANIS(IPT)-A22ANIS(IPT). This sets the relative magnitude of the polarizability tensor in all 3 directions. Once the polarizability along a given direction is known, we need to get the harmonic force constant in this direction. As the polarizability in a given direction is defined as QDRUDE**2/K_direction, the 3 harmonic force constants are thus K11(NANISO) = ONE/A11ANIS(IPT) K22(NANISO) = ONE/A22ANIS(IPT) K33(NANISO) = ONE/A33 Now, in principle this would mean that you have to calculate the forces from 3 different springs (K11, K22, K33) in 3 different directions. But since we know the overall trace which is related to the isotropic polarizability, we are going to re-write this so that there are only 2 springs with force constants KPAR in the parallel and KPERP in the perpendicular direction, and add an isotropic KDRUDE spring on top of that. 2) Items in the Parameter file A) The KDRUDE force constant for all the atoms is set by a wildcard in the bond parameters. The term must be included for all drude types included in the model. The wildcard terms can be overwritten by putting chemical type specific bond parameters following the wild card term. Note that 500.00 is the default force constant and should not be changed. DRUD X 500.000 0.0000 DRUD O 487.740 0.0000 B) NONBOND parameters must be included for all drude types. In addition, NBFIX terms for the drudes may be included as needed (see 1A above). C) A pair-specific Thole shielding can be introduced in the parameter file for any nonbond pair (following a syntax similar to NBFIX) using the keyword THOLe. This feature was introduced to permit accurate models of divalent cations with polarizable atoms. The TCUT assigns a radius within which all Thole interaction are calculated between the specificed atoms. The 'aij' typically is assigned by the user. A default value 1.2 can also be used. THOLE TCUT 5.0 MAXNBTHOLE 50000 CL SODD @aij 3) Command Line Items A) A "DRUDE" flag must be included with the GENErate command to specify the inclusion of drudes on the molecule. The drude mass is set in this command using the DMASS keyword followed by the mass in AMU; a value of 0.4 is highly suggested. generate NMA first none last none setup warn DRUDE DMASS 0.4 An additional command that may be included with the generate command is the HYPErpolarizability term. This command invokes a higher exponent half-wall potential on the Drude particles to minimize the potential for polarization catastrophe. In the HYPEpolarzation command HORD is the order of the exponent, KHYP is the force constant and RHYP represent atom-Drude distance at which the hypepolarization term is invoked. An example of the command follows. Note that if DrudeHardWall, as described in the following section, use of HYPErpolarization is not required. Experience with several systems suggest that the DrudeHardWall feature is a more effective way than HYPER to generate stable simulations with a 1 fs timesteps. generate NMA first none last none setup warn DRUDE DMASS 0.4 HYPE HORD 4 KHYP 40000 RHYP 0.2 B) DrudeHardWall command When the Drude particles move far away from the nucleus (eg. > 0.2 Ang.), simulations become unstable and polarization catastrophe may occur. Introducing hard wall constraints on the length of Drude-nuclei bonds is a way to avoid such instability. In each MD step, the length of Drude bonds are checked and compared with "L_WALL". When the length of a Drude bond is larger than "L_WALL", the relative velocities along bond vector are flipped and scaled down according to the temperature of the drude bond. In addition, the displacement relative to "L_WALL" is flipped and scaled down according to new velocities along the bond vector to make sure the Drude bond is not longer than "L_WALL". DrudeHardWall L_WALL real Example: DrudeHardWall L_WALL 0.2 ! set the hard wall at 0.2 Angstrom DrudeHardWall L_WALL 0.0 ! turn off the hard wall when L_WALL equals 0.0 Description of Extended PSF format for CHARMM and NAMD The PSF has been extended for the Drude model. The default format is for CHARMM and the XPLOR format is for NAMD. The PSF following generation of the Drude model explicitly provides the THOLE, ALPHA, lone pair and anisotropic polarization information for CHARMM/NAMD PSF reader. * Menu: * Syntax:: Syntax of the DRUDE command * Description:: Description of the DRUDE command * Toppar:: Effect on the topology and parameters * Warnings:: To be aware of when using the DRUDE command * Examples:: Usage examples of the DRUDE command
Syntax of the DRUDE command DRUDe RESEt GENErate { generate-spec } DRUDe [DMASS real] [KDRUde real] [HYPE] { hype-spec } generate-spec::= [see struct.doc]
Description of the DRUDE command ------------------------------------------------------------------- Keyword Default Purpose ------------------------------------------------------------------- RESET Deactivates the Drude particles. After a reset, the user should delete all Drude particles. DMASS 0.0 Mass of the Drude oscillators (in amu). The default zero value causes the masses to be read from the topology file. Any nonzero value will override the topology file. A value of 0.4 is suggested. KDRUDE 0.0 Force constant of the atom-Drude bonds (in kcal/mol/Angst**2). The default zero value causes the bond force constants to be read from the parameter file. Any nonzero value will override the parameter file. A value of 500. is suggested. VTHOLE Uses variable thole parameters for dipole-dipole interactions. This term is set by default and is only used in the fitcharge routine. ALPHA 0.0 Atomic polarizability specificed in the parameter file. Zero indicates no polarizability on that atom. THOLE 2.6 The screening factor for dipole-dipole interactions between atoms excluded from the non-bonded interactions. To have no dipole-dipole interactions between these bonded atoms, use THOLE = 0. THOLE is specified in the parameter file. SHAPE 1 Specifies the shape of the dipole-dipole screening function. Only 1 option is currently available. HYPE Off Specify the inclusion of hyperpolarization term on the Drude oscillators to minimize potential of polarization catastophe hype-spec::= [HORD int] [KHYP int] [RHYP real] (XXXXX defaults have not been set for the following, may be a good idea XXXXXX) HORD xx Order of the exponent the hyperpolarization. Typically 4. KHYP xx Force constant. Typically 40,000. RHYP xx Atom-Drude distance of the flat-well potential. The hyperpolarization is not activited until the atom-Drude distance is greater than RHYP. Typically 0.2 Angst. ------------------------------------------------------------------- 1) KDRUDE KDRUDE is the force constant (in kcal/mol/Angst**2) for the bond between each atom and its Drude particle the user wishes to use. It overrides any bond constant found in the parameter file. The default value for KDRUDE is 500 kcal/mol/Angst**2. This should NOT be changed! The atomic polarizabilities (in Angst**3) may be read from the WMAIN array: alpha = abs(WMAIN) The charge on every Drude particle is computed using the following formula: q = sqrt( 2*KDRUDE * alpha / CCELEC ) * sign(WMAIN) The charges are given the signs of the WMAIN values. As long as KDRUDE is large enough, the Drude particles will stay very close to their atoms, and the sign of 'q' is irrelevant. However, as the Drude represents the electronic degrees of freedom, the sign of alpha is set to a negative value, thereby yielding a negative charge on the Drude particles. ------------------------------------------------------------------- 2) THOLE, SHAPE For 1-2 and 1-3 atoms only. All other interactions are regular Coulombic. See THOLE keyword in the parameter file to perform Thole scaling between nonbonded atoms. The THOLE parameter is a dimensionless factor that specifies the extent of the smearing of the charge 'q' on the Drude oscillators and of a contribution '-q' on the "real" atom. The default value of THOLE is 2.6, that is, the 1-2 and 1-3 dipole-dipole interactions are turned on by default. To turn the interactions off, set THOLE to zero. The default constant THOLE of 2.6 can be replaced by variable thole by specifying an atom specific Thole value in the topology file. The THOLE parameter between oscillators I and J is given by THOLE = THOLEI + THOLEJ. Values of THOLEI may also be given in the WCOMP array for all Drude oscillator containing atoms prior to the DRUDE command. Because the dipole are explicitly made of two charges, the screened dipole-dipole interaction between two polarizable atoms (that is, two "atom-Drude" pairs) is actually the sum of the following four screened charge-charge interactions: ('q1' on Drude 1) - ('q2' on Drude 2) ('q1' on Drude 1) - ('-q2' on atom 2) ('-q1' on atom 1) - ('q2' on Drude 2) ('-q1' on atom 1) - ('-q2' on atom 2) The screened charge-charge interaction has the form: U(r12) = CCELEC * q1*q2 * S(u12)/r12 where 'u12' is the normalized distance: u12 = r12 * THOLE / (alpha1*alpha2)**(1/6) 'S' is a screening function defined by the SHAPE parameter: SHAPE Screening function Charge distributions 1 S(u) = 1 - (1+u/2)*exp(-u) Slater-Delta 2 S(u) = erf(u) Gaussian The default value of SHAPE is 1, which is also the only shape currently implemented. SHAPE=2 is reserved for Gaussian-Gaussian distributions. Two "atom-Drude" pairs have dipole-dipole interactions if the following conditions are met: 1. The THOLE parameter is nonzero. 2. In the non-polarizable force field, the two atoms were in the nonbonded exclusion list. To see if all the desired atoms have dipole-dipole interactions, use PRNLEV > 7. Each call to the energy will print the atom numbers, polarizabilities and Drude particles's charges of each interacting pair. The energy from the dipole-dipole interactions is added to the ELEC energy term, and "SKIP ELEC" will skip the Thole interactions as well.
Effect on the topology and parameters ------------------------------------------------------------------- 1) New atoms The Drude particles are inserted immediately after their corresponding atoms in the PSF and coordinate file. For an atom type 'CA1', the DRUDE command will assign the atom type 'DCA1' for the Drude particle. Since no regular atoms have names starting with a 'D', the Drude oscillators can be selected with "SELECT TYPE D* END". ------------------------------------------------------------------- 2) Masses The masses for the selected atoms are modified so that the total mass of the atom-Drude pair corresponds to the atomic mass. Try "SCALAR MASS SHOW" before and after calling the DRUDE command. ------------------------------------------------------------------- 3) Charges The charges for the selected atoms are modified so that the total charge of the atom-Drude pair corresponds to the atomic partial charge. Try "SCALAR CHARGE SHOW" before and after calling the DRUDE command. ------------------------------------------------------------------- 4) Bonded interactions In addition to the atom-Drude bonds, zero force bonds are created between the atom-Drude pairs to maintain the same 1-2, 1-3, and 1-4 relationships that existed prior to the DRUDE call. For example, for two bonded atoms A1 and A2, with Drude particles DA1 and DA2, DA1 DA2 | | A1 ----- A2 zero force bonds are created between DA1 and DA2, between DA1 and A2, and between A1 and DA2, so that any particle of the A1-DA1 pair is 1-2 bonded to any particle of the A2-DA2 pair. Since the force constants of these fictitious bonds are zero, the computational overhead is minimal. ------------------------------------------------------------------- 5) Non-bonded interactions Whether the Drude particles have Lennard-Jones parameters or not, the Lennard-Jones parameters of the selected atoms are kept unchanged. Since the polarizable force field is built from the same "ingredients" as the non-polarizable force field, all the NBONDS options can be used as before (notably the PMEWALD method).
Issues to be aware of when using the DRUDE command ------------------------------------------------------------------- 1) Once all molecules in the system have been generated and any patching performed, invoke the following commands to create the drude and lone pair coordinates and set up the needed arrays. COOR SDRUDE COOR SHAKE ------------------------------------------------------------------- 2) The preferred call to SHAKE is: COOR COPY COMP SHAKE BONH PARAM TOLERANCE 10E-9 - NOFAST - SELECT .NOT. TYPE D* END - SELECT .NOT. TYPE D* END ------------------------------------------------------------------- 3) Always delete all the Drude particles after a RESET Treat this sequence of commands a single command: DRUDE RESET DELETE ATOMS SELECT TYPE D* END The "DRUDE RESET" command puts back the mass and the charge of the Drude particles on the heavy atoms, and erases the distinction between a Drude particle and a regular atom. Note to fully clear all the relevant arrays to allow for a new molecule to be generated all the following commands must be performed. SHAKE OFF DRUDE RESET LONE CLEAR DELETE ATOM SELE ALL END ------------------------------------------------------------------- 4) DMASS and KDRUDE are overriding the toppar files Any nonzero value for DMASS and KDRUDE specified by the user in a GENErate statement overrides the values from the topology and parameter files. ------------------------------------------------------------------- 5) Syntax and Description of the DrudeHardWall command DrudeHardWall L_WALL real Example: DrudeHardWall L_WALL 0.2 ! set the hard wall at 0.2 Angstrom DrudeHardWall L_WALL 0.0 ! turn off the hard wall when L_WALL equals 0.0 When the Drudes move too far away from the nucleus, the simulations become unstable leading to polarization catastrophe. To avoid this instability and "hard wall constraint" on the length of Drude-nuclei bonds is introduced. In each MD step, the length of Drude bonds are checked and compared with "L_WALL". When the length of Drude bond is larger than "L_WALL", the relative velocities along the bond vector are reversed and scaled down according to the temperature of the Drude bond. In addition, the displacement relative to "L_WALL" is reversed and scaled down according to new the velocities along the bond vector to make sure the Drude bond is not longer than "L_WALL".
Usage examples of the DRUDE command ------------------------------------------------------------------- 1) Polarizable benzene (see test/c30test/drude_benzene.inp) After reading the standard, non-polarizable topology and parameter files, a standard benzene molecule is generated: READ SEQUENCE BENZ 1 GENERATE BENZ SETUP FIRST NONE LAST NONE DRUDE DMASS 0.4 Obtain the benzene coordinates using IC build or reading in the coordinates. READ COOR CARD.... Then generate drude and lone pair coordinates. COOR SDRUDE COOR SHAKE The structure is minimized: MINI SD STEP 0.001 NSTEP 1000 NPRINT 100 Since benzene is a nonpolar molecule, the Drude particles are not significantly moved from their heavy atoms. To find the induced atomic dipoles for a given structure, one should use "CONS FIX SELECT .NOT. TYPE D* END" before calling MINI. The molecular polarizability is obtained using the VIBRAN command with the DIPOLES keyword: VIBRAN DIAGONALIZE PRINT NORMAL VECTORS DIPOLES SELECT ALL END END The total polarizability is an anisotropic tensor similar to the experimental results for benzene [J.Chem.Phys. 95, 5873 (1991)]. The strong anisotropy comes from the 1-2 and 1-3 dipole-dipole interactions. Deactivating these interactions by using THOLE=0 leads to the polarizability tensor being almost isotropic. ------------------------------------------------------------------- 2) SWM4-NDP water (see test/c30test/swm4.inp) See J. Chem. Phys. 119, 5185-5197 (2003) and Chem. Phys. Lett. 418, 245-249 (2005) for a complete description of the model. After reading the topology and parameter files, the model is built as following: READ SEQUENCE SWM4 ... GENERATE WAT SETUP NOANGLE NODIHEDRAL DRUDE DMASS 0.4 READ COOR CARD ... Then generate drude and lone pair coordinates. COOR SDRUDE COOR SHAKE SHAKE the waters COOR COPY COMP SHAKE BONH PARAM TOLERANCE 1.0E-9 - NOFAST - SELECT ( SEGID WAT .AND. .NOT. TYPE D* ) END - SELECT ( SEGID WAT .AND. .NOT. TYPE D* ) END ------------------------------------------------------------------- 3) Protein, with disulfide patches, SWM4-NDP water and ions Note that for complex systems it is suggested that the system initially be equilibrated using the additive force field, with the final coordinates used to initiate the Drude simulations. Tools to perform this may be found on the CHARMM Gui or in the MacKerell web site. ! Read protein open read card unit 10 name protein.crd read sequence coor unit 10 generate PROA setup warn first NTER last CTER DRUDE DMASS 0.4 ! NOTE: the DRUDE statement after 'patch' is not necessary Disulfide ! bonds and if PATCH is included in the AUTOgenerate command it is not ! needed following patches. patch disu2 PROA 26 PROA 84 setup warn DRUDE DMASS 0.4 autogenerate angles dihedrals patch disu2 PROA 40 PROA 95 setup warn DRUDE DMASS 0.4 autogenerate angles dihedrals patch disu2 PROA 58 PROA 110 setup warn DRUDE DMASS 0.4 autogenerate angles dihedrals patch disu2 PROA 65 PROA 72 setup warn DRUDE DMASS 0.4 autogenerate angles dihedrals ! Read xtal waters open read card unit 10 name xtal_water.crd read sequence coor unit 10 generate WATA setup warn noangle nodihedral DRUDE DMASS 0.4 read coor card unit 10 resid ! Read solvent waters open read card unit 10 name solv_water.crd read sequence coor unit 10 generate SOLV setup warn noangle nodihedral DRUDE DMASS 0.4 read coor card unit 10 resid ! Read IONS open read card unit 10 name ions.crd read sequence coor unit 10 generate CL setup warn noangle nodihedral DRUDE DMASS 0.4 read coor card unit 10 resid COOR SDRUDE COOR SHAKE ! cell parameters SET BOXTYPE = RECT SET XTLTYPE = CUBIC SET A = 62.75993 SET B = 62.75993 SET C = 62.75993 SET ALPHA = 90.0 SET BETA = 90.0 SET GAMMA = 90.0 SET XCEN = 0 SET YCEN = 0 SET ZCEN = 0 ! ! Setup PBC (Periodic Boundary Condition) ! CRYSTAL DEFINE @XTLtype @A @B @C @alpha @beta @gamma crystal build noper 0 cutoff @3 !Image centering by residue IMAGE BYRESID XCEN @xcen YCEN @ycen ZCEN @zcen sele resname SWM4 end IMAGE BYRESID XCEN @xcen YCEN @ycen ZCEN @zcen sele ( segid pot .or. segid cl ) end ! ! Nonbonded Options ! set 3 16.0 ! cutim set 4 16.0 ! cutnb set 5 10.0 ! ctonnb set 6 12.0 ! ctofnb set 7 switch set 8 atom set 9 vatom set 10 vswitch !Note use of vswitch set kap 0.34 ! epsilon for the PME set ord 6 ! spline order for PME ! fftx dimensions should correspond to 1 A or less; must ! be power of 2, 3 or 5 set fftx 64 set ffty 64 set fftz 64 !invoke drudehardwall to avoid polarization catastrophe. DrudeHardWall L_WALL 0.2 update inbfrq -1 imgfrq -1 ihbfrq 0 - ewald pmewald kappa @kap fftx @fftx ffty @ffty fftz @fftz order @ord - @7 @8 @9 @10 cutimg @3 cutnb @4 ctofnb @6 ctonnb @5 energy !minimize only the Drudes cons harm force 100000.0 sele .not. type D* end mini SD nstep 50 cons harm force 0.0 sele .not. type D* end coor copy comp SHAKE bonh param tolerance 1.0e-9 - nofast - select ( .not. (type D*)) end - select ( .not. (type D*)) end noreset !minimize full system mini SD nstep 50 ! with proper equilibration, Hyperpolarization and/or Hardwall ! 1 fs timestep should be possible set timestep 0.0005 !0.001 set nstep 200000 set seed 21320 set ii 0 set jj 1 open read unit 11 card name @tmp/hsd12.psf@psfid.@ii.res open write unit 12 card name @tmp/hsd12.psf@psfid.@jj.res open write unit 13 file name @tmp/hsd12.psf@psfid.@jj.dcd ! Set up temperature control for NVT simulation !scf THER 2 TAU 0.005 TREF 0.00 SELECT TYPE D* END - TPCONTROL NTHER 4 CMDAMP 10.0 NSTEP 20 - THER 1 TAU 0.1 TREF @temp SELECT .NOT. (resname swm4 .or. TYPE D* ) END - THER 2 TAU 0.1 TREF @temp SELECT resname swm4 .and. .NOT. TYPE D* END - THER 3 TAU 0.005 TREF 1.00 SELECT TYPE D* .and. .not. resname swm4 END - THER 4 TAU 0.005 TREF 1.00 SELECT resname swm4 .and. TYPE D* END !- ! BARO BTAU 0.1 PREF 1.00 DSCY !Activate BARO for NPT simulation ! Setup and run the Thermodynamic Integration loop using Langevine ! Dynamics. DYNAMICS vv2 start nstep @nstep timestp @timestep - ntrfrq @nstep iprfrq -1 - nprint 1000 iseed @seed - iasvel 1 firstt @temp finalt @temp - inbfrq -1 imgfrq -1 ihbfrq 0 ilbfrq 0 - iunread 11 - iunwrite 12 - iuncrd 13 nsavcrd 2000 Details of the command to perform molecular dynamics for the polarizable Drude mdoel is explained in *note vv2:(chmdoc/vv2.doc).
CHARMM Documentation / Rick_Venable@nih.gov