آموزش کد محاسباتی Wien2k (بخش دوم)

بعد ایجاد دو فایل وردی اساسی، مرحله آماده سازی محاسبات رو می تونید از طریق “Execution \rightarrow initialize calc.” انجام داد. از طریق می توان پس از طی یه سری مراحل فایل های مورد نیاز برای محاسبات رو تولید کنید.

به عنوان یک راه جایگزین شما می تونید از اسکریپت init_lapw از طریق خط استفاده کنید.

برنامه های مرحله آماده سازی

NN

برنامه NN فواصل نزدیک ترین همسایگان تمام اتم ها را بر اساس موقعیت های اتمی داده شده محاسبه و بدیت ترتیب روی هم افتادگی های کرات را تحقیق می کند، که در صورت اخیر با کاهش شعاع کرات باید از روی هم افتادگی ها جلوگیری کرد. ورودی این برنامه case.sturuct و خروجی ان case.outputnn است. این برنامه همچنین هم ارز بودن یا نبودن اتم ها را تحقیق می کند که از این اطلاعات می توان از نادرست بودن احتمالی case.struct آگاه شد. در صورت نادرست بودن case.sturct برنامه NN یک case.struct_nn پیشنهادی تولید می کند، که باید صحت آن مورد بررسی قرار گیرد. این بدان معنی است که case.struct_nn لزوما case.struct مطلوب نیست، چرا که کوچکترین خطای نوشتاری در وارد کردن موقعیت های اتمی یکی از دلایل بروز هم ارز شناخته نشدن اتم های هم ارز ات. گاه لازم است که دو اتم هم ارز غیر هم ارز شناخته شوند. مثلا در محاسبات پادفرومناطیس bcc-Cr، که در این صورت اتم های هم ارز باید با برچسبت های 1 و 2 به صورت Cr1,Cr2 از یکدیگر در case.struct تمییز داده شوند.

SGROUP

برنامه sgroup گروه فضایی شبکه و گروه های نقطه ای هر یک از نقاط شبکه را بر اساس نوع شبکه، ثابت های شبکه و موقعیت های اتمی داده شده تعیین می کند. ورودی این برنامه case.struct و خروجی آن case.outputsgroup است. این برنامه سلول های واحد احتملی کوچکتر نسبت به سلول داه شده اولیه را می یابد، می توان مبدا سلول را به اندازه یک بردار معین داده شده جابه جا کند، و همچنین بر اساس case.struct داده شده یک case.struct_sgroup پیشنهاد می کند. مراجغ این برنامه برای تمام 230 گروه فضایی جداول بین المللی کریستالو گرافی سال 1992 می باشند.

SYMMETRY

برنامه SYMMETRY گروه های نقطه ای هر یک از نقاط شبکه، عملگرهای تقارنی متناظر با هر گروه نقطه ای، و مقادیر LM نمایش هماهنگ های شبکه را بر اساس نوع شبکه و موقعیت های اتمی داده شده تعیین می کند. ورودی این برنامه case.struct و خروجی های آن case.outputs و case.in2_st است. این برنامه توسط G.Vielsack برای تعیین ترکیبات LM در یک دستگاه مختصات دلخواه نوشته شده است که سپس در آن از ماتریس های دوران موضعی برای کمینه کردن تعداد ترکیب LM در بسط هماهنگ های شبکه پتانسیل و چگالی بار مطالب با روابط زیر استفاده می شود:

    \[ V(\overrightarrow{r})=\left\{\begin{matrix} \sum_{LM} V_{LM}(r)Y_{LM}(\overrightarrow{r}) \hspace{10mm} ; r\in MT\\ \sum_{K} V_{K}e^{i\overrightarrow{K}\cdot \overrightarrow{r}} \hspace{15mm} ; r\in I \end{matrix}\right. \]

    \[ \rho(\overrightarrow{r})=\left\{\begin{matrix} \sum_{LM} \rho_{LM}(r)Y_{LM}(\overrightarrow{r}) \hspace{10mm} ; r\in MT\\ \sum_{K} \rho_{K}e^{i\overrightarrow{K}\cdot \overrightarrow{r}} \hspace{15mm} ; r\in I \end{matrix}\right. \]

که در آنها MT و I به ترتیب نواحی درون کرات و ناحیه خارج از کرات را نمایش می دهند. مثلا در گروه نقطه ای mm2 و برای L=1 اگر دستگاه مختصات به گونه ای اختیار شود که محور z بر محور دوران دوگانه منطبق باشد آنگاه فقط ترکیب LM=1,0 لازم است، در حال که در یک دستگاه مختصات دلخواه هر سه جمله 1و1- ; 1,1 ; 1,0=LM ضروری اند.

تعبیر بار های جزیی مستلزم انتخاب یک دستگاه مختصات مناسب است. در مثال بالا اوربیتال های p به دو نمایش کاهش ناپذیر شکافته می شوند، ام آنها تنها در صورتی می توانند به اوربیتال های px,py,pz نسبت داده می شوند که محور z یک محور دوران دوگانه باشد.

LSTART

برنامه LSART نسخه تصحیح شده یک کد اتمی است. این کد با استفاده از تقریب LSDA به حل نسبیتی معادله دیراک-فوک می پردازد.

ورودی های این برنامه case.struct و case.inst و خروجی های آن، case.vsp, case.rsp, case.inc,case.in2, case.in1, case.in0, case.outputst, case.inm است. برنامه LSTART پتانسیل های اتمی را درون کره های مافین-تین تولی می کند (case.vsp). این برنامه چگالی های اتمی را نیز تولید می کند (case.rsp)، که این چگالی ها توسط برنامه DSTART مورد استفاده قرار گرفته تا یک چگالی اولیه برای مرحله حل خودسازگار تولید کند. در این مرحله الکترون های ظرفیت (ظرفیت + شبه مغزه) باید از الکترون مغزه تفکیک شوند، که این تفکیک با انرژی جداسازی به عنوان یک پارامتر ورودی انجام می شود. بر اساس انرژی جداسازی مقادیر ویژه اتمی و ورودی برنامه های مرحله حل خودسازگار یعنی case.inm, case.inc, case.in2, case.in1, case.in0 تولید می شوند. بنابراین انتخاب انرژی جداسازی (S.E.) از اهمیت زیادی برخوردار است، زیر مبنای محاسبه مرحله خود سازگار و درنتیجه نتایج نهایی در همین مرحله پایه ریزی می شود. برای تعیین انرژی حداسازی به صورت زیر عمل می کنیم:

الف) به ازای یک مقدار معین از انرژی جداسازی (6.0Ry-) برنامه LSTART را اجرا می کنیم.

ب) ویژه مقادیر تولید شده در فایل خروجی case.outputst را به صورت زیر مورد بررسی قرار می دهیم:

-514.09427       -514.09504

-60.96008         -60.04156

-51.67440         -51.73511

-50.75597         -50.81845

-6.61035           -6.80000

-4.19666           -4.38376

-4.08485           -4.27103

-0.30733           -0.47568

-0.29712           -0.46495

-0.30776           -0.37634

 ستون سمت راست ویژه مقادیر انرژی الکترون های با اسپین بالا و ستون سمت چپ ویژه مقادیر انرژی الکترون های با اسپین پایین ر بر حسب Ry برای اتم Fe نمایش می دهند، (واحد انرژی در حین اجرای برنامه eV می باشد ولی خروجی آن به واحد Ry تبدیل می شود. علت این امر این است که واحد انرژی در برنامه وین Ry است در حالی که این واحد از ابتدا در برنامه اولیه تصحیح نشده اتمی eV بوده است). ویژه مقادیر انرژی فوق به ترتیب مربوط به حالت های اتمی زیر از اتم آهن می باشند:

1s,2s,2p*,2p,3s,3p*,3p,3d*,3d,4s

که در آنها “*” به حالت هایی با عدد کوانتومی نسبیتی متفاوت اشاره می کند.

ج) مقایسه انرژی جداسازی داده شده با ویژه مقادیر حالت های اتمی نشان می دهد که دو الکترون حالت 3s به عنوان الکترون های مغزه اختیار شده اند. علت مغزه بودن دو الکترون 3s آن است که انرژی الکترون اسپین بالای این حالت، 6.8Ry-، و انرژی الکترون پایین آن، 6.61035Ry- ، کمتر از انرژی جداسازی، 6.0- می باشد. این بدان معنی است که اگر به جای عدد 6.0Ry- عدد 7.0Ry- به عنوان انرژی جداسازی اختیار گردد، آنگاه دو الکترون حالت 3s الکترون های ظرفیت به حساب خواهند آمد.

د) در این مرحله باید تحقیق شود که آیا دو الکترون حالت 3s رفتاری همانند الکترون مغزه دارند یا رفتار آنها بیشتر شبیه به الکترون های ظرفیت (ظرفیت یا نیمه مغزه) است. برای این منظور باید بار کل و بار کل درون کره به ازای هر دو انرژی جداسازی با هم مقایسه شوند. این مقایسه میزان نشت بار از درون کره را نشان خواهد داد. اگر الکترون های حالت 3s الکترون های مغزه باشند، نباید از درون کره به بیرون نشت کنند. اگر الکترون های حالت 3s الکترون های ظرفیت (ظرفیت یا نیمه مغزه) باشند، می توانند از درون کره به بیرون نشست کنند. بار کل و بار کل درون کره به ازای انرژی جداسازی 6.0Ry- در خروجی case.outputs به صورت زیر نوشته شده است:

TOTAL CORE-CHARGE: 12.00000000005831

TOTAL CORE-CHARGE INSIDE SPHERE: 11.99785897382221

که معادل با نشتی 0.00214 الکترون به حارج از کره است.

بار کل و بار کل درون کره به ازای انرژی جداسازی 7.0Ry- در خروجی case.outputs به صورت زیر نوشته شده است:

TOTAL CORE-CHARGE: 10.00000000005758

TOTAL CORE-CHARGE INSIDE SPHERE: 9.999999992285076

که معادل 0.0000000008 الکترون به خارج از کره است. مقایسه این دو نشتی نشان می دهد که عدد 7.0Ry- عدد مناسبتری برای انرژی جداسازی در این مورد است. این بدان معنی است که الکترون های 3s اتم آهن رفتاری شبیه الکترون های ظرفیت دارند، که اگر بر آنها انرژی 6.0Ry- تحمیل شود که وارد مغزه گردند، آنگاه به دلیل ماهیت ظرفیت بودنشان از درون کره به خارج نشت خواهند کرد که مطلوب نیست. به عکس اگر با انتخاب انرژی مناسب تر 7.0Ry به الکترون های 3s اجازه داده شود که به عنوان الکترون ظرفیت ایفای نقش کنند. آنگاه الکترون های باقی مانده قبل از حالت 3s که واقعا الکترون های مغزه هستند هیچ تمایلی به نشت به خارج از کره از خود نشان نمی دهند که مطلوب است. هر چند اکنون واضح است اما ذکر آن خالی از لطف نیست که تعداد الکترون های مغزه با انتخاب انرژی جداسازی 6.0Ry- برابر دوازده الکترون است (چون دو الکترون 3s اکنون درون مغزه می باشند) که به اندازه 2 الکترون بیشتر از ده الکترون مغزه با انتخاب انرژی جداسازی 7.0Ry- است (چون دو الکترون 3s اکنون خارج مغزه می باشند).

انرژی کل هر اتم نیز یکی دیگر از اطلاعات حاصل از برنامه LSTART است، که از آنها می توان برای محاسبه انرژی همبستگی اتم های سبک استفاده کرد. برای ماحسبه انرژی همبستگی اتم های سنگین که در آنها برهمکنش اسپین-مدار اهمیت دارد روش ابریاخته توصیه شده است. در حالت کلی انرژی های محاسبه شده به روش های مختلف می توانند با هم قابل مقایسه نباشند. این بدان معنی است که انرژی کل بلوری محاسبه شده به روش LAPW می تواند با انرژی های اتمی محاسبه شده به روش تمی دیراک-فوک سازگار نباشد به گونه ای که نتوان از آنها برای یک محاسبه دقیق انرژی همبستگی استفاده کرد. این عدم سازگاری به ویژه با اعمال بر همکنش اسپین-مدار تشدید می گردد. در روش ابر یاخته هم انرژی بلوری و هم انرژی اتمی به روش LAPW محاسبه می شوند. در این روش برای هر اتم یک ابریاخته ساخته می شود و انرژی کل آن تم به روش LAPW محاسبه می گردد. اگرچه این ابریاخته می تواند از هر نوعی باشد ولی تجربه نشان داده است که یک ابریاخته از نوع fcc با ثابت شبکه مناسب برای این منظور مطلوبتر است. برای تعیین یک ثابت شبکه مناسب باید به ازای ثابت های شبکه متفاوت انرژی کل را محاسبه کرد. اگر ثابت شبکه به اندازه کافی بزرگ اختیار شود به گونه ای که اتم ها انقدر از یکدیگر دور باشند که با هم هیچ نوع برهمکنشی نداشته باشند، به ثابت شبکه ماسب دست یافته ایم. ذکر این نکته مفید است که افزایش ثابت شبکه حجم محاسبات را افزایش می دهد، پس کمینه ثابت های شبکه ای که شرط عدم برهمکنش اتمهای درون ابرسلول را برآورده کند یه ثابت شبکه بهینه به شما می آید.

