This is not really a "hard-core NMR topic" but it could be useful for people who try to complement dynamics data from NMR relaxation experiments with MD simulations.
I had really hard time trying to install the newer versions of Gromacs 3.3 and 3.3.1 on my laptop (Dell Inspiron 6400 Dual Core processor) . The laptop used to run Suse 10.1 that was recently replaced with Fedora Core 6 Test 3 (that finally supports Intel integrated mobile 945 video cards). With both OS, Gromacs 3.3.x could be installed, however, its sub-program "genion" failed (the program never ends while consuming 100% CPU). After spending many hours, I found the following recipe that
apparently works (for single precision installation). I do not want to claim that this is the most optimal solution (most likely it has many unnecessary steps) but...again..it seems to work.
1) FFTW3-3.0.1-4 RPM packages from Gromacs website should be installed.
A new version of FFTW 3.1.2 may work too but I did not check this option.
2) Make sure that FFTW-related directories in your PATH, LDFLAGS, variable
.bashrc and .shrc :
export CPPFLAGS=-I/usr/include
export LDFLAGS=-L/usr/lib
export PATH=/usr/include:/usr/lib:$PATH
.cshrc
setenv CPPFLAGS -I/usr/include
setenv LDFLAGS -L/usr/lib
setenv PATH /usr/include:/usr/lib:$PATH
I modified all three files: .bashrc, .shrc, and .cshrc just in case (which may not be necessary).
Interestingly, Gromacs 3.3 installed with RPMs (from Gromacs.org) on a Pentium 4 desktop computer with CentosOS 4.4 had had the same problems with genion until FFTW files were installed in /usr/include and /usr/lib . This fact made me think that some part of Gromacs code ignores user-defined environmental variables. However, with Fedora Core, it was not sufficient to have FFTW files in the places where Gromacs apparently expects them by default. I had to use GCC 3.4.6 to get a working Gromacs installation.
3) Install
old GCC package 3.4.6 from the source locally (default in CentosOS 4.4, for which Gromacs 3.3 RPMs were built by Gromacs developers).
a. If compilation of full gcc.3.4.6 package fails, install the core {gcc-core-3.4.6} first and then use its gcc program to compile the whole gcc package.
b. I had to replace several original GCC programs (gcc, g77, g++,c++,cpp) with their version from gcc.3.4.6 in /usr/bin You may be able to just use aliases to the gcc.3.4.6 programs in .cshrc, .bashrc, and .shrc and specify their location in the PATH variable.
I just wanted to be 100% sure that Gromacs will find these files in case there is a bug that prevents parts of Gromacs to see user-defined environmental variables. If you decide to replace files in /usr/bin, make sure that you back-up original files and
restore them at the end of Gromacs installation!
Some programs will not get installed or work properly if different versions of GCC were used to compile them and OS kernel! More testing will need to be done to find out if Gromacs 3.3.x grompp sub-program needs only cpp from gcc.3.4.6 and below or if it can work with cpp from newer versions of GCC.
4) Make sure that "which" program can detect fftw3.h and fftw3.f (e.g. which fftw3.h ). If it can not, make them executable (e.g. "chmod guo+x fftw3.h"). I was not sure if any parts of Gromacs use "which" program to find file location so I made fftw3.h and fftw3.f executable just in case. Again... this may not be necessary.
5) Install Gromacs from the source using
instructions on Gromacs.org
6) Make the following entries in .bashrc, .shrc and .cshrc. Many of them are most likely redundant but were added just in case of an "environmental bug" in Gromacs. Since I have already spent too much time on this, I do not have any desire at the moment to test which of the settings are not really necessary. You will need to replace
"/opt/markber/software/gromacs_3_3_1/" part with the path to your Gromacs installation.
.bashrc, .shrc:
source /opt/markber/software/gromacs_3_3_1/bin/GMXRC
source /opt/markber/software/gromacs_3_3_1/bin/GMXRC.bash
source /opt/markber/software/gromacs_3_3_1/bin/completion.bash
export GMXLIB=/opt/markber/software/gromacs_3_3_1/share/gromacs/top
export GMXBIN=/opt/markber/software/gromacs_3_3_1/bin
export GMXLDLIB=/opt/markber/software/gromacs_3_3_1/lib
export GMXMAN=/opt/markber/software/gromacs_3_3_1/man
export GMXDATA=/opt/markber/software/gromacs_3_3_1/share
export PATH=/opt/markber/software/gromacs_3_3_1/share/gromacs/top:$PATH
export PATH=/opt/markber/software/gromacs_3_3_1/bin:$PATH
export PATH=/opt/markber/software/gromacs_3_3_1/lib:$PATH
export PATH=/opt/markber/software/gromacs_3_3_1/man:$PATH
export PATH=/opt/markber/software/gromacs_3_3_1/share:$PATH
.cshrc
#setenv GMXLIB /opt/markber/software/gromacs_3_3_1/share/gromacs/top
source /opt/markber/software/gromacs_3_3_1/bin/GMXRC
source /opt/markber/software/gromacs_3_3_1/bin/GMXRC.csh
source /opt/markber/software/gromacs_3_3_1/bin/completion.csh
setenv GMXLIB /opt/markber/software/gromacs_3_3_1/share/gromacs/top
setenv GMXBIN /opt/markber/software/gromacs_3_3_1/bin
setenv GMXLDLIB /opt/markber/software/gromacs_3_3_1/lib
setenv GMXMAN /opt/markber/software/gromacs_3_3_1/man
setenv GMXDATA /opt/markber/software/gromacs_3_3_1/share
setenv PATH /opt/markber/software/gromacs_3_3_1/share/gromacs/top:$PATH
setenv PATH /opt/markber/software/gromacs_3_3_1/bin:$PATH
setenv PATH /opt/markber/software/gromacs_3_3_1/lib:$PATH
setenv PATH /opt/markber/software/gromacs_3_3_1/man:$PATH
setenv PATH /opt/markber/software/gromacs_3_3_1/share:$PATH
7) Make all files in Gromacs installation executable to make it possible for "which" program to find them. In my case, I used command:
chmod guo+x -R gromacs_3_3_1
I will do "real" MD runs later and let you know if I get results compatible with results of Gromacs 3.2.1. At the moment, it is not clear to me how well Gromacs compiled with gcc.3.4.6 will work on a computer with OS, whose kernel was compiled with a different version of GCC. I also plan to install Gromacs 3.3.1 on several other computers and hopefully will be able to eliminate many unnecessary steps in the recepie above.
Please post your experience with Gromacs installations on latest Linux OS in this thread.
Thanks,
Mark
P.S.
Gromacs 3.2.1 runs without any problems on my laptop. The bug described above was first introduced in Gromacs 3.3.
M.