(LUẬN VĂN THẠC SĨ) Ứng dụng phương pháp tối ưu biến phân để hiệu chỉnh tham số cho bài toán lan truyền ô nhiễm hai chiều

79 3 0
(LUẬN VĂN THẠC SĨ) Ứng dụng phương pháp tối ưu biến phân để hiệu chỉnh tham số cho bài toán lan truyền ô nhiễm hai chiều

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN BÁ HƯNG ỨNG DỤNG PHƯƠNG PHÁP TỐI ƯU BIẾN PHÂN ĐỂ HIỆU CHỈNH THAM SỐ CHO BÀI TOÁN LAN TRUYỀN Ô NHIỄM HAI CHIỀU LUẬN VĂN THẠC SĨ HÀ NỘI 2011 TIEU LUAN MOI download : skknchat@gmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN BÁ HƯNG ỨNG DỤNG PHƯƠNG PHÁP TỐI ƯU BIẾN PHÂN ĐỂ HIỆU CHỈNH THAM SỐ CHO BÀI TOÁN LAN TRUYN ễ NHIM HAI CHIU Ngành : Cơ học kỹ thuật Chuyên ngành: Cơ học kỹ thuật MÃ số : 60 52 02 LUẬN VĂN THẠC SĨ Ng­êi h­íng dÉn khoa học: TS Trần Thu Hà H NI 2011 TIEU LUAN MOI download : skknchat@gmail.com MỤC LỤC DANH MỤC HÌNH VẼ .2 DANH MỤC BẢNG BIỂU MỞ ĐẦU CHƯƠNG I MÔ HÌNH LAN TRUYỀN CHẤT CHIỀU .6 I.1 Mơ hình lan truyền chất hai chiều I.2 Thuật tốn tính lan truyền chất chiều I.2.1 Thuật toán giải hệ phương trình dịng chảy chiều .7 I.2.2 Thuật tốn giải phương trình truyền tải khuyếch tán chiều .9 I.3 Phát triển mơ hình truyền tải đa chất 10 I.4 Tính tốn kiểm định thử nghiệm mô 13 I.4.1 Kiểm tra thuật toán giải số 13 I.4.2 Tính tốn thử nghiệm hồ Thanh Nhàn 21 CHƯƠNG II ỨNG DỤNG PHƯƠNG PHÁP ĐỒNG HÓA SỐ LIỆU HIỆU CHỈNH THAM SỐ CHO BÀI TỐN LAN TRUN Ơ NHIỄM NƯỚC HAI CHIÊU 28 II.1 Cơ sở khoa học phương pháp đồng hóa số liệu 28 II.2 Bài tốn nhiễm nước chiều 30 II.3 Áp dụng phương pháp đồng hóa số liệu cho tốn nhiễm hai chiều 31 II.3.1 Bài tốn tìm tham số khuyếch tán D 31 II.3.2 Bài tốn tìm tham số chuyển đổi chất K .35 II Tính tốn kiểm định thử nghiệm mơ hình 38 II.4.1 Kiểm tra thuật tốn tìm tham số qua toán mẫu : 38 II.4.2 Tính tốn thử nghiệm với số liệu đo thực tế .47 II.5 So sánh kết tính có hiệu chỉnh hay khơng hiệu chỉnh tham số với số liệu đo đánh giá tình trạng ô nhiễm hồ Thanh Nhàn .51 KẾT LUẬN 53 TÀI LIỆU THAM KHẢO .54 PHỤ LỤC 56 TIEU LUAN MOI download : skknchat@gmail.com DANH MỤC HÌNH VẼ Hình I.1: Lưới khơng cấu trúc mơ tả dịng chảy địa hình phức tạp Hình I.2: Kết tốn mẫu thủy lực 14 Hình I.3: Bài tốn mẫu thủy lực 15 Hình I.4: Kết toán mẫu thủy lực 16 Hình I.5: Bài tốn mẫu thủy lực 17 Hình I.6: Kết toán mẫu thủy lực 18 Hình I.7: Điều kiện đầu toán mẫu 19 Hình I.8: So sánh nghiệm tính tốn nghiệm xác tốn mẫu 20 Hình I.9: Bản đồ địa hình khu vực hồ Thanh Nhàn 22 Hình I.10: Số liệu địa hình 23 Hình I.11: Kết chia lưới 23 Hình I.12: Kết tính trường vận tốc 24 Hình I.13: Vị trí điểm đo nồng độ nhiễm 24 Hình I.14: Kết tính tốn mơ BOD5 25 Hình I.15: Kết tính tốn mơ NH3 25 Hình I.16: So sánh nồng độ BOD5 tính tốn với số liệu thực đo 26 Hình I.17: So sánh nồng độ NH3 tính tốn với số liệu thực đo 26 Hình II.1: BOD5 mơ hình tham khảo tốn mẫu 43 Hình II.2: BOD5 mơ hình tốn mẫu có hiệu chỉnh tham số 44 Hình II.3: BOD5 mơ hình tốn mẫu khơng hiệu chỉnh tham số 44 Hình II.4: So sánh nồng độ BOD5 điểm hồ 45 có khơng hiệu chỉnh với mơ hình tham khảo có điểm đo giả định 45 Hình II.5: NH3 mơ hình tham khảo tốn mẫu 45 Hình II.6: NH3 mơ hình tốn mẫu có hiệu chỉnh tham số 46 Hình II.7: NH3 mơ hình tốn mẫu khơng hiệu chỉnh tham số 46 Hình II.8: So sánh nồng độ NH3 điểm hồ 47 có khơng hiệu chỉnh với mơ hình tham khảo có điểm đo giả định 47 Hình II.9: BOD5 không sử dụng hiệu chỉnh hệ số với số liệu đo thực tế 48 Hình II.10: BOD5 có sử dụng hiệu chỉnh hệ số 48 Hình II.11: NH3 không sử dụng hiệu chỉnh hệ số với số liệu đo thực tế 49 Hình II.12: NH3 có sử dụng hiệu chỉnh hệ số 49 Hình II.13: Kết so sánh nồng độ BOD5 với thực đo trường hợp 50 Hình II.14: Kết so sánh nồng độ NH3 với thực đo trường hợp 50 có hiệu chỉnh không hiệu chỉnh tham số số điểm đo mặt hồ 50 TIEU LUAN MOI download : skknchat@gmail.com DANH MỤC BẢNG BIỂU Bảng I.1: Bảng số liệu đo đạc điểm hồ Thanh Nhàn 21 Bảng II.1: Bảng hệ số D mơ hình 40 Bảng II.2: Bảng hệ số K mơ hình 42 Bảng II.3: Chất lượng nước hồ Thanh Nhàn tháng 11/2001 51 TIEU LUAN MOI download : skknchat@gmail.com MỞ ĐẦU Hiện Việt Nam, cấp, ngành có nhiều cố gắng việc thực sách pháp luật bảo vệ mơi trường, tình trạng ô nhiễm nước vấn đề đáng lo ngại Tốc độ cơng nghiệp hố thị hố nhanh gia tăng dân số gây áp lực ngày nặng nề tài nguyên nước vùng lãnh thổ Môi trường nước nhiều đô thị, khu công nghiệp làng nghề ngày bị ô nhiễm nước thải, khí thải chất thải rắn Ở thành phố Hà Nội, tổng lượng nước thải thành phố lên tới 300.000 400.000 m 3/ngày; có 5/31 bệnh viện có hệ thống xử lý nước thải, chiếm 25% lượng nước thải bệnh viện; 36/400 sở sản xuất có xử lý nước thải; lượng rác thải sinh hoại chưa thu gom khoảng 1.200m 3/ngày xả vào khu đất ven hồ, kênh, mương nội thành; số BOD, oxy hoà tan, chất NH4, NO2, NO3 sông, hồ, mương nội thành vượt quy định cho phép Vì việc giữ gìn bảo vệ mơi trường đă trở nên vấn đề xúc Hiện phương pháp thực nghiệm trực tiếp với hệ sinh thái tự nhiên thường gặp khó khăn nhiều trường hợp Cho nên khả mô tốn mơi trường phịng thí nghiệm thường hạn chế Các mơ hình tốn học cơng cụ cho tính tốn định lượng áp dụng vào thực tế nghiên cứu hệ sinh thái nước Trên thực tế nhiều kênh sơng có chiều dài lớn, thẳng nước nông số thành phần phương trình mơ tả rút gọn Hiện tốn giải số mơ hình môi trường đặt cấp thiết Trong luận văn trình bày ứng dụng phương pháp đồng hóa số liệu để hiệu chỉnh tham số cho tốn nhiễm Phương pháp nghiên cứu ứng dụng cho mơ hình tính tốn nhiễm nước nhóm nghiên cứu lũ lụt Viện Cơ học chương trình nghiên cứu đề tài cấp Viện Khoa học Việt nam 2009-2010 Việc tìm hiệu chỉnh thơng số tối ưu để nâng cao chất lượng tính tốn mơ hình mơ tả dịng chảy, giúp mơ hình mơ tả mức độ lan truyền nhiễm gần với thực đo Hiện có nhiều mơ hình lan truyền chất nhập từ nước ngồi để áp dụng tính tốn lan truyền chất MIKE11, SARR Tuy nhiên để có chương trình phù hợp với điều kiện thực tế nước ta Viện Cơ học xây dựng mơ hình nghiên cứu mô tả lan truyền chất nước mặt chiều Trong luận văn, mơ hình phát triển ứng dụng đồng hóa số liệu phương pháp tối ưu biến phân để hiệu chỉnh tham số cho tốn nhiễm nước chiều TIEU LUAN MOI download : skknchat@gmail.com Luận văn thực mục tiêu sau :  Ứng dụng đồng hóa số liệu phương pháp tối ưu biến phân để hiệu chỉnh tham số cho tốn nhiễm nước chiều  Hiệu chỉnh tham số mô hình để nồng độ chất BOD5, NH3 mơ hình tính có hiệu chỉnh gần mơ hình tham khảo gần  Sử dụng phương pháp hiệu chỉnh tham số mơ tính tốn với số liệu thực đo hồ Thanh Nhàn Luận văn bao gồm phần mở đầu, chương phần kết luận, phần phụ lục kèm theo Kết nghiên cứu luận văn thể chương hai Nội dung hai chương chính: Chương I: Mơ hình lan truyền chất chiều Chương II: Ứng dụng phương pháp đồng hóa số liệu hiệu chỉnh tham số cho tốn lan truyền nhiễm nước hai chiều TIEU LUAN MOI download : skknchat@gmail.com CHƯƠNG I MƠ HÌNH LAN TRUYỀN CHẤT CHIỀU Mơ hình tính phương pháp khối hữu hạn hệ thống lưới tam giác không cấu trúc Nồng độ chất nhiễm nước tính đồng thời có tính đến chuyển hóa Mơ hình kiểm tra qua toán mẫu so sánh với nghiệm giải tích Trong khn khổ luận văn, mơ hình tính lan truyền chất nước hai chiều xây dựng, tính thử nghiệm đo đạc với số liệu thực đo hồ Thanh Nhàn, xác định số nhu cầu oxy sinh hóa BOD5 NH3 Trong chương này, tác giả sử dụng kết báo cáo theo đề tài nhóm nghiên cứu lũ lụt Viện Cơ học chương trình nghiên cứu đề tài nhà nước KC 08-17 Đây sở để phát triển, ứng dụng đồng hóa số liệu phương pháp tối ưu biến phân, nhằm hiệu chỉnh tham số cho tốn nhiễm nước chiều Nước tham gia vào thành phần cấu trúc sinh quyển, điều hòa yếu tố khí hậu, đất đai sinh vật Nước đáp ứng nhu cầu đa dạng người sinh hoạt ngày, tưới tiêu cho nông nghiệp, sản xuất công nghiệp, sản xuất điện tạo nhiều cảnh quan đẹp Nhưng nguồn nước bị ô nhiễm trầm trọng nhiều nguyên nhân mà nguyên nhân hoạt động sản xuất ý thức người Vì nghiên cứu q trình chuyển đổi chất nhiễm lịng sơng di chuyển chất ô nhiễm xuống hạ du đánh giá khả ô nhiễm từ nguồn xả xuống sông đề tài cấp thiết Để giải vấn đề mơ hình nhiễm chiều mơ hình tương đối thích hợp đáp ứng vận tốc tính tốn mơ hình dịng chảy số liệu địa hình phức tạp lịng sơng Nhưng để tính tốn nơi có đặc điểm địa hình quy mơ diện tích nhỏ lịng hồ mơ hình chiều khơng cịn phù hợp để nghiên cứu đánh giá q trình nhiễm Do mơ hình dịng chảy hai chiều lan truyền chất ô nhiễm hai chiều xây dựng sử dụng để tính tốn q trình lan truyền ô nhiễm lòng hồ từ nguồn thải I.1 Mơ hình lan truyền chất hai chiều Mơ hình lan truyền chất gây ô nhiễm chiều bao gồm mô hình thủy lực chiều mơ hình truyền tải khuyếch tán vật chất chiều Hệ phương trình mơ tả dòng chảy chiều viết ([1]-[2]), phương trình truyền tải khuyếch tán vật chất viết ([3],[4]) Phương trình truyền tải khuyếch tán vật chất: Ci   2 2  u Ci  v Ci  f i  D( Ci  Ci ) t x y x y (I.1) TIEU LUAN MOI download : skknchat@gmail.com Phương trình liên tục: z    uh   vh   t x y (I.2) Phương trình động lượng theo hướng x: u u u z gu (u  v )1 / u v g  t x y x K x2 h / (I.3) Phương trình động lượng theo hướng y: v v v z gv(u  v )1 / u v  g  t x y y K y2 h / (I.4) Trong phương trình trên: z – mực nước, h độ sâu dòng chảy u - vận tốc (trung bình) theo hướng x v - vận tốc (trung bình) theo hướng y g- gia tốc trọng trường Kx- hệ số Strickler lực cản đáy theo hướng x Ky - hệ số Strickler lực cản đáy theo hướng y Ci – nồng độ chất gây ô nhiễm fi – thành phần nguồn I.2 Thuật toán tính lan truy ền chất chiều I.2.1 Thuật tốn giải hệ phương trình dịng chảy chiều Chúng tơi sử dụng phương pháp khối hữu hạn (FVM - Finite Volume Method) với lưới tính tốn lưới tam giác Lưới tam giác mơ tả tốt dịng chảy miền có địa hình phức tạp (cả biên đáy) Trong phương pháp khối hữu hạn, miền tính tốn chia nhỏ thành khối có hình học đơn giản thí dụ tam giác khối tạo thành lưới phủ kín miền tính tốn Các tham số để mô tả lưới nút lưới liên kết nút lưới để tạo thành khối Trên hình phần lưới khơng cấu trúc Tính khơng cấu trúc lưới thể qua việc đánh số nút lưới đánh số khối lưới không cần theo quy luật TIEU LUAN MOI download : skknchat@gmail.com Hình I.1: Lưới khơng cấu trúc mơ tả dịng chảy địa hình phức tạp Để áp dụng phương pháp khối hữu hạn phương trình (I.2)-( I.4) viết dạng bảo toàn: V A B    F t x y (I.5) Trong hệ phương trình (I.5)    uh   z  vh      V   u  , A   u  gz  , B   uv  1    v   v  gz uv     2  TIEU LUAN MOI download : skknchat@gmail.com 63 999 mu0_bd(1:nvolume*nchat)=mu(1:nvolume*nchat) chuan ! lay he so ban dau lam call simulqn3(indic,nnchat,mu0_bd,Fcout,grad,izs,rzs,dzs) ! cho gay roi print *,'Fonction cout initiale = ',Fcout call prosca(ndim,grad,grad,prod,izs,rzs,dzs) print *,'norme de grad = ',prod c Gradient verifications xnorm = i=1,nnchat xnorm = xnorm + grad(i)*grad(i) end xnorm = sqrt(xnorm) i=1,nnchat pert(i) = grad(i)/xnorm end smin=fcout iter = 10, 20 ! cu la 10,20 ! cu la =20,30 alpha = 2.**(-iter) print *,'alpha = ',alpha i=1,nnchat mug(i) = mu0_bd(i) + alpha*pert(i) enddo call simulqn3(indic,nnchat,mug,Fcout1,grad,izs,rzs,dzs) c======================================================= if(fcout1.lt.smin) then smin=fcout1 mu(1:nnchat) = mug(1:nnchat) else endif c============================================= precis = ((Fcout1-Fcout)/(alpha*xnorm)) print*,'precision', iter, precis, 'fcout1-fcout',fcout1-fcout print* TIEU LUAN MOI download : skknchat@gmail.com 64 end c===================================== them vao cho if (abs(smin-fcout).lt.eps_fcout) goto 401 call simulqn3(indic,nnchat,mu,Fcout,grad,izs,rzs,dzs) ! cho gay roi c======================================== ntrav=6*nnchat+2 ndimx = nnchat dxmin = 1.E-6 df1=Fcout c c !tamkhoa cho eps0 = 1.E-6 !-8 imp = io = 16 mode = niter = 2000 nsim = 1000 nrz = ntrav nnrz=ntrav+3*nnchat print * print *,'Optimization with m1gn3' print * dx=1.e-10 df1=fcout !tam khoa cho epsrel=1.e-5 niter=400 ! cu la 200 nsim=400 ! cu la 200 normtype = 'dfn' io=6 !cu la imp=5 !cu la imode(1)=0 imode(2)=0 imode(3)=0 reverse=0 ndz=7*nnchat+3 !7*n+3 20000 call m1qn3 (simulqn3,euclid,ctonbe,ctcabe,nnchat,mu,fcout,grad,dx & ,df1 & ,epsrel, & normtype,imp,io,imode,omode,niter,nsim,iz,ndz, & reverse,indic,izs,rzs,dzs) TIEU LUAN MOI download : skknchat@gmail.com 65 kkk=kkk+1 print *,'apres m1gn3 lan ',kkk+1 smu=mu(1) i=2,nvolume*nchat smu=smu+mu(i) enddo smu=smu/nvolume*nchat smu=abs(smu-smu0)*100 if ((abs(fcout).lt.eps_fcout).or (kkk.gt.kkk_step) & or.(smu.lt.eps_fcout)) then goto 401 else goto 999 endif 401 if( idata.eq.2) then OPEN (13, FILE = 'sl2d/mu_source2.txt',STATUS='unknown') else OPEN (13, FILE = 'sl2d/mu_dis2.txt',STATUS='unknown') endif Do i=1,nvolume j=1,nchat kk=(j-1)*nvolume+i mu_kq(i,j)=mu(kk) enddo write(13,1016) i,( mu_kq(i,j),j=1,nchat) 1016 format(i5,85f20.15) End Do close(13) return END subroutine c=========================== subroutine tinh_onhiem(mu,nnchat) integer nt,nnchat,k1,i,j real*8 mu(nnchat) k1=1,sovtnoi fvbou2c(k1,1:nchat)=conc1d(1:nchat) nhiem??????????day co phai bien khong !aid 1/4/08 day la o end do i=1,npoint TIEU LUAN MOI download : skknchat@gmail.com 66 concentp(i,1:nchat)=concentp_t(i,1:nchat,1) enddo c j=1,nchat i=1,nvolume invo=fvnuvol(i) nt=1,maxstep concentx_t(invo,j,nt)=0 concenty_t(invo,j,nt)=0 concen_t(invo,j,nt)=0 enddo enddo enddo nt=1,maxstep-1 write(*,*)'nt-concentration',nt i=1,nvolume invo=fvnuvol(i) concent(invo,1:nchat)=0 enddo call onhiem(nt,mu,nnchat) enddo call concentxy(maxstep,nnchat) return end subroutine c============================================================= = subroutine tinh_onhiem_saudata(mu,nnchat,nt_simul,time_data) !tinh lai sau dong hoa integer nt,nnchat,nt_simul,nt2,k1,i,j,k_data real*8 mu(nnchat),time_print,time_data &,concent_0(nvolume,nchat,maxstep+1) k1=1,sovtnoi fvbou2c(k1,1:nchat)=conc1d(1:nchat) !aid 1/4/08 day la o nhiem??????????day co phai bien khong end do i=1,npoint concentp(i,1:nchat)=concentp_t(i,1:nchat,1) enddo j=1,nchat i=1,nvolume TIEU LUAN MOI download : skknchat@gmail.com 67 invo=fvnuvol(i) nt=1,maxstep concentx_t(invo,j,nt)=0 concenty_t(invo,j,nt)=0 concen_t(invo,j,nt)=0 enddo enddo enddo c nt=1,maxstep-1 write(*,*)'nt-concentration',nt i=1,nvolume invo=fvnuvol(i) concent(invo,1:nchat)=0 enddo call onhiem(nt,mu,nnchat) nt2=nt+nt_simul time_print= time_data+det call inketqua(time_print,nt2) enddo call concentxy(maxstep,nnchat) return end subroutine c============================================================= subroutine tinh_onhiem_saudata2(mu,nnchat,nt_simul,time_data) integer nt,nnchat,nt_simul,nt2,k1,i,j,k_data real*8 mu(nnchat),time_print,time_data k1=1,sovtnoi fvbou2c(k1,1:nchat)=conc1d(1:nchat) !aid 1/4/08 day la o nhiem??????????day co phai bien khong end do i=1,npoint concentp(i,1:nchat)=concentp_t(i,1:nchat,1) enddo j=1,nchat i=1,nvolume invo=fvnuvol(i) nt=1,maxstep concentx_t(invo,j,nt)=0 concenty_t(invo,j,nt)=0 concen_t(invo,j,nt)=0 TIEU LUAN MOI download : skknchat@gmail.com 68 enddo enddo enddo c nt=1,maxstep-1 write(*,*)'nt-concentration',nt i=1,nvolume invo=fvnuvol(i) concent(invo,1:nchat)=0 enddo call onhiem(nt,mu,nnchat) nt2=nt+nt_simul time_print= time_data+det call inketqua(time_print,nt2) enddo call concentxy(maxstep,nnchat) return end subroutine c======================================== SUBROUTINE onhiem(nt,mu,nnchat) integer nt,nnchat,jj,kk1,i,k1,k,k2,i1,j,ir2,ir3,ir4,ir1 real*8 coef_dis_moi(nvolume,nchat),r1,r2,r3,r4,r5,r6,r8,r9,r7 real*8 ufi,vfi,ufk,hfi,uboun,vfk,ubout real*8 fvpoiut_on(npoint),fvpoivt_on(npoint),fvpoizt_on(npoint) &,fvwetdry_on(nvolume),fvbou2v_on(sovtnoi),fvbou2u_on(sovtnoi) real*8 mu(nnchat),zzt_on(nvolume), subcen(nchat) real rwd1,rwd2,rwd3 i=1,nvolume invo=fvnuvol(i) fvwetdry_on(invo)=fvwetdry_t(invo,nt) zzt_on(invo)=zzt_t(invo,nt) enddo i=1,npoint fvpoizt_on(i)=fvpoizt_t(i,nt) thay doi chuong trinh fvpoiut_on(i)=fvpoiut_t(i,nt) fvpoivt_on(i)=fvpoivt_t(i,nt) enddo k1=1,sovtnoi fvbou2v_on(k1)=fvbou2v_t(k1,nt)!ha luu lai !phai lam vay de fvpoinzt k0 bi gay sai so TIEU LUAN MOI download : skknchat@gmail.com 69 fvbou2u_on(k1)=fvbou2u_t(k1,nt) enddo !ha luu lai gay sai so i=1,nvolume invo=fvnuvol(i) ir2=fvtype(invo) ! dang cua phan tu if(fvwetdry_on(invo).eq.-1) goto 92 if(fvwetdry_on(invo).eq.0) goto 92 if(ir2.eq.3) goto 98 pause '6/6 need to write for the case # ' stop 98 c c rwd1=fvpoizt_on(fvvolume(invo,1))-fvpointzd(fvvolume(invo,1))! co le tinh ! cao tai diem cua tam giac rwd2=fvpoizt_on(fvvolume(invo,2))-fvpointzd(fvvolume(invo,2)) rwd3=fvpoizt_on(fvvolume(invo,3))-fvpointzd(fvvolume(invo,3)) print *,invo,rwd1,rwd2,rwd3 if(invo/40*40.eq.invo) pause 'N vol,: h u v ' if(rwd1.le.htol2.or.rwd2.le.htol2.or.rwd3.le.htol2) goto 92 k=1,3 if(fvconect(invo,k).gt.0.and.fvwetdry_on(fvconect(invo,k)).eq.0) & goto 92 end fvwetdry_on(invo)=2 !wet ir2=fvvolume(invo,1) !tai nut uot xfv(1)=fvpointx(ir2) !toa tai x cua diem ir2 yfv(1)=fvpointy(ir2) !toa tai y cua diem ir2 fgrh(1)=fvpoizt_on(ir2) !do cao zt tinh r1=fvpoiut_on(ir2) !u tinh r2=fvpoivt_on(ir2) !v tinh ir3=fvvolume(invo,2) !tai nut uot xfv(2)=fvpointx(ir3) !toa tai diem x cua diem ir3 yfv(2)=fvpointy(ir3) ! toa cua diem y cua diem ir3 fgrh(2)=fvpoizt_on(ir3) !z tinh r3=fvpoiut_on(ir3) !u tinh r4=fvpoivt_on(ir3) !v tinh ir4=fvvolume(invo,3) xfv(3)=fvpointx(ir4) ! toa tai diem x cua dien ir4 yfv(3)=fvpointy(ir4) ! toa tai diem y cua diem ir4 TIEU LUAN MOI download : skknchat@gmail.com 70 fgrh(3)=fvpoizt_on(ir4) r5=fvpoiut_on(ir4) r6=fvpoivt_on(ir4) !z tinh x1=0.5*(xfv(1)+xfv(2)) ! diem giua canh cua tam giac theo x y1=0.5*(yfv(1)+yfv(2)) ! diem giua canh cua tam giac x2=0.5*(xfv(2)+xfv(3)) y2=0.5*(yfv(2)+yfv(3)) x3=0.5*(xfv(3)+xfv(1)) y3=0.5*(yfv(3)+yfv(1)) c zgrad3p tinh gradient cua mat F(xfv,yfv)=fgrh(xfv,yfv)-z=0 tai diem (x1,y1) voi cac toa lan can c xfv(j),yfv(j),a,b la huong cua phap tuyen - day tinh he so chi phuong cua phap tuyen va cao call zgrad3p_data(xfv,yfv,fgrh,a,b,x1,y1,z1) fvzface(invo,1)=z1 !do cao muc nuoc theo huong phap tuyen tai diem (x1,y1) fvhface(invo,1)=z1-fvzdface(invo,1) !do chenh h call zgrad3p_data(xfv,yfv,fgrh,a,b,x2,y2,z1) fvzface(invo,2)=z1 ! cao tai diem so fvhface(invo,2)=z1-fvzdface(invo,2) call zgrad3p_data(xfv,yfv,fgrh,a,b,x3,y3,z1) fvzface(invo,3)=z1 ! cao tai diem so fvhface(invo,3)=z1-fvzdface(invo,3) x1=xc(invo) y1=yc(invo) call zgrad3p_data(xfv,yfv,fgrh,a,b,x1,y1,z1) fvvolzt(invo)=z1 ! cao tai diem trung tam cua phan tu fvvolht(invo)=z1-zbott(invo) ! chenh h c c print *,invo,fvzdface(invo,1) !fvvolzt(invo),fvwetdry_on(invo) !fvvolut(invo),fvvolvt(invo) if(invo/40*40.eq.invo) pause 'N vol,: h u v ' fgrh(1)=r1 ! ham tinh u tai diem cua phan tu fgrh(2)=r3 ! ham tinh u tai diem cua phan tu fgrh(3)=r5 ! ham tinh u tai diem cua phan tu call zgrad3p_data(xfv,yfv,fgrh,a,b,x1,y1,z1) fvvolut(invo)=z1 ! tinh ham u tai trung tam cua phan tu fvgraux(invo)=a !aid 19/06/06 for source term !- tinh u phay theo x tai trung tam cua phan tu fgrh(1)=r2 fgrh(2)=r4 fgrh(3)=r6 ! ham v tai diem cua phan tu ! ham v tai diem cua phan tu ! ham v tai diem cua phan tu TIEU LUAN MOI download : skknchat@gmail.com 71 call zgrad3p_data(xfv,yfv,fgrh,a,b,x1,y1,z1) fvvolvt(invo)=z1 ! ham v cua pan tu tai diem trung tam fvgravy(invo)=b !aid 19/06/06 for source term !tinh v phay theo y fgrh(1)=r1 fgrh(2)=r3 fgrh(3)=r5 !xfv,yfv toa cua diem x va cua diem y !fgrh la gi call zgrad3p_data(xfv,yfv,fgrh,a,b,x1,y1,z1) fvuface(invo,1)=z1 !fvuface la gi tinh u tai diem trung tam call zgrad3p_data(xfv,yfv,fgrh,a,b,x2,y2,z1) fvuface(invo,2)=z1 ! tinh u tai diem giua cua 2-3 cua phan tu call zgrad3p_data(xfv,yfv,fgrh,a,b,x3,y3,z1) fvuface(invo,3)=z1 ! tinh u tai diem giua 31 cua phan tu fgrh(1)=r2 ! v tai diem fgrh(2)=r4 ! v tai diem fgrh(3)=r6 ! v tai diem call zgrad3p_data(xfv,yfv,fgrh,a,b,x1,y1,z1) fvvface(invo,1)=z1 ! tinh v tai diem trung tam cua phan tu call zgrad3p_data(xfv,yfv,fgrh,a,b,x2,y2,z1) fvvface(invo,2)=z1 ! tinh v tai diem giua cua canh 2-3 cua phan tu !theo huong phap tuyen call zgrad3p_data(xfv,yfv,fgrh,a,b,x3,y3,z1) fvvface(invo,3)=z1 ! tinh v tai diem giua 31 theo huong phap tuyen x1=xc(invo) y1=yc(invo) !aid 1/4/08 k1=1,nchat r7=concentp(ir2,k1) !aid 1/4/08 o nhiem tai diem r8=concentp(ir3,k1) !o nhiem tai diem r9=concentp(ir4,k1) fgrh(1)=r7 fgrh(2)=r8 fgrh(3)=r9 call zgrad3p_data(xfv,yfv,fgrh,a,b,x1,y1,z1) concent(invo,k1)=z1 concentx(invo,k1)=a concenty(invo,k1)=b concentx_t(invo,k1,nt)=a concenty_t(invo,k1,nt)=b concen_t(invo,k1,nt)=z1 TIEU LUAN MOI download : skknchat@gmail.com 72 enddo 92 continue end do i=1,nvolume invo=fvnuvol(i) ir2=fvtype(invo) if(fvwetdry_on(invo).eq.-1) goto 921 if(fvwetdry_on(invo).eq.0) goto 921 if(fvwetdry_on(invo).eq.2) goto 921 if(ir2.eq.3) goto 981 pause '6/6 need to write for the case # ' stop 981 rwd1=fvpoizt_on(fvvolume(invo,1))-fvpointzd(fvvolume(invo,1)) rwd2=fvpoizt_on(fvvolume(invo,2))-fvpointzd(fvvolume(invo,2)) rwd3=fvpoizt_on(fvvolume(invo,3))-fvpointzd(fvvolume(invo,3)) fvwetdry_on(invo)=1 !part dry fvuface(invo,1)=0 fvuface(invo,2)=0 fvuface(invo,3)=0 fvvface(invo,1)=0 fvvface(invo,2)=0 fvvface(invo,3)=0 ir1=0 k=1,3 if(fvconect(invo,k).gt.0.and.fvwetdry_on(fvconect(invo,k)).eq.2) then c ir1=1 z1=fvvolzt(fvconect(invo,k)) goto 922 endif end if(ir1.eq.0) then neu hoan toan kho fvwetdry_on(invo)=0 !dry fvhface(invo,1)=0 fvhface(invo,2)=0 fvhface(invo,3)=0 fvuface(invo,1)=0 fvuface(invo,2)=0 fvuface(invo,3)=0 fvvface(invo,1)=0 TIEU LUAN MOI download : skknchat@gmail.com 73 fvvface(invo,2)=0 fvvface(invo,3)=0 fvvolht(invo)=0 fvvolzt(invo)=zbott(invo) c c 922 print *,' Wet/dry err in vol',invo pause !stop endif fvvolzt(invo)=z1 ! z tinh tai dinh co nuoc fvvolht(invo)=z1-zbott(invo) !do chenh h tinh : !do cao muc nuoc tru cao day if(fvvolht(invo).lt.0.) fvvolht(invo)=0 ! fvzface(invo,1)=z1 ! cao nuoc tai dinh tren phan tu deu bang cao ! nuoc tai diem noi co nuoc fvzface(invo,2)=z1 fvzface(invo,3)=z1 fvhface(invo,1)=z1-fvzdface(invo,1) fvhface(invo,2)=z1-fvzdface(invo,2) fvhface(invo,3)=z1-fvzdface(invo,3) if(fvhface(invo,1).lt.0.) fvhface(invo,1)=0 !neu chenh cua nuoc am !thi cao h o bang if(fvhface(invo,2).lt.0.) fvhface(invo,2)=0 if(fvhface(invo,3).lt.0.) fvhface(invo,3)=0 921 continue end do i=1,nvolume !1/4/08 Tinh LTC concen invo=fvnuvol(i) if(fvwetdry_on(invo).eq.0) then !dry cell concen(invo,1:nchat)=0.0 goto 810 !dry cell endif ir2=fvtype(invo) hs1(1:nchat)=0 !total of fluxes hs2(1:nchat)=0 k=1,ir2 ufi=fvuface(invo,k) vfi=fvvface(invo,k) if(fvconect(invo,k).le.0.and.fvvolbty(invo).eq.-1) goto 560 if(fvconect(invo,k).le.0.and.fvvolbty(invo).eq.-2) goto 570 if(fvconect(invo,k).le.0.and.fvvolbty(invo).eq.-3) goto 580 TIEU LUAN MOI download : skknchat@gmail.com 74 ir3=fvconect(invo,k) k2=fvcfacek(invo,k) ufk=fvuface(ir3,k2) vfk=fvvface(ir3,k2) ufi=0.5*(ufi+ufk) vfi=0.5*(vfi+vfk) i1=1,nchat jj=(i1-1)*nvolume+invo if(idata.eq.1) then coef_dis_moi(invo,i1)=mu(jj) else coef_dis_moi(invo,i1)=coef_dis_mu(invo,i1) koef_sou_moi(i1,i1,invo)=mu(jj) endif hfi=0.5*(concent(invo,i1)+concent(ir3,i1)) r7=0.5*(concentx(invo,i1)+concentx(ir3,i1)) r8=0.5*(concenty(invo,i1)+concenty(ir3,i1)) hs2(i1)=normalx(invo,k)*ufi*(hfi-coef_dis_moi(invo,i1)*r7)+ &normaly(invo,k)*vfi*(hfi-coef_dis_moi(invo,i1)*r8) enddo goto 590 560 continue !bou ufi=0 vfi=0 hs2(1:nchat)=0 i1=1,nchat jj=(i1-1)*nvolume+invo if(idata.eq.1) then coef_dis_moi(invo,i1)=mu(jj) else coef_dis_moi(invo,i1)=coef_dis_mu(invo,i1) koef_sou_moi(i1,i1,invo)=mu(jj) endif enddo goto 590 TIEU LUAN MOI download : skknchat@gmail.com 75 570 continue !bou ufi=fvbou2u(fvnb2vol(invo)) vfi=fvbou2v(fvnb2vol(invo)) i1=1,nchat jj=(i1-1)*nvolume+invo if(idata.eq.1) then coef_dis_moi(invo,i1)=mu(jj) else coef_dis_moi(invo,i1)=coef_dis_mu(invo,i1) koef_sou_moi(i1,i1,invo)=mu(jj) endif hfi=0.5*(concent(invo,i1)+fvbou2c(fvnb2vol(invo),i1)) r7=concentx(invo,i1) r8=concenty(invo,i1) !XL tam 1/4/08 hs2(i1)=normalx(invo,k)*ufi*(hficoef_dis_moi(invo,i1)*r7)+ !?????????????????????????????xem cho sua &normaly(invo,k)*vfi*(hfi-coef_dis_moi(invo,i1)*r8) enddo goto 590 580 continue !bou uboun=normalx(invo,k)*ufi+normaly(invo,k)*vfi ubout=-normaly(invo,k)*ufi+normalx(invo,k)*vfi ufk=normalx(invo,k)*uboun-normaly(invo,k)*ubout vfk=normaly(invo,k)*uboun+normalx(invo,k)*ubout ufi=0.5*(ufi+ufk) vfi=0.5*(vfi+vfk) i1=1,nchat jj=(i1-1)*nvolume+invo if(idata.eq.1) then coef_dis_moi(invo,i1)=mu(jj) else coef_dis_moi(invo,i1)=coef_dis_mu(invo,i1) koef_sou_moi(i1,i1,invo)=mu(jj) endif hfi=concent(invo,i1) r7=concentx(invo,i1) TIEU LUAN MOI download : skknchat@gmail.com 76 r8=concenty(invo,i1) hs2(i1)=normalx(invo,k)*ufi*(hficoef_dis_moi(invo,i1)*r7)+ !?????????????????????????????xem cho sua &normaly(invo,k)*vfi*(hfi-coef_dis_moi(invo,i1)*r8) enddo goto 590 !other bou.con.? 590 continue ! ! ! if(abs(rfk1).le.eps) rfk1=0 if(abs(rfk2).le.eps) rfk2=0 if(abs(rfk3).le.eps) rfk3=0 i1=1,nchat hs2(i1)=hs2(i1)*fvvollen(invo,k) hs1(i1)=hs1(i1)+hs2(i1) enddo end c============================ ! Cong cac chat chuyen hoa subcen(1:nchat)=0 i1=1,nchat r1=0 k1=1,nkoef_sou(i1) r1=r1+concent(invo,conc_sou(i1,k1))*koef_sou_moi(i1,k1,invo)*det if (i1.ne.conc_sou(i1,k1)) then subcen(conc_sou(i1,k1))=subcen(conc_sou(i1,k1))+ & concent(invo,conc_sou(i1,k1))*koef_sou_moi(i1,k1,invo)*det endif enddo concen(invo,i1)=r1+concent(invo,i1)& hs1(i1)*det/fvarvol(invo) enddo ! tru` cac chat da chuyen hoa i1=1,nchat concen(invo,i1)=concen(invo,i1)-subcen(i1) enddo 810 continue end 82 continue TIEU LUAN MOI download : skknchat@gmail.com 77 !for next cal; i=1,npoint !25/7 cal z,u,v at nodes ir1=0 cen1(1:nchat)=0 !aid 1/4/08 j=1,numsurp(i,11) invo=numsurp(i,j) if(fvwetdry_on(invo).eq.2) then mod 15/7/06 !mod 22/8/07 ir1=ir1+1 cen1(1:nchat)=cen1(1:nchat)+concen(invo,1:nchat) end if end concentp(i,1:nchat)=0.0 if(ir1.gt.0) then r4=ir1 concentp(i,1:nchat)=cen1(1:nchat)/r4 end if end do i1=1,nchat k=1,nbou2(1) concentp(npoibou2(k,1),i1)=conc1d(i1) !2/4/08 bou2 for TN only enddo enddo i=1,npoint concentp_t(i,1:nchat,nt+1)=concentp(i,1:nchat) enddo return END Subroutine c==================================== END MODULE onhiem_DA TIEU LUAN MOI download : skknchat@gmail.com ... II ỨNG DỤNG PHƯƠNG PHÁP ĐỒNG HĨA SỐ LIỆU HIỆU CHỈNH THAM SỐ CHO BÀI TỐN LAN TRUYÊN Ô NHIỄM NƯỚC HAI CHIÊU Trong chương trình bày phần ứng dụng đồng hóa số liệu phương pháp biến phân tối ưu để hiệu. .. mơ hình tính lan truyền nhiễm mơ hình phương pháp tốn học đồng hóa số liệu phương pháp biến phân tối ưu (DA_VA) ứng dụng Ở mục phương pháp tối ưu biến phân để hiểu chỉnh hai tham số khuyếch tán... sau :  Ứng dụng đồng hóa số liệu phương pháp tối ưu biến phân để hiệu chỉnh tham số cho tốn nhiễm nước chiều  Hiệu chỉnh tham số mơ hình để nồng độ chất BOD5, NH3 mơ hình tính có hiệu chỉnh gần

Ngày đăng: 27/06/2022, 17:25

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan