CPMD

From Alliance Doc
Jump to navigation Jump to search
This site replaces the former Compute Canada documentation site, and is now being managed by the Digital Research Alliance of Canada.

Ce site remplace l'ancien site de documentation de Calcul Canada et est maintenant géré par l'Alliance de recherche numérique du Canada.

This page is a translated version of the page CPMD and the translation is 100% complete.
Other languages:

CPMD est un programme de simulation ab initio en dynamique moléculaire basé sur la théorie de la fonctionnelle de la densité (DFT) pour les ondes planes/pseudo-potentiels.

Limites de la licence

Pour utiliser CPMD, vous devez d'abord vous enregistrer et accepter les clauses de la licence. Écrivez ensuite au soutien technique; nous confirmerons votre enregistrement auprès des administrateurs de CPMD avant de vous accorder l'accès à l'application.

Module

Pour charger le module, lancez

module load intel/2020.1.217 openmpi/4.0.3 cpmd/4.3

Installer CPMD localement

La réponse des administrateurs de CPMD peut prendre quelques semaines et même quelques mois. Comme utilisateur enregistré, vous avez accès aux fichiers source de CPMD; vous pouvez donc construire l'application dans votre répertoire /home avec notre environnement EasyBuild en utilisant la même recette que nous utilisons pour une installation centrale.

Pour CPMD 4.3 dans votre compte sur une de nos grappes, suivez les directives suivantes :

Créez un répertoire local.

$ mkdir -p ~/.local/easybuild/sources/c/CPMD

Placez les tarballs et les rustines (patches) dans ce répertoire.

$ ls -al ~/.local/easybuild/sources/c/CPMD
cpmd2cube.tar.gz
cpmd2xyz-scripts.tar.gz
cpmd-v4.3.tar.gz
fourier.tar.gz
patch.to.4612
patch.to.4615
patch.to.4616
patch.to.4621
patch.to.4624
patch.to.4627

Lancez ensuite la commande EasyBuild.

$ eb CPMD-4.3-iomkl-2020a.eb --rebuild

L'option --rebuild fait en sorte que EasyBuild utilise l'installation située dans votre répertoire /home plutôt que celle de l'endroit central.

Une fois l'application installée, déconnectez-vous de la grappe et reconnectez-vous à nouveau

La commande module load cpmd trouvera l'application dans votre répertoire /home.

$ module load cpmd
$ which cpmd.x
~/.local/easybuild/software/2020/avx2/MPI/intel2020/openmpi4/cpmd/4.3/bin/cpmd.x

Vous pouvez maintenant l'utiliser dans un script de soumission de tâche.

Exemples de scripts

Pour faire exécuter une tâche, vous devez configurer un fichier d'entrée et obtenir l'accès aux pseudo-potentiels à télécharger du site de CPMD (à condition d'être enregistré).

Si le fichier d'entrée et les pseudo-potentiels sont dans le même répertoire, la commande suivante fait exécuter le programme en parallèle :

srun cpmd.x <input files> > <output file> (comme dans le script 1)

Si les pseudo-potentiels sont dans un répertoire différent, la commande est

srun cpmd.x <input files> <path to pseudo potentials location> > <output file> (comme dans le script 2)

File : 1-h2-wave.inp

&INFO
isolated hydrogen molecule.
single point calculation.
&END

&CPMD
 OPTIMIZE WAVEFUNCTION
 CONVERGENCE ORBITALS
  1.0d-7
 CENTER MOLECULE ON
 PRINT FORCES ON
&END
  
&SYSTEM
 SYMMETRY
  1
 ANGSTROM
 CELL
  8.00 1.0 1.0  0.0  0.0  0.0
 CUTOFF
  70.0
&END 

&DFT
 FUNCTIONAL LDA
&END  

&ATOMS
*H_MT_LDA.psp
 LMAX=S
  2
 4.371   4.000   4.000
 3.629   4.000   4.000
&END


File : run-cpmd.sh

#!/bin/bash

#SBATCH --account=def-someacct
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=4
#SBATCH --mem-per-cpu=2500M
#SBATCH --time=0-1:00

# Load the modules:

module load intel/2020.1.217 openmpi/4.0.3 cpmd/4.3

echo "Starting run at: `date`"

CPMD_INPUT="1-h2-wave.inp"
CPMD_OUTPUT="1-h2-wave_output.txt"

srun cpmd.x ${CPMD_INPUT} > ${CPMD_OUTPUT}

echo "Program finished with exit code $? at: `date`"


File : run-cpmd.sh

#!/bin/bash

#SBATCH --account=def-someacct
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=4
#SBATCH --mem-per-cpu=2500M
#SBATCH --time=0-1:00

# Load the modules:

module load intel/2020.1.217 openmpi/4.0.3 cpmd/4.3

echo "Starting run at: `date`"

CPMD_INPUT="1-h2-wave.inp"
CPMD_OUTPUT="1-h2-wave_output.txt"
PP_PATH=<path to the location of pseudo-potentials>

srun cpmd.x ${CPMD_INPUT} ${PP_PATH} > ${CPMD_OUTPUT}

echo "Program finished with exit code $? at: `date`"


Références