CPMD
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
Par le passé, vous deviez d'abord vous enregistrer et attendre la confirmation de l'équipe de développement, mais maintenant l'enregistrement n'est plus nécessaire. Cependant, les modules qui sont installés sur nos grappes sont protégés par un groupe POSIX.
Pour pouvoir utiliser CPMD sur nos grappes, écrivez au, soutien technique pour que nous vous ajoutions au groupe POSIX.
Module
Pour charger le module, lancez
module load StdEnv/2020
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 sources 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 d'abord 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 StdEnv/2020
$ module load intel/2020.1.217 openmpi/4.0.3 cpmd/4.3
$ 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 script
Pour faire exécuter une tâche, vous devez configurer un fichier d'entrée et l'accès aux pseudo-potentiels.
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)
&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
#!/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 StdEnv/2020
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`"
#!/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 StdEnv/2020
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`"