ورود به حساب کاربری

نام کاربری *
رمز عبور *
مرا به خاطر بسپار.

بنیاد توسعه رایانش سریع و ابری

HPC and Cloud Computing Development Foundation

آموزش نصب و استفاده از Espresso

در این مقاله معرفی، روش نصب و  استفاده از بسته محاسباتیQuantm Espresso  (بسته منبع باز برای تحقیقات در زمینه ساختار الکترونی شبیه سازی و بهینه سازی)   در سطح مقدماتی ارائه خواهد شد. هسته اصلی محاسبات در این نرم افزار  بر اساس نظریه تابعی چگالی Density Functional Theory, DFT  و استفاده از توابع موج تخت Plain-Wave,  PW و شبهه پتانسیلpseudopotentials, PP استوار شده است.

  •  (PWscf (Plane-Wave Self-Consistent Field محاسبات خودسازگار با استفاده از PW و DFT
  • (CP (Car-Parrinello محاسبات دینامیک مولکولی برای سیستم‌های متناوب با استفاده از PW و DFT

 

همچنین Quantum Espresso بسته های محاسباتی زیر را دارا می باشد.

  • NEB : محاسبه موانع انرژی energybarriers و مسیرهای واکنشی reactionpathways از روش Nudged Elastic Band
  • Phonon : محاسبات ارتعاشات شبکه با استفاده از نظریه تابعی چگالی اختلالی Density Functional Perturbation Theory, DFPT
  • PostProc :ابزارهایی برای پس پردازش داده ها
  • Pwcond : ا(ballistic conductance) محاسبه رسانایی بالستیک
  • XSPECTRA : محاسبه لبه جذب K طیف های اشعه ایکس
  • vdW : محاسبه دینامیک قطبشی
  • GWW : محاسبات GW با استفاده از توابع Wannier
  • TD-DFPT : محاسبات طیف با استفاده از  نظریه تابعی چگالی اختلالی وابسته به زمان

 

 بسته های محاسباتی کمکی Quantum Espresso.

  • Pwgui: رابط کاربر گرافیکی ، تولید داده های ورودی فایل برای Pwscf
  • atomic :یک برنامه برای محاسبات اتمی و تولید شبه پتانسیل
  • QHA : ابزاری برای محاسبه چگالی حالت تصویر شده (PDOS) و انرژی آزاد در تقریب شبهه هارمونیک(در رابطه با فونون (Phonon) مورد استفاده قرار گیرد)
  • PlotPhon : ابزار رسم طیف پراکندگی فونون (Phonon)

 

 کتابخانه های خارجی مورد نیاز 

  • iotk :an Input-Output ToolKit
  • BLAS and LAPACK
  • در نهایت ، چندین بسته اضافی که در بهره برداری از داده های تولید شده توسط Quantum Espresso می تواند به عنوان plug - in مورد استفاده قرار گیرد.
  • Wannier90 -WanT -YAMBO -PLUMED -GIPAW

 محاسبات در Quantum Espresso به سه دسته Postproc، Phonon، Pwscf تقسیم می شود که در ادامه به توضیح آن خواهیم پرداخت.

 

Pwscf می تواند محاسبات انواع زیر را انجام دهد

  • محاسبات حالت پایه انرژی و اوربیتالهای تک الکترونی کان-شم (Kohn-Sham)
  • محاسبه نیروهای بین اتمی، تنش، و بهینه سازی ساختار یونی
  •  محاسبه دینامیک مولکولی در حالت پایه سطح بورن-اوپنهایمر(Born-Oppenheimer) ، با تغییرات سلول
  • محاسبه قطبش ماکروسکوپی و میدان الکتریکی محدود از طریق تئوری مدرن قطبش(BerryPhases)
  • تئوری مدرن قطبش(Berry Phases)
  • محاسبه انرژی آزاد سطح در سلول ثابت از طریق متا دینامیک. لازم به ذکر است، برای این محاسبه، باید بسته PLUMED  نصب باشد.

همه محاسبات فوق برای هر دو نوع عایق و فلزات، در هر ساختار بلوری، برای بسیاری از  توابع همبستگی-تبادلی exchange-correlation ,XC (از جمله قطبش اسپین، DFT + U، توابع غیرموضعی VdW ،توابع هیبریدی)، شبهه پتانسیلهای بار پایسته Hamann-Schluter-Chiang PPs NCPPs, یا فوق نرم Vanderbilt PPs ,USPPs یا روش PAW ،  Projector Augmented Waves مورد استفاده قرار می گیرد. درمحاسبات مغناطیس غیرهمراستا و برهمکنش اسپین-مدار نیز لحاظ شده است.  همچنین میدان الکتریکی محدود با یک پتانسیل الکتریکی دندان اره ای در یک سلول در بسته پیاده سازی شده است.
NEB مسیرواکنش (reaction pathways) و موانع انرژی (energy barriers) را با استفاده از روشهایNEB Nudged Elastic Band و SMD ، Fourier String Method Dynamics محاسبه می کند.همچنین لازم به ذکر است که در محاسبات NEB  از Pwscf  و  Car-Parrinello  استفاده نمی شود.

Phonon میتواند محاسبات زیر را انجام دهد.

  • محاسبه فرکانسهای فونونی و ویژه بردارهای آنها  با استفاده از نظریه تابعی چگالی اختلالی  Density-Functional Perturbation Theory
  • بار موثر و تانسورهای دی الکتریک
  •  ضریب برهمکنش الکترون-فونون در فلزات
  • برهمکنشهای ثابت نیرو در فضای مستقیم
  • طول عمر فونونهای غیرهماهنگ مرتبه سوم
  • سطح مقطع مادون قرمز و رامان

Phonon هم مانند Pwscf میتواند از DFT+U , VdW استفاده کند. اما USPP و PAW در محاسبات فونونی پیادهسازی نشده اند. محاسبات تقریب شبه هارمونیکQuasi-Harmonic approximations با استفاده از بستهQHA انجام میشود که نیاز به محاسبات چگالی حالتهای فونونی دارد.

PostProc میتواند محاسبات زیر را انجام دهد

  • اسکن تصاویر میکروسکوپ تونل زنی (STM)
  • رسم توابع محلی سازی الکترونی (ELF)
  • چگالی حالتها (DOS) و چگالی حالتهای تصویر شده (PDOS)
  • L ̈wdin charges
  • میانگین گیری سطحی و کروی
  • به علاوه تعدادی ازابزارهای گرافیکی با کد های خارجی

پس از دانلود بسته از لینک  دریافت فایل Espresso  و حصول اطمینان از نصب بودن gfortran یا ifort بسته را به مکان مورد نظر برده و دستور زیر را در ترمینال برای untar شدن بسته انجام می دهیم

tar -zxvf espresso-X.Y.Z.tar.gz$

 

X.Y.Z اعداد ورژن بسته دانلود شده هستند.
پس از آن وارد پوشه تولید شده  espresso-X.Y.Z می‌شویم و دستورات زیر را در ترمینال اعمال می‌کنیم

 

cd espresso-X.Y.Z/ 
./configure 
make all 
پس از اجرای بدون خطای دستورات بالا پوشه bin را باز می‌کنیم اگر فایلهای اجرایی تولید شده بودند از درست نصب شدن بسته مطمئن می‌شویم. به جز پوشه bin پوشه های دیگری که تولید می‌شوند عبارتند از:

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

  • Modules : یک فایل منبع برای ماژول ها که به تمام برنامه ها مربوط است
  • Include : شامل فایلهای منبع برنامه‌های C و Fortran است
  • clib : یک کتابخانه خارجی برنامه C 
  • flib :یک کتابخانه خارجی برنامه Fortran 
  • extlibs : آرشیو کتابخانه‌های خارجیLAPACK, BLAS, iotk
  • install : اسکریپتهای نصب و ابزارهای آن
  • pseudo : شبهه پتانسیل های مورد استفاده مثالها
  • upftools : مبدل به شبهه پتانسیل واحد (UPF)
  • examples: نمونه فایلهای ورودی و خروجی همراه با اسکریپتهایی جهت اجرای آن‌ها
  • Doc : مستندات اصلی
  • archive : شامل plug-in ها با فرمت .tar.gz

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

  • PW                 Pwscf    فایل منبع برای محاسبات خودسارگار (pw.x)
  • pwtools           Pwscf   فایل منبع برای تحلیل برنامه‌های متفرقه
  • tests               Pwscf    تست خودکار
  • NEB               Pwneb   فایل منبع برای محاسبات NEB  ا (neb.x)
  • PP              PostProc    فایل منبع برای پس پردازش  فایل اطلاعات pw.x
  • PH                Phonon   فایل منبع برای محاسبات فونونی و تحلیل آن‌ها (ph.x)     
  • Gamma         Phonon   فایل منبع برای محاسبه فونون  نقطه Gamma ا (phcg.x)
  • D3                Phonon    فایل منبع برای محاسبات مشتق مرتبه سوم (d3.x)
  • PWCOND      Pwcond    فایل منبع برای محاسبه رسانش (pwcond.x)
  • vdW                 VdW    فایل منبع برای محاسبات قطبش مولکولی در فرکنسهای محدود
  • CPV                    CP     فایل منبع برای محاسبات Car-Parrinello ا (cp.x)
  • atomic           atomic    فایل منبع برای تولید شبهه پتانسیل (ld1.x)
  • atomic_doc                  فایل منبع برای محاسبه مثالهای atomic
  • GUI               PWGui     رابط کاربر گرافیکی

پس از دانلود بسته مثالها از لینک http://www.quantum-espresso.org/download.php دستور زیر را در ترمینال اعمال می کنیم

tar -zxvf /path/to/package/espresso-X.Y.Z-examples.tar.gz$

با انجام این کار تعدادی زیر پوشه به پوشه /espresso-X.Y.Z اضافه می‌شود که شامل دو دسته می‌باشند 

  • تست خودکار که شامل پوشه های tests و cptests می‌باشد و فقط برای pw.x وcp.x پیاده‌سازی نشده است.
  • و مثالها که در پوشه examples قرار دارند.

دستورالعمل و اینکه هرکدام از مثالها چه محاسبه ای را انجام می‌دهند در یک متن به آدرس examples/README گنجانده شده است. علاوه بر آن در هر مثال یک متن به نام README وجود دارد که در آن قابلییتها و توانایی‌های آن مثال را توضیح می‌دهد.
برای اجرای مثالها موارد زیر را دنبال کنید.
ابتدا باید مسیر فایلهای   bin, pseudo و tmp را در فایل environment_variables  به صورت زیر ویرایش کنیم.

BIN_DIR=$PATH/bin
PSEUDO_DIR=$PATH/pseudo
TMP_DIR=$PATH/tmp

البته پیش‌فرض (default) اعمال شده در برنامه احتیاجی به ویرایش ندارد. فقط در صورتی که کاربر مکان این سه پوشه را تغییر داده باشد باید مسیر جدید را به جای PATH در سه عبارت بالا قرار دهد.
اگر Quantum Espresso روی کامپیوترها به طور موازی نصب شده بود در فایل  environment_variables باید نوع driver program و تعداد پردازشگر ها را به ترتیب در  PARA_PREFIX و PARA_POSTFIX معین کنید. به عنوان مثال اگر دستور اجرای برنامه در ترمینال به صورت زیر باشد

poe pw.x -procs 4 < file.in > file.out 

ویرایش را به صورت زیر انجام می‌دهیم 
"PARA_PREFIX="poe
PARA_POSTFIX="-procs4 
در نهایت با اجرای دستور  

run_example/.

فایلهای ورودی و خروجی برنامه در پوشه results تولید می‌شود که می‌توان نتایج را با فایلهای خروجی داخل پوشه reference مقایسه و از صحت اجرای صحیح برنامها اطمینان حاصل کرد.  

 

برای اجرای بعضی برنامه‌ها  باید مسیر pseudo و tmp را در فایل ورودی طبق دستورالعمل مشخص نماییم. 
فرض کنید  فایل file.in را برای محاسبه scf  در یک پوشه با مسیر مشخص آماده نموده‌اید. ابتدا با استفاده از دستور زیر به مکان پوشه می‌رویم و پوشه را باز می‌کنیم 

$cd Path to file/


سپس با دادن مسیر پوشه فایل اجرایی به صورت زیر برنامه را اجرا می‌کنیم

Path of the bin directory from root/pw.x < file.in > file.out/$