MỤC LỤC
LỜI CAM ĐOAN
LỜI CẢM ƠN
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT THƯỜNG SỬ DỤNG .iii
DANH MỤC CÁC BẢNG. iv
DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ . v
MỞ ĐẦU . 1
I. TÌNH HÌNH NGHIÊN CỨU VÙNG CỬA SÔNG TÂY NAM VIỆT NAM . 4
1.1 Nghiên cứu trong và ngoài nước về thủy động học và môi trường cửa sông, áp
dụng mô hình số trị cho vùng nghiên cứu. 4
1.2 Điều kiện tự nhiên của vùng cửa sông Tây Nam Việt Nam . 11
II. THU THẬP, PHÂN TÍCH VÀ XỬ LÝ SỐ LIỆU . 19
2.1 Số liệu thu thập được . 19
2.1.1 Số liệu địa hình. 19
2.1.2 Số liệu thủy văn, hải văn. 20
2.1.3 Số liệu môi trường. 23
2.2 Phương pháp phân tích, xử lý số liệu. 24
2.3 Kết quả phân tích, xử lý số liệu. 26
III. PHÁT TRIỂN MÔ HÌNH 1-2 CHIỀU THỦY ĐỘNG LỰC HỌC VÙNG CỬASÔNG . 28
3.1 Cơ sở toán học của mô hình. 28
3.2 Phương pháp giải . 36
3.3 Kỹ thuật ghép nối lưới tính . 42
3.4 Kỹ thuật tính toán song song và đồ họa . 46
3.5 Xây dựng chương trình 1-2D tính toán thủy lực và các yếu tố môi trường. 52
3.6 Tính toán kiểm tra qua một số bài toán mẫu. 55
IV. ỨNG DỤNG MÔ HÌNH SỐ TRỊ CHO VÙNG CỬA SÔNG TÂY NAM VIỆTNAM . 64
4.1 Thiết lập mô hình số trị . 64
4.2 Hiệu chỉnh mô hình số trị cho vùng nghiên cứu . 66
4.3 Kiểm định mô hình số trị . 75ii
V. MỘT SỐ KẾT QUẢ ỨNG DỤNG CHO VÙNG CỬA SÔNG TÂY NAM VIỆTNAM . 87
5.1 Kết quả tính toán một số đặc trưng thủy động lực học . 87
5.2 Kết quả tính toán một số đặc trưng môi trường . 93
5.3 Dự báo xu thế . 102
KẾT LUẬN. 106
DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA TÁC GIẢ. 109
TÀI LIỆU THAM KHẢO. 110
PHỤ LỤC. 114
146 trang |
Chia sẻ: lavie11 | Lượt xem: 550 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận án Một số đặc trưng thủy động lực học và môi trường vùng cửa sông tây nam Việt Nam, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
t t
;
1 1
ij
0( )
2
o o
i j i jv vv
x
x x
;
1 1
ij
0( )
2
o o
ij ijv vv
y
y y
;
ij
ij
0( )
o
ij
t
t t
;
Hình 3.4 Sơ đồ sai phân tính 2 chiều.
40
ij 1
ij
0( )
i j
x
x x
;
ij 1
ij
0( )
ij
y
y y
;
i+1j ij 1
i+1j
i+1j i+1j ij 1
ij
( ) ( )2 2 0( ) 0( )
2
ij i j
ij
ij ij i j
d d d d
u u u d d u d d
ud x x
x x x
ij+1 ij+1 ij 1
ij
( ) ( )
0( )
y 2
ij ij ijv d d v d d
vd y
y
;
2 2
1 1 1 1
2 2 2 2
ij
2 2i j i j ij ij ij ij
h h
u u u u u uu u
D D
x y x y
;
2 2
1 1 1 1
2 2 2 2
ij
2 2i j i j ij ij ij ij
h h
v v v v v vv v
D D
x y x y
;
2 22 2
ij
ij ij iju u vu u v
f f
d d
;
2 22 2
ij
ij ij ijv u vv u v
f f
d d
.
Thay tiếp vào các phương trình trên ta có:
ij i+1j i+1j ij 1 ij+1 ij+1 ij 1( ) ( ) ( ) ( )
0
2 2
o
ij ij ij i j ij ij iju d d u d d v d d v d d
t x y
1 1
2 2
1 1ij ij 1
( ) ( )
2 2
i j ij
o o o o o o oo
i j ij ij ij ijij i jo o x
ij ij ij
u u u u u u vu u
u v g f v A
t x y x d d
1 1
2 2
1 1ij ij 1
( ) ( )
2 2
i j ij
o o o o o o oo
i j ij ij ij ijij ij yo o
ij ij ij
v v v v u u vv v
u v g f u B
t x y y d d
Suy ra:
i+1j i+1j ij 1 ij+1 ij+1 ij 1
ij
( ) ( ) ( ) ( )
2 2
ij ij i j ij ij ijo
ij
u d d u d d v d d v d d
t
x y
Với :
41
1
1
2 2
1 ij 1
ij
1
( ) ( ) 2
2 2
ij
i j
o o o o oo
ij ij ij ijij i jo o x
ij ij o o
i j
u u u u vu x t
u v g f v A
t y x d d x t u u
1
1
2 2
1 ij 1
ij
1
( ) ( ) 2
2 2
i j
ij
o o o o oo
i j ij ij ijij ij yo o
ij ij o o
ij
v v u u vv y t
v u g f u B
t x y d d y t v v
trong đó:
1 1 1 1
2 2
2 2
i j i j ij ij ij ij
o o o o o o
h
u u u u u u
A D
x y
1 1 1 1
2 2
2 2
i j i j ij ij ij ij
o o o o o o
h
v v v v v v
B D
x y
3.2.2 Phương pháp đánh giá độ tin cậy của mô hình
Để phân tích và đánh giá độ chính xác từ các kết quả của mô hình toán với các số
liệu thực đo, chỉ số hiệu quả Nash-Sutcliffe (NSE) [36] đã được NCS sử dụng.
Nash-Sutcliffe Efficiency (NSE)
Chỉ số NSE là một thông số thống kê xác định giá trị tương đối của phương sai
dư so với phương sai của chuỗi thực đo, được tính toán như sau:
NSE = 1 −
∑ (Yi
obs − Yi
sim)2Ni=1
∑ (Yi
obs − Ymean)2Ni=1
(3.42)
Trong đó
NSE: Chỉ số Nash-Sutcliffe,
𝑌𝑖
𝑜𝑏𝑠: là giá trị đo đạc tại thời điểm i,
𝑌𝑖
𝑠𝑖𝑚 : là giá trị kết quả từ mô hình tại thời điểm i;
𝑌𝑚𝑒𝑎𝑛 : là giá trị đo đạc trung bình trong chuỗi số liệu;
N: chiều dài của chuỗi số liệu.
Đặc điểm của chỉ số Nash-Sutcliffe:
Đo mức độ phù hợp giữa số liệu mô phỏng với số liệu quan trắc trên đường 1:1.
Khoảng giá trị: −∞→ 1.
Bảng phân cấp đánh giá chỉ số Nash-Sutcliffe
42
Căn cứ để đánh giá mức độ chính xác của mô hình theo hai chỉ số nói trên được
Moriasi và nnk [36] tổng hợp từ các nghiên cứu trước và được trình bày trong Bảng
3.1
Bảng 3.1 Đánh giá mức độ chính xác của kết quả mô hình theo các chỉ số NSE theo
bước thời gian tháng.
Độ chính xác của mô hình NSE
Rất tốt 0.75 < NSE ≤ 1.00
Tốt 0.65 < NSE ≤ 0.75
Trung bình 0.50 < NSE ≤ 0.65
Dưới trung bình NSE ≤ 0.50
3.3 Kỹ thuật ghép nối lưới tính
3.3.1 Ghép lưới miền 2 chiều
Cũng như lịch sử phát triển của phương pháp sai phân hữu hạn, kỹ thuật ghép
lưới (patching) trong phương pháp sai phân hữu hạn đã xuất hiện từ lâu. Có rất nhiều
tài liệu đề cập đến vấn đề này, trong số này có thể kể đến công trình của Ramming và
Kowalik (1987), của HR Wallingford (1991).
Việc ghép lưới (sử dụng đồng thời 2 hay nhiều lưới có kích cỡ khác nhau) nhằm
tăng cường độ chính xác hay chi tiết hơn vùng cần quan tâm đặc biệt và giảm khối
lượng tính toán ở vùng ít quan tâm hơn. Việc ghép lưới cần phải đảm bảo sự liên tục
(bảo toàn), độ chính xác (bậc xấp xỉ) tại nơi tiếp giáp của 2 lưới (thô hơn và mịn hơn).
Sự thay đổi kích thước bước lưới không gian tại nơi tiếp giáp của 2 lưới đòi hỏi việc
sử dụng các công thức sai phân phù hợp hơn để đảm bảo có được cùng bậc xấp xỉ như
các điểm tính khác trong miền được xem xét. Đồng thời, việc xuất hiện nhiễu tính toán
do bước lưới không gian không đều cùng cần được chú ý.
Với sơ đồ lưới tính như đã chỉ ra trong mô hình sai phân 2D, thuận lợi nhất là sử
dụng phép chia lẻ khi ghép lưới, nghĩa là với một lưới thô có kích thước Dx ta có thể
tiến hành ghép với một lưới mịn hơn có kích thước là Dx/(2n+1), với n là số nguyên.
Việc chia lẻ sẽ đảm bảo được sự trùng hợp hoàn toàn vị trí nút tính của lưới thô và một
số các nút lưới mịn hơn tương ứng, như chỉ ra trên Hình 3.5.
Trong nghiên cứu này sẽ áp dụng phương pháp ghép lưới theo sơ đồ trong Hình
43
3.5. Tất cả các giá trị của u và v nằm trên đường giới hạn của lưới mịn sẽ được xác
định bằng phép nội suy. Đường lưới thứ 2 kể từ biên vào của lưới mịn sẽ trùng với
đường lưới của lưới thô. Trên các đường lưới này cần phải xác định u (nếu đường lưới
song song với trục x) và v (nếu song song với trục y). Để đảm bảo tính bảo toàn, tổng
lưu lượng đi qua cạnh ô lưới tiếp giáp đối với lưới thô sẽ phải bằng tổng (tích phân)
lưu lượng qua tất cả các cạnh ô lưới tinh nằm trong đó. Tất nhiên, ta còn phải sử dụng
điều kiện liên tục về mực nước trong khu vực tiếp giáp giữa 2 lưới.
Hình 3.5 Sơ đồ ghép 2 lưới.
Rõ ràng là khi xấp xỉ hệ 3 phương trình 2 chiều bằng các công thức sai phân tại
những điểm cần giá trị hàm thuộc cả 2 lưới, ta không nên dùng công thức sai phân
trung tâm thông thường vì như vậy sẽ làm giảm bậc xấp xỉ hàm xuống còn bậc nhất.
Để khắc phục nhược điểm này, ta sẽ sử dụng công thức sai phân theo không gian cho
lưới không đều như sau (để đơn giản ta viết công thức theo phương x, theo phương y
hoàn toàn tương tự):
Giả sử ta cần xấp xỉ đạo hàm của hàm F nào đó tại điểm x2 qua các giá trị của
hàm đó tại các điểm cách nhau không đều x1, x2 và x3, như chỉ ra dưới đây.
u
v
44
Hình 3.6 Sơ đồ điểm sai phân không đều.
Khi đó, sử dụng khai triển Taylor ta sẽ có:
)(
2
)()(
)()( 1
31
2
2
2
2
1
2
21 xO
x
x
xF
x
x
xF
xFxF
)(
2
)()(
)()( 2
32
2
2
2
2
2
2
23 xO
x
x
xF
x
x
xF
xFxF
Kết hợp lại ta sẽ có biểu thức xác định đạo hàm bậc nhất tại x2:
...
)(2
)()()()()(
21
1
2
2
2
2
2
2
21
132
xx
xx
x
xF
xx
xFxF
x
xF
Trong trường hợp∆𝑥1 ≠ ∆𝑥2 nếu bỏ qua số hạng chứa đạo hàm bậc 2, khi đó ta
thu được công thức xấp xỉ bậc 1, còn nếu sử dụng công thức sai phân cho đạo hàm bậc
2 tại x2 ta sẽ nhận được công thức xấp xỉ bậc 2:
),,()(
)(
)(
)(
)()(
212
2
1
2
2
21
12
121
12
221
312 xxxxOxF
xx
xx
xxx
xFx
xxx
xFx
x
xF
(3.43)
Áp dụng công thức (3.43) cho tất cả các số hạng đạo hàm bậc nhất theo không
gian tại các nút tiếp giáp 2 lưới, ta thu được các công thức xác định u, v và z với độ
chính xác bậc 2.
Các giá trị cần thiết ở lớp thời gian trước, nếu chưa biết sẽ được tính bằng cách
nội suy. Có nhiều phương pháp nội suy có thể sử dụng, đơn giản nhất đó là phương
pháp nội suy tuyến tính, tuy nhiên, phương pháp sẽ làm giảm bậc xấp xỉ của mô hình.
Một phương pháp hay được áp dụng khác đó là dùng hàm nội suy splines bậc 3.
Đối với mỗi khu vực được nghiên cứu, việc chọn vị trí ghép lưới cũng rất quan
trọng, nó quyết định việc đảm bảo sự ổn định, giảm thiểu nhiễu số khi tính toán.
Thông thường, ta nên tiến hành ghép lưới ở những nơi ít có sự biến động về địa hình,
trường dòng chảy không quá phức tạp.
Như ta đã biết, sơ đồ sai phân chỉ ổn định có điều kiện, chẳng hạn với sơ đồ sai
phân hiện, người ta thường sử dụng điều kiện CFL để chọn bước thời gian Dt. Đối với
sơ đồ sai phân ẩn quét luân hướng, có thể lấy bước thời gian lớn gấp 5 lần số Courant.
Như vậy, việc sử dụng nhiều lưới tính toán với bước lưới khác nhau dẫn đến việc cần
xem xét việc sử dụng giá trị Dt khác nhau cho mỗi lưới. Trong nghiên cứu này, đã thử
45
áp dụng quy tắc “nhân đôi” về bước thời gian khi tính toán với nhiều lưới như sau:
chọn Dt trên cơ sở phù hợp với lưới mịn nhất (có bước lưới không gian nhỏ nhất), tiếp
theo với lưới thô hơn, bước thời gian sẽ được lấy bằng 2Dt của lưới mịn tiếp giáp với
nó. Quy tắc nhân đôi sẽ đảm bảo điều kiện ổn định cho tất cả các lưới, vì lưới thô sẽ có
bước lưới ít nhất là 3 lần lớn hơn. Hơn nữa, quy tắc nhân đôi giúp việc nội suy theo
thời gian tại nơi tiếp giáp của 2 lưới dễ dàng hơn.
Lưu lượng và dao động mực nước tại biên ghép lưới được tính theo nguyên tắc:
Lưu lượng tại ô lưới trên lưới có kích thước nhỏ nằm trong vùng lưới có kích
thước lớn được tính bằng cách nội suy từ lưu lượng đã tính được tại vùng lưới có
kích thước lớn
Dao động mực nước tại vùng có kích thước ô lưới lớn nằm trong vùng lưới có
kích thước nhỏ được nội suy từ dao động mực nước tại vùng kích thước ô lưới
nhỏ
3.3.2 Kết nối 1-2D
Như đã nói ở phần điều kiện ghép nối 1–2D, tại điểm ghép lưới các điều kiện sau
phải được đảm bảo:
Bảo toàn về động lượng:
nu
A
Q
(3.44)
Sự liên tục về mực nước:
21 (3.45)
Trong đó:
Q - lưu lượng nước tại cửa sông;
un- thành phần pháp tuyến của dòng chảy tại cửa sông;
- dao động mực nước tại điểm ghép lưới, các chỉ số 1 và 2 biểu thị đại
lượng ở lưới 1D và 2D tương ứng.
Giả sử trong lưới tính 1D chúng ta có K điểm nút trong và L điểm ghép nối với
lưới 2D; nhánh sông IJ có N mặt cắt và J là điểm ghép nối với lưới 2D (Hình 3.7). Sử
dụng (3.39) và (3.40) ta có:
JN
JN
J
JN
JNJNJ
J
J Q
p
H
p
HHq
p
r
2
)('
'
' 211
1
1
(3.46)
hay :
46
dllhluHH
q
p
r
p
H
nJNJN
JN
J
J
JN
J )().()(
2
2121
1
1 (3.47)
Hình 3.7Sơ đồ ghép lưới 1D -2D
Trong đó: l, un1, h2 là bề rộng sông, vận tốc pháp tuyến của dòng chảy sông và độ
sâu của biển tại điểm ghép lưới tương ứng.
Hệ 2 chiều sử dụng sơ đồ sai phân hiện tính được các giá trị tại điểm nối 1-2D
dựa theo bước thời gian trước, trả vào hệ 1chiều giải ẩn, sau đó lại truyền ngược giá trị
mực nước và lưu lượng từ một chiều vào hệ 2 chiều để đồng bộ hóa.
Hình 3.8 Sơ đồ đơn giản hóa hệ ghép nối 1D-2D
3.4 Kỹ thuật tính toán song song và đồ họa
3.3.1 Kỹ thuật tính toán song song
Theo truyền thống, phần mềm máy tính được viết cho tính toán tuần tự. Để giải
quyết một vấn đề, một thuật toán được xây dựng và thực thi tuần tự theo các dòng
lệnh. Những câu lệnh này lại được chạy trên một đơn vị xử lý trung tâm (CPU) của
chiếc máy tính, chỉ có một câu lệnh được chạy trong một khoảng thời gian, sau khi câu
lệnh đó kết thúc, câu tiếp theo mới được thực hiện. Tính toán song song lại sử dụng
đồng thời các bộ đa xử lý để giải quyết một vấn đề. Việc này được hoàn thành bằng
cách tách vấn đề thành nhiều phần độc lập sau đó mỗi bộ xử lý có thể chạy thuật toán
47
của nó đồng thời với những cái khác. Các bộ phận xử lý có thể khác nhau và bao gồm
các dạng tài nguyên như: một máy tính đơn gồm nhiều bộ đa xử lý, nhiều máy tính
được kết nối mạng, phần cứng chuyên biệt, hoặc có thể là sự kết hợp của những dạng
trên. Thuật toán song song khó viết hơn so với những thuật toán tuần tự, vì sự tương
tranh tạo ra nhiều lỗi phần mềm, trong đó lỗi điều kiện ganh đua là phổ biến nhất.
Quản lý việc giao tiếp và đồng bộ giữa các luồng xử lý là một trong những trở ngại lớn
nhất để tạo ra một chương trình song song tốt. Khả năng tăng tốc cao nhất có thể đạt
được của một chương trình khi được song song hóa tuân theo định luật Amdahl [38].
Giao diện lập trình ứng dụng
Việc song song hóa một bài toán phụ thuộc vào điều kiện về phần cứng và phần
mềm để từ đó lựa chọn phương pháp tối ưu cho bài toán đó. Các phương pháp song
song thường dựa trên kiến trúc bộ nhớ cơ bản - bộ nhớ chia sẻ, bộ nhớ phân tán, hay
hỗn hợp. Các ngôn ngữ lập trình chia sẻ bộ nhớ giao tiếp bằng cách điều khiển các
biến chia sẻ bộ nhớ, bộ nhớ phân tán sử dụng phương pháp truyền tin trong đó
OpenMP là API phổ biến nhất sử dụng bộ nhớ chia sẻ, trong khi Giao diện truyền tin
MPI là API sử dụng hệ thống truyền tin nổi bật nhất.
Dựa trên phần mã nguồn đã được xây dựng bằng ngôn ngữ Visual Fortran trên
nền hệ điều hành Windows, với mong muốn dễ dàng ứng dụng và phát triển tiếp trên
các máy tính thông thường với các CPU đa lõi, phương án dựa trên sử dụng kiến trúc
bộ nhớ chia sẻ được lựa chọn, bên cạnh đó bộ công cụ lập trình Visual Fortran cũng đã
hỗ trợ phương thức này.
OpenMP được coi như một giao diện lập trình ứng dụng API (Application
Program Interface) chuẩn dành cho lập trình với bộ nhớ chia sẻ. OpenMP là sự kết hợp
của các chỉ thị biên dịch, các hàm thư viện, và các biến môi trường được sử dụng để
xác định phần thực hiện song song trên bộ nhớ chia sẻ trong lập trình Fortran hoặc
C/C++. OpenMP đưa ra một mô hình lập trình song song có tính khả chuyển đối với
những kiến trúc bộ nhớ chia sẻ đối với các nhà cung cấp khác nhau.
Hệ thống bộ nhớ chia sẻ bao gồm nhiều bộ xử lý CPU, mỗi bộ xử lý truy cập tới
bộ nhớ chung thông qua các siêu kết nối hoặc các đường bus. Việc sử dụng không gian
địa chỉ đơn làm cho mỗi bộ xử lý đều có một cái nhìn giống nhau về bộ nhớ được sử
dụng. Truyền thông trong hệ thống bộ nhớ chia sẻ thông qua cách đọc và ghi dữ liệu
48
giữa các bộ xử lý với nhau lên bộ nhớ. Với cách này, thời gian truy cập tới các phần
dữ liệu là như nhau, vì tất cả các quá trình truyền thông đều thông qua đường bus.
Ưu điểm của kiến trúc này là dễ dàng lập trình, bởi vì không yêu cầu sự truyền
thông giữa các bộ xử lý với nhau, chúng chỉ đơn giản là truy cập tới bộ nhớ chung. Sau
đây là một số điểm nổi bật của OpenMP :
Cung cấp giao diện chuẩn: OpenMP đưa ra một giao diện chuẩn cho các hệ thống
máy tính bộ nhớ chia sẻ.
Tính đơn giản: bao gồm tập các chỉ thị đơn giản và dễ sử dụng cho lập trình trên
hệ thống máy tính bộ nhớ chia sẻ. Một chương trình song song hóa có thể chỉ cần
sử dụng 3 hoặc 4 chỉ thị biên dịch.
Tính dễ sử dụng:
+ Khả năng để thực hiện song song cho các chương trình tuần tự.
+ Khả năng thực hiện song song hóa ở mức thô sơ, hoặc mức chi tiết.
Tính khả chuyển: hỗ trợ Fortran, C, C++
OpenMP dựa trên việc sử dụng số lượng các luồng hiện có trong lập trình song
song bộ nhớ chia sẻ. Đó là một mô hình lập trình chính tắc, cung cấp đầy đủ các điều
khiển cho người lập trình.
Có thể xem mô hình lập trình OpenMP như là một mô hình Fork-Join, Hình 3.9.
Hình 3.9 Mô hình Fork-Join
Trong mô hình Fork-Join, tất cả các chương trình OpenMP đều bắt đầu bởi một
tiến trình đơn. Đó là master thread (luồng chính), luồng chính này được thực hiện tuần
tự cho đến khi gặp chỉ thị khai báo vùng cần song song hóa.
Fork: sau khi gặp chỉ thị khai báo song song, master thread sẽ tạo ra một nhóm
các luồng song song. Khi đó, các câu lệnh trong vùng được khai báo song song sẽ
được thực hiện song song hóa trên nhóm các luồng vừa được tạo.
49
Join: khi các luồng đã thực hiện xong nhiệm vụ của mình, chúng sẽ tiến hành quá
trình đồng bộ hóa, ngắt luồng, và chỉ để lại 1 luồng duy nhất là master thread.
Phương pháp phân rã
Việc lựa chọn phân rã theo miền hay phân rã điều khiển tùy chọn vào đặc điểm
của bài toán cần song song. Với phương pháp phân rã theo miền, ưu tiên lựa chọn đó
là các miền tách biệt nhau và tương đồng về số lượng phần tử mỗi miền. Tuy nhiên,
với mỗi vùng nghiên cứu khác nhau, số lượng lưới chia để tính toán thường khác nhau
(ví dụ bài toán vùng biển Tây Nam sử dụng 3 lưới, bài toán vùng biển miền Trung sử
dụng 2 lưới), và số lượng phần tử của mỗi miền cũng không tương đồng (ví dụ số
lượng phần tử lưới lớn và lưới tinh khác nhau tùy thuộc vào cách chia lưới). Do đó để
phần mềm có thể ứng dụng tính song song mà không tùy thuộc vào việc chia miền tính
của từng bài toán khác nhau, NCS lựa chọn phương pháp phân rã điều khiển vì có thể
phân chia số lượng phép tính gần như đồng đều cho các lõi. Hiểu đơn giản cách làm
này nghĩa là can thiệp vào vòng lặp tính toán để có thể chia khối lượng phép tính của
mỗi vòng lặp đều cho các lõi.
Cách thức thực hiện :
Do khối lượng tính toán vùng 2D lớn hơn gấp rất nhiều lần vùng 1D nên tập
trung xử lý song song phần tính 2D. Khi vào vòng lặp chính trong mỗi bước xử lý theo
thời gian, luồng chính bắt đầu chia nhỏ các nhiệm vụ cho các lõi tính toán và sau khi
kết thúc một vòng tính đó thì các biến được cập nhật đồng bộ và tiếp tục để luồng
chính xử lý. Các phương án tính toán được thử nghiệm trên 2 loại CPU: Intel Atom
Z3740 4 lõi với tốc độ 1.8GHz và Intel Core i7 3770 4 lõi thực (8 lõi logic dùng công
nghệ HyperThreading của Intel) với tốc độ 4.2GHz [39].
Yêu cầu kết quả mọi bước tính của phương pháp song song phải đảm bảo không
có sai khác với phương pháp tính tuần tự (các giá trị kết quả cuối cùng giữa các tính
tuần tự và song song giống nhau hoàn toàn).
NCS thử nghiệm tính 2 phương pháp với cùng một bộ số liệu đầu vào cụ thể, đã
so sánh các giá trị tính là như nhau (các giá trị đầu ra được lưu trong các file trích xuất
là giống nhau). Về mặt thời gian thực để CPU tính, kết quả được chỉ ra trong các Hình
3.10, 3.11, 3.12.
50
Hình 3.10 So sánh thời gian (s) tính tuần tự và song song của của phương án tính 10h
Hình 3.11 So sánh thời gian (s) tính tuần tự và song song của của phương án tính 20h
Hình 3.12 So sánh thời gian (s) tính tuần tự và song song của của phương án tính 30h
Như vậy, việc song song phần mềm tính toán để tận dụng tất cả các lõi của CPU
cũng mang lại hiệu quả đáng kể, giảm thời gian tính xuống chỉ còn 60% - 70% và có
xu hướng giảm dần khi thời gian cần tính toán tăng. Việc song song mới chỉ thực hiện
ở vòng lặp tính toán chính (bỏ qua các vòng lặp nhỏ) nên hiệu suất chưa đạt tối đa
(đúng như theo công thức tính của Amdahl's law).
3.4.2 Liên kết bản đồ GIS
Để hỗ trợ người dùng trong việc đánh giá các kết quả tính được từ mô hình, nhất
là đối với bài toán tính vùng ảnh hưởng, số liệu cần được hiển thị trên bản đồ GIS. Khi
đó, người dùng dễ dàng đánh giá, đưa ra các quyết định điều chỉnh kịp thời. Tuy nhiên
các phần mềm thương mại thường chỉ cho phép hiển thị các bản đồ này qua việc đọc
dữ liệu của mô hình sau khi tính toán xong và phải nhập thủ công các kết quả được
trích xuất từ mô hình tính. Do đó, nhu cầu xây dựng module hiển thị kết quả trên bản
51
đồ GIS theo thời gian thực (tính đến đâu hiển thị kết quả đến đó) là cần thiết. Để làm
được điều này, module cần phải tích hợp được vào phần mềm, tương ứng với nền tảng
mà phần mềm chính đang hoạt động. Module này cần có các tính năng cơ bản giúp
tăng tính tương tác giữa bản đồ và người dùng, cho phép tạo ra các công cụ cho ứng
dụng như phóng to, thu nhỏ, đo đạc, đổ màu...
NCS lựa chọn MapWindow là một hệ mã nguồn mở cho GIS trên nền hệ điều
hành Windows cho phép xử lý, phân tích và hiển thị dữ liệu và các thuộc tính của dữ
liệu ở một số chuẩn định dạng của GIS, trong nghiên cứu của luận án thì shapefile -
một cấu trúc dữ liệu GIS được đưa ra bởi ESRI (hãng xây dựng bộ phần mềm ArcGis
nổi tiếng), một chuẩn dữ liệu định dạng vector quen thuộc, được sử dụng.
MapWindow là công cụ vẽ bản đồ, là hệ thống mô hình và là một ứng dụng GIS cung
cấp các giao diện lập trình (API). MapWindow bao gồm nhiều phần, trong đó đa số
dành cho việc xây dựng các ứng dụng GIS (lập trình).
Điểm lưu ý là MapWindow sử dụng giấy phép mã nguồn mở MPL 1.1, có thể sử
dụng trong các ứng dụng thương mại và phi thương mại, nghĩa là ngoài việc không
mất phí sử dụng mà còn có thể tích hợp vào bộ đóng gói phần mềm CHB14 để chuyển
giao cho các đơn vị sử dụng.
Có nhiều phương án để xây dựng ứng dụng dựa trên MapWindow, từ cách đơn
giản nhất là cài đặt và sử dụng (nghĩa là không cần phải lập trình), hay sử dụng các
Plug-in có sẵn, cho đến sử dụng mã để lập trình (nghĩa là sử dụng MapWindow ở mức
thấp nhất).
Do không chỉ đơn thuần là đọc và hiển thị dữ liệu bản đồ hay cung cấp các thao
tác cơ bản để xem bản đồ nên luận án đã tiếp cận theo cách xây dựng ứng dụng từ đầu
và sử dụng ActiveX MapWinGIS (lõi của mã nguồn mở MapWindow) để thao tác với
dữ liệu GIS. Với cách tiếp cận này chúng ta hoàn toàn có thể tùy biến giao diện cũng
như truy vấn, ví dụ có thể tắt hoặc tùy biến bảng chú giải (legend), vùng quản lý lớp,
bản đồ nhỏ, hay tắt các plug-in hỗ trợ,...
MapWinGIS cung cấp các lớp và Enumeration để thao tác với các dữ liệu bản đồ
(như thao tác với shapefile, điều khiển việc hiển thị nhãn trên bản đồ, làm việc với lưới
bản đồ,...). Trong đó, hai lớp quan trọng là lớp Shapefile (chứa các hàm để thao tác
trên một lớp bản đồ, cả dữ liệu không gian lẫn dữ liệu phi không gian) và lớp Map
52
(thành phần chính trong ứng dụng MapWindow GIS, biểu diễn lưới, ảnh và các
shapefile).
Khi các module tính toán thủy lực và môi trường có kết quả sau mỗi bước xuất
kết quả, chúng lập tức được cập nhật để hiển thị trên module có sử dụng MapWinGIS
để hiển thị kết quả tương ứng với số liệu đó.
3.5 Xây dựng mô hình 1-2D tính toán thủy lực và các yếu tố môi trường
Chương trình tính toán được xây dựng trên cơ sở áp dụng phương pháp sai phân
ẩn 4 điểm của Preissman để giải hệ phương trình (3.1) - (3.2); phương pháp sai phân
hữu hạn để giải hệ phương trình (3.5) – (3.7), áp dụng kỹ thuật ghép lưới.
Danh sách các file số liệu đầu vào:
File số liệu 1 chiều: số liệu về mạng sông 1 chiều (thông tin mặt cắt, khoảng
cách, liên kết,), giá trị tại các biên theo thời gian.
File số liệu 2 chiều: số liệu địa hình 2 chiều theo các lưới, số liệu biên
File chứa các tham số chạy mô hình như thời gian tính, bước thời gian,
File các số liệu lực ngoài: bão, gió, (số liệu đầu vào có thể cho dưới nhiều
dạng ví dụ như có thể giá trị trường gió theo thời điểm, hoặc trường gió đồng
nhất hoặc hàm giá trị theo tọa độ và thời gian )
File các số liệu ban đầu và bổ sung theo thời gian: lưu lượng, mực nước, yếu tố
môi trường.
Danh sách các file được kết xuất:
File kết quả số liệu 1 chiều: các giá trị thủy lực và yếu tố môi trường theo toàn bộ
các mặt cắt và theo toàn bộ thời gian.
File kết quả số liệu 2 chiều: các giá trị thủy lực và yếu tố môi trường theo toàn bộ
các ô lưới và theo toàn bộ thời gian.
Các file kết quả đặc biệt: kết xuất các giá trị khác như giá trị hằng số điều hòa tại
điểm cần quan tâm, các giá trị lớn nhất, nhỏ nhất của các đại lượng quan tâm,
53
Hình 3.13 Sơ đồ khối của chương trình tính.
Bắt đầu
Nhập số liệu: lưới tính 1-2
chiều, điều kiện biên, điều kiện
đầu, các tham số môi trường.
Tính giá trị miền hai chiều theo
các lưới từ lưới thô đến lưới mịn
tại lớp thời gian ti
Tính thủy lực xong, giải các
phương trình truyền tải khuếch
tán
Tính mô hình 1 chiều với bước
thời gian phù hợp
Truyền các giá trị 2 chiều tại điểm
nối sang mô hình 1 chiều
Xác định giá trị tại điểm nối 1-2
chiều và trả về 2 chiều để đồng
bộ.
Điều kiện dừng
ti< Tmax
Kết thúc
Đúng
Sai
In kết quả
54
Hình 3.14 Sơ đồ khối của module tính truyền tải khuếch tán.
Với tên gọi là CHB14, phần mềm đã được phát triển trên ngôn ngữ Fortran bằng
bộ công cụ lập trình Intel Visual Fortran 2013 có giao diện Winform với các hộp thoại
để người dùng dễ dàng tương tác cũng như khả năng hiển thị trực tiếp các kết quả tính
qua các module đồ họa. Giao diện của phần mềm được trình bày trong phụ lục 1. Tính
linh hoạt của phần mềm được thể hiện ở các điểm sau:
Khả năng tùy chọn phương án tính: phần mềm có khả năng lựa chọn các phương
án tính khác nhau như: đối với phần tính thủy lực (có thể tính ghép nối 1 chiều
kết hợp 2 chiều hoặc tính 1 chiều độc lập hoặc tính 2 chiều độc lập); tính các yếu
Sai Đúng
Bắt đầu
Nhận các giá trị từ mô hình thủy lực
Tính 1D chất lượng nước: S,DO,
BOD, PO4, NH3, NO3, Ct
và chu trình dinh dưỡng: PHY,
ZOO, DIN, DIP, DET, DO
Điều kiện hướng dòng
chảy từ 1D sang 2D
Kết thúc
Tính 2D chất lượng nước: S,DO,
BOD, PO4, NH3, NO3, Ct
và chu trình dinh dưỡng: PHY,
ZOO, DIN, DIP, DET, DO
Tính 2D chất lượng nước: S,DO,
BOD, PO4, NH3, NO3, Ct
và chu trình dinh dưỡng: PHY,
ZOO, DIN, DIP, DET, DO
Tính 1D chất lượng
Các file đính kèm theo tài liệu này:
- tv_mot_so_dac_trung_thuy_dong_luc_hoc_8799_1919784.pdf