آموزش کد محاسباتی سیستا (مولکول هیدروژن)

در این آموزش سعی داریم انرژی کل و طول پیوند مولکول هیدروژن رو محاسبه کنیم. برای فایل فشرده ضمیمه شده را دانلود کنید و اون رو در مکان دلخواهتون (در سیستم عامل لینوکس) از حالت فشرده خارج کنید. پس از خارج کردن از حالت فشرده شما سه فایل رو میبینید که یکی از اونها فایل h2.fdf هستش. فایل ورودی برنامه سیستا دارای پسوند fdf ه. فایلی که شما دانلود کردید دارای محتوای زیره:

SystemName          H2 molecule
SystemLabel         h2
NumberOfAtoms       2
NumberOfSpecies     1

%block ChemicalSpeciesLabel
 1  1  H      # Species index, atomic number, species label
%endblock ChemicalSpeciesLabel

AtomicCoordinatesFormat  Ang
%block AtomicCoordinatesAndAtomicSpecies
 0.000  0.000  0.000  1
 1.000  0.000  0.000  1
%endblock AtomicCoordinatesAndAtomicSpecies

DM.NumberPulay     3

که توضیح هر خط اون به این شکل هستش:

خط اول: اسم سیستم یا ترکیب مورد نظر رو اینجا می نویسیم. مهم نیست که چی باشه فقط چیزی مینویسیم که در آینده که بهش رجوع کردیم بدویم برای چه سیستمی اجرا گرفتیم.

خط دوم: یه برچسب واسه سیستم انتخاب می کنیم

خط سوم: تعداد اتم های ترکیب رو اینجا می نویسیم. مثلا برای مثال اتم هیدروژن این تعداد 2 هستش.

خط چهارم: تعداد گونه های اتمی رو اینجا می نویسیم. مثلا برای این مثال فقط 1 گونه اتم هیدروژن داریم.

خط ششم الی هشتم: در این بلاک در هر خط یک شاخص، عدد اتمی و برچسب گونه مورد نظر رو می نویسم. مثلا در این مثال یک گونه هیدروژن داریم با عدد اتمی 1 که به اون شاخص (ایندکس) 1 نسبت میدیم.

خط دهم: در این قسمت واحد مختصات اتمی رو مینویسم که در اینجا آنگستروم هستش.

خط یازدهم تا چهاردهم: در این بلاک مختصات اتم های موجود در سیستم رو وارد می کنیم. مثلا در این مثال دو اتم هیدروژن داریم که یکی در مختصات 0 0 0 و دیگری در مختصات 0 0 1 (مختصه x برابر 1 است) قرار داره.

خط شانزدهم: برای توضیح این خط به صفحه 48 فایل user guide کد سیستا مراجعه کنید.

نکته: فایل ورودی برای ترکیب های مختلف با هم تفاوت داره و برای مثال های بعدی الزاما از همین فایل نمیشه استفاده کرد. به مرور در مثال های بعدی گزینه های دیگه ای که در فایل ورودی میشه به کار برد توضیح داده میشه.

مولکول هیدروژن: اولین اجرا با سیستا

چک کنید همه فایل های مورد نیاز در پوشه مورد نظر وجود داشته باشن.

دقت کنید که علاوه بر فایل ورودی شما به ازای هر گونه اتمی یک فایل شبه پتانسیل نیاز دارید که دارای پسوند .vps یا .psd هستش.

برای اتم هیدروژن شما می تونید شبه پتانسیل مربوط به تقریب LDA رو از سایت سیستا دانلود کنید.

پس از اطمینان از وجود همه ی فایل های مورد نیاز می تونید با باز کردن ترمینال در مسیری که فایل های ورودی وجود دارند و نوشتن دستور زیر و زدن دکمه اینتر اولین اجرای خودتون رو بگیرید و یک فایل خروجی دریافت کنید:

# siesta < h2.fdf > h2.1.00.out

پس از اجرای این دستور فایل خروجی با نام h2.1.00.out در پوشه جاری ساخته میشه که خروجی برنامه سیستا هستش.

نکته: در لینوکس علامت > (کوچکتر) به معنای خواندن از ورودی است فایلی که در بعد از آن نوشته می شود به عنوان ورودی برای دستور قبل از این علامت مورد استفاده قرار میگیرد. همچنین علامت < (بزرگتر) به معنای نوشتن در فایل خروجی است. می توان با استفاده از عملگر پایپ (|) همزمان علاوه بر نوشتن در فایل خروجی محتوای آن را بر روی صفحه نمایش دید. برای اینکا به جای دستور فوق باید نوشت:

# siesta < h2.fdf | tee h2.1.00.out

نام فایل خروجی را می توان به صورت دلخواه انتخاب کرد. ولی بهتر طوری انتخاب شود که در آینده قابل فهم باشم. اینجا چون فاصله بین دو اتم هیدروژن یک آنگستروم بود ما اسم فایل خروجی رو به این شکل نوشتیم.

مولکول هیدروژن: نگاهی کلی به فایل های خروجی

حالا میخوایم یه گشتی توی فایل های خروجی بزنیم:

فایل خروجی h2.1.00.out

این فایل خروجی رو باز کنید و به سوالات زیر پاسخ بدید. جواب های خودتون رو می تونید زیر همین پست بنویسید:

  • چند حلقه SCF برای رسیدن به همگرایی نیاز بوده است؟
  • بعد از SCF اترژی کل سیستم چقدر بوده است؟
  • سلول واحدی که به صورت اتوماتیک برای این محاسبه به صورت اتوماتیک ایجاد شده چه ابعادی دارد؟
  • دوقطبی الکتریکی برای مولکول هیدروژن (بر حسب الکترون در بور) چقدر بوده است؟

فایل خروجی SystemLabel.FA

این فایل خروجی رو باز کنید و به سوالات زیر پاسخ بدید. جواب های خودتون رو می تونید زیر همین پست بنویسید:

  • مقدار نیروی روی هر اتم بر حسب الکترون ولت بر آنگستروم چقدر است؟
  • آیا سیستم در پیکربندی تعادلی است؟

مولکول هیدروژن: فاصله ی بین اتمی

هدف: پیدا کردن ساختار تعادلی مولکول

روش اول:

  • محاسبه انرژی کل رای مقادیر مختلف فاصله بین اتمی
  • برازش یک منحنی بر روی نقاط مختلف
  • بدست آوردن کمینه این تابع برازش شده

روش دوم:

  • محاسبه نیرو ها برای فاصله اهی بین اتمی مختلف
  • برازش یک منحنی بر روی نقاط مختلف
  • محاسبه صفر این تابع برازش شده

روش سوم:

  • استفاده از الگوریتمی اتوماتیک برای کمینه کردن انرژی

مولکول هیدروژن: بدست آوردن فاصله ی بین اتمی از روش اول

در فایل ورودی قبلی مقدار فاصله بین اتمی رو از مقدار 0.4 آنگستروم تا 3 آنگستروم با بازه های 0.1 تغییر داده و برای هر کدوم یک اجرای جداگانه بگیرید.

change_in_at_dist

بعد از هر بار ذخیره این فایل ورودی باید دستوری مشابه دستور زیر اجرا کنید تا فایل خروجی مربوطه ذخیره بشه:

# siesta < h2.fdf > h2.your_interatomic_distance.out

که در اینجا برای هر بار اجرا باید به جای your_interatomic_distance فاصله ای که در فایل ورودی وارد کرده اید بنویسید.

بعد از چندین بار اجرای این دستور شما یک سری فایل خروجی خواهید داشت. حال باید انرژی کل رو از تمام این فایل ها بردارید و در یک فایل ذخیره کنید. برای این کار در مسیری که فایل های خروجی قرار دارن می تونید دستور زیر رو وارد کنید:

# grep “Total =” h2.*.out > h2.distance.dat

این دستور کاری که می کنه اینه که میره تو هر فایلی که اول اسمش h2. و آخر اسمش .out هست میگرده عبارت “Total =” رو پیدا می کنه اون خط رو در فایل h2.distance.dat ذخیره می کنه.

بعد از این کار فایل h2.distance.dat رو باز کنید و فقط دو ستون باقی بزارید که اولی فاصله بین اتمی و دومی انرژی کل هستش:

exercise-h2

این اعداد از سیستا نسخه 3 بتا که با کامپایلر g95 کامپایل شده بدست اومده. این اعداد ممکنه برای شما کمی تغییر پیدا کنه.

تو این مرحله شما باید نمودار برای این اعداد رسم کنید. برای رسم نمودار می تونید از برنامه gnuplot استفاده کنید برای اینکار یه ترمینال در مسیری که فایل مورد نظرتون هست باز کنید و توش تایپ کنید gnuplot و enter بزنید بعد دستور زیر رو وارد کنید:

> plot "h2.distance.dat" using 1:2 with lines

بعد از اجرای این دستور نمودار به این شکل خواهید داشت:

h2-dist

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

 [otw_shortcode_button href=”http://www.comphys.ir/wp-content/uploads/2016/09/Files-h2.tar” size=”medium” icon_position=”left” shape=”square” target=”_blank”]دانلود فایل های ورودی این تمرین[/otw_shortcode_button]

 


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


2 دیدگاه

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

    Or use one of these social networks

This site is protected by wp-copyrightpro.com