diff --git a/lib/plumed/README b/lib/plumed/README new file mode 100644 index 0000000000..fb8ef29ff3 --- /dev/null +++ b/lib/plumed/README @@ -0,0 +1,56 @@ +This directory contains links to the PLUMED library which is required +to use the PLUMED package and its fix plumed command in a +LAMMPS input script. PLUMED should only be downloaded into this directory if +you wish to statically link the library. If you wish to link PLUMED as +a dynamic library (as we recommend) then you can compile and build PLUMED +separately to LAMMPS. To use PLUMED in conjuction with LAMMPS you then simply +need to ensure that the PLUMED library is in your path at runtime. + +More info about the PLUMED library can be found at http://www.plumed.org. + +You can type "make lib-plumed" from the src directory to see help on +how to download, build and statically link PLUMED via make commands, or you can +do the same thing by typing "python Install.py" from within this +directory. Alternatively you can download and build PLUMED manually by following the instructions +below. + +----------------- + +Instructions: + +1. Download PLUMED either as a tarball from + http://www.plumed.org/get-it + or clone it using git clone https://github.com/plumed/plumed2.git. + If you download the tarball + unpack it in unpack it in this /lib/plumed directory. + Similarly if you clone it clone it to the /lib/plumed + directory. + +2. Compile PLUMED from within its home directory. In the + simplest cases this be done by issuing the commands + % ./configure + % make + More detailed instructions can be found at + http://plumed.github.io/doc-master/user-doc/html/_installation.html + +3. There is no need to install PLUMED if you only wish + to use it from LAMMPS. You should thus only run + make install if you want to use PLUMED as a stand-alone + code or from some other code. To install it you can + run the following commands: + a) install under the default /usr/local + % sudo make install + b) install under a user-writeable location by first + changing the PREFIX variable when running the + configure command file, then + % make install + +----------------- + +When these steps are complete you can build LAMMPS +with the PLUMED package installed: + +% cd lammps/src +% make yes-user-plumed +% make mpi (or whatever target you wish) + diff --git a/src/USER-PLUMED/Install.sh b/src/USER-PLUMED/Install.sh index 69653ae60f..0b8e9e6c9a 100755 --- a/src/USER-PLUMED/Install.sh +++ b/src/USER-PLUMED/Install.sh @@ -14,9 +14,9 @@ if (test $1 = 1) then # This is for statically linking plumed2 if ( test -e ../../lib/plumed/plumed2*/src/lib/Plumed.inc.static ) then fname=`ls ../../lib/plumed/plumed2*/src/lib/Plumed.inc.static` - sed -i -e "4 i \ -include $fname -" ../Makefile.package.settings + sed -i -e '4 i \ +include '$fname' +' ../Makefile.package.settings dname=`ls ../../lib/plumed/plumed2*/src/wrapper/Plumed.h` ln -s USER-PLUMED/$dname ../Plumed.h # This is for linking plumed2 as a runtime library -- this is the default behavior diff --git a/src/USER-PLUMED/README b/src/USER-PLUMED/README index 02a0229e57..11ca0a7281 100644 --- a/src/USER-PLUMED/README +++ b/src/USER-PLUMED/README @@ -11,18 +11,33 @@ folder implement an interface between LAMMPS and PLUMED, that are written and maintained by Gareth Tribello (gareth.tribello@gmail.com). PLUMED must instead be downloaded and compiled separately to LAMMPS. This building -and compiling of PLUEMD can be done before or after the building of LAMMPS as LAMMPS -calls PLUMED as a dynamic library. If you wish to use PLUMED with LAMMPS, however, -you must run the command: +and compiling of PLUMED can be done before or after the building of LAMMPS as LAMMPS +can call PLUMED as a dynamic library. There is also the possibility to link PLUEMD +statically. In this case a copy of PLUMED must be downloaded into the lib/plumed +directory. This copy of PLUMED will then always be linked into the code at compile +time. + +However you decide to link PLUMED (statically or dynamically) you must run the command: make yes-user-plumed -before compiling LAMMPS. Furthermore, you must ensure that PLUMED is in your +before compiling LAMMPS in order to enable the module. In addition, if you have chosen to +link PLUMED dynamically you must ensure that PLUMED is in your PATH when running a LAMMPS calculation that takes advantage of PLUMED. If -PLUMED is not in the PATH an error will be returned whenever LAMMPS encounters -the fix plumed command in its input. To be clear, however, LAMMPS will run if -it is compiled with fix-plumed enabled on inputs that do not contain a fix -plumed command when PLUMED is not in the PATH. +PLUMED is linked as a runtime library and if PLUMED is not in the PATH an error will be returned whenever LAMMPS encounters +the fix plumed command in its input. To be clear, however, a LAMMPS executable that was dynamically linked with PLUMED will run +even if PLUMED is not in the path if as long as the input does not contain a fix +plumed command. + +If you wish to statically link PLUMED you must download PLUMED to the /lib/plumed directory before compiling LAMMPS. You can +download a tar ball into that directory or you can clone the plumed2 repository from github there. Once you have created a +directory containing a distribution of PLUMED within /lib/plumed you then must build PLUMED within that directory by issuing +the usual commands. It is worth noting that we have provided a script that will download and build PLUMED for you with +a minimal set of options. To run this script you need to issue the following command: + +make lib-plumed args="-b" + +in the src directory. More info about the PLUMED library can be found at: @@ -45,7 +60,7 @@ numerous example scripts for PLUMED as well as citations to articles that dcomen implemented within PLUMED. There are also example scripts for using this package in the folder -examples/USER/colvars, as well as on the GitHub page for PLUMED. +examples/USER/plumed, as well as on the GitHub page for PLUMED. Please contact Gareth Tribello (gareth.tribello@gmail.com) for questions regarding this package.