Gaussian est un outil largement utilisé par la communauté scientifique des chimistes, ce malgré la large contreverse concernant une licence effroyablement restrictive d'utilisation. Pour en juger, il suffit de se renseigner sur la communauté Banned By Gaussian, toujours croissante.
Malgré cela, comme certains ne peuvent manifestement pas se passer de cet outil, pourquoi ne pas tenter de l'offrir dans les conditions les plus “ouvertes” possibles, c'est à dire sur le socle logiciel le plus OpenSource possible : une distribution GNU/Linux avec des outils de compilation libres.
Gaussian précise des conditions de compilation très restrictives, exigeant l'usage du compilateur PGI (sur plate-forme AMD64), lequel consitue un coût caché dont nos institutions pourraient se passer si d'aventure Gaussian “compilait” avec GFortran et surtout “fonctionnait” ensuite.
Tout individu s'étant risqué dans la compilation de Gaussian sait ce que signifie le compiler et le faire fonctionner : un rude chemin de croix où chaque arrêt équivaut à un virage dissimulant le virage suivant, de longues et multiples compilations pour en arriver à des exécutions, qui, parfois, fonctionnent : il arrive que “Gaussian” tombe en marche pour le chanceux débutant…
Les notes qui vont suivre permettent pas à pas, moyennant des opérations assez lourdes (patcher un code propriétaire directement n'est pas une étape anodine), de récupérer un Gaussian fonctionnel…
# Installation du compilateur, des libraries OpenMP, Atlas/BLAS, tcsh sudo apt-get install gfortran libgomp1 libatlas-base-dev tcsh patch # Cette commande est INDISPENSABLE, sinon le CSH par defaut fait planter la compilation sudo update-alternatives --set csh /bin/tcsh
/media/cdrom
/opt
tcsh setenv basedir "/media/cdrom/" setenv g09root "/opt" cd $g09root gunzip -c $basedir/tar/*.tgz | tar xvf -
cd g09 # pour une distribution Debian Jessie sous 64 bits : wget http://www.cbp.ens-lyon.fr/emmanuel.quemener/software/Gaussian/g09.jessie64 # La ligne suivante s'applique a la version pour la Debian Jessie 64 bits patch -p 1 -i ./g09.jessie64
patching file bsd/i386.make patching file bsd/mdutil.c patching file bsd/mdutil.F patching file bsd/set-mflags
cd $g09root/g09 ./bsd/install source $g09root/g09/bsd/g09.login # Compilation bsd/bldg09 >& $g09root/g09/build-`date "+%Y%m%d%H%M"`
users
ont accès) : chown -R root.users .
Avant toute utilisation de Gaussian dans la salle de formation, les commandes suivantes sont à appliquer :
mkdir -p /local/$USER/Gaussian/tmp 2>/dev/null export g09root=/opt export GAUSS_SCRDIR=/local/$USER/Gaussian/tmp . $g09root/g09/bsd/g09.profile
Il est recommandé, en cas d'utilisation récurrente de Gaussian, de copier les 4 lignes précédentes dans son $HOME/.bashrc
/
Par défaut, le source de Gaussian comprend les résultats de tests sur architecture AMD64 dans le dossier $g09root/g09/tests/amd64
.
Pour exécuter tous les tests, voici la commande
# Creation du dossier pour tous les jobs mkdir -p /local/$USER/Gaussian/tmp # A rajouter à la fin de son .bashrc export g09root=/opt export GAUSS_SCRDIR=/local/$USER/Gaussian/tmp . $g09root/g09/bsd/g09.profile
Lancement de tous les tests :
cd /local/$USER/Gaussian cp $g09root/g09/tests/com/test*[0-9][0-9].com /local/$USER/Gaussian for i in $(seq 0 1 1044) do if [ -f test$(printf "%04d" $i).com ]; then { /usr/bin/time g09 test$(printf "%04d" $i).com ; } 2> test$(printf "%04d" $i).time fi done
Pour établir les patchs à appliquer par rapport à l'archive de sources originelle, la commande suivante a été utilisée :
diff -crB g09 g09.work > g09.jessie64
— Emmanuel Quemener 2015/03/23 09:50