AW: smd simulation

From: Norman Geist (
Date: Thu Feb 28 2013 - 00:48:19 CST

Hi Jaqueline,


we also work with surfaces. If your surface has multiple layers, it's enough
maybe to just fix one of them, maybe the one that is the most far away from
the peptide. Possibly fixing some single atoms within the surface would also
do the job. Not to fix anything would require a pulling force of the surface
in the opposite direction to the same m/s value. As you say you got constant
velocity, you just need to get a pulling force for the surface which equals
the same speed for the surface, or? Additionally, why not fix one atom of
the peptide, and just pull the surface?


Norman Geist.


Von: [] Im Auftrag
von Jacqueline Schmidt
Gesendet: Mittwoch, 27. Februar 2013 15:28
An: namd
Betreff: namd-l: smd simulation


Dear NAMD users,

I am trying to perform a smd md on a peptide which is adsorbed to a mineral
surface. For this purpose I added a constant velocity to the peptide atoms
trough tcl interface. To make the surface not moving upwards I added a smd
velocity equal to zero with a very large arbitrary force constant (I don't
want to fix the surface coordinates; I want the atoms in the surface remain
flexible but at the same time not move upwards with the peptide). However,
despite the very large force constant for the surface, it is still moving
upward in some occasions along with the peptide. Does anyone has experience
on these type of simulations? I appreciate any comments (my question was how
to prevent surface from moving upward without fixing its coordinates)


Thanks, jackie


************Here is the conf file , smd section************


# SMD settings #this is applied on the surface

if {1} {

SMD on

SMDFile smd_ref.pdb

SMDk 10000

SMDVel 0.000

SMDDir 1 1 1

SMDOutputFreq 100



# Tcl interface #this is applied on the peptide

if {1} {

tclForces on

tclForcesScript smd.tcl



********Here is the tcl script**************************

#define a group including the peptide atoms

set grp2 {}

for {set j 1 } { $j <=90 } {incr j } {

lappend grp2 $j


set a2 [addgroup $grp2]

# set the output frequency, initialize the time counter

set Tclfreq 10

set t 0

# force constant (kcal/mol/A^2)

set k 20

# pulling velocity (A/timestep)

set v 0.0000025

set outfilename rklpda_smd_tcl.out

open $outfilename w

set r20z 31

proc calcforces {} {


  global Tclfreq t k v a2 r20z outfilename

  loadcoords coordinate

  set r2 $coordinate($a2)

  set r2x [lindex $r2 0]

  set r2y [lindex $r2 1]

  set r2z [lindex $r2 2]


  if { $t == 0 } {

     set r20z $r2z


  set f2x 0

  set f2y 0

  set f2z [expr $k*($v*$t-$r2z+$r20z)]

  lappend f2 $f2x $f2y $f2z


  addforce $a2 $f2


  set foo [expr $t % $Tclfreq]

  if { $foo == 0 } {

      set outfile [open $outfilename a]

           # calc time in ps

      set time [expr $t]

      puts $outfile "$time $r2z $f2z"

      close $outfile


  incr t




This archive was generated by hypermail 2.1.6 : Wed Dec 31 2014 - 23:20:58 CST