Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf ·...

28
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

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 ·...

Page 1: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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

Page 2: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

Bài 1:Giới thiệu

Under construction.

Page 3: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

● 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/

Page 4: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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

Page 5: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

– 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...

...

Page 6: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

● 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

...

Page 7: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm
Page 8: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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

Page 9: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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

Page 10: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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

Page 11: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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

Page 12: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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ừ

Page 13: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

● 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)

Page 14: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

● 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

Page 15: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

● 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

Page 16: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

● 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

Page 17: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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

Page 18: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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:

Page 19: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

Độ 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

Page 20: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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...

Page 21: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

● Sử dụng môi trường terminal

Một số câu lệnh cơ bản trong Linux

Page 22: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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

Page 23: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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...

Page 24: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

● 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

Page 25: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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

Page 26: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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)

Page 27: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

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

Page 28: Trịnh Xuân Hoàng Viện Vật lý 10 Đào Tấn, Ba Đình, Hà Nộihoang/smp/lecture1.pdf · 2018-07-10 · Một số khái niệm Mô phỏng máy tính: dùng phần mềm

● 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