Pengenalan Quantum ESPRESSO

Quantum ESPRESSO (QE) merupakan kumpulan kode untuk kalkulasi struktur elektronik dan memodelkan material berbasis Density Functional Theory (DFT), plane waves, dan pseudopotential. Artikel ini akan membahas singkat mengenai cara memakai QE serta proses instalasinya. Pertama kita akan coba instalasi QE dulu. Proses instalasinya akan sangat tidak familiar dan membingungkan, khususnya untuk sesama pengguna Windows yang sebelumnya tidak pernah mengenal Linux dan terminal. Tapi dengan kesabaran dan semangat, mudah-mudahan bisa terinstal dengan benar. Jika ada yang error dan tidak disebut di artikel ini, coba cari di internet solusinya. Setelah selesai instalasi, kita akan coba beberapa pekerjaan untuk mengenalkan penggunaan QE.

Kenapa kita memakai QE, padahal ada banyak software lainnya? Sebelumnya lagi, QE untuk apa, atau lebih tepatnya, untuk apa komputasi kalau sudah ada eksperimen? Menjawab pertanyaan terakhir, dengan adanya komputasi, salah satunya kita dapat membuat banyak model percobaan dengan waktu dan biaya yang lebih efisien. Kita dapat memprediksi model untuk eksperimen, karena banyak eksperimen yang mahal. Selain itu, lewat komputasi, kita dapat menjelaskan juga hasil data dari eksperimen. Lalu, Quantum ESPRESSO dipakai karena open source, gratis, powerful, serta banyak penggunanya. QE sendiri sebenarnya seperti kumpulan "software-software" kecil, dan masih di-update sampai sekarang. Dan salah satu keuntungan dari banyak yang menggunakan adalah sudah banyak resource di internet untuk belajar atau untuk menjawab pertanyaan mengenai masalah di QE. Sebenarnya salah satu tools yang banyak dipakai selain QE adalah VASP, tetapi karena VASP berbayar, maka kita akan memakai QE.


Instalasi

Sebelum menginstal, sebenarnya biasanya kita tidak perlu menginstal QE di PC masing-masing. Biasanya kita akan memakai server/HPC untuk menjalankan QE. Hal ini karena PC kita tidak cukup kuat untuk kebanyakan model. Kalaupun kuat, akan sangat lama. Hal ini karena QE memanfaatkan parallelization dalam operasinya, sehingga banyaknya processor sangat membantu. (Bandingkan PC kita yang hanya punya 2 atau 4 core, dengan HPC yang punya gabungan dari puluhan atau ratusan core, tergantung kebutuhan pengguna).

Untuk mempelajari QE, jika tidak punya akses ke HPC, maka kita perlu install di PC kita. Meskipun tidak bisa melakukan pekerjaan yang berat (karena akan sangat lama dan kasihan juga untuk laptop), kita dapat melakukan beberapa pekerjaan kecil dan cukup untuk belajar beberapa hal.

(Catatan: Meskipun QE tidak selalu perlu di instal di PC sendiri (karena sudah ada di HPC), tetap perlu instal tools untuk visualisasi (Langkah 4))

Karena QE berbentuk source package, disarankan menginstal QE lewat Linux. Terdapat beberapa alternatif jika OS yang dipunya bukan Linux:

  1. Untuk Windows, instal WSL (Windows Subsystem for Linux)

  2. Memakai Virtual Machine dengan OS berbasis Linux. Contoh VM seperti VirtualBox.

  3. Memakai Quantum Mobile , VM yang sudah dilengkapi dengan QE dan lainnya.

Pada bagian ini hanya akan dibahas langkah instalasi menggunakan WSL. Jika ingin memakai VM, dapat langsung mengikuti ke Langkah 2. Siapkan waktu 1-2 jam untuk instalasi, karena beberapa bagian perlu menunggu lama.

Langkah 1: Instalasi WSL

Untuk menginstal WSL , terdapat beberapa langkah (bagian ini hanya memberikan cara untuk menginstal WSL versi pertama):

  1. Buka Powershell sebagai Administrator dan ketik dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart.

  1. Instal Linux distribution, pada bagian ini akan dipakai Ubuntu 20.04 LTS. Untuk Windows 10, dapat membuka Microsoft Store dan mencari Ubuntu 20.04 LTS.

  1. Buka Ubuntu (mengetik ubuntu di command prompt atau mencari ubuntu di start menu), tunggu beberapa sebentar sampai instalasi selesai. Setelah selesai, akan diminta memasukan username dan password (password nya memang tidak kelihatan saat diketik).

Jika terdapat isu saat instalasi WSL, dapat konsultasi ke laman ini .

Langkah 2: Instalasi OpenMPI

Sebelum menginstal QE, OpenMPI perlu diinstal terlebih dahulu untuk memakai parallelization supaya kerja QE lebih efisien.

  1. Buka Ubuntu atau terminal (untuk yang memakai VM). Ketik sudo apt-get update. Lalu instal gcc, gfortran, dan g++ dengan mengetik sudo apt-get install gcc g++ gfortran.

  2. Buka website openmpi dan download yang belakangnya .tar.gz.

  3. Pada Ubuntu, pergi ke directory tempat download. Pakai command cd untuk mengganti directory. Biasanya, tempat download ada di C\Users\namauser\Downloads. Untuk pergi ke directory download di Ubuntu, ketik cd /mnt/c/Users/namauser/Downloads (tips: autocomplete menggunakan tab). Ekstrak openmpi-4.1.1.tar.gz dengan menggunakan command tar -zxvf openmpi-4.1.1.tar.gz. Jika ada yang tidak bisa diekstrak karena masalah permission, tambahkan command sudo di depannya, menjadi sudo tar -zxvf openmpi-4.1.1.tar.gz.

  1. Pergi ke directory yang baru tadi, cd openmpi-4.1.1. Lalu ketik sudo ./configure -prefix=/usr/local/openmpi CXX=g++ CC=gcc FC=gfortran. Prosesnya akan memakan waktu beberapa menit.

  1. Setelah ini akan dipakai command make. Kemungkinan command ini belum terinstal, jadi install terlebih dahulu dengan sudo apt install make. Masih di directory openmpi, ketik make. Tunggu sampai selesai, mungkin sampai satu jam. Kemudian ketik sudo make all install. Cek apakah openmpi sudah benar tercompile dengan pergi ke directory openmpi, cd/usr/local/openmpi. (Jika directory tidak ada kemungkinan openmpi belum tercompile dengan benar. Jika kasusnya seperti ini, ketik sudo make clean dan ulangi dari langkah ./configure sebelumnya.)

  2. Terakhir, openmpi akan ditambahkan ke ~/.bashrc. Ketik nano ~/.bashrc kemudian tambahkan kode ini di paling bawah (bagi yang tidak familiar, ini seperti menambahkan Python PATH ke Windows Environment Variable, semacam membuat "shortcut" supaya bisa menjalankan Python di Command Prompt dengan mengetik python).

Untuk paste di nano, klik kanan pada mouse. Untuk save, tekan Ctrl+O (lalu enter untuk save nama), dan keluar tekan Ctrl+X.

# openmpi-4.1.1

export MPIROOT=/usr/local/openmpi

export PATH=$MPIROOT/bin:$PATH

export LD_LIBRARY_PATH=$MPIROOT/lib:$LD_LIBRARY_PATH

export MANPATH=$MPIROOT/share/man:$MANPATH


Langkah 3: Instalasi Quantum ESPRESSO

Setelah WSL dan OpenMPI sudah ada, sekarang QE dapat diinstal dengan baik. Langkah instalasinya mirip dengan OpenMPI, jadi seharusnya tidak kesulitan lagi.

  1. Download terlebih dahulu QE dari GitHub. Sama seperti OpenMPI, download yang belakangnya .tar.gz.

  2. Pergi ke directory tempat download, lalu ekstrak menggunakan tar -zxvf q-e-qe-6.7.0.tar.gz. Dan jangan lupa tambahkan sudo di depannya jika ada operasi yang gagal.

  3. Masuk ke directory QE, cd q-e-qe-6.7.0, lalu ketik ./configure (sekali lagi, jika ada operasi yang gagal, tambahkan sudo di depannya).

  4. Ketik sudo make all untuk compile QE. Karena QE merupakan "kumpulan program", kita kemungkinan tidak akan memakai semuanya. Yang paling sering dipakai adalah pw. Jika hanya ingin meng-compile pw, bisa memakai make pw. Tapi disarankan compile semuanya saja, mungkin suatu saat akan dipakai, supaya tidak perlu susah-susah mengulang instalasinya lagi.

  5. Sekarang directory q-e-qe-6.7.0 tadi bisa kita pindahkan. Disarankan untuk memindahkan tetap di dalam directory /mnt/c/. Misalnya, kita mau pindahkan ke directory /mnt/c/apps/ Untuk memindahkan, pertama-tama keluar dahulu dari directory q-e-qe-6.7.0 menggunakan cd .., lalu memindahkan dengan mv q-e-qe-6.7.0 /mnt/c/apps. Setelah itu, kita dapat mengganti namanya juga menggunakan command mv. Jika ingin mengganti nama menjadi qe, gunakan mv /mnt/c/apps/q-e-qe-6.7.0 /mnt/c/apps/qe.

  6. Terakhir, QE akan ditambahkan ke ~/.bashrc. Ketik nano ~/.bashrc dan tambahkan kode ini di bagian paling bawah (sesuaikan dengan directory sendiri). Setelah selesai, keluar terlebih dahulu dari Ubuntu/Terminal, lalu masuk lagi. Jika kita ketik pw.x, seharusnya muncul tampilan di bawah

# quantum-espresso-6.7

export PATH=$PATH:/mnt/c/apps/qe/bin/

Langkah 4: Instalasi XCrySDen

XCrySDen merupakan tools untuk visualisasi hasil keluaran dari QE. Terdapat beberapa tools lainnya seperti BURAI dan VESTA, tapi yang bisa visualisasi file output QE secara langsung hanya XCrySDen. Ini merupakan salah satu alasan mengapa kita memakai Linux, karena XCrySDen hanya ada di Linux.

  1. Untuk menginstal XCrySDen, pertama download VcXsrv pada link https://sourceforge.net/projects/vcxsrv /.

  2. Instal xcrysden menggunakan sudo apt install xcrysden.

  3. Untuk menjalankan xcrysden, pertama buka XLaunch.exe. Pilih multiple windows, display number ubah menjadi 0, kemudian Next. Pilih start no client, kemudian next. Uncheck native opengl supaya nanti aplikasi terbuka dengan benar, kemudian next. Supaya tidak perlu mengulang kembali configuration nya, save configuration dan simpan di mana saja. Kemudian pada Ubuntu, ketik export DISPLAY=:0 lalu ketik xcrysden.

(Opsional) Langkah 5: Instalasi gnuplot

Untuk membantu plotting, kita dapat menggunakan gnuplot. Sebenarnya tanpa gnuplot, Python dapat digunakan untuk plotting. Instal gnuplot dengan mengetik sudo apt install gnuplot. Ketik gnuplot untuk membuka, jika terdapat error gnuplot: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory, ketik sudo strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.


Memakai Quantum ESPRESSO

Sekarang kita akan mencoba memakai QE. Sebetulnya, untuk memahami QE, perlu setidaknya gambaran besar mengenai Density Functional Theory serta beberapa pemahaman lainnya. Pada artikel ini tidak dibahas dulu mengenai DFT dan teori lainnya. Jadi, input dan file-file yang mendukung sudah disediakan dan sekarang kita mencoba menjalankan QE dan melihat beberapa hasilnya. Teori dan penjelasan QE lebih mendalam akan dibahas di artikel lainnya.

Sebelum memulai, cek terlebih dahulu banyaknya processor yang ada di PC. Pada Ubuntu/Terminal, ketik htop. Di gambar di bawah, terdapat 8 processor. Nantinya, sesuaikan jumlah processor yang akan dipakai dengan spek PC.

Energi Ground State

Pertama, download dan ekstrak file yang akan dipakai untuk latihan ini . Lalu pergi ke directory scf cd practice/scf. Pada directory ini, akan terlihat dua file, yaitu si.in dan Si.pz-vbc.UPF. si.in merupakan file input untuk QE, dan Si.pz-vbc.UPF merupakan pseudopotential. Abaikan terlebih dahulu file pseudopotential. Sebagai catatan, file-file ini hanyalah merupakan sebuah teks, ekstensi .in atau .UPF hanyalah untuk menandakan, jadi semua dapat dibuka di text editor (saran text editor: Notepad++ atau Sublime Text).

Sekarang kita akan mencoba menghitung ground state energy dari silikon. Untuk menjalankan QE, ketik nohup mpiexec -n 2 pw.x < si.in > si.out &. Penjelasan:

  1. mpiexec -n 2 artinya kita memakai OpenMPI untuk parallelization dengan jumlah processor 2.

  2. pw.x adalah "program" QE yang dipakai.

  3. < si.in menyuruh pw.x untuk membaca file (atau artinya input) si.in.

  4. > si.out supaya keluaran dari pw.x ditulis dalam file si.out.

  5. nohup dan & sebaiknya ditambahkan saja supaya pekerjaan dapat ditinggal untuk mengerjakan hal lain.

Tekan ctrl+c untuk keluar dari nohup: redirecting stderr to stdout. Setelah selesai, akan terdapat beberapa file, yaitu si.out, silicon.save, silicon.xml. Kita hanya akan melihat file si.out pada artikel ini. Ketik tail si.out untuk mengecek bagian akhir file, untuk melihat apakah pekerjaan sudah selesai serta melihat berapa lama. Lalu, untuk mencari energi ground state, ketik grep ! si.out. Dari hasil, kita mendapatkan energi ground state -15.84 Ry. Tetapi, pada kalkulasi, energi absolut tidak terlalu berguna. Biasanya kita akan memakai membandingkan energi satu dengan lainnya. Untuk melihat file secara lengkap, dapat mengetik less si.out.

Optimasi Struktur

Pada bagian ini kita akan mencoba optimasi struktur H2 dan Nikel.

Molekul

Kita akan mencoba mencari jarak atom H dengan H. Pertama, pergi ke directory relax. Sama seperti sebelumnya, terdapat file input serta pseudopotential. Jalankan pw.x dengan mengetik nohup mpiexec -n 2 pw.x < h2.in > h2.out. Sekarang, kita akan menggunakan XCrySDen untuk membuka file output h2.out. Buka XCrySDen seperti telah dijelaskan pada Langkah 4 instalasi (membuka config.xlaunch terlebih dahulu dan mengetik export DISPLAY=:0).

Terdapat dua cara untuk membuka output, mengetik xcrysden untuk membuka XCrySDen terlebih dahulu, kemudian pilih file > open PWscf > open PWscf output file. Cara satu lagi adalah langsung membuka file output lewat command line xcrysden --pwo h2.out. --pwo memberikan opsi untuk membuka file output dari hasil PWscf (pw.x).

Menggeser-geser dapat dengan menekan mouse dan menggesernya. Sekarang kita ingin mengetahui jarak antaratom H. Caranya adalah klik Distance di bagian bawah, lalu klik kedua atom H. Setelah selesai, klik done. Nanti akan diberikan jaraknya.

Dari hasil kalkulasi, kita dapatkan jarak antar atom H 0.7527 Angstrom. Jika dicari di internet, jaraknya 0.74 Angstrom, cukup mirip.

Metal

Pada bagian ini kita akan mencoba mencari lattice constant dari Nikel. Jika diingat dari pelajaran kimia TPB (atau SMA), terdapat 14 Bravais Lattice (atau kisi Bravais), seperti BCC, FCC dan lainnya. Nikel termasuk dalam FCC. Kita akan mencari panjang kisinya. Jalankan pw.x seperti sebelumnya nohup mpiexec -n 2 pw.x < ni.in > ni.out. Pada bagian ini, kemungkinan kalkulasi lebih lama dari bagian sebelumnya. Setelah selesai, kita dapat membuka lagi file output ni.out pada XCrySDen.

Dari jarak antar dua atom Ni, kita tahu bahwa jaraknya 3.5212 Angstrom, berarti panjang kisinya juga adalah 3.5212 Angstrom. Jika dicari di internet, panjang kisi dari Ni adalah 3.499 Angstrom, cukup dekat.

Selanjutnya, kita dapat melihat density of state dengan memakai dos.x. Cara menjalankannya mirip seperti pw.x, ketik nohup mpiexec -n 2 dos.x < dos.in > dos.out & Hasilnya akan mengeluarkan dos.out dan ni.dos.

Kemudian kita perlu mencari energi Fermi nya terlebih dahulu. Ketik grep Fermi ni.out. Ambil nilai Fermi terakhir, lalu ubah nilai Fermi di plot_dos dengan mengetik nano plot_dos lalu mengubah baris paling atas. Untuk memplot, gunakan gnuplot dengan mengetik gnuplot plot_dos. Hasilnya akan mengeluarkan DOS.ps. Untuk membuka file postscript, dapat digunakan dos (instal dengan sudo apt install evince jika belum ada). Hasilnya seperti gambar di bawah. Dari spin-up dan spin-down yang tidak simetrik, kita tahu bahwa nikel merupakan sistem magnetik.


Referensi & Link Berguna

Artikel ini hanya membahas sebagian kecil dan sangat sedikit dari apa yang Quantum ESPRESSO bisa. Bahasan yang lebih dalam dan teorinya akan dibahas pada artikel lainnya. Terdapat beberapa link yang dapat digunakan untuk membantu:

Dokumentasi pw.x: https://www.quantum-espresso.org/Doc/INPUT_PW.html

Introduksi QE: https://flex.phys.tohoku.ac.jp/QE/workshop_QE_2016/DFT-hands-on-nguyen.pdf

Introduksi DFT (& QE): https://www.paradim.org/cu_ss_2018


1 thought on “Pengenalan Quantum ESPRESSO”

Leave a Comment

Your email address will not be published. Required fields are marked *