Réglage Fin Du Champ De Force De L'apprentissage Automatique VASP
Package de simulation ab initio de Vienne (VASP :Le manuel VASP – Wiki VASP ) est un programme informatique pour la modélisation de matériaux à l'échelle atomique à partir de principes de base, tels que les calculs de structure électronique et la dynamique moléculaire mécanique quantique.
Champ de force de l'apprentissage automatiqueCatégorie : Champs de force appris par machine – Wiki VASP) peut être utilisée conjointement avec la dynamique moléculaire ab initio (MD) pour capturer les mécanismes physiques sous-jacents à partir des premiers principes, tout en permettant de longues simulations à un coût de calcul relativement faible. Généralement, une seule étape de dynamique moléculaire ab initio est coûteuse en termes de calcul en raison de la nécessité d'un traitement quantique des électrons, comme dans le cadre de la théorie de la fonctionnelle de la densité (DFT). Dans les calculs de dynamique moléculaire entièrement classiques, les champs de force sont utilisés à la place de la DFT pour calculer les forces agissant sur chaque atome. Ces potentiels interatomiques sont traditionnellement basés sur des observations expérimentales et intègrent des forces connues (telles que les forces de van der Waals, les interactions de charges électrostatiques, etc.) par des méthodes empiriques. Par conséquent, la qualité du champ de force dépend du degré de connaissance des interactions dans un système spécifique. VASP fournit des champs de force d'apprentissage automatique en temps réel pour répondre aux deux problèmes ci-dessus.
Contenu du tutoriel
Dans ce tutoriel, nous allons générer une série de spectres de phonons correspondants en modifiant continuellement les hyperparamètres d'apprentissage automatique, et obtenir les fichiers de paramètres de champ de force optimaux correspondants. Ce tutoriel vous permettra de comprendre les hyperparamètres d'apprentissage automatique VASP suivants :
Mode de sélection du poids ML_IWEIGHT #
Coefficient de pondération ML_WTSIF #
ML_WTOTEN # coefficient de pondération de l'énergie totale
Coefficient de pondération de force ML_WIFOR #
Précision de l'étape d'ajustement ML_SIGW0 #
ML_RCUT1 # Distance de coupure radiale
Distance de coupure d'angle ML_RCUT2 #
Précision d'ajustement ML_EPS_LOW #
En ajustant les paramètres de manière appropriée, nous obtiendrons éventuellement des résultats presque identiques à ceux de la DFT.

Fichier d'entrée
├── dft_phonon
│ ├── band.yaml (spectre de phonons de référence DFT)
├── ml_phonon (dossier de calcul du spectre des phonons par apprentissage automatique)
├── réaménagement (dossier de réglage fin)
│ ├── INCAR
│ ├── KPOINTS
│ ├── ML_AB
│ ├── POSCAR
│ ├── POTCAR
│ ├── clean.sh
│ └── exécuter.sh
├── t.py
Ce tutoriel se concentre uniquement sur les fichiers d'entrée dans le dossier ~/refit
exécuter.sh
#进行机器学习拟合
mpirun -n 1 vasp_std
#将力场参数文件转移到声子计算文件夹中
cp ML_FFN ../ml_phonon/ml/ML_FF
#进行声子机器学习计算
cd ../ml_phonon/
chmod 777 *.sh
./run.sh
cd ../
#绘制对比图
python t.py
Configuration d'ajustement de l'apprentissage automatique INCAR
SYSTEM = Si
IVDW = 11 #范德华力
ISMEAR = 0 #费米展宽
SIGMA = 0.02 #展宽
LWAVE = F #不保留波函数
LCHARG = F #不保留电荷
IBRION = 0 #MD (treat ionic degrees of freedom)
NSW = 1 #机器学习需要设置成 1
POTIM = 1 #MD time step in fs
ISIF = 3 #
# 机器学习
ML_LMLFF = T #启用机器学习力场
ML_ISTART = 3 #重新拟合模式(微调模式)
ML_IWEIGHT = 3 #权重选取模式
ML_WTSIF = 1 #权重系数
ML_WTOTEN = 1 #总能权重系数
ML_WIFOR = 1 #力权重系数
ML_SIGW0 = 1E-20 #拟合步长精度
ML_RCUT1 = 8. #径向截断距离
ML_RCUT2 = 6. #夹角截断距离
ML_EPS_LOW = 1E-20 #拟合精度
ML_MB = 5000 #运行内存设置
KPOINTS (non utilisé lorsque l'apprentissage automatique est activé, définissez-en un)
K-Spacing Value to Generate K-Mesh: 0.040
0
Gamma
4 4 4
0.0 0.0 0.0
POSCAR
Pour connaître la taille des supercellules de l'entraînement en apprentissage automatique, veuillez vous référer au tutoriel :Utilisation de VASP pour l'entraînement des champs de force par apprentissage automatique
POTCAR
La combinaison pseudopotentielle des éléments correspondants du système, ici le pseudopotentiel de Si
ML_AB
Il s'agit des données de dynamique moléculaire correspondant au système, calculées à l'avance. Pour le processus d'apprentissage spécifique, veuillez consulter le tutoriel :Utilisation de VASP pour l'entraînement des champs de force par apprentissage automatique, puis renommez ML_ABN en ML_AB, où les données de dynamique moléculaire de Si ont été préparées à l'avance.
Commencer
1. Cloner le conteneur
Recherchez le répertoire de travail du didacticiel et clonez le conteneur
2. Installer le conteneur
Sélectionnez 4090 — Payez à l'utilisation — vasp 6.3.0-cuda11.8 — Espace de travail

Après le chargement, ouvrez l'espace de travail

Ouvrir le terminal

Entrez dans le dossier de réaménagement
cd refit
Téléchargez le pseudopotentiel de silicium préparé, ici vous pouvez utiliser "Exemple de site Web officiel"Le pseudopotentiel POTCAR dans cet article.
Placez POTCAR dans le répertoire et copiez-le dans ml_phonon/ml
cp POTCAR ../ml_phonon/ml/

3. Installer l'environnement phonopy
conda install -c conda-forge phonopy
Entrez ensuite y et appuyez sur Entrée pour accepter l'installation

4. Exécutez le script
chmod 777 *.sh
./run.sh
5. Ajuster les paramètres
Voir le fichier ml.png

Revenez au dossier de réaménagement, changez le mode de poids en ML_IWEIGHT = 2 et exécutez à nouveau le script pour voir les résultats.

Vous constaterez que les résultats sont encore pires. Revenez en arrière et modifiez le mode de pondération ML_IWEIGHT = 1 pour observer à nouveau les résultats.

Une comparaison complète montre que les résultats des modèles 1 et 3 sont similaires, et que le modèle 1 présente même de meilleurs détails (support optique). Nous apporterons ensuite des améliorations sous la condition ML_IWEIGHT = 1.
Nous essayons d'augmenter la précision de la force ajustée seule, en rendant ML_WIFOR plus petit.

Nous constatons que le changement n’est pas significatif, ce qui suggère que nous devrions essayer d’augmenter la distance de coupure pour laisser plus de place à l’ajustement.

Comme vous pouvez le constater, le résultat est moins bon (support optique), ce qui signifie que l'espace des paramètres est trop grand et que le point extrême trouvé n'est pas le point minimum. Il faudrait plutôt réduire la distance de troncature.

Après avoir modifié les paramètres et réexécuté, nous avons finalement obtenu les paramètres du champ de force d'apprentissage automatique qui peuvent générer le même spectre de phonons que DFT.