Ada : Molcas

Présentation

Molcas est un logiciel de chimie quantique de type ab initio développé à l'université de Lund (Suède). Molcas a été conçu pour permettre un traitement très précis des problèmes de structure électronique, aussi bien pour l'état fondamental que pour les états excités, grâce à une approche de type multiconfigurationnelle. Molcas comprend des codes de type Complete Active Space CASSCF et RASSCF, des codes de type Multireference Configuration Interaction MRCI, ainsi que des codes fondés sur la théorie des perturbations au second ordre CASPT2. Molcas comprend également des codes pour l'étude des propriétés moléculaires, la modélisation des effets de solvant, les moments dipolaires de transition en spectroscopie, les transferts d'électrons, etc.

Disponibilité

Les numéros des versions disponibles sont :

  • 7.8 patch 079 (défaut)
  • 8.0

La version parallèle MPI est installée. Le mode interactif n'est désormais pas recommandé à cause de la parallélisation de la chaine Molcas.

Pour connaitre les différentes versions installées, tapez depuis votre fenêtre sur Ada :

module avail molcas

Script de lancement

Voici un exemple de script de lancement pour un calcul exécuté dans le WORKDIR :

job.ll
# @ job_name         = Molcas
# @ wall_clock_limit = 1:00:00
# @ job_type         = parallel
# @ total_tasks      = 16
# @ output           = $(job_name).$(jobid)
# @ error            = $(job_name).$(jobid)
# @ queue
 
### Initialisation de Module ###
module load molcas
 
### Echo des commandes ###
set -x
 
### Définition des variables ###
export Project=water
 
### Lancement du calcul ###
molcas $Project.seward.input
molcas $Project.scf.input
molcas $Project.rasscf.input
molcas $Project.caspt2.input

Voici un exemple de script de lancement pour un calcul exécuté dans le TMPDIR :

job.ll
# @ job_name         = Molcas
# @ wall_clock_limit = 1:00:00
# @ job_type         = parallel
# @ total_tasks      = 16
# @ output           = $(job_name).$(jobid)
# @ error            = $(job_name).$(jobid)
# @ queue
 
### Initialisation de Module ###
module load molcas
 
### Echo des commandes ###
set -x
 
### Définition des variables ###
export Project=water
 
### Copie vers le TMPDIR ###
cp ./* $TMPDIR
 
### Lancement du calcul ###
cd $TMPDIR
molcas $Project.seward.input
molcas $Project.scf.input
molcas $Project.rasscf.input
molcas $Project.caspt2.input
 
### Copie vers le dossier de soumission ###
cd -
cp -r $TMPDIR/* .

Dans ces exemples, le calcul est scindé en 4 étapes pour des raisons historiques, mais vous pouvez les regrouper en une seule, en créant l'unique fichier d'input adéquat (qui appelle le module GATEWAY en premier). Consultez le manuel Molcas pour plus d'informations.

Note importante : Contrairement à tous les autres logiciels parallèles (de chimie ou non), il ne faut PAS utiliser la commande poe pour lancer molcas. En effet, cette commande est déjà inclue dans le programme.

Pour en savoir plus sur le système de soumission batch et plus généralement sur les modalités d'utilisation des machines de calcul de l'IDRIS, consultez la page ''Ada, cluster IBM''.

Paramètres propres au logiciel

Variables d'environnement générales

Deux variables d'environnement générales sont utilisées par Molcas :

  1. La variable $MOLCASMEM Molcas sait gérer l'allocation dynamique de mémoire : au fur et à mesure des besoins Molcas s'alloue des blocs de mémoire mais il le fait jusqu'à atteindre une certaine limite définie par cette variable :
    • par défaut, cette valeur est positionnée à 2048 mégaoctets par processus MPI.
    • vous pouvez définir plus de mémoire par processus en indiquant la valeur souhaitée par processus en mégaoctets.
      Note : les limites mémoire en batch et en interactif sont indiquées en tapant news class. Par exemple, supposons qu'un calcul ait besoin de 3072 mégaoctets de mémoire. Il suffit alors de positionner la variable en plaçant dans votre script :

      export MOLCASMEM=3072
  2. La variable $MOLCASDISK Certains des fichiers écrits par Molcas peuvent atteindre une taille respectable. Si vous souhaitez découper les gros fichiers en morceaux (file splitting), vous pouvez définir la taille limite (exprimée en mégaoctets) par cette variable. Par défaut, la valeur vaut 0, c'est-à-dire que Molcas considèrera que la taille limite d'un fichier est de 200 gigaoctets et découpera les fichiers plus gros en morceaux. Si néanmoins vous souhaitez un découpage plus petit, on pourra indiquer la valeur de découpe en mégaoctets (par exemple 20 gigaoctets) :

    export MOLCASDISK=20000

Variables d'environnement propres à un calcul

$Project : Cette variable doit être positionnée impérativement. Elle définit le nom du projet qui est une chaîne de caractères qui caractérise les noms de fichiers du calcul en cours et dont la valeur est laissée à votre libre choix. Les exemples de script de soumission incluent son positionnement.

Les variables d'arborescence ($WorkDir, $CurrDir, etc.) ne sont recommandées dans le cadre des scripts de lancement explicités au dessus, et peuvent conduire à des incohérences si elles ne sont pas maitrisées ($WORKDIR au lieu de $WorkDir par exemple).

Documentation

La documentation est disponible sur le site officiel de Molcas, avec notamment le manuel complet de Molcas 7.8 (User's Guide + Tutorial and Examples + Installation).