Tutoriel VASP : 1-1. Calcul DFT Des Atomes D'oxygène Isolés
1. Introduction au tutoriel
Ce tutoriel utilise VASP comme exemple pour montrer comment effectuer des calculs sur le calcul haute performance à partir de zéro.
VASP signifie Vienna Ab-initio Simulation Package, un progiciel développé par le groupe Hafner de l'Université de Vienne pour les calculs de structure électronique et les simulations de mécanique quantique et de dynamique moléculaire. Il s’agit de l’un des logiciels commerciaux les plus populaires pour la simulation des matériaux et la recherche en science des matériaux computationnelle. Sa grande précision et ses fonctions puissantes en font un outil important pour les chercheurs pour prédire et concevoir les propriétés des matériaux. Il est largement utilisé en physique des solides, en science des matériaux, en chimie, en dynamique moléculaire et dans d’autres domaines. VASP utilise des pseudopotentiels et des ensembles de base d'ondes planes pour simuler la structure électronique et est particulièrement bien adapté aux systèmes avec des conditions limites périodiques telles que les cristaux, les surfaces et les nanostructures.
通过本教程的学习,您将能够:
* 在伪代码层面解释密度泛函理论 (DFT) 计算
* 创建输入文件以运行孤立原子的 DFT 计算
* 识别 stdout 和 OUTCAR 的基本结构
* 提取分子和原子的相关能量
* 从之前的 Kohn-Sham (KS) 轨道重新开始 DFT 计算
Objectifs du tutoriel
Ce tutoriel est Tutoriel officiel VASP, effectuez des calculs DFT avec VASP, apprenez à créer des fichiers d'entrée, comprenez la structure de base des fichiers de sortie et extrayez les données énergétiques pertinentes.
DFT est un cadre dans lequel les degrés de liberté électroniques sont traités. Au niveau du pseudo-code, les étapes suivantes sont impliquées :
- Étant donné la densité de charge électronique, l'hamiltonien peut être défini.
- Calculer les fonctions propres et les valeurs propres de l'hamiltonien.
- Mettre à jour la densité de charge électronique.
- Répétez les étapes 1 à 3 jusqu’à convergence. Pour plus d'informations sur l'implémentation dans VASP, voir Algorithme VASP pour le calcul des états fondamentaux électroniques.
2. Étapes de l'opération
1. Préparez les fichiers d'entrée et les scripts (ce tutoriel les a déjà préparés)
Lors de l'exécution de calculs d'optimisation VASP, vous devez préparer 4 fichiers clés : (Ce fichier de tutoriel est fourni à titre de référence uniquement. Si vous devez l'utiliser, veuillez demander l'autorisation sur le site officiel):POSCAR , INCAR , KPOINTS et POTCAR, tous les fichiers d'échantillons ont été placés dans /home/Oatom
Vers le bas:
POSCAR:Le fichier fournit les informations sur la structure atomique du modèle de calcul, y compris les paramètres de la cellule unitaire et les positions des coordonnées de chaque atome, et constitue le corps principal de VASP pour l'analyse structurelle et l'optimisation.
POSCAR
O atom in a box
1.0 ! universal scaling parameters
8.0 0.0 0.0 ! lattice vector a(1)
0.0 8.0 0.0 ! lattice vector a(2)
0.0 0.0 8.0 ! lattice vector a(3)
1 ! number of atoms
cart ! positions in cartesian coordinates
0 0 0
Nous utilisons le fichier POSCAR pour les atomes simples. Les paramètres du réseau sont choisis pour être suffisamment grands afin que les atomes des cellules unitaires voisines n'interagissent pas (de manière significative) les uns avec les autres.
INCAR: Le fichier définit le type de tâche et les paramètres de calcul des calculs VASP, et indique à VASP quelles propriétés physiques calculer et comment effectuer ces calculs.
SYSTEM = O atom in a box
ISMEAR = 0 ! Gaussian smearing
KPOINTS: Le fichier contient les informations de grille de points K nécessaires au calcul. Le point K est le point où l'état électronique est échantillonné dans la zone de Brillouin.
Gamma-point only
0
Monkhorst Pack
1 1 1
0 0 0
Pour un atome ou une molécule, un seul point k suffit. Lorsque davantage de points k sont utilisés, seules les interactions entre les atomes (qui devraient être nulles) peuvent être décrites plus précisément.
POTCAR:Le fichier contient les informations de pseudopotentiel utilisées pour chaque atome lors du calcul.
Soumettre le script:Pour exécuter des calculs VASP sur la ligne de commande, vous devez écrire un script de soumission (job.sh), qui contient les ressources et l'environnement requis pour appeler le calcul, exécuter le fichier exécutable VASP et d'autres contenus associés. Vous pouvez utiliser ce script pour fournir des tâches aux ressources informatiques spécifiées dans le script.
#
# To run VASP this script calls $vasp_std
# (or posibly $vasp_gam and/or $vasp_ncl).
# These variables can be defined by sourcing vaspcmd
. vaspcmd 2> /dev/null
#
# When vaspcmd is not available and $vasp_std,
# $vasp_gam, and/or $vasp_ncl are not set as environment
# variables, you can specify them here
[ -z "`echo $vasp_std`" ] && vasp_std="mpirun --allow-run-as-root -np 8 /data/app/vasp/6.3.0/gcc-mkl-openmpi/vasp_std"
[ -z "`echo $vasp_gam`" ] && vasp_gam="mpirun --allow-run-as-root -np 8 /data/app/vasp/6.3.0/gcc-mkl-openmpi//vasp_gam"
[ -z "`echo $vasp_ncl`" ] && vasp_ncl="mpirun --allow-run-as-root -np 8 /data/app/vasp/6.3.0/gcc-mkl-openmpi//vasp_ncl"
#
# The real work starts here
#
$vasp_std
Si la variable d'environnement vasp_std, vasp_gam, vasp_ncl n'est pas définie, définissez-la sur une commande qui exécute le programme VASP. Cela garantit qu'il existe toujours une valeur par défaut disponible pour une utilisation ultérieure en cas de besoin. Ici, -np 1 spécifie d'exécuter un processus.
2. Démarrer le calcul
L'exemple de sortie (stdout) pour l'atome O a été obtenu à l'aide de la version 6.3.0 de VASP. Les charges initiales correspondent aux charges d'atomes isolés qui se chevauchent (fichier POTCAR). Pour les 4 premières étapes, la charge est maintenue constante, puis la charge est mise à jour (colonne rms(c)).
* 具体步骤:
新建一个终端,输入下面命令
cd Oatom/
vasp_std
3. Sortie standard (stdout) : Le terminal affiche les résultats du calcul
running on 8 total cores
distrk: each k-point on 8 cores, 1 groups
distr: one band on 1 cores, 8 groups
using from now: INCAR
vasp.6.3.0 05Feb16 (build Aug 22 2016 16:46:23) complex
POSCAR found : 1 types and 1 ions
scaLAPACK will be used
LDA part: xc-table for Pade appr. of Perdew
POSCAR, INCAR and KPOINTS ok, starting setup
WARNING: small aliasing (wrap around) errors must be expected
FFT: planning ...
WAVECAR not read
entering main loop
N E dE d eps ncg rms rms(c)
DAV: 1 0.384469664751E+02 0.38447E+02 -0.96726E+02 16 0.293E+02
DAV: 2 0.345965628955E+01 -0.34987E+02 -0.34942E+02 32 0.450E+01
DAV: 3 -0.244485866931E+00 -0.37041E+01 -0.34307E+01 16 0.308E+01
DAV: 4 -0.312557021227E+00 -0.68071E-01 -0.66914E-01 16 0.508E+00
DAV: 5 -0.313520305300E+00 -0.96328E-03 -0.96311E-03 32 0.506E-01 0.286E-01
DAV: 6 -0.314540466589E+00 -0.10202E-02 -0.17853E-03 16 0.332E-01 0.142E-01
DAV: 7 -0.314637222361E+00 -0.96756E-04 -0.22710E-04 16 0.134E-01
1 F= -.31463722E+00 E0= -.16037490E+00 d E =-.308525E+00
writing wavefunctions
Une brève explication des symboles dans les fichiers OSZICAR et stdout :

4. Consultez les résultats de la course
Après l'exécution, les résultats seront enregistrés dans ./Oatom/OUTCAR
, entrez la commande cat OUTCAR
pour voir les résultats.
Voici les sections du fichier OUTCAR, séparées par un tiret :
- Lire INCAR, POTCAR, POSCAR
- Analyse de la distance et de la symétrie du plus proche voisin
- Informations détaillées sur l'emploi
- Informations sur le réseau, les points k et les positions
- Informations sur l'ensemble de base (nombre d'ondes planes)
- Informations pseudo-potentielles non locales
- Informations pour chaque étape électronique (une ligne dans OSZICAR)
- Informations sur le temps et l'énergie
- Informations sur les valeurs propres
POTLOK: cpu time 0.0878: real time 0.0877
SETDIJ: cpu time 0.0015: real time 0.0014
EDDAV: cpu time 0.0267: real time 0.0434
DOS: cpu time 0.0001: real time 0.0001
--------------------------------------------
LOOP: cpu time 0.1165: real time 0.1346
eigenvalue-minimisations : 16
total energy-change (2. order) : 0.3844697E+02 (-0.9672571E+02)
number of electron 6.0000000 magnetization
augmentation part 6.0000000 magnetization
Free energy of the ion-electron system (eV)
---------------------------------------------------
alpha Z PSCENC = 0.27135287
Ewald energy TEWEN = -91.92708002
-Hartree energ DENC = -281.84385691
-exchange EXHF = 0.00000000
-V(xc)+E(xc) XCENC = 26.11948841
PAW double counting = 245.99840262 -247.84808825
entropy T*S EENTRO = -0.08636665
eigenvalues EBANDS = -44.50008162
atomic energy EATOM = 432.26319604
Solvation Ediel_sol = 0.00000000
---------------------------------------------------
free energy TOTEN = 38.44696648 eV
energy without entropy = 38.53333313 energy(sigma->0) = 38.49014980
- Informations sur le tenseur de contrainte
E-fermi : -8.8431 XC(G=0): -0.8043 alpha+bet : -0.1463
k-point 1 : 0.0000 0.0000 0.0000
band No. band energies occupation
1 -23.8439 2.00000
2 -8.9040 1.33333
3 -8.9040 1.33333
4 -8.9040 1.33333
5 -0.4676 0.00000
6 1.8633 0.00000
7 1.8633 0.00000
8 1.8633 0.00000
- Informations sur l'énergie
The O atom (Example: Oatom)
FORCE on cell =-STRESS in cart. coord. units (eV):
Direction XX YY ZZ XY YZ ZX
--------------------------------------------------------------------------------------
Alpha Z 0.27135 0.27135 0.27135
Ewald -30.64236 -30.64236 -30.64236 0.00000 0.00000 0.00000
Hartree 93.90244 93.90244 93.90244 -0.00000 -0.00000 -0.00000
E(xc) -27.93035 -27.93035 -27.93035 -0.00000 -0.00000 -0.00000
Local -147.86211 -147.86211 -147.86211 0.00000 0.00000 0.00000
n-local -20.54942 -20.54942 -20.54942 -0.00000 -0.00000 -0.00000
augment 5.55366 5.55366 5.55366 0.00000 -0.00000 0.00000
Kinetic 126.50998 126.50998 126.50997 -0.00000 0.00000 -0.00000
Fock 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
-------------------------------------------------------------------------------------
Total -0.74681 -0.74681 -0.74681 0.00000 -0.00000 -0.00000
in kB -2.33695 -2.33695 -2.33695 0.00000 -0.00000 -0.00000
external pressure = -2.34 kB Pullay stress = 0.00 kB
- Informations sur les valeurs propres
FREE ENERGIE OF THE ION-ELECTRON SYSTEM (eV)
---------------------------------------------------
free energy TOTEN = -0.31463722 eV
energy without entropy= -0.00611258 energy(sigma->0) = -0.16037490
5. Recalculer
Si vous devez recalculer, vous pouvez ressaisir la commande vasp_std
, vous pouvez recommencer le calcul. Lorsque VASP est redémarré, il lit le fichier WAVECAR et continue de s'exécuter à partir de la fonction d'onde précédente (convergence rapide).
6. Nettoyer les calculs précédents
Exécuter la commande bash cleanup.sh
, ce qui effacera la fonction d'onde précédente et recommencera complètement le calcul.
Conclusion
Ce tutoriel se concentre sur les calculs DFT d'atomes d'oxygène isolés. Nous avons appris à mettre en place un calcul DFT pour un seul atome d'oxygène afin de calculer l'énergie de l'atome isolé. Ce processus implique la définition de l'hamiltonien, le calcul des fonctions propres et des valeurs propres de l'hamiltonien et la mise à jour de la densité de charge électronique jusqu'à ce que le système converge. Les fichiers d'entrée préparés incluent POSCAR, INCAR, KPOINTS et POTCAR, chacun ayant son format et sa fonction spécifiques. Une fois le calcul terminé, nous pouvons comprendre le processus de calcul et les résultats en analysant les fichiers stdout et OUTCAR.