From: yjcoshc (yjcoshc_at_gmail.com)
Date: Wed Mar 14 2018 - 04:13:19 CDT
I have followed the steps decribed in
the object file isn't compiled when compiling NAMD and then it gives me
"undefined reference" error during linking. Should I modify the
Make.depend or some other Makefile manually?
在 2018年03月13日 22:07, Giacomo Fiorin 写道:
> Hi Haochuan,
> 1. The "atom" class only has a single field "grad" for the gradients
> of a scalar variable. There is no general mechanism for storing
> gradients of vector variables (I'm working on that very slowly and
> sporadically). I would recommend allocating inside your new class
> several STL vectors of 3D vectors (cvm::rvector), and storing their
> pointers in a container of your choosing. This is what is done for
> the quaternion variable, in the cvm::rotation class. This will be
> easier to port to the new general mechanism that will some time see
> the light of day.
> The implicit gradients flag tells the rest of the code about this
> limitation, which affects for example computing the gradients of the
> rotational fit. If your new variable is rotationally invariant (like
> e.g. the angle between 3 COMs), you won't have to worry about that.
> 2. Yes, the applied force should have the same type as the variable.
> In apply_force(), you should have a loop that projects a vector force
> onto the atomic gradients that you are maintaining (step 1).
> On Tue, Mar 13, 2018 at 4:12 AM, yjcoshc <yjcoshc_at_gmail.com
> <mailto:yjcoshc_at_gmail.com>> wrote:
> Hi Giacomo,
> Thanks for your reply! My collective variable is a 3D vector like
> (k0,k1,k2) and I know how to calculate (dk0/dri,dk1/dri,dk2/dri)
> where ri is the Cartesian coordinate of i-th COM. Now I encounter
> some other problems:
> 1. What is implicit gradients? It looks all vector or quaternion
> based colvars use enable(f_cvc_implicit_gradient) and have empty
> calc_gradients(). How do I choose which features in features_cvc
> enum to be enabled? Should I use some additional member variable
> to store the gradients other than atom_group->grad?
> 2. What is the type of the force inapply_force(colvarvalue const
> &force) ? Is the force a 3D vector like (f0,f1,f2) or just any
> type defined in theType enum?
> Haochuan chen
> 在 2018年03月12日 20:13, Giacomo Fiorin 写道:
>> 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.
>> On Mon, Mar 12, 2018 at 6:01 AM, yjcoshc <yjcoshc_at_gmail.com
>> <mailto: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.
>>> 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:
>>> for documentation on the other classes.
>>> On Sat, Mar 10, 2018 at 4:27 AM, yjcoshc <yjcoshc_at_gmail.com
>>> <mailto:yjcoshc_at_gmail.com>> wrote:
>>> 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?
>>> Haochuan Chen
>>> Giacomo Fiorin
>>> Associate Professor of Research, Temple University,
>>> Philadelphia, PA
>>> Contractor, National Institutes of Health, Bethesda, MD
>> Giacomo Fiorin
>> Associate Professor of Research, Temple University, Philadelphia, PA
>> Contractor, National Institutes of Health, Bethesda, MD
>> https://github.com/giacomofiorin <https://github.com/giacomofiorin>
> Giacomo Fiorin
> Associate Professor of Research, Temple University, Philadelphia, PA
> Contractor, National Institutes of Health, Bethesda, MD
> https://github.com/giacomofiorin <https://github.com/giacomofiorin>
This archive was generated by hypermail 2.1.6 : Tue Dec 31 2019 - 23:19:45 CST