17 May 2012

153. dft gridsize: ecce defaults to medium for nwchem and fine for g09

I set out to reproduce Malagoli and Brédas in Chemical Physics Letter, 2000, 327, 13-17 (Link). Essentially it's a paper on calculating reorganisational energies in a few simple organic species, such as biphenyl.

I'm a computational noob -- I'm stronger in the computer department than the computational one. The following will most likely only be useful to other newcomers like myself. Anyway...

The authors used ub3lyp/g-31g** and g03. While it may have taken a substantial amount of time in 2000, today the entire paper can be reproduced in a few hours on a simple beowulf cluster. So I set out to do just that -- partly to make sure that I understood the approach, partly to make sure that g09 and g03 gave the same results, and also importantly to make sure i can use nwchem for these calculations if I so desire. I'm getting to the point where nwchem is almost as fast as gaussian for some calculations (cosmo excepted...) and I much prefer the nwchem syntax and python support.

For biphenyl, g09 gave (in Hartree)
Neutral, ground state:     -463.3219416650 (geometry opt)
Cation, neutral geometry:-463.0352702000 (single point calc)
Cation, cation geometry:  -463.0422747850 (geometry opt)
Neutral, cation geometry: -463.3157130000 (single point calc)

That works out to a total energy of ca 0.36 eV -- same as in the paper

while nwchem gave
Neutral, ground state:      -463.3219454524 (geometry opt)
Cation, neutral geometry: -459.0525026266 (single point calc)
Cation, cation geometry:  -463.0422952505 (geometry opt)
Neutral, cation geometry: -459.0556262940 (single point calc)

The order of the stabilities don't even match!

Recalculating the energies by adding

dft
    grid fine
    .....
end

gave the 'correct' results:
Cation, neutral geometry: -463.0353366421
Neutral, cation geometry: -463.3157251871

which gives about 0.36 eV

Here's what puzzles me a bit: you definitely need to add 'fine' in nwchem, and that's what g09 defaults to. But the energies reported for the optimised structures (cation, cation geometry and neutral, ground state) must have been calculated using a fine grid too or one would presume that they'd be off too. Repeating this with the other structures in the paper gives the same result.

Anyway, if you get weird and wacky energies from you single point calcs maybe you should make sure you've specified the dft grid size consistently.


16 May 2012

152. Hiking maps using google maps

This is only vaguely computer related.

http://www.mappedometer.com/ is a neat way to create your own hiking routes. It's not a replacement for a proper topological map if you're going to do long-distance hiking, but it's certainly enough to plot out a day hike.











151. Building nwchem 6.1 on debian wheezy/testing with openblas

Build without external libs in a later post.

Openblas:

sudo apt-get install build-essential gfortran gpp
sudo mkdir /opt/openblas
sudo chown ${USER} /opt/openblas
cd ~/tmp
wget http://nodeload.github.com/xianyi/OpenBLAS/tarball/v0.1.1
tar xvf v0.1.1
cd xianyi-OpenBLAS-e6e87a2/
wget http://www.netlib.org/lapack/lapack-3.4.1.tgz
make all BINARY=64 CC=/usr/bin/gcc FC=/usr/bin/gfortran USE_THREAD=0 INTERFACE64=1 1> make.log 2>make.err

make PREFIX=/opt/openblas install
cp lib*.*  /opt/openblas/lib

add
export LD_LIBRARY_PATH:$LD_LIBRARY_PATH:/opt/openblas/lib
to your ~/.bashrc

[for later use with nwchem and ecce, add /opt/openblas/lib to /etc/ld.so.conf and do sudo ldconfig]



Nwchem:
sudo apt-get install libopenmpi-dev python-dev

sudo mkdir /opt/nwchem
sudo chown ${USER} /opt/nwchem
cd /opt/nwchem
wget http://www.nwchem-sw.org/images/Nwchem-6.1-2012-Feb-10.tar.gz
tar xvf Nwchem-6.1-2012-Feb-10.tar.gz
cd nwchem-6.1/

Edit line 1914 in src/config/makefile.h and add -lz -lssl for python support
Then continue

export LARGE_FILES=TRUE
export TCGRSH=/usr/bin/ssh
export NWCHEM_TOP=`pwd`
export NWCHEM_TARGET=LINUX64
export NWCHEM_MODULES="all python"
export PYTHONVERSION=2.7
export PYTHONHOME=/usr
export BLASOPT="-L/opt/openblas/lib -lopenblas"
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export MPI_LOC=/usr/lib/openmpi/lib
export MPI_INCLUDE=/usr/lib/openmpi/include
export LIBRARY_PATH=$LIBRARY_PATH:/usr/lib/openmpi/lib
export LIBMPI="-lmpi -lopen-rte -lopen-pal -ldl -lmpi_f77 -lpthread"
cd $NWCHEM_TOP/src
make clean
make nwchem_config
make FC=gfortran
export FC=gfortran
cd ../contrib
./getmem.nwchem

Building takes ages

Edit your ~/.bashrc and add
export NWCHEM_EXECUTABLE=/opt/nwchem/nwchem-6.1/bin/LINUX64/nwchem
export NWCHEM_BASIS_LIBRARY=/opt/nwchem/nwchem-6.1/src/basis/libraries/
export PATH=$PATH:/opt/nwchem/nwchem-6.1/bin/LINUX64

To make ecce play nice you also need to edit /etc/ld.so.conf and add
/opt/openblas/lib
then do 
sudo ldconfig

Links to this post:
http://chemport.ru/forum/viewtopic.php?f=71&t=98589