Re: extracting force on a single atom

From: Jérôme Hénin (jerome.henin_at_ibpc.fr)
Date: Thu Aug 31 2017 - 10:25:18 CDT

This command is only available within the calcforces procedure.

Jerome

On 31 August 2017 at 17:11, Ben Adams <benny.adams1993_at_gmail.com> wrote:

> Sorry for that typo. But it's not the problem. I get that anyway:
>
> FATAL ERROR: unknown parameter
>
> while executing
>
> "getstep"
>
> invoked from within
>
> "set t [getstep]"
>
> On Thu, Aug 31, 2017 at 10:07 AM, Florian Blanc <blanc.flori_at_gmail.com>
> wrote:
>
>> Dear Ben,
>>
>> I have not tried it, but you wrote "getsetp", when I guess it should be
>> "getstep".
>>
>> Good luck,
>>
>> Florian
>>
>> On 08/31/2017 05:03 PM, Ben Adams wrote:
>>
>> Thank you very much.
>> Just for last question, when I use this command in my tclforces script,
>> either inside calcforces or just inside tclForces, I get this error message:
>>
>> FATAL ERROR: unknown parameter
>>
>> while executing
>>
>> "getsetp"
>>
>> invoked from within
>>
>> "set t [getsetp]"
>>
>>
>> I'm using NAMD 2.11.
>>
>>
>> Best,
>>
>>
>> Ben
>>
>> On Thu, Aug 31, 2017 at 8:46 AM, Jérôme Hénin <jerome.henin_at_ibpc.fr>
>> wrote:
>>
>>> What you need to do is define the script from the beginning, but do
>>> nothing on the first timestep - at least not call loadtotalforces. You can
>>> use [getstep] to keep track of the timestep.
>>>
>>> Jerome
>>>
>>>
>>> On 31 August 2017 at 15:38, Ben Adams <benny.adams1993_at_gmail.com> wrote:
>>>
>>>> Thank you. So if I somehow avoid loadTotalForces at the very first
>>>> timestep my problem will be solved? Do you have any suggestions?
>>>> I tried to run for 20 steps and then added my tclForces script but it
>>>> failed:
>>>>
>>>> FATAL ERROR: Setting parameter tclForces from script failed!
>>>>
>>>>
>>>> On Thu, Aug 31, 2017 at 5:37 AM, Jérôme Hénin <jerome.henin_at_ibpc.fr>
>>>> wrote:
>>>>
>>>>> Hi Ben,
>>>>>
>>>>> Two things here. The first one is, you probably want to use
>>>>> loadTotalForces rather than loadForces (loadforces will only collect
>>>>> external forces applied through TclForces). Second, with loadTotalForces,
>>>>> data is collected at the end of one timestep and available on the next. So
>>>>> no data will be available on the very first timestep, and then the forces
>>>>> you'll get will be stale by one timestep.
>>>>>
>>>>> Best,
>>>>> Jerome
>>>>>
>>>>> On 31 August 2017 at 02:18, Ben Adams <benny.adams1993_at_gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Dear NAMD users,
>>>>>>
>>>>>> I've been looking everywhere to find a way to extract forces on a
>>>>>> single atom. It seems the best way is to use "tclforces". Here is that part
>>>>>> of my NAMD configuration file:
>>>>>>
>>>>>> tclForces on
>>>>>> tclForcesScript {
>>>>>> set nter [addgroup {3}]
>>>>>> set cter [addgroup {4}]
>>>>>> proc calcforces {} {
>>>>>> global nter cter
>>>>>> loadcoords coor
>>>>>> loadforces forces
>>>>>> print nter=$forces($nter)
>>>>>> print nter=$coor($nter)
>>>>>>
>>>>>> }
>>>>>> }
>>>>>>
>>>>>>
>>>>>> Unfortunately it doesn't recognize "loadforces" and I get the
>>>>>> following error:
>>>>>>
>>>>>> FATAL ERROR: can't read "forces(g1)": no such variable
>>>>>> while executing
>>>>>> "print nter=$forces($nter)"
>>>>>> (procedure "calcforces" line 5)
>>>>>>
>>>>>> I also tried "$forces(4)" and got the same error.
>>>>>> I search through mailing list. Such a problem is being reported
>>>>>> several times but there are no answers to them.
>>>>>> Can anybody help me with that?
>>>>>> Is there any other way beside "dcdforces" (which outputs all the
>>>>>> atoms together) to get forces for a single atom?
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Ben
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>>
>

This archive was generated by hypermail 2.1.6 : Sun Dec 31 2017 - 23:21:36 CST