Tính toán hàm sóng
Để tính toán hàm sóng cho các electron hóa trị trong một tinh thể, ta sử dụng phương pháp trường tự hợp, sử dụng lệnh pw.x của Quantum Espresso. Việc khai báo thông tin cần tập trung vào một file có cấu trúc cho trước.
Một tập tin tính toán trường tự hợp (scf) có cấu trúc gồm các phần:
Control, System, Electrons, Atomic Species, Atomic Positions và K_points
Dưới đây là ví dụ cho tệp tính toán hàm sóng cho tinh thể silic:
&CONTROL calculation='scf', restart_mode='from_scratch', prefix='si', pseudo_dir='../pseudo/', outdir=‘../tmp/', &SYSTEM ibrav=2, celldm(1)=10.2625, nat=2, ntyp=1, ecutwfc=60.0, ecutrho=720.0, &ELECTRONS mixing_beta=0.7, conv_thr=1d-8, ATOMIC_SPECIES Si 28.0855 Si.pbe-rrkj.UPF ATOMIC_POSITIONS (alat) Si 0.00 0.00 0.00 Si 0.25 0.25 0.25 K_POINTS automatic 4 4 4 1 1 1
Diễn giải ý nghĩa từng phần:
&CONTROL – PHẦN ĐIỀU KHIỂN
calculation=’scf’, # Loại tính toán, ‘scf’ là tính toán trường tự hợp (Self-consistent field), tức hàm sóng miêu tả trạng thái của đám mây electron trong lý thuyết phiếm hàm mật độ (DFT).
restart_mode=’from_scratch’,
prefix=’si’,
pseudo_dir=’../pseudo/’, # Khai báo thư mục chứa tệp hàm giả thế \(V_{ion}(r)\).
outdir=‘../tmp/’, Khai báo thư mục chứa file kết quả tính toán
Thư mục pseudo_dir và outdir có vai vế ngang hàng thư mục chứa tệp scf.
&SYSTEM – PHẦN HỆ THỐNG
ibrav=2, # Khai báo loại mạng tinh thể Bravais
celldm(1)=10.2625, # Kích thước mạng tinh thể. Có thể có nhiều chỉ số kích thước. Trường hợp này lập phương tâm khối, chỉ có 1 chỉ số kích thước là cạnh của khối lập phương.
Nếu đặt celldm(1), celldm(2),… đơn vị là alat, tức bán kính Bohr. Nếu đặt là \(a,b,c,\ldots\) – đơn vị là angtrom.
nat=2, # Number of atoms: số nguyên tử trong mỗi ô mạng cơ sở
ntyp=1, # Number of types: số loại nguyên tử. Như silicon thì chỉ có 1 loại.
ecutwfc=60.0, -> Đơn vị Ry (13.6057 eV), là ngưỡng năng lượng của các hàm sóng sin cấu thành hàm sóng tổng hợp.
ecutrho=720.0, -> thường 8-12 ⨉ ecutwfc
&ELECTRONS
mixing_beta=0.7, -> Tỉ lệ trộn giữa mật độ trạng thái cũ và mới. VD 0.7 có nghĩa là mật độ n(r) tiếp theo có 70% từ tính toán vòng lặp mới và 30% còn lại từ vòng tính toán cũ.
conv_thr=1d-8, -> Convergence threshold for self-consistency. Nếu hai trạng thái ở hai vòng lặp liên tiếp khác nhau không quá ngưỡng ngày, thì xem như hàm sóng đã ổn định và đó là kết quả tính toán.
ATOMIC_SPECIES
Si 28.0855 Si.pbe-rrkj.UPF -> Tên nguyên tố, khối lượng nguyên tử và tệp hàm già thế (pseudopotential). Có bao nhiêu loại nguyên tử (ntyp) thì cần bấy nhiêu tệp tương ứng. Những file này có thể lấy trên website của QE:
http://www.quantum-espresso.org/pseudopotentials
Cần lưu tệp hàm giả thế vào thư mục đã khai báo ở phần CONTROL
ATOMIC_POSITIONS (alat)
Si 0.00 0.00 0.00 -> Vị trí của các nguyên tử trong ô mạng tinh thể
Si 0.25 0.25 0.25
K_POINTS automatic
4 4 4 1 1 1
Lưu tệp này với tên bất kì, ví dụ si.scf.in. Để chạy tệp này tính hàm sóng tự hợp, ta dùng lệnh:
pw.x < si.scf.in > si.scf.out
trong đó si.scf.out là tên tập tin miêu tả bức tranh tổng quan của quá trình tính toán. Kết quả tính toán hàm sóng cụ thể chứa trong thư mục outdir=‘../tmp/’. Thư mục này chứa thư mục con kết quả, trong đó có các file
charge-density.dat
data-file-schema.xml
.pbe-rrkj.UPF (copy lại file chứa hàm giả thế)
và các file kết quả tính ra hàm sóng.
Các tham số có thể tham khảo đầy đủ trên trang của QE:
https://www.quantum-espresso.org/Doc/INPUT_PW.html