**From:** Jim Parker (*jim.parker_at_prismsciences.com*)

**Date:** Thu Dec 03 2009 - 07:10:12 CST

**Next message:**Jim Parker: "(no subject)"**Previous message:**Charles Zhao: "Re: Incorrect Atom Count"**Next in thread:**Priyan Amaras: "NAMD on 64 bit windows 2007"**Reply:**Priyan Amaras: "NAMD on 64 bit windows 2007"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ] [ attachment ]

Bin,

Thanks! Worked as advertised.

Cheers,

--Jim

BIN ZHANG wrote:

*> Hi, Jim:
*

*>
*

*> This expression is not recognized by Tcl:
*

*>> set compF "$RFampl*sin(2*$PI*$RFfreq*$t/1000000*2)"
*

*> you need to use :
*

*> set compF [expr {$RFampl*sin(2*$PI*$RFfreq*$t/1000000*2)}]
*

*> instead.
*

*>
*

*> Best,
*

*> Bin
*

*>
*

*> On Dec 1, 2009, at 10:33 PM, Jim Parker wrote:
*

*>
*

*>> Hello,
*

*>> I'm trying to generate a time variable force (harmonic perturbation)
*

*>> for use in NAMD. I thought a straight-forward approach would be to
*

*>> compute the perturbation using the "getstep" function in Tcl. Then
*

*>> addforce to an atom-id with size =Amplitude*sin(2*pi*freq*t), 0,0
*

*>>
*

*>> However, executing the code fails with FATAL ERROR: expected
*

*>> floating-point number. (actual error below)
*

*>>
*

*>> The problem seems to be that the TCL interpreter is not substituting
*

*>> a value for "getstep" into the argument for sin() and thus the
*

*>> argument is not a floating-point number. Can anyone help point me in
*

*>> the right direction?
*

*>>
*

*>> I did see that several people mentioned float-point errors in Tcl. I
*

*>> think this a syntax error, but maybe related to that??
*

*>>
*

*>> Cheers,
*

*>> --Jim Parker
*

*>> UTSA Physics and Astronomy
*

*>>
*

*>> Error and code follows:
*

*>> *****************************************
*

*>> Reason: FATAL ERROR: expected floating-point number but got
*

*>> "0.1*sin(2*3.1416*1000*getstep/1000000*2)"
*

*>> while executing
*

*>> "vecscale $xvec $compF"
*

*>> (procedure "calcforces" line 10)
*

*>> invoked from within
*

*>> "calcforces"
*

*>>
*

*>> Charm++ fatal error:
*

*>> FATAL ERROR: expected floating-point number but got
*

*>> "0.1*sin(2*3.1416*1000*getstep/1000000*2)"
*

*>> while executing
*

*>> "vecscale $xvec $compF"
*

*>> (procedure "calcforces" line 10)
*

*>> invoked from within
*

*>> "calcforces"
*

*>>
*

*>> Aborted
*

*>> *****************************************
*

*>> TCL snipet follows
*

*>>
*

*>> tclForcesScript {
*

*>> # save timestep set t [getstep] ; #t is in 2fs steps
*

*>> print "The current time is $t"
*

*>> # The IDs of the atoms defining the oscillation
*

*>> set aidleft 1
*

*>> set aidright 2
*

*>> addatom $aidleft
*

*>> addatom $aidright
*

*>> set PI 3.1416
*

*>>
*

*>> # real frequency = RFfreq * 10^9 Hz
*

*>> set RFfreq 1000 ; #1 THz
*

*>> # RFampl in angstroms
*

*>> set RFampl 0.1 # print "Freq is $RFfreq and amplitude is
*

*>> $RFampl"
*

*>>
*

*>> proc calcforces {} {
*

*>> global aidleft aidright PI RFfreq RFampl t
*

*>> loadcoords p
*

*>> # Calculate the harmonic force component
*

*>> # note time = t * time/step
*

*>> set compF "$RFampl*sin(2*$PI*$RFfreq*$t/1000000*2)"
*

*>> # The force to be applied on each atom along x-axis (basevector)
*

*>> set basevec {1. 0. 0.}
*

*>> addforce $aidleft [vecscale $basevec $compF]
*

*>> addforce $aidright [vecscale $basevec -1.0*$compF]
*

*>> }
*

*>> }
*

*>>
*

*>>
*

*>
*

**Next message:**Jim Parker: "(no subject)"**Previous message:**Charles Zhao: "Re: Incorrect Atom Count"**Next in thread:**Priyan Amaras: "NAMD on 64 bit windows 2007"**Reply:**Priyan Amaras: "NAMD on 64 bit windows 2007"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ] [ attachment ]

*
This archive was generated by hypermail 2.1.6
: Wed Feb 29 2012 - 15:53:33 CST
*