ورودی دیگر برنامه LSTART تعیین نوع تقریب برای پتانسیل تبادلی-همبستگی است که می تواند هر یک از موارد متعارف زیر:

LSDA (Perdew Wang 92), GGA (Perdew 96), GGA (Perdew 92)

و یا موارد دیگر زیر باشد:

Potential name Potential option
HPBE GGA-X-Energy, PBE-C-Energy, PBE potential 11
HPBE GGA-XC-Energy, PBE potential 12
TPSS meta GGA-XC-Energy, PBE potential 27
Van Voorhis+G.Scuseria M-GGA (PBE potential) 43
HPBE GGA-X-Energy + KCIS-C energy, PBE potential 44
PBE (Perdew-Burke-Ernzerhof) 96 GGA 13
Perdew-Wang 91 GGA 14
Engel-Vosko 93 GGA exchange with Perdew-Wang 15
GGA correlation term 91
Leeuwen exchange potential with Perdew-Wang 91 GGA correlation term 16
Lembarki exchange potential with Perdew-Wang 17
GGA correlation term 91
TH1 (Tozer-Handy 98) GGA 18
TH2 (Tozer-Handy 98) GGA 19
HCTH (Tozer-Handy 98) GGA 20
TH2 (Tozer-Handy 98)-V, HCTH-Energy 21
Filatov-Thiel GGA (PBE potential) 22
BLYP GGA (PBE potential) 23
Revised PBE-X + PBE-C (pbe-potential) 24
Engel-Vosko 93 GGA exchange with LSDA correlation term 25
Engel-Vosko 93 GGA exchange potential with LSDA potential correlation term combined with Perdew-Wang 91 GGA exchange energy with Perdew-Wang 91 GGA correlation term 26
GEA (with coefficient of Engel-Vosko 93 GGA) exchange with LSDA correlation term 29
EX = 1.d0, E-TOT should give number of electrons 30
EX-LDA only 31
EC-LDA only 32
EX-PBE only 33
EC-PBE only 34
for analysing xi and eta (case.vns and case.vsp contains xi and eta in terms of YLM) 35
for analysing (laplace rho) case.vns and case.vsp contains laplace rho in terms of YLM 36
LDA and GGA parts of 3-parameters hybrid functional B3PW91 37
HPBE GGA test 40
HPBE GGA (X only) 41
HPBE-C GGA 42

عدد کوانتومی اصلی، عدد کوانتومی نسبیتی، عدد اشغال الکترون های ظرفیت از طریق ورودی case.inst به برنامه lstart داده می شود. این ورودی case.inst که توسط دستور instgen_lapw بر اساس case.struct داده شده قابل تولید است برای اتم روی به صورت زیر است:

ZINC

Ne 6 (inert gas, # OF VALENCE ORBITALS not counting spin)

3,-1,1.0 N ( N,KAPPA,OCCUP; = 3S UP, 1 ELECTRON)

3,-1,1.0 N 3S DN

3,-2,2.0 N 3P UP

3,-2,2.0 N 3P DN

3, 1,1.0 N 3P*UP

3, 1,1.0 N 3P*DN

3,-3,3.0 P 3D UP

3,-3,3.0 P 3D DN

3, 2,2.0 P 3D*UP

3, 2,2.0 P 3D*DN

4,-1,1.0 P 4S UP

4,-1,1.0 P 4S DN

که در صورت استفاده از w2web یا اجرای init_lapw به طور خدکار case.inst ایجاد می شود. که در آن آرایش بی اثر Ne به عنوان مغزه اختیار شده است، Zn:[Ne]3s23p63d104ds2 . 

این فایل می تواند برای اتم روی به صورت زیر منتهی با مغزه Ar یعنی Zn:[Ar]3d104sهم باشد:

ZINC

Ar 3 (inert gas, # OF VALENCE ORBITALS not counting spin)

3,-3,3.0 P 3D UP

3,-3,3.0 P 3D DN

3, 2,2.0 P 3D*UP

3, 2,2.0 P 3D*DN

4,-1,1.0 P 4S UP

4,-1,1.0 P 4S DN

که در آنها * به تغییر عدد کوانتومی نسبیتی، κ، به ازای یک عدد کوانتومی مداری، l ، اشاره دارد. عدد 6 پس از Ne به عدد 3 پس از Ar تغییر یافته است، زیر این عدد نصف تعداد حالت های ظرفیت با در نظر گرفتن اسپین الکترونهاست. خط آخر این فایل را به عنوان مثال در نظر گرفته، P 1.0 -1 4 ، و هر هریک از قسمت های آن را که با کاما از یکدیگر جدا شده اند را به صورت زیر از چپ به راست تعریف می کنیم: عدد کوانتومی مداری l، عددا کوانتومی نسبیتی κ، عدد اشغال الکترونی، و P معروف آن است که چگالی الکترونی این اوبیتال اتمی که با اعداد کوانتومی مربوطه معیین شدهاست در فایلی به نام case.sigma نوشته شود. فایل case.sigma که می تواند شامل جمع تمام اوربیتال های اتمی باشد و در رسم چگالی ابر الکترونی مورد استفاده قرار گیرد خالی خواهد بود اگر به جای P حرف N نوشته شود. حرف P حتما باید بزرگ نوشته شود، چه در غیر این صورت عمل نخواهد کرد. این نکته می تواند در اینجا حایز اهمیت باشد که عدد اشغال می توان یک عدد غیر صحیح مثبت باشد (مثلا تولید case.inst اتم هیدروژن می تواند آموزنده باشد). case.inst لزوما بر ساختار اتمی اتم ها منطبق نیست، بلکه این فایل به گونه ای تولید می شود که برای مقاصد فعلی برنامه وین مناسب باشد و به انرژی کمینه تراز زمینه آن تم با کمترین صرف وقت منجر شود. جای تعجب نیست اگر با تغییر عدد اشغال اجرای برنامه با اخطاری شبیه “NSTOP= ….” متوقف شود، زیرا این یک برنامه اتمی تغییر یافته به منظور تولید چگالی های اتمی به گونه ای است که در محاسبات بلوری وین به همگرایی مطلوب با صرف کمتر وقت منجر شود، که بازگشت آن به نسخه اولیه اتمی خود مستلزم تغییر پارامتر های ترکیب کننده (Mixing Parameters) است. حداکثر عدد اشغال به ازای عدد کوانتومی نسبیتی و عدد کوانتومی مداری کل برای اوربیتال های s,p,d,f در حدل زیر آورده شده اند، که در آن مثلا عدد کوانتومی نسبیتی به ازای l=3;s=+-1 به اعداد 3- و 3+ به صورت زیر:

capture

منجر خواهد شد که مطابق جدول زیر 6 الکترون ( 3 الکترون با اسپین بالا و 3 الکترون با اسپین پایین) در حالت κ=3 l=3 و 8 الکترون (4 الکترون با اسپین بالا و 4 الکترون با اسپین پایین) د حالت κ=-4 l=3 با احتساب اسپین قرار می گیرند.

table2

KGEN

برنامه KGEN نقاط k در ناحیه اول بریلوئن را روی نقاط شبکه بندی شده خاصی تولید می کند، که می توانند در روش تصحیح شده انتگرال گیری tetrahedron مورد استفاده قرار گیرند. تصحیحاتی که در روش tetrahedron برای انتگرال گیری ناحیه اول بریلوئن انجام شده است اجازه می دهد که از این روش به طور مؤثری بتوان در روش های ساختار الکترونی مبتنی بر اموجا تخت هم استفاده کرد. ورودی این برنامه case.struct و خروجی های آن case.outputkgen، case.klist و case.kgen است. خروجی case.klist در برنامه LAPW1 به عنوان ورودی و خروجی case.kgen در برنامه tetra به عنوان ورودی مورد استفاده قرار می گیرند. خروجی case.kgen همچنین می تواند در برنامه LAPW2 به عنوان ورودی مورد استفاده قرار گیرد مشروط بر آنکه در ورودی اصلی برنامه LAPW2 یعنی case.in2 روش محاسبه انرژی فرمی (EF) روش TETRA اختیار شده باشد. بر هم کنش اسپین-مدار در ترکیبات مغناطیسی تقارن را کاهش می دهد، بنابر این اجرای برنامه kgen در حضور چنین برهم کنشی ضرورت است: x kgen -so .

DSTART

زیر برنامه DSTART یک چگالی بار اولیه با استفاده از جمع چگالی های اتمی تولید شده توسط برنامه LSART را برای شروع مرحله دوم که در آن محاسبات بلوری به طور خودسازگار انجام می شوند تولید می کند. ورودی این برنامه case.struct, cas.rsp, case.in1 و case.outputd است. ورودی case.rsp که خود خروجی برنامه lstart می باشد حاوی چگالی های اتمی است و در طی مراحل حل خودسازگار تغییر نمی کند. خروجی case.clmsum که در ابتدا بلافاصله بعد از اجرای برنامه DSTART حاوی یک جمع اولیه از چگالی های اتمی است در پایان هر چرخه از مراحل حل خودسازگار به طور پیوسته تغییر می کند. این تغییرات تا حصول شرط همگرایی و رسیدن به چگالی الکترونی شبکه و به صورت ضرایب فوریه در خروجی case.clmsum نوشته می شوند که در آن جمله با تقارن کروی LM=0,0 به 4 \pi r^2\rho (r)   و سایر جملات غیر کروی به r^2\rho(r) اشاره دارند.

table_input

ورودی ها و خروجی های ضروری و اختیاری برنامه های مرحله آماده سازی

اگر چه تک تک برنامه های مرحله آماده سازی به صورت زیر قابل اجرا هستند:

x نام برنامه

مثلا:

x lstart

اما همه آنها به طور پیوسته توسط برنامه init_lapw قابل اجرا هستند. برای این منظور کافی است که دستور init_lapw یا به طور ساده تر دستور init اجرا شود. این برنامه علاوه بر اجرای تک تک برنامه های مرحله آماده سازی کارهای اضافه تری نیز انجام می دهد مثل: نولید بعضی از فایل های ورودی برنامه های مرحله خودسازگار، ذخیره کردن یک فایل تغییر یافته با نام دیگر، اعلان برخی هشداری های مفید که بر اساس آنها علت بعضی از خطاها تا حدودی مشخص می شود و همچنین مطرح کردن سوالات مناسبی در برخی از مراحل و نشان داده عکس العمل مناسب در مقابل پاسخ داده شده به سوالات. لازم به ذکر است که اجرای این برنامه مستلزم فقط داشته فایل case.struct است. برنامه init_lapw و تمام برنامه هایی که برنامه های اصلی نوشته شده به زبان Fortran90 را به هم مربوط می کنند (بجز برنامه های موجود در SRC_w2web/ که به زبان PERL نوشته شده اند) در واقع برنامه های سیستم عاملی هستند که در لایه-C یا C-shell از سیستم عامل لینوکس نوشته شده اند. اما این بدان معنی نیست که لایه لازم برای کد باید لزوما csh یا tcsh باشد. بلکه کد وین می تواند در لایه bash ویا لایه های دیگر سیتسم عامل لینوکس نصب شود. زیر از یک لایه غیر C می توان با دستور /bin/csh این لایه را فراخوانی کرد، که این تمهید در برنامه های سیستم عاملی وین اندیشیده شده است. اما آنچه که (در حال حاضر) ضروری است نصب بر روی سیستم عامل لینوکس است.

 


بنده دانشجوی دکترای فیزیک ماده چگال از دانشگاه تربیت مدرس تهران هستم. حوزه مورد علاقه من فیزیک محاسباتی (به طور خاص نظریه تابعیت چگالی) و همچنین سیستم های توپولوژیک است.


There are no comments yet

  • سلام , مهمان
  • خروج
  • ورود

    Or use one of these social networks

This site is protected by wp-copyrightpro.com