Re: colvars: How to implement a collective variable of vector type?

From: Giacomo Fiorin (giacomo.fiorin_at_gmail.com)
Date: Mon Mar 12 2018 - 07:13:52 CDT

Hi Haochuan, yes, that's because not finding the keyword "groupN" is
considered an error, and it normally would be.

You could either:
(1) Add a keyword to set the number of groups in the configuration (
numGroups?).
(2) Use the lower-level parsing function colvarparse::key_lookup() to test
whether the keyword "groupN" is used before attempting to parse it. You
probably don't need to call key_lookup() with more than two arguments, if
you only use it to test the availability of the keyword.

Regarding using scriptedFunction in Tcl, yes, a vector is represented by a
Tcl list.

Giacomo

On Mon, Mar 12, 2018 at 6:01 AM, yjcoshc <yjcoshc_at_gmail.com> wrote:

> Hi Giacomo,
>
> Is there any way to parse unlimited atom groups (group1,...,groupN)? I
> decide to write a loop checking groupN by cvc::parse_group and break the
> loop when cvc::parse_group return NULL, but cvc::parse_group seems raising
> an error when groupN is not defined.
>
> Haochuan Chen
>
> 在 2018年03月11日 20:05, Giacomo Fiorin 写道:
>
> Hi Haochuan, you need to derive a new class from the colvar::cvc, whose
> structure is described here.
> http://colvars.github.io/doxygen/html/classcolvar_1_1cvc.html#details
> The rest of the webpage shows you also the current inheritance structure
> (what classes are derived from what).
>
> Among the variables that have vector values, a good example to take a look
> at could be distance_pairs. Presumably you only need to wrap your C++ code
> in the correct functions, and add the calls that read coordinates or send
> forces.
>
> See also:
> http://colvars.github.io/doxygen/html/index.html
> for documentation on the other classes.
>
> Giacomo
>
> On Sat, Mar 10, 2018 at 4:27 AM, yjcoshc <yjcoshc_at_gmail.com> wrote:
>
>> Hello,
>>
>> I want to implement a vector collective variable in NAMD through the
>> colvars module. It can calculate the least square fitted plane among
>> multiple atomgroups and return the normal vector of the plane. The example
>> pathCV script in colvartools folder seems scalar type only. Any suggestion
>> of implementing a vector type one? I have finished a sample C++ code to
>> calculate this. How do I incorporate it in colvars?
>>
>> Thanks,
>>
>> Haochuan Chen
>>
>>
>
>
> --
> Giacomo Fiorin
> Associate Professor of Research, Temple University, Philadelphia, PA
> Contractor, National Institutes of Health, Bethesda, MD
> http://goo.gl/Q3TBQU
> https://github.com/giacomofiorin
>
>
>

-- 
Giacomo Fiorin
Associate Professor of Research, Temple University, Philadelphia, PA
Contractor, National Institutes of Health, Bethesda, MD
http://goo.gl/Q3TBQU
https://github.com/giacomofiorin

This archive was generated by hypermail 2.1.6 : Sun Sep 15 2019 - 23:19:30 CDT