a. Chạy chương trình nlvitri.c tuần tự các bước:
Bước 1: Đọc kích thước l, số nguyên tử n và vị trí các nguyên tử (x[i], y[i], z[i]) của mô hình từ file vdh.dat
Bước 2: Xác định lưới ban đầu đưa vào mô hình gồm số hạt khuếch tán na và vị trí ban đầu (xa[i], ya[i], za[i]) của các hạt khuếch tán. Mô hình được gieo vào một lưới với số mắt (nt)x(nt)x(nt) cùng với 3
nt hạt khuếch tán tại các vị trí mắt lưới (Bảng 2.1). Vị trí các hạt khuếch tán được chấp nhận khi năng lượng vị trí của hạt khuếch tán tại đó bé hơn giá trị cực đại của năng lượng vị trí (trong chương trình lấy bằng 5).
Mẫu 1024 2000 2500 3000 4000 5000
nt 71 101 111 121 131 151
Bước 3: Dưới tác dụng của lực tổng hợp (do tất cả các nguyên tử nền) tỏc dụng lên nguyên tử khuếch tán làm cho nguyên tử khuếch tán dịch chuyển (dxa[i], dya[i], dza[i]). Kết hợp với việc sử dụng điều kiện biên tuần hoàn ta xác định được vị trí, năng lượng vị trí mới của các nguyên tử khuếch tán và được ghi thành file nlvitri.dat.
Bước 2 và bước 3 được chạy cho tới khi năng lượng vị trí của các nguyên tử khuếch tán đạt trạng thái ổn định.
b. Chạy loai.c (loại thô), bỏ đi các hạt khuếch tán cú cựng vị trí (sai số là r1 = 0.02Å) và chỉ giữ lại một hạt.
c. Chạy tiếp chương trình nlvitri.c có dịch thêm hai chương trình con Loai(), Kiemtra().
- Chương trình con Loai() cho phép ta loại đi các hạt có cùng một vị trí (sai số r1 = 0.02Å) chỉ giữ lại một hạt.
- Chương trình Kiemtra() cho phép ta xác định khoảng cách nhỏ nhất giữa các nguyên tử chỉ ra 2 nguyên tử đó.
Kết thúc chương trình này ta được file nlvitri.dat chứa: + Số nguyên tử lưới.
+ Kích thước lưới.
+ Số nguyên tử khuếch tán.
+ Số thứ tự nguyên tử khuếch tán i, tọa độ nguyên tử khuếch tán (xa[i], ya[i], za[i]) và năng lượng vị trí u của nguyên tử khuếch tán.