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

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

pdf146 trang | Chia sẻ: lavie11 | Lượt xem: 397 | Lượt tải: 1download
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:

  • pdftv_mot_so_dac_trung_thuy_dong_luc_hoc_8799_1919784.pdf
Tài liệu liên quan