لینک دانلود فایل کمکی ABINIT موجود درسایت ABINIT.
قسمت اول:مقدمه
شبیه سازی رایانه ای به ابزاری بسیار مهم در شاخه های گوناگون علوم از جمله فیزیک، شیمی، زیست، و حتی علوم مهندسی و پزشکی-دارویی تبدیل شده است.
محدوده کاربرد شبیه سازی های رایانه ای در دو دهه گذشته فوق العاده بوده بطوری که در کشورهای پیشرفته به رشته ای جدید و مستقل که علوم محاسباتی خوانده می شود، بدل شده است.
در شاخه فیزیک ماده چگال، کدها و نرم افزارهای زیادی برای شبیه سازی رایانه ای وجود دارد، که هر کدام از این
بسته های نرم افزاری بر پایه ی تئوری های خاص مربوط به خود و با قابلیت های محاسباتی متفاوتی کار می کنند.
کدهایی از جمله exc، siesta، yambo، vasp، wien2k، espresso، abinit و...
که در ادامه به معرفی کد ABINIT خواهیم پرداخت.
کد ABINIT یک بسته محاسباتی منبع باز در زمینه علم مواد است. با استفاده از این بسته نرم افزاری می توان انرژی کل، چگالی بار و ساختار الکتریکی سیستم های متشکل از الکترون-هسته (مولکول ها و جامدات متناوب) را بر پایه نظریه تابعی چگالی DFT با استفاده از امواج تخت و شبه پتانسیل ها بدست آورد.
این بسته قابلیت محاسبه ی اکثر تقریب های انرژی تبادلی-همبستگی مانند LSDA، GGa، LDA، و ... را دارد.
در درون بسته ABINIT ابزارهایی به نام optic ,mrgddb, cut3D ,anaddb و ... برای بدست آوردن
خواص بیشتر و آنالیز خروجی های بدست آمده با ABINIT وجود دارد.
علاوه بر محاسبات حالت پایه الکترونی مواد، ABINIT از نظریه تابعی چگالی اختلالی DFPT برای محاسبه توابع پاسخ استفاده می کند:
بر هم کنش الکترون-فونون و خواص ابر رسانایی
خواص پیزوالکتریک و الاستیک
بررسی خواص ترمودینامیکی و دینامیکی
قطبش و پاسخ به میدان های الکتریکی متناهی
پاسخ های غیر خطی، شامل پذیرفتاری الکتریکی غیر خطی، تانسور رامان غیر تشدیدی، اثر الکترو اپتیکی
بررسی خواص مغناطیسی و برهم کنش اسپین-مدار
و ...
ABINIT همچنین می تواند با استفاده از نظریه تابعی چگالی وابسته به زمان TDDFT و یا نظریه اختلال بس ذره ای در تقریب GW و حل معادله بت-سلپیتر، حالات برانگیخته یک ماده را بررسی کند.
از میان کدهای مطرح شده در بالا کد yambo نیز توانایی انجام محاسبات TDDFT و GW را دارد، ولی برای استفاده از این کد باز هم نیاز به خروجی های مربوط به حالت پایه داریم که این خروجی باید با استفاده از کد pwscf و یا abinit بدست آمده باشد.
در آینده طرز کار با ABINIT و چگونگی اجرای آن را توضیح خواهم داد.
قسمت دوم: دانلود و نصب ABINIT
برای شروع کار با ABINIT شما ابتدا باید پکیج ABINIT رو دانلود کنید.
برای این کار اول به سایت زیر برید:
سایت ABINIT بخش های مختلف و مفیدی داره ک بد نیست روشون کلیک کنید و باش آشنا شید.
اون بخشی که الان ما باش کار داریم، قسمت downloads هست، روی قسمت دانلودها کلیک کنید
بعد --> : ABINIT source packages و بعد -->Download ABINIT
از این قسمت می تونید بسته ABINIT رو دانلود کنید.
تا چند وقت قبل ABINIT بصورت مجزا برای سه پلت فرم ویندوز، مک و لینوکس ارائه می شد ولی تازگی ها فقط یک
پکیج وجود داره که برای تمام پلت فرم هاست.
پس تا اینجا ABINIT رو خیلی راحت دانلود کردیم، حالا می مونه نصب ABINIT .
ABINIT یک پکیج منبع باز هست ک تحت لینوکس اجرا میشه، برای کار با ABINIT شما نیاز به یک توزیع
لینوکس مثل اوبونتو، رد هت و ... دارید.
برای کسی که تازه کاره اصولا اوبونتو رو پیشنهاد میدن، اونم بخاطر راحتی کار با اونه، از بین توزیع های مختلف لینوکس، اوبونتو بیشترین تعداد کاربری رو داره.
حالا فرض می کنیم سیستم شما مجهز به یک توزیع لینوکسه.
قبل از نصب ABINIT شما نیاز به یک کامپایلر فرترن دارید، اول باید یک کامپایلر فرترن نصب کنید، مثل ifort و یا gfortran
الانه ک می تونید پکیج ABINIT رو نصب کنید.
داخل خود بسته ABINIT یک راهنمای نصب وجود داره که می تونید با استفاده از اون پکیج رو نصب کنید
و یا از فایل های اموزشی روی خود سایت استفاده کنید، مسیر زیر:
Home Documentation Help files for v7.6 install_notes
نصب سختی نداره، فقط با زدن سه تا دستور نصب میشه. اول پکیج رو از زیپ در میارید بعد می رید تو مسیرش و
بعد configure, ./make, ./make install/. رو میزنید.
اینم راهنمای نصبیه که تو خود پکیج هست:
Quick install, starting from the tar.gz file :
(1) download, gunzip and untar the file
abinit-x.y.z.tar.gz
where x.y.z is to be replaced by the actual numbers that characterize the version of ABINIT.
(2) cd abinit-x.y.z
(3) ./configure
(4) ./make
(5) optionally : ./make install
در حین نصب شاید به یک گیرهایی بربخورید که باید سعی کنی تا اون گیرها رو درست کنی و پکیج نصب شه.
اگه ABINIT درست نصب شده باشه، توی ترمینال ABINIT رو بنویسید، باید این پیغام رو بتون بده:
ABINIT
Give name for formatted input file:
اگه این پیغام رو دیدید یعنی نصب شده وگرنه تلاش کن تا نصب شه، تو می تونی.
قسمت سوم: شروع کار با ABINIT
خب برای شروع کار با هر کد محاسباتی ای از جمله ABINIT نیاز هست شما با یک سری از تئوری ها آشنا باشید
پیشنهاد خود ABINIT اینه که اگه اولین باره که از یک کد استفاده می کنی، حتما کتاب زیر رو یه نگاهی بندازی:
نام کتاب: Electronic Structure
نام نویسنده: Richard M. Martin
در قسمت دانلود کتاب وبلاگ لینک دانلود کتاب رو گذاشتم.
شکل زیر در یک نمای کلی تمام کاری که برای شبیه سازی با ABINIT باید انجام بدید رو نشون میده:
یک سری فایل ورودی (که سه تا فایل هست) به ABINIT میدی، ABINIT رو ران (اجرا) می کنی و
خروجی های مورد نظرت رو بدست می آری.
حالا من تو این قسمت براتون توضیح میدم اون ورودی هایی که لازم هست آماده کنی چی هستن؟!
شما طرز استفاده از کد رو یاد بگیری هر کدوم از محاسباتی که کد ارائه میده رو می تونی انجام بدی
فقط کافیه با تئوری مربوط به اون آشنا باشی و بدونی قراره چی بدست بیاری.
دیگه بریم سراغ شروع کار:
کار با ABINIT کدنویسی کردنه، شما الان دیگه پکیج کد رو در اختیار داری، پکیج رو باز کن برو تو این قسمت
doc==>tutorial اینجا یسری فایل html هست که همه چی رو برای شما توضیح داده، از اینکه ABINIT چی هست تا
فایل های آموزشی برای انجام هر محاسباتی که ABINIT می تونه انجامش بده.
قدم به قدم برات توضیح داده که مثلا می خوای خواص الاستیکی بدست بیاری چکار کن، از کدوم فایل ها
استفاده کن و ... . من ی نمای کلی از کار کردن با ABINIT رو میگم چون با جزییات باشه طولانی و گیج کننده
میشه، پس اول از همه سراغ این قسمت برو تا هر چی خواستی رو باز کنی و باش آشنا شی.
شما برای شروع کار نیاز داری تا سه فایل رو آماده کنی.
حالا این سه تا فایل چی هستن؟
اول: یک فایل ورودی با پسوند .in
دوم: یک فایل که بش میگن file names با پسوند .files
سوم:فایل های مربوط به شبه پتانسیل
حالا چجوری این سه تا فایل رو آماده کنی؟
اول از همه فایل مربوط به شبه پتانسیل
خب شما دارید یک محاسباتی رو برای یک ماده مشخص انجام میدید، مثلا ماده شما سیلیکون هست، شما فقط
کافیه فایل شبه پتانسیل مربوط به عنصر سیلیکون رو داشته باشی، از کجا بیارمش؟ فقط کافیه دانلودش کنی
برو تو سایت ABINIT و از اینجا دانلودش کن : Home Downloads Pseudopotentials
تو این قسمت که بری برات جدول تناوبی رو میاره رو هر کدوم از عنصرهاش که کلیک کنی
فایل شبه پتانسیلشو بت میده. فایل های شبه پتانسیل یسری فایل آماده هستن، که تو فقط قراره
ازشون استفاده کنی نه اینکه بسازیشخب این از فایل شبه پتانسیل.
حالا یک فایل باید داشته باشی که اون هم فایل ورودی هست.این فایل فایل مهمیه، حالا چی هست این فایل؟
شما یک صفحه رو در نظر بگیر، با هر ادیتوری wordpad، notepad، gedit و ... حالا تو این صفحه با استفاده از
یک سری متغیر ورودی که کد ABINIT اونا رو می شناسه ما کدنویسی می کنیم و به ABINIT می گیم ما داریم بتو
چی میدیم و از تو چی می خوایم. نترسید کار سختی نیست برای هر محاسبه ای این فایل های ورودی آماده هست و
تو خود پکیج وجود داره، فقط کافیه شما اون رو متناسب با نیاز خودت و برای ماده مورد نظر خودت ادیتش کنی.
پس در یک کلام شما یسری متغیر ورودی داری که قراره باش کد نویسی کنی پس لازمه که باشون آشنا شی
و بدونی هر متغیر چکاری رو انجام میده، متغیرهایی مثل متغیرهای زیر:
A. acell angdeg
E. ecut
I. iscf ixc
J. jdtset
K. kpt kptnrm kptopt
N. natom nband ndtset ngkpt nkpt nshiftk nsppol nstep nsym ntypat
O. occopt
R. rprim
S. scalecart shiftk symrel
T. tnons toldfe toldff tolrff tolvrs tolwfr typat
U. udtset usewvl
W. wtk wvl_hgrid
X. xangst xcart xred
Z. znucl
تو پکیج ABINIT یک قسمت به اسم INPUT VARIABLES وجود داره، رو هر کدوم از متغیرها کلیک کنی براتون
توضیح میده که این متغیر چکار می کنه.
این شکل یک نمایی از محتویات فایل ورودیه که پسوندش .in هست.
هر عبارتی که بعد از # قرار میگیره به صورت کامنت هست، یعنی کد اون رو در نظر نمیگیره، بیخیالش میشه.
خب این هم از فایل ورودی، یکم سخت میشه بیشتر توضیح بدم.
می مونه یک فایل دیگه به اسم file names و یا files file.
ساختن این فایل خیلی راحته، فقط قراره 6 تا نیم خط توی یک ادیتور تایپ کنی
چی بنویسی حالا؟ این شش نیم خطی که الان توضیح میدم. برای هر اجرای ABINIT فرم کلی این فایل
به همین صورت و به همین ترتیبه.
یک تکس ادیتور باز کن و توش این عبارات زیر رو بنویس.
خط اول اسم فایل ورودی تو هست، تو داری به کد می گی که ورودی ای که داری اسمش چیه
خط دوم اسم فایل خروجی اصلی هست
خط سوم و چهارم اسم فایل ورودی و خروجی فرعی هست
خط پنجم اسم فایل موقتی temporary file هست <همون فایلی که وقتی اجرای برنامه تموم شه اون هم از بین میره>
و خط آخر اسم فایل شبه پتانسیلی که داری استفاده می کنی
<این اسم هایی که داری می بینی همشون دلبخواه هست مثلا ab نباشه اسمشون nasim باشه عدد 123 باشه
هر چی دلت خواست اسمشو بذار، اصلا مهم نیست ولی فرمت ها مهمه in و out گذاشتن و i و o گذاشتن مهمه>
حالا که اینا رو توش نوشتی فایلت رو ذخیره کن با پسوند .files
این هم سومین فایل ورودیت.
دیگه می تونی بری سراغ ران ABINIT
قسمت چهارم: اجرای (Run) کد ABINIT و بدست آوردن خروجی
تو قسمت قبل با فایل های ورودی مورد نیاز آشنا شدیم، الان شما دیگه می تونید کد رو اجرا کنید.
خب توی یک مسیری این سه تا فایل ورودی کنار هم ذخیر شده، هر کدوم از این فایل ها که وجود نداشته باشه
کد اجرا نمیشه و به شما error میده.
توی ترمینال یک cd بزن و وارد این مسیری شو که فایل هات توش ذخیره شدن تا کد رو run کنی
برای run کردن ABINIT فقط کافیه دستور زیر رو بزنی
> و < همون علامت کوچیک تر و بزگ تر روی کیبورد هست و ab.files اسم همون files file
که تو قسمت قبل آماده ش کردی.
وقتی در ادامه ی این دستور log رو هم بزنی، توی خروجی بتو یک log فایل هم میده،
هر error و warning ای که اجرای کد داشته باشه تو این log فایل قابل رویت هست.
خب اصلا واسه چی کد رو اجرا کردی؟ واسه اینکه خروجی های مورد نظرت رو بدست بیاری، اگه هیچ اروری وجود
نداشته باشه و کد تا آخر اجرا بشه خروجی های مورد نظرت هم بدست میاد، و در کنار اون سه فایل ورودیت،
فایل های خروجی دیگه هم ظاهر میشه. یک خروجی اصلی با پسوند .out یک
خروجی که توش مقادیر ویژه انرژی هست، یک خروجی که توابع موج رو بت میده، یک خروجی که
چگالی بار رو بت میده و ... .
خب دیگه این هم از قسمت ABINIT فک کنم همین قدر توضیح کافی باشه.ا
این تصاویر آخر واسه خودم بوده ها، با دستای خودم ساختم
مثل همیشه برای اطلاعات بیشتر contact me.
خروجی های خودم
اینا هم نتایج محاسباتی هست که برای نانولوله کربنی (8,0) بدست اوردیم با کمک استادا
یک ساختار نواری band structure با DFT+LDA:
یک ساختار نواری شبه ذره ای quasiparticle band structure یا بعبارتی ساختار نواری دقیق تر
که با MBPT+GW بدست میاد (مقدار گپ بهتر رو میده):
یک طیف جذب شامل اثرات اکسیتونی
(ازین الکی ها نه ها! اثرات اکسیتونی هم توش لحاظ شده، مدلی که به واقعیت نزدیک تره)
که با حل معادله بت-سلپیتر بدست می یاد.
این شکل های بالا در حد پلات کردن هست با هر نرم افزاری که نمودار می کشی، راحت خروجی هاتو پلات می کنی.
این هم خروجی چگالی بار هست charge density که من با نرم افزار VESTA (لینک) کشیدمش.
برای اینکه بتونی بکشیش باید اول یه تبدیل فرمت انجام بدی.