MULTICOLVAR with PLANES not working

259 views
Skip to first unread message

Sanku M

unread,
Jun 2, 2015, 6:44:04 PM6/2/15
to plumed...@googlegroups.com
Hi
  I was trying to compute the angle between two phenyl rings. I came across the PLANES multicolvar tool, which I thought might provide the normal vector to the plane of each ring. Due to lack of an example, I first tried to write a basic plumed.dat file myself , to compute the vector normal to a single ring, which is not working:
    PLANES MOL=1226,1231,1230 VMEAN LABEL=a1
      PRINT ARG=a1.vmean FILE=COLVAR

The error I am getting is : PLumed error: I cannot understand line: PLANES MOL=1226,1231,1230 VMEAN LABEL=a1"

Where  did I go wrong? An illustration will be appreciated.
Also, My plan was to print out the normal vector components of each individual rings. In that case, what exactly should be keywords for ARG? 

Thanks
Sanku

Gareth Tribello

unread,
Jun 2, 2015, 6:54:18 PM6/2/15
to plumed...@googlegroups.com
Hello

The PLANES action is not compiled by default in plumed.  To have these commands in your compiled version you need to go to the directory:

plumed2/src/

and type the following command

touch crystallization.on

If you have a bunch of planes you can calculate and output all the normal vectors as follows:

PLANES MOL1=1226,1231,1230  MOL2=1232,1222,1244 LABEL=a1
DUMPMULTICOLVAR DATA=a1 FILE=mymulti.xyz

This will give you an xyz file with the following columns:

#! FIELDS label x y z norm xn yn zn

Here x, y and z are the positions of the centre of mass of your rings.  The norm is the magnitude of your normal vector and the xn, yn and zn are the three components of the normal vector.  If there is an extra column it is because there is a weight.  The last three will definitely be the components of the vector.

If you look in 

plumed2/regtest/crystallization/rt-dumpmulti

You will find some examples of how this works with Q6, which is a complex vector so you are outputting a lot more of the three of components of the vector here.

I hope this helps

Gareth 


--
You received this message because you are subscribed to the Google Groups "PLUMED users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to plumed-users...@googlegroups.com.
To post to this group, send email to plumed...@googlegroups.com.
Visit this group at http://groups.google.com/group/plumed-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/plumed-users/983b158c-bf82-4af2-88a7-e6cb036b42f5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jagannath Mondal

unread,
Jun 3, 2015, 2:25:18 PM6/3/15
to plumed...@googlegroups.com
Hi Gareth
  I tried your instructions... That is I used the latest plumed version (plumed_2.1.2)... compiled and installed plumed2... then I accessed plumed2/src/

and typed the following command

touch crystallization.on

It created a file called crystallization.on in src directory..
However, when I use the  following command as you wrote:
 PLANES MOL1=1226,1231,1230  MOL2=1232,1222,1244 LABEL=a1
DUMPMULTICOLVAR DATA=a1 FILE=mymulti.xyz

I still get the following error message " PLUMED: I cannot understand line: PLANES MOL1=1226,1231,1230 MOL2=1232,1222,1244 LABEL=a1"

I also tried by first touching crystallization.on and then recompiling the plumed2. I get the same error message.
 Can you check where I am doing wrong?
Jagannath

--
You received this message because you are subscribed to a topic in the Google Groups "PLUMED users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/plumed-users/g2VI3k-XHeE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to plumed-users...@googlegroups.com.

To post to this group, send email to plumed...@googlegroups.com.
Visit this group at http://groups.google.com/group/plumed-users.

For more options, visit https://groups.google.com/d/optout.



--
Dr. Jagannath Mondal
Postdoctoral Research associate
Berne Group
Chemistry Department
Columbia University
New York
NY-10027
USA

Gareth Tribello

unread,
Jun 3, 2015, 2:31:31 PM6/3/15
to plumed...@googlegroups.com
Hello again

Ah its the version.  The PLANES command is only in the master version of the code, you can download this from github:


You then need to do the same thing with with touching crystallization.on before you compile.

Gareth


Jagannath Mondal

unread,
Jun 3, 2015, 2:52:55 PM6/3/15
to plumed...@googlegroups.com
Hi Gareth
  Seems like that I am unable to install the plumed-master version from github. ( unlike plumed_2.1.2)
I tried the same command as I had used for plumed_2.1.2
  ./configure --disable-mpi --disable-matheval --prefix=/home/jmondal/UTILITIES/PLUMED2_NEW1
  make 

But, for github version, on compilation stage I am getting following error:
../cltools/DriverDouble.o: In function `PLMD::cltools::Driver<double>::main(_IO_FILE*, _IO_FILE*, PLMD::Communicator&)':
  DriverDouble.cpp:(.text._ZN4PLMD7cltools6DriverIdE4mainEP8_IO_FILES4_RNS_12CommunicatorE[_ZN4PLMD7cltools6DriverIdE4mainEP8_IO_FILES4_RNS_12CommunicatorE]+0x1b52): undefined reference to `xdrfile_open(char const*, char const*)'
DriverDouble.cpp:(.text._ZN4PLMD7cltools6DriverIdE4mainEP8_IO_FILES4_RNS_12CommunicatorE[_ZN4PLMD7cltools6DriverIdE4mainEP8_IO_FILES4_RNS_12CommunicatorE]+0x1c0e): undefined reference to `read_xtc_natoms(char*, int*)'
DriverDouble.cpp:(.text._ZN4PLMD7cltools6DriverIdE4mainEP8_IO_FILES4_RNS_12CommunicatorE[_ZN4PLMD7cltools6DriverIdE4mainEP8_IO_FILES4_RNS_12CommunicatorE]+0x1c5a): undefined reference to `read_trr_natoms(char*, int*)'
DriverDouble.cpp:(.text._ZN4PLMD7cltools6DriverIdE4mainEP8_IO_FILES4_RNS_12CommunicatorE[_ZN4PLMD7cltools6DriverIdE4mainEP8_IO_FILES4_RNS_12CommunicatorE]+0x327c): undefined reference to `read_xtc(XDRFILE*, int, int*, float*, float (*) [3], float (*) [3], float*)'
DriverDouble.cpp:(.text._ZN4PLMD7cltools6DriverIdE4mainEP8_IO_FILES4_RNS_12CommunicatorE[_ZN4PLMD7cltools6DriverIdE4mainEP8_IO_FILES4_RNS_12CommunicatorE]+0x32e2): undefined reference to `read_trr(XDRFILE*, int, int*, float*, float*, float (*) [3], float (*) [3], float (*) [3], float (*) [3])'
DriverDouble.cpp:(.text._ZN4PLMD7cltools6DriverIdE4mainEP8_IO_FILES4_RNS_12CommunicatorE[_ZN4PLMD7cltools6DriverIdE4mainEP8_IO_FILES4_RNS_12CommunicatorE]+0x52c6): undefined reference to `xdrfile_close(XDRFILE*)'
../cltools/DriverFloat.o: In function `PLMD::cltools::Driver<float>::main(_IO_FILE*, _IO_FILE*, PLMD::Communicator&)':
DriverFloat.cpp:(.text._ZN4PLMD7cltools6DriverIfE4mainEP8_IO_FILES4_RNS_12CommunicatorE[_ZN4PLMD7cltools6DriverIfE4mainEP8_IO_FILES4_RNS_12CommunicatorE]+0x1a26): undefined reference to `xdrfile_open(char const*, char const*)'
DriverFloat.cpp:(.text._ZN4PLMD7cltools6DriverIfE4mainEP8_IO_FILES4_RNS_12CommunicatorE[_ZN4PLMD7cltools6DriverIfE4mainEP8_IO_FILES4_RNS_12CommunicatorE]+0x1ae2): undefined reference to `read_xtc_natoms(char*, int*)'
DriverFloat.cpp:(.text._ZN4PLMD7cltools6DriverIfE4mainEP8_IO_FILES4_RNS_12CommunicatorE[_ZN4PLMD7cltools6DriverIfE4mainEP8_IO_FILES4_RNS_12CommunicatorE]+0x1b2e): undefined reference to `read_trr_natoms(char*, int*)'
DriverFloat.cpp:(.text._ZN4PLMD7cltools6DriverIfE4mainEP8_IO_FILES4_RNS_12CommunicatorE[_ZN4PLMD7cltools6DriverIfE4mainEP8_IO_FILES4_RNS_12CommunicatorE]+0x3164): undefined reference to `read_xtc(XDRFILE*, int, int*, float*, float (*) [3], float (*) [3], float*)'
DriverFloat.cpp:(.text._ZN4PLMD7cltools6DriverIfE4mainEP8_IO_FILES4_RNS_12CommunicatorE[_ZN4PLMD7cltools6DriverIfE4mainEP8_IO_FILES4_RNS_12CommunicatorE]+0x31ca): undefined reference to `read_trr(XDRFILE*, int, int*, float*, float*, float (*) [3], float (*) [3], float (*) [3], float (*) [3])'
DriverFloat.cpp:(.text._ZN4PLMD7cltools6DriverIfE4mainEP8_IO_FILES4_RNS_12CommunicatorE[_ZN4PLMD7cltools6DriverIfE4mainEP8_IO_FILES4_RNS_12CommunicatorE]+0x51e0): undefined reference to `xdrfile_close(XDRFILE*)'
../generic/DumpAtoms.o: In function `PLMD::generic::DumpAtoms::update()':
DumpAtoms.cpp:(.text+0x2c65): undefined reference to `write_xtc(XDRFILE*, int, int, float, float (*) [3], float (*) [3], float)'
DumpAtoms.cpp:(.text+0x2cae): undefined reference to `write_trr(XDRFILE*, int, int, float, float, float (*) [3], float (*) [3], float (*) [3], float (*) [3])'
../generic/DumpAtoms.o: In function `PLMD::generic::DumpAtoms::DumpAtoms(PLMD::ActionOptions const&)':


For more options, visit https://groups.google.com/d/optout.

Gareth Tribello

unread,
Jun 3, 2015, 2:57:58 PM6/3/15
to plumed...@googlegroups.com
Hello

Hmmm… not seen that error before.  I think you need to disable molfile.  Try configuring using this command:

./configure --disable-mpi --disable-matheval --prefix=/home/jmondal/UTILITIES/PLUMED2_NEW1 —disable-molfile-plugins

To configure and then recompiling.

Gareth

Giovanni Bussi

unread,
Jun 3, 2015, 2:58:59 PM6/3/15
to plumed...@googlegroups.com
Check if Makefile.conf contains the following string:
-D__PLUMED_HAS_XDRFILE=1

In case you don't have xdr library installed, it shouldn't.

Giovanni

Giovanni Bussi

unread,
Jun 3, 2015, 2:59:53 PM6/3/15
to plumed...@googlegroups.com
It's not related to molfile, but to xdrfile. You should use --disable-xdrfile. However, it is strange that configure does not sort it correctly.

Giovanni

Gareth Tribello

unread,
Jun 3, 2015, 3:00:03 PM6/3/15
to plumed...@googlegroups.com
To be clear follow Giovanni’s advice rather than mine here.

Gareth


Jagannath Mondal

unread,
Jun 3, 2015, 3:38:01 PM6/3/15
to plumed...@googlegroups.com
Hi Gareth and Giovanni
  Thanks to both of you, I could install the master version. I disabled both molfile and xdr plugins ( did not test whether enabling molfile-plugin would have worked as well). Then I could install the plumed-master:
This is the command line I used.
./configure --disable-mpi --disable-matheval --prefix=/home/jmondal/UTILITIES/PLUMED2_NEW1 —disable-molfile-plugins --disable-xdrfile

Anyway, using the plumed-github version, I could follow Gareth's instruction of getting normal vector successfully and get the the x,y and z components of normal vectors.

  ( One question: If I wanted xdrfiles plugin, what exactly I should have installed for getting xdrfiles and how could I direct the path to plumed during configuration. I guess xdrfiles are needed for xtc file reading).
Thanks
Sanku



For more options, visit https://groups.google.com/d/optout.

Giovanni Bussi

unread,
Jun 4, 2015, 4:16:05 AM6/4/15
to plumed...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages