Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf ·...
Transcript of Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf ·...
Trịnh Xuân Hoàng
Viện Vật lý10 Đào Tấn, Ba Đình, Hà Nội
Mô phỏng và mô hình hóa
Bài 1:Giới thiệu
Under construction.
● Sách tham khảo:
– Computer simulations of liquids, Allen & Tildesley, Oxford University Press (1991)
– Understanding molecular simulations, Frenkel & Smit, Academic Press (2002)
– Numerical Recipes in Fortran 90 ● http://www.nrbook.com/
Một số khái niệm● Mô phỏng máy tính: dùng phần mềm thiết lập một tình huống
giả định (một quá trình, một trạng thái) trên máy tính thông qua một mô hình.
● Mô hình: là một cách mô tả toán học về một hệ vật lý. Một hệ có thể được nghiên cứu bằng nhiều mô hình khác nhau, sao cho phù hợp với bài toán đặt ra và phương pháp giải quyết bài toán.
● Mô phỏng máy tính được ứng dụng rộng rãi:
– mô phỏng động lực học chất lỏng
– mô phỏng vật liệu
– mô phỏng các thí nghiệm vật lý hạt cơ bản
– mô phỏng phản ứng hạt nhân
– mô phỏng các phản ứng hóa học
– mô phỏng các hệ phân tử sinh học: protein, ADN, ARN, màng tế bào...
– mô phỏng các hệ sinh thái: mạng thức ăn (food web), ứng xử bầy đàn (bird flocking, fish schooling)
...● Vai trò của mô phỏng:
– kiểm chứng lý thuyết, tiên đoán thực nghiệm. Nhanh và rẻ hơn so với làm thí nghiệm.
– trong nghiên cứu: tìm hiểu cơ chế vi mô của một hiện tượng, tính toán các tính chất của vật liệu, khảo sát sự chuyển pha...
– ứng dụng trong công nghệ: thiết kế vật liệu mới, thiết kế linh kiện điện tử, thiết kế thuốc chữa bệnh...
...
● Phân loại mô phỏng máy tính:
– Tất định (deterministic) vs. ngẫu nhiên (stochastic). Chú ý: tất định bao gồm cả hỗn loạn (chaotic).
– Cổ điển vs. lượng tử● Một số phương pháp mô phỏng máy tính:
– Động lực học phân tử (Molecular Dynamics hay MD): giải phương trình chuyển động cổ điển, là p/p tất định
– Monte Carlo (MC): lấy mẫu theo phương pháp ngẫu nhiên
– Mô phỏng từ nguyên lý ban đầu (ab initio simulation): sử dụng cơ học lượng tử
– Hybrid QM/MM
...
Một số phương pháp mô phỏng
● Monte Carlo: phát minh bởi von Neumann, Ulam và Metropolis (phòng thí nghiệm Los Alamos) vào 1940s.
● Molecular Dynamics: Alder & Wainwright (phòng thí nghiệm Lawrence Livermore) cuối 1950s
● Ab initio methods using DFT: Car-Parrinello 1985
● QM/MM: quantum mechanics/molecular mechanics
Máy tính điện tử
● Ý tưởng: Turing machine (Alan Turing 1936)● Máy tính điện tử sử dụng bóng chân không: 1940s ● 1947: phát minh ra transitor bán dẫn ● Định luật Moore (1965): trung bình cứ sau 18 tháng
tốc độ CPU tăng gấp đôi ● Chíp bán dẫn hiện nay: kích thước 1 transistor đạt
14 nm (gần ngưỡng), xung nhịp 4.4 Ghz
Máy tính song song ● Máy siêu tính: nhiều máy tính kết nối mạng tốc độ cao,
hiện nay có thể đạt tốc độ tính toán cỡ 1015 phép tính số thực trên một giây (peta-FLOPS, PFLOPS)
● Vi xử lý đa nhân (multi-core processors):
– Intel Xeon E7: 15 cores– AMD Opteron 6000 Series: 16 cores– Intel Xeon Phi: 60 cores
● GPU computing: tính toán trên card đồ họa.
● Giao thức phần mềm cho tính toán song song:
– MPI: message passing interface– CUDA: thư viện cho GPU
Tính toán hiệu năng cao
● Chạy trên các máy tính song song● Sử dụng bộ nhớ dùng chung (shared
memory): bộ nhớ trên cùng một máy tính● Sử dụng bộ nhớ phân tán (distributed
memory): bộ nhớ trên nhiều máy tính khác nhau
● Có thể kết hợp cả 2 cách sử dụng bộ nhớ trên
Một số mô hình vật lý
● Mô hình chất lỏng Lenard-Jones● Các mô hình polymer:
– mô hình chuỗi hạt (bead-and-spring model)– mô hình worm-like chain (WLC): polymer có
độ cứng ● Mô hình Ising: mô tả hệ spin sắt từ
● Mô hình chất lỏng Lennard-Jones
pair potential for Argon
--- Lennard-Jones
bán thực nghiệm
V r =4 [r 12
−r 6
]6-12 Lennard-Jones potential:
Hamiltonian:
H=∑i
pi2
2m+∑i< j
V (r ij)
● Mô hình chuỗi hạt:
H=∑i
pi2
2m+K2 ∑i=2
N
(r i−1 , i−b)2+∑i< j
V (r ij)
thế năng điều hòa
thế năng tươngtác cặp
động năng
● Mô hình Kratky-Porod (worm-like chain)
E=−κ∑i=2
N
t⃗ i−1⋅⃗t i=−κ∑i=2
N
cosθi
⟨ t⃗ i⋅⃗t j ⟩=e−b|i− j|
ξ
ξ=κbk BT
persistence length
κ > 0độ cứng
t⃗ i
|⃗t i|=1
● Mô hình Ising
H=−∑⟨ij ⟩
J ij si s j−μH 0∑i
si
s=±1J
ij - năng lượng trao đổi giữa các spin
J > 0 sắt từ (ferromagnet)J < 0 phản sắt từ (anti-ferromagnet)
tương tác giữa các cặp lân cận gần nhất
Tổng số trạng thái của hệ:
Mô hình Ising trong 2 chiều có lời giải chính xác: L. Onsager (1944)
2N
Hệ spin trên mạng 2 chiều hoặc 3 chiều
tương tác vớitừ trường ngoài H
0
Sai số trong mô phỏng
● Sai số trong tính toán:
– Sai số làm tròn: có thể dùng các biến với độ chính xác kép (double precision) để giảm sai số làm tròn
– Sai số ngẫu nhiên: không tránh được, có thể giảm khi tăng thời gian mô phỏng
– Sai số hệ thống: do thuật toán sai, cần sửa lại. ● Hiệu ứng kích thước hữu hạn: hệ được mô phỏng
thường nhỏ hơn rất nhiều so với hệ thực tế, do vậy các tính chất có sự thay đổi
Sai số làm tròn Biểu diễn số thực trên máy tính:
Biểu diễn single precision:
Độ chính xác trong biểu diễn số thực trên máy tính
● Single precision: 32 bit– sign: 1 bit, exponent: 8 bit, significand: 23 bit– độ chính xác đạt 10-7
● Double precision: 64 bit– sign: 1 bit, exponent: 11 bit, significand: 52 bit – độ chính xác đạt 10-15
Hệ điều hành
● Windows: mã nguồn đóng, nhiều người sử dụng nhất, thiếu ổn định, đắt tiền
● Mac OSX: mã nguồn đóng, thân thiện và ổn định, chỉ chạy trên máy Mac.
● Linux: mã nguồn mở, khá thân thiện, chạy trên rất nhiều phần cứng khác nhau: từ điện thoại di động (Android), laptop, máy để bàn, máy chủ cho tới các siêu máy tính mạnh nhất.
– các phiên bản Linux thông dụng nhất: Ubuntu, RedHat/Fedora, Mandriva...
● Sử dụng môi trường terminal
Một số câu lệnh cơ bản trong Linux
pwd hiển thị thư mục hiện tại
ls liệt kê nội dung thư mục
ls -l liệt kê theo format dài (long)
mkdir name tạo thư mục
cd dir vào thư mục
cd .. thoát ra khỏi thư mục
cp file newfile copy file to new file
rm file xóa file
rm -rf dir xóa thư mục
mv file newfile đổi tên file
more file xem nội dung file
vi file edit file
man cmd hướng dẫn sử dụng câu lệnh cmd
Các chương trình edit file:
– vi dùng trong terminal, gọn nhẹ– vim vi improved– pico có menu– gedit– emacs
Các chương trình vẽ đồ thị:
– gnuplot, xmgrace
Các chương trình xử lý file text, dữ liệu:
– awk, grep, head, tail...
● Editor vi, vim:
vim filename
i vào insert mode
Esc thoát khỏi insert mode
/string search for string
dd xóa cả dòng
v visual selection
Ctrl+v block selection
y copy
p paste
:wq write to file and quit
:q! quit without saving
Ngôn ngữ Fortran 90
● Là ngôn ngữ lập trình bậc thấp, thường được sử dụng trong tính toán hiệu năng cao
● Được cải tiến từ Fortran 77● Ưu điểm: đơn giản, dễ sử dụng, tính toán
nhanh● Trình biên dịch:
– GNU Fortran: gfortran– Intel Fortran: ifort
Fortran 90● Dịch chương trình:
gfortran myprog.f90 -o myprog -O2
ifort myprog.f90 -o myprog -O2● Chạy chương trình:
./myprog● Cấu trúc chương trình
● Khai báo biến
● Điều kiện, vòng lặp
● Đọc và in dữ liệu
● Tạo số giả ngẫu nhiên (pseudo-random number)
program myprogimplicit noneinteger :: ireal :: x,y,f
call mysub
do i=1,10 x=i y=i*2 print *,f(x,y)enddo
call mysub
contains subroutine mysub print *, “Hello” end subroutine mysub
function f(x,y) real :: f,x,y f=x*x+y*y end function fend program myprog
● Chương trình tính số pi bằng phương pháp Monte Carlo
program tinhpireal :: x,y,rinteger :: i,n,ntotal,k=1integer, dimension(1) :: seed
n=0ntotal=1000000000
call random_seedcall random_seed(size=k)call random_seed(put=seed(1:k))
do i=1,ntotal call random_number(x) call random_number(y) r=sqrt(x*x+y*y) If(r < 1.0) then n=n+1 endif if(mod(i,100000000) == 0) then print *,i,float(n)/i*4 endifenddo
end program tinhpi