User Tools

Site Tools


howto:install_with_plumed

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
howto:install_with_plumed [2015/02/12 14:51]
ibethune
howto:install_with_plumed [2019/01/13 11:24] (current)
oschuett
Line 1: Line 1:
 ====== How to Compile and Install CP2K with PLUMED ====== ====== How to Compile and Install CP2K with PLUMED ======
 +
 +CP2K supports the current (2.x) versions of PLUMED. ​ PLUMED 1.3 support is available in CP2K releases 2.4 up to 3.0. Please scroll down to the relevant set of instructions depending on which version you wish to use.
 +
 +To use plumed, insert the following in the FREE_ENERGY section of a cp2k input file:
 +<​code>​
 +&​METADYN
 +     ​USE_PLUMED .TRUE.
 +     ​PLUMED_INPUT_FILE ./​filename.inp
 +&END METADYN
 +</​code> ​    
 +
 +===== PLUMED 2.x =====
 +
 +CP2K may be used with PLUMED version 2.x without requiring source code patches - the interface to PLUMED is already included in CP2K in version 2.7 (rev 15615 or later). ​ To build a version of CP2K with PLUMED 2 follow the instructions below:
 +
 +  * Download the PLUMED library from [[http://​www.plumed.org/​]],​ build and install following the instructions in the PLUMED documentation.
 +
 +  * Modify your CP2K arch file to include the following:
 +
 +<​code>​
 +include /​path/​to/​your/​plumed2.0/​installation/​lib/​plumed/​src/​lib/​Plumed.inc
 +EXTERNAL_OBJECTS=$(PLUMED_STATIC_DEPENDENCIES)
 +</​code>​
 +
 +  * ''​-D<​nowiki>​__</​nowiki>​PLUMED2''​ should be added to your DFLAGS and ''​-lz -ldl -lstdc++''​ to your LIBS variable
 +<​note>​
 +If using OpenMPI, you will also need to add ''​-lmpi_cxx -lrt''​ to LIBS
 +</​note>​
 +
 +  * It is also possible to build PLUMED as a shared library, in which case instead of using ''​EXTERNAL_OBJECTS''​ simply add ''​-lplumed''​ to the LIBS above.
 +
 +  * Finally, build the CP2K binaries as normal:
 +
 +<​code>​
 +make -j ARCH=Linux-x86-64-gfortran VERSION=popt
 +</​code>​
  
 ===== PLUMED 1.3 ===== ===== PLUMED 1.3 =====
  
-The current svn version of cp2k is already prepared for compilation with PLUMED and contains all the relevant interface code.+CP2K is already prepared for compilation with PLUMED and contains all the relevant interface code.
 A modified version of PLUMED as well as some test input files can be found at: [[http://​www.cp2k.org/​static/​downloads/​plumed/​]]. A modified version of PLUMED as well as some test input files can be found at: [[http://​www.cp2k.org/​static/​downloads/​plumed/​]].
 The files ''​metadyn.h''​ and ''​metadyn.c''​ are modified from the official plumed-1.3 release in order to provide additional routines called by cp2k, and a ''​plumedpatch_cp2k.sh''​ script is added for easy installation. The files ''​metadyn.h''​ and ''​metadyn.c''​ are modified from the official plumed-1.3 release in order to provide additional routines called by cp2k, and a ''​plumedpatch_cp2k.sh''​ script is added for easy installation.
Line 11: Line 47:
  
  
-get the latest ​version (newer than Sept. 2014) of cp2k from the svn repository+Get a version (between revisions 14363 / 30-Sep-2014 and 16584 / 04-Feb-2016) of cp2k from the git repository
 <​code>​ <​code>​
-svn checkout svn://svn.code.sf.net/​p/cp2k/code/​trunk ​cp2k-code+git clone https://github.com/cp2k/cp2k.git
 </​code>​ </​code>​
  
-unpack ​the modified plumed-1.3 archive somewhere (the metadyn.c/​.h are already updated in that archive)+Unpack ​the modified plumed-1.3 archive somewhere (the metadyn.c/​.h are already updated in that archive)
 <​code>​ <​code>​
 tar xjfv plumed-1.3.tar.bz2 tar xjfv plumed-1.3.tar.bz2
 </​code>​ </​code>​
   ​   ​
-set the environment variable $plumedir to the root directory of the plumed distribution+Set the environment variable ​''​$plumedir'' ​to the root directory of the plumed distribution
 <​code>​ <​code>​
 export plumedir=/​users/​xyz/​plumed-1.3 ​       export plumedir=/​users/​xyz/​plumed-1.3 ​      
 </​code>  ​ </​code>  ​
  
-change ​into the cp2k root directory and symlink the plumed/​patches/​plumedpatch_cp2k.sh there+Change ​into the cp2k root directory and symlink the plumed/​patches/​plumedpatch_cp2k.sh there
 <​code>​ <​code>​
 cd /​users/​xyz/​cp2k-code/​cp2k cd /​users/​xyz/​cp2k-code/​cp2k
Line 32: Line 72:
 </​code>​ </​code>​
  
-run the plumedpatch_cp2k script with parameter -patch, it should create a subdirectory src-plumed containing a number of cpp files and a plumed.inc+Run the plumedpatch_cp2k script with parameter -patch, it should create a subdirectory src-plumed containing a number of cpp files and a plumed.inc ​
 <​code>​ <​code>​
 ./​plumedpatch_cp2k.sh -patch ./​plumedpatch_cp2k.sh -patch
Line 51: Line 92:
 </​code>​ </​code>​
  
-''​-D__PLUMED_CP2K'' ​is specified among the ''​DFLAGS''​ and ''​-lstdc++''​ in the ''​LDFLAGS''​+''​-D__PLUMED_CP2K'' ​should be specified among the ''​DFLAGS''​ and ''​-lstdc++''​ in the ''​LIBS''​
    
 Compile cp2k [only cp2k, not the other binaries of the package] as usual on your system Compile cp2k [only cp2k, not the other binaries of the package] as usual on your system
Line 59: Line 100:
  
 test (e.g. using the provided testinput) and run test (e.g. using the provided testinput) and run
- 
-To use plumed, insert the following in the FREE_ENERGY section of a cp2k input file: 
-<​code>​ 
-&​METADYN 
-     ​USE_PLUMED .TRUE. 
-     ​PLUMED_INPUT_FILE ./​filename.inp 
-&END METADYN 
-</​code> ​     
  
 <note important>​ <note important>​
Line 72: Line 105:
 When running the regtest scripts, be sure to use the option -nobuild, to avoid deleting the plumed objects before running the tests. When running the regtest scripts, be sure to use the option -nobuild, to avoid deleting the plumed objects before running the tests.
 </​note>​ </​note>​
- 
howto/install_with_plumed.1423752678.txt.gz · Last modified: 2015/02/12 14:51 by ibethune