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 revisionPrevious revision
Next revision
Previous revision
howto:install_with_plumed [2015/02/12 13:12] ibethunehowto:install_with_plumed [2020/08/21 10:15] (current) – external edit 127.0.0.1
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.
  
-The current svn version of cp2k is already prepared for compilation with PLUMED and contains all the relevant interface code.+To use plumed, insert the following in the FREE_ENERGY section of 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 ===== 
 + 
 +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'' 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.
 These files are also provided separately and can simply be copied into an existing plumed distribution. These files are also provided separately and can simply be copied into an existing plumed distribution.
  
Line 10: 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 31: 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 50: 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 58: 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 71: 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.1423746733.txt.gz · Last modified: 2020/08/21 10:15 (external edit)