برنامج VASP التعليمي: 1-1. حساب DFT لذرات الأكسجين المعزولة
1. مقدمة البرنامج التعليمي
يستخدم هذا البرنامج التعليمي VASP كمثال لإظهار كيفية إجراء العمليات الحسابية على الحوسبة عالية الأداء من الصفر.
VASP تعني Vienna Ab-initio Simulation Package، وهي حزمة برامج طورتها مجموعة Hafner في جامعة فيينا لحسابات البنية الإلكترونية ومحاكاة ميكانيكا الكم والديناميكا الجزيئية. وهو أحد البرامج التجارية الأكثر شعبية لمحاكاة المواد وأبحاث علوم المواد الحسابية. إن دقتها العالية ووظائفها القوية تجعلها أداة مهمة للباحثين للتنبؤ بخصائص المواد وتصميمها. يتم استخدامه على نطاق واسع في الفيزياء الصلبة، وعلوم المواد، والكيمياء، والديناميكيات الجزيئية وغيرها من المجالات. تستخدم تقنية VASP إمكانات زائفة ومجموعات أساس الموجة المستوية لمحاكاة البنية الإلكترونية وهي مناسبة بشكل خاص للأنظمة ذات الظروف الحدودية الدورية مثل البلورات والأسطح والبنى النانوية.
通过本教程的学习,您将能够:
* 在伪代码层面解释密度泛函理论 (DFT) 计算
* 创建输入文件以运行孤立原子的 DFT 计算
* 识别 stdout 和 OUTCAR 的基本结构
* 提取分子和原子的相关能量
* 从之前的 Kohn-Sham (KS) 轨道重新开始 DFT 计算
أهداف البرنامج التعليمي
هذا البرنامج التعليمي هو البرنامج التعليمي الرسمي لـ VASP، قم بإجراء حسابات DFT باستخدام VASP، وتعلم كيفية إنشاء ملفات الإدخال، وفهم الهيكل الأساسي لملفات الإخراج، واستخراج بيانات الطاقة ذات الصلة.
DFT هو إطار عمل يتم فيه التعامل مع درجات الحرية الإلكترونية. على مستوى الكود الزائف، يتم اتباع الخطوات التالية:
- بالنظر إلى كثافة شحنة الإلكترون، يمكن تعريف الهاميلتوني.
- احسب الدوال الذاتية والقيم الذاتية للهاميلتونيان.
- تحديث كثافة شحنة الإلكترون.
- كرر الخطوات من 1 إلى 3 حتى التقارب. لمزيد من المعلومات حول التنفيذ في VASP، راجع خوارزمية VASP لحساب الحالات الأرضية الإلكترونية.
2. خطوات التشغيل
1. قم بإعداد ملفات الإدخال والبرامج النصية (هذا البرنامج التعليمي قد قام بإعدادها بالفعل)
عند إجراء حسابات تحسين VASP، تحتاج إلى إعداد 4 ملفات رئيسية: (هذا الملف التعليمي للإشارة فقط. إذا كنت بحاجة لاستخدامه، يُرجى التقدم بطلب للحصول على إذن من الموقع الرسمي):بوسكار ، إنكار ، نقاط الكيبوينتس و بوتكار، تم وضع جميع ملفات العينة في /home/Oatom
تحت:
بوسكاريوفر الملف معلومات البنية الذرية لنموذج الحساب، بما في ذلك معلمات الخلية الوحدوية ومواضع إحداثيات كل ذرة، وهو الجسم الرئيسي لـ VASP للتحليل الهيكلي والتحسين.
بوسكار
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
نحن نستخدم ملف POSCAR للذرات الفردية. يتم اختيار معلمات الشبكة لكي تكون كبيرة بما يكفي بحيث لا تتفاعل الذرات في الخلايا الوحدوية المجاورة (بشكل كبير) مع بعضها البعض.
إنكار:يحدد الملف نوع المهمة ومعلمات الحساب لحسابات VASP، ويعطي تعليمات لـ VASP حول الخصائص الفيزيائية التي يجب حسابها وكيفية إجراء هذه الحسابات.
SYSTEM = O atom in a box
ISMEAR = 0 ! Gaussian smearing
نقاط الكيبوينتس:يحتوي الملف على معلومات شبكة النقاط K المطلوبة للحساب. نقطة K هي النقطة التي يتم فيها أخذ العينات من الحالة الإلكترونية في منطقة بريلوين.
Gamma-point only
0
Monkhorst Pack
1 1 1
0 0 0
بالنسبة للذرة أو الجزيء، نقطة k واحدة كافية. عندما يتم استخدام المزيد من نقاط k، يمكن فقط وصف التفاعلات بين الذرات (والتي يجب أن تكون صفرًا) بدقة أكبر.
بوتكار:يحتوي الملف على معلومات الجهد الزائف المستخدمة لكل ذرة أثناء الحساب.
إرسال النص:لتشغيل حسابات VASP على سطر الأوامر، تحتاج إلى كتابة نص برمجي للإرسال (job.sh)، والذي يحتوي على الموارد والبيئة المطلوبة لاستدعاء الحساب، وتشغيل ملف VASP القابل للتنفيذ، والمحتوى ذي الصلة الأخرى. بإمكانك استخدام هذا البرنامج النصي لتسليم الوظائف إلى موارد الحوسبة المحددة في البرنامج النصي.
#
# 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
إذا لم يتم تعيين متغير البيئة vasp_std، vasp_gam، vasp_ncl، فقم بتعيينه إلى أمر يقوم بتشغيل برنامج VASP. ويضمن هذا وجود قيمة افتراضية متاحة دائمًا للاستخدام اللاحق عند الحاجة إليها. هنا -np 1 يحدد تشغيل عملية واحدة.
2. ابدأ الحساب
تم الحصول على عينة الإخراج (stdout) لذرة الأكسجين باستخدام VASP الإصدار 6.3.0. تتوافق الشحنات الأولية مع شحنات الذرات المتداخلة المعزولة (ملف POTCAR). بالنسبة للخطوات الأربع الأولى، يتم تثبيت الشحنة، ثم يتم تحديث الشحنة (عمود rms(c)).
* 具体步骤:
新建一个终端,输入下面命令
cd Oatom/
vasp_std
3. الإخراج القياسي (stdout): يعرض الطرفية نتائج الحساب
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
شرح موجز للرموز الموجودة في ملفات OSZICAR وstdout:

4. عرض نتائج الجري
بعد التنفيذ، سيتم حفظ النتائج في ./Oatom/OUTCAR
, أدخل الأمر cat OUTCAR
لرؤية النتائج.
فيما يلي أقسام ملف OUTCAR، مفصولة بواصلة:
- اقرأ INCAR ، POTCAR ، POSCAR
- تحليل مسافة أقرب جار والتناظر
- معلومات تفصيلية عن الوظيفة
- معلومات عن الشبكة ونقاط k والمواقع
- معلومات المجموعة الأساسية (عدد الموجات المستوية)
- معلومات شبه محتملة غير محلية
- معلومات لكل خطوة إلكترونية (سطر واحد في OSZICAR)
- معلومات الوقت والطاقة
- معلومات حول القيم الذاتية
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
- معلومات عن موتر الإجهاد
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
- معلومات الطاقة
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
- معلومات حول القيم الذاتية
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. إعادة الحساب
إذا كنت بحاجة إلى إعادة الحساب، يمكنك إعادة إدخال الأمر vasp_std
يمكنك البدء في الحساب مرة أخرى. عند إعادة تشغيل VASP، فإنه يقرأ ملف WAVECAR ويستمر في التشغيل من دالة الموجة السابقة (التقارب السريع).
6. تنظيف الحسابات السابقة
أمر التشغيل bash cleanup.sh
، مما سيؤدي إلى مسح دالة الموجة السابقة وبدء الحساب بالكامل من جديد.
خاتمة
يركز هذا البرنامج التعليمي على حسابات DFT لذرات الأكسجين المعزولة. لقد تعلمنا كيفية إعداد حساب DFT لذرة أكسجين واحدة من أجل حساب طاقة الذرة المعزولة. تتضمن هذه العملية تعريف الهاميلتوني، وحساب الدوال الذاتية والقيم الذاتية للهاميلتوني، وتحديث كثافة شحنة الإلكترون حتى يتقارب النظام. تتضمن ملفات الإدخال POSCAR وINCAR وKPOINTS وPOTCAR، ولكل منها تنسيقها ووظيفتها المحددة. بعد اكتمال الحساب، يمكننا فهم عملية الحساب والنتائج من خلال تحليل ملفات stdout وOUTCAR.