Ус халиагуур, ус хаях барилгыг ЛБА-аар загварчилах
Ус халиагуур нь ус хэмжих барилга/байгууламж учир төсөл тооцооны нарийвчлалыг өндөр байлгахыг шаарддаг.
Ус хаях барилга (Ус хаяур) нь үер, их устай үед үндэн барилга байгууламжийн аюулгүй байдлыг сахьдаг учир мөн л нарийвчлал өндөртэй тооцооллыг шаарддаг.
1 2 | C:\ayur\LBM\FreeSurface\dambreak2\sharpweir\6090>ffmpeg -i 0060f.avi -vf "[0:v]pad=iw*2:ih [in0]; movie=0060.avi [in1]; [in0][in1] overlay=740:0 [out] " out60.avi |
ЛБА -аар шингэний чөлөөт гадаргууг ойролцоолох тухай Шингэний чөлөөт гадаргууг ойролцоолох нэртэй нийтлэл бий. Тэндээс та бүхэн үндсэн санаа, томъёолол, алгоримт, бас Фортран кодыг олж авах боломжтой. ЛБА-аар ус халиагуур ба ус хаяурыг загарчилахаас өмнө эдгээр барилга байгууламжийн тухай товч авч үзье.
Ус халиагуур
Ус халиагуур нь ус хэмжүүрийн барилга/байгууламж бөгөөд ямарч өртөг зардалгүйгээр усны хэмжээг тодорхойлдог. Үүнийг үйлдвэрт ус, бусад төрлийн урсамтай шингэн хэмжихэд хэрэглэхээс гадна уул уурхай, хүн ам, услалтын системийг усаар хангах систем дээр, мөн газрын доорхи усны туршилт, шавхалт явуулах, гадаргын гол ус горхи хэмжих гэх мэтэд өргөнөөр ашигладаг. Ус халиагуурыг үндсэнд нь хоёр ангилна.
- Өргөн босгот
- Хурц ирмэгт
Эдгээр нь өөр өөрийн гэсэн байгууламжийн онцлогтой. Хурц ирмэгт ус халиагуурыг босгоны геометр хэлбэрээс хамааруулж парабол, квадрат, тэгш өнцөгт, дугуй, синус, гурвалжин гэх мэтээр ангилж тэдгээрт тохирсон зарцуулга тодорхойлох томъёо, барьж байгуулах хэмжээ дамжааг нь стандарчилж гаргасан байдаг. Мөн хурц ирмэгтэй боловч хөндлөн чиглэлдээ янз бүрийн зай хожих хэлбэр үүсгэсэн ус халиагуур байх бөгөөд тэдгээрийг товчлуурт, лабринт хэлбэртэй гэх мэтээр ангилдаг.
Жижиг горхин дээрх гурвалжин хурц ирмэгт ус халиагуур. Гидрологийн урсацын харуулын үүрэг гүйцэтгэж байна. |
Ерөнхий зарцуулгын томъёо нь:
Q=CLH^n
Энд: С - зарцуулгын коэффициент гэнэ.
L - босгоны өргөн
Н - ус халиагуурын босгон дээрх усны түрэлт
n - хэлбэрээс хамаарах коэффицент
Эндээс С болон n -ийг нарийн тодорхойлох шаардлагатай байдаг.
Зарим ус халиагуур нь ус хэмжихээс өөр зорилгоор ашиглагдаж болно. Усны түвшин өргөх, хагшаас барих, урсгалын хурд сааруулах гэх мэт хэрэглээ усны барилгад олон бий.
Авон голын дараалсан өргөн босгот ус халиагуур, Англи. Усны түвшин өргөх зориулалттай. |
Ус хаяур
Ус халиагуурын нэг шилжсэн хэлбэр нь ус хаяурын байгууламжууд юм. Ус хаяурын барилга нь ихэвчлэн өргөн босгот ус халиагуурын зарчмаар ажилладаг. Ус хаяур нь аваарын барилга учир гидравликийн хүнд нөхцөлд ажилладаг.
Ус хаяур нь ихэвчлэн боомтын барилгатай хамт баригдах ба их хэмжээний устай гол, зарим үерийн суваг гэх мэтэд ослын үед хэрэглэгдэхээр баригддаг.
ЛадиБовер усан сангийн уурхайн ус хаяур амралтын горимд байж байна. |
Ус хаяур, заримдаа ус хаях барилга гэж ярьна, нь газар зүйн нөхцөл байдал (геофизикийн нөхцөл), усны тоо хэмжээ (гидрологийн нөхцөл), хөрс чулуулаг (геологийн нөхцөл) гэх мэтээс хамаарч яман нэгэн байдлаар бусдаасаа онцгой тооцогдож баригддаг. Ус хаях барилгыг ерөнхийд нь:
- Муруй гадаргуутай ус хаях барилга,
- Уурхайн ус хаяр барилга,
- Шаталсан ус хаях барилга,
- Хажуугын ус хаях барилга,
- Сифон ус хаях барилга гэх мэтээр ангилна.
Ерөнхий ажиллах зарчим нь ус халиагууртай яг адил. Гэхдээ доод хашиц дахь гидравликийн нэмэлт тооцоолол шаарддаг учир төсөлөхөд төвөгтэй байдаг.
Усны барилгын гидравлик тооцоо барилгын үндсэн хэмжээг гаргах ба үүн дээр үндэслэж бүтээцийн тооцооллыг хийдэг. Гидравликийн тооцоолол тэр бүр амар хялбар хийгддэггүй нь шингэний урсгалыг илэрхийлэл томъёо тэгшитгэл тодорхой бус байдагтай холбоотой. Стандарчилагдсан ус хаях барилгын зарим нэг нийтлэг хэсгүүдэд зориулсан төсөл тооцооны аргачлал боловсруулагдсан байдаг боловч хэмжээ, барилгын ангиас хамааруулж туршилт хийх шаардлага гардаг.
Ялангуяа ус хаях барилгын хувьд хамгийн чухал асуудал нь өнгөрүүлэх усны хэмжээ бус усны энерги унтраах чадвар байдаг. Энерги нь урсгалын хурдаас хамааралтай учир дундажилсан хурдыг нарийн тодорхойлоогүй тохиолдолд тооцоолол буруу тийш эргэнэ.
Урсгалын хурдыг маш нарийн тодорхойлохын тулд тооцон бодох аргуудыг ашиглах, эсвэл лабораторид физик загварчлал дээр туршилт явуулахаас өөр арга байхгүй.
Латтис Больцманы аргаар загварчилах
Шингэний чөлөөт гадаргууг ойролцоолох кодон дээр анхны болон хязгаарын нөхцлийг өөрчилсөнөөр хурц ирмэгт ус халиагуурыг загварчилах боломжтой. Ус халиагуур болон ус хаях барилгад ижил зүйл нь халиагуур болон барилгын геометрийг өгөх, оролтын болон гаралтын хязгаарын нөхцлийг оруулах, анхны нөхцлийг оногдуулах гэх мэт байна. Хэмжээ, хэлбэрээрээ ялгаатай боловч ижил байдлаар загварчилагдана.
Хурц ирмэгт ус халиагуурын 2хэмжээст геомерт дүрслэл |
Жишээ болгон хурц ирмэгт ус халиагуурыг хоёр хэмжээстэд авч үзье. Ус халиагуурыг усанд автаагүй байх нөхцөлд загварчилъя. Үндсэн геометр өгөгдөл нь босгоны өндөр tw байх ба энэ хэмжигдэхүүнээр бусад хэмжээсүүд зураг дээрх шиг илэрхийлэгдэнэ.
Ингээд геометр нөхцлийг өгөх фортран кодыг авч үзье.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | do i=0,n do j=0,m rho(i,j)=rhoo p(i,j)=rho(i,j)/3. flag(i,j)=3 ! interface node e(i,j)=0.0 ma(i,j)=0.0 if(j.lt.90.and.i.lt.3*n/8) then ! upstream water flag(i,j)=1 ! fluid node e(i,j)=1.0 ma(i,j)=rho(i,j)*e(i,j) !1.0 else if(j.eq.90.and.i.le.3*n/8) then flag(i,j)=2 ! interface node e(i,j)=0.5 ma(i,j)=rho(i,j)*e(i,j) !0.5 else if(j.le.90.and.i.eq.3*n/8) then flag(i,j)=2 ! interface node e(i,j)=0.5 ma(i,j)=rho(i,j)*e(i,j) !0.5 endif if(j.lt.ow/2.and.i.gt.3*n/8) then ! downstream water flag(i,j)=1 ! fluid node e(i,j)=1.0 ma(i,j)=rho(i,j)*e(i,j) !1.0 else if(j.eq.ow/2.and.i.ge.3*n/8) then flag(i,j)=2 ! interface node e(i,j)=0.5 ma(i,j)=rho(i,j)*e(i,j) !0.5 else if(j.le.ow/2.and.i.eq.3*n/8) then flag(i,j)=2 ! interface node e(i,j)=0.5 ma(i,j)=rho(i,j)*e(i,j) !0.5 endif do k=0,8 f(k,i,j)=w(k)*rho(i,j) enddo u(i,j)=0.0 v(i,j)=0.0 tau(i,j)=1./ome ! initial relaxation ! wall/obstacle flag if(j.eq.0.or.j.eq.m) then flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 !rho(i,j)*e(i,j) endif end do end do ! obstacle at bottom do i=3*n/8-1,3*n/8+1 ! sharp crest weir do j=0,ow !+ow/2 flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo ! initial neighborhood information do i=0,n do j=0,m flagneig(i,j)=0 if(flag(i,j).eq.1) flagneig(i,j)=3 if(flag(i,j).eq.3) flagneig(i,j)=2 if(flag(i,j).eq.2) flagneig(i,j)=1 enddo enddo |
Анхны нөхцөл, бодлогын геометр |
1 2 3 4 5 6 7 8 9 10 | ! boundary for inlet do j=0,m if(flag(0,j).eq.1.or.flag(i,j).eq.2) then rhow=f(0,0,j)+f(2,0,j)+f(4,0,j)+2.*(f(3,0,j)+f(6,0,j)+f(7,0,j)) rhow=rhow/(1.-uo) f(1,0,j)=f(3,0,j)+2.*rhow*uo/3. f(5,0,j)=f(7,0,j)+rhow*uo/6. f(8,0,j)=f(6,0,j)+rhow*uo/6. endif enddo |
-------------------------------------------------------------------------------------------------------------------------
Гаралтын нөхцөл: Ус халиагуураар даваад ирж байгаа усыг бодлогын баруун захын хүрээгээр чөлөөтэй нэвтрүүлж гаргах ёстой. Гаралтанд Неуманы хязгаарын нөхцлийг өгнө. Нэг ба хоёрдугаар эрэмбийн нарийчлалтайг өгч болох ч зарим үед аль тохиромжтойг нь өгөх хэрэгтэй.
1 2 3 4 5 6 7 8 9 10 11 12 13 | ! boundary for outlet do j=0,m if(flag(n,j).eq.1.or.flag(n,j).eq.2) then ! uxx=f(0,n,j)+f(2,n,j)+f(4,n,j)+2.*(f(1,n,j)+f(5,n,j)+f(8,n,j)) ! uxx=-1.+uxx ! f(3,n,j)=f(1,n,j)-2.*uxx/3. ! f(6,n,j)=f(8,n,j)-0.5*(f(2,n,j)-f(4,n,j))-uxx/6. ! f(7,n,j)=f(5,n,j)+0.5*(f(2,n,j)-f(4,n,j))-uxx/6. f(3,n,j)=f(3,n-1,j) !(4.*f(3,n-1,j)-f(3,n-2,j))/3. f(6,n,j)=f(6,n-1,j) !(4.*f(6,n-1,j)-f(6,n-2,j))/3. f(7,n,j)=f(7,n-1,j) !(4.*f(7,n-1,j)-f(7,n-2,j))/3. endif enddo |
Дээрх хэсэг кодонд эхэнд нь даралтын хязгаарын нөхцөл /3-8/, 1-р эрэмбийн Вон Неуманы нөхцөл /9-11/, түүний ард тайлбар маягаар 2-р эрэмбийн Вон Неуманы нөхцөл өгөгдсөн байна.
Ханан дээрх хязгаар нөхцлөөр гулсах хязгаарын нөхцлийг өгсөн ба энэ нь буцаж толин ойлгох зарчмаар хийгддэг. Мөргөлдөөнийг хананы зангилаан дээр буцаж ойлгоод урсах алхамын үед шууд шууд хуулах маягаар толин ойлтыг хийж өгдөг.
Ханан дээрх хязгаар нөхцлөөр гулсах хязгаарын нөхцлийг өгсөн ба энэ нь буцаж толин ойлгох зарчмаар хийгддэг. Мөргөлдөөнийг хананы зангилаан дээр буцаж ойлгоод урсах алхамын үед шууд шууд хуулах маягаар толин ойлтыг хийж өгдөг.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | do i=0,n do j=0,m ! collision for boundary nodes if(flag(i,j).eq.0) then if(flag(i+1,j+0).eq.2 & .or.flag(i+1,j+0).eq.1) then f(1,i,j)=f(3,i,j) f(5,i,j)=f(6,i,j) f(8,i,j)=f(7,i,j) endif if(flag(i+0,j+1).eq.2 & .or.flag(i+0,j+1).eq.1) then f(2,i,j)=f(4,i,j) f(5,i,j)=f(8,i,j) f(6,i,j)=f(7,i,j) endif if(flag(i-1,j+0).eq.2 & .or.flag(i-1,j+0).eq.1) then f(3,i,j)=f(1,i,j) f(7,i,j)=f(8,i,j) f(6,i,j)=f(5,i,j) endif if(flag(i-0,j-1).eq.2 & .or.flag(i-0,j-1).eq.1) then f(4,i,j)=f(2,i,j) f(7,i,j)=f(6,i,j) f(8,i,j)=f(5,i,j) endif endif enddo enddo ! boundary condition for obstacle do i=0,n do j=0,m if(flag(i,j).eq.0) then ! boundary for wall. Just copy DFs if(flag(i+1,j+0).eq.2 & .or.flag(i+1,j+0).eq.1) then f(1,i+1,j+0)=f(1,i,j) f(5,i+1,j+0)=f(5,i,j) f(8,i+1,j+0)=f(8,i,j) endif if(flag(i+0,j+1).eq.2 & .or.flag(i+0,j+1).eq.1) then f(2,i+0,j+1)=f(2,i,j) f(5,i+0,j+1)=f(5,i,j) f(6,i+0,j+1)=f(6,i,j) endif if(flag(i-1,j+0).eq.2 & .or.flag(i-1,j+0).eq.1) then f(3,i-1,j+0)=f(3,i,j) f(7,i-1,j+0)=f(7,i,j) f(6,i-1,j+0)=f(6,i,j) endif if(flag(i-0,j-1).eq.2 & .or.flag(i-0,j-1).eq.1) then f(4,i-0,j-1)=f(4,i,j) f(7,i-0,j-1)=f(7,i,j) f(8,i-0,j-1)=f(8,i,j) endif ! do k=1,8 ! op=opp(k) ! if(flag(i+cx(k),j+cy(k)).eq.2 ! & .or.flag(i+cx(k),j+cy(k)).eq.1) then ! f(k,i+cx(k),j+cy(k))=f(op,i+cx(k),j+cy(k)) ! endif ! enddo endif enddo enddo |
Кодны төгсгөлд тайлбар маягаар үл буцах хязгаарын нөхцлийг өгсөн байна.
Ингээд тооцоог хийхдээ зарцуулгыг өөрчлөх замаар ус халиагуурын зарцуулгын коэффицентыг тодорхойлсон. Дараах томъёоны тусламжтайгаар тооцон бодсон утгуудаа ашиглан Cd коэффициентыг тогтоох нь туршилтын гол зорилго болно.
Зарцуулга нь хувийн зарцуулгаар өгөгдсөн ба ус халиагуурыг 1 нэгжийн өргөнтэй гэж авч үзсэн учир томъёонд өргөний хэмжигдэхүүн байхгүй гэдгийг хэлье. Мөн босго ба босгон дээрх түрэлтийн харьцаа нь өөрчлөгдөшгүй хэмжигдэхүүн байх учир түүнийг чухалчилна. Ингээд тооцооллыг dx=0.0025м , dt=0.000074сек гэсэн параметртай, 7-өөр зарцуулгатайгаар хийв. Тооцоогоор тодорхойлсон зарцуулгын коэффицентоо өөр хүмүүсийн хийсэн туршилт болон арилжааны тооцон бодох програмаар гарган авсан үр дүнтэй хамт дараах графикаар харуулав.
Манай үр дүн бусад үр дүнтэй бараг адил байгаа нь код зөв ажиллаж байгааг харуулах ба өөр бусад гидравликийн чухал бодлогуудыг шийдэхэд хүч үзэх боломжтой гэдгийг баталж байгаа юм.
Урсгалын вектор, шингэний фракц, урсгалын дундаж хурд, турбулент зунгааралт гэх мэтийг харуулж байна. |
Судалгаа хийхэд үндсэн програмаас гадна туслах олон програм код зохиох шаардлага гардаг. Жишээ нь дээрх зарцуулгын коэффицентыг тодорхойлох дараах кодыг тусад нь зохиосон юм. Энд хурдны өгөгдлийг симуляцаас авч зарцуулгыг тооцоод улмаар коэффицентоо 13 тэгшитгэлээр тооцно.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | program cdcoef parameter (n=180, gy=9.81) real u_up(n), u_do(n) real qup, qdo, uav, hw, tw, cd integer i, j open(1,file='uvat100.dat') ! from simulation do i=0,n read(1,*) j, u_up(i) enddo open(1,file='uvat130.dat') ! from simulation do i=0,n read(1,*) j, u_do(i) enddo ! find discharge sumup=0. sumdo=0. do i=0,n sumup=sumup+u_up(i) sumdo=sumdo+u_do(i) enddo qup=sumup*0.0025 qdo=sumdo*0.0025 print*, qup, qdo qpa=0.5*(qup+qdo) tw=0.15 hw=0.015 ! from excell file uav=qup/(hw+tw) totH=hw+(uav**2)/(2.*gy) cd=1.5*qup/((sqrt(2.*gy)*sqrt(hw**3))) print*, 'cd', cd, 'uav', uav, 'hw', hw, 'totH', totH end program |
-------------------------------------------------------------------------------------------------------------------------
1 2 | C:\ayur\LBM\FreeSurface\dambreak2\sharpweir\6090>ffmpeg -i 0120f.avi -vf "[0:v]pad=iw*2:ih [in0]; movie=0120.avi [in1]; [in0][in1] overlay=740:0 [out] " out120.avi |
Дээрх болон нийтлэлийн эхэнд байх үр дүнгүүд нь хоёр өөр зарцуулгатай үе дахь ус халиагуур дээгүүр урсгалын гидравлик нөхцлийг харуулж байгаа юм. Зарцуулга ихэсхэд босгоны өндөрөөс хамаарч цоргоны ард битүү хуйларсан үе үүснэ. Тооцооны үр дүнг харьцуулахын тулд видеонуудыг зэрэгцүүлэх шаардлага гардаг. Үүнийг ffmpeg ашиглан үйлдэж болдог. Дээрх кодон дахь хоёр бичлэгийн нэрийг сольж overlay дахь утгыг өөрчилсөнөөр өөр өөр бичлэгүүдэд хэрэглэх боломжтой.
Ус хаях барилгын хувьд жишээ болгон шаталсан ус халиагуурыг загварчилж харуулав. Геометрийн хувьд энгийн учир цаг хэмнэх үүднээс энэ ус хаях барилгыг сонгосон юм. Хэдий хялбар хийцтэй гэсэн ч энэ ус хаях барилга нь судалгааны идэвхитэй сэдэв гэдгийг хэлэх ёстой. Манай улсын Тайширын УЦС-ын боомт нь ийм шаталсан ус халиагууртай юм.
Шаталсан ус хаях барилгыг жигд зарцуулгатай үед хоёр өөр босготой байхаар судалсан болно. Дээрх анхны нөхцөлд жишиг болон том босгоны байрлал, доод хашиц дахь энерги унтраах худаг зэргийг хаалтаар хашигдсан устай хамт харуулж байна.
Босго, худагны гоемертийг дараах кодоор өгнө. Жишээ: Жижиг шаттай ус хаях барилга
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | ! obstacle at bottom k=n/60 ! step height l=k+k/2 ! stem lenght do i=n/6+10,n/4 ! first step do j=0,m/2 flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo do i=n/4,n/4+l ! second step do j=0,m/2 flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo do i=n/4+l,n/4+2*l ! third step do j=0,m/2-k flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo do i=n/4+2*l,n/4+3*l ! forth step do j=0,m/2-2*k flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo do i=n/4+3*l,n/4+4*l ! fifth step do j=0,m/2-3*k flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo do i=n/4+4*l,n/4+5*l ! sixth step do j=0,m/2-4*k flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo do i=n/4+5*l,n/4+6*l ! 7 step do j=0,m/2-5*k flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo do i=n/4+6*l,n/4+7*l ! 8 step do j=0,m/2-6*k flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo do i=n/4+7*l,n/4+8*l ! 9 step do j=0,m/2-7*k flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo do i=n/4+8*l,n/4+9*l ! 10 step do j=0,m/2-8*k flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo do i=n/4+9*l,n/4+10*l ! 11 step do j=0,m/2-9*k flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo ! Energy dissapetor do i=500,n ! step do j=0,m/2-8*k flag(i,j)=0 ! obstacle e(i,j)=1.0 ma(i,j)=1.0 enddo enddo |
Ус хаях барилга дээгүүрх урсгалын энерги, унтраах чадамж. |
Эндээс харахад жишиг шаттай байх нь энергийг сайн унтрааж урсгалын хурдыг сайн сааруулна. Шаталсан ус халиагуурын нэг давуу тал нь агаар усны холимог урсгалыг бий болгох явдал юм. Энэ нь энергийг мас сайн унтраах боловч барилгын материалд харш нөлөөтэй. Мөн аль болох хөндийрсөн урсгалыг үүсгэж болохгүй.
Том ба жижиг шаттай ус хаях барилгуудын тооцооллын харьцуулалт |
Урсгалын энергийг потенциал ба кинетик энергийн нийлбэрээр тодорхойлно. Түүнийг мөн л дараах туслах програмыг бичиж тодорхойлсон болно.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | program Total_energy parameter (n=600, m=200, dx=0.01) real h(0:n), E(0:n), u(0:n,0:m) real x(0:n), q(0:n) integer k(0:n) ! read data files/өгөгдлийг унших open(1,file='ij_small.dat') open(2,file='uvabs_small.dat') open(3,file='energy_small.dat') h=0. x=0. q=0. E=0. u=0. k=0 do i=0,n read(1,*) x(i), h(i) enddo print*, h(0) do j=m,0,-1 read(2,*) (u(i,j), i=0,n) enddo 200 format(700e11.3) ! энергийг тооцоолох do i=0,n sumu=0. i_nonzero=0 do j=0,m if(u(i,j).gt.0.) then i_nonzero=i_nonzero+1 sumu=sumu+u(i,j) endif end do k(i)=i_nonzero q(i)=sumu end do do i=0,n q(i)=q(i)/float(k(i)) E(i)=h(i)+(q(i)**2)/(2.*9.81) enddo ! үр дүнг хэвлэх do i=0,n write(3,*) x(i), E(i) enddo close (1) close (2) close (3) end program |
Хэдий код бичээд мэдээлэл боловсруулаад байх боловч зарим энгийн зүйлсийг эксэлдэх амар байдаг. Дахин дахин ашиглах, хийх үйлдэл байгаа тохиолдолд програм бичих нь хугацаа хэмнэдэг.
Энэ мэтээр усны барилга байгууламжийн судалгааг тооцон бодох арга ашиглан хийж болно. Шинээр баригдах гэж буй УЦС-уудын боомт, усан сан гэх мэтийн тооцооллын ихэнх нь тооцон бодох аргаар хийгддэг учир ихэнхдээ гадаадын эксперт, компаниудаар үнэ өртөгтэй хийлгэдэг. Бидний үйлдсэн энэ код шиг ажилладаг арилжааны програм хангамжуудын жилийн 1 компьютер дахь лиценз нь 1000-2000 доллар байдаг. Дээрх шиг ус халиагуурын судалгааны ажлыг хийх нь 30сая-аас дээш төгрөг болдог. Иж бүрэн ТЭЗҮ, нарийвчилсан судалгааны ажил, ажлын зураг төсөл боловсруулах үндэсний боловсон хүчин бэлтгэгдэх болно. Тэр үед усны инженерчлэлийн хоцрогдол Монголд арилах болно. Усны төлөө ажилладаг, устай хоёр шалтгаанаар ханддаг нийт хүмүүстээ дэлхийн усны өдрийн мэндийг хүргье.
Ус ердийн хүний ахуй амьдралын хэрэгцээ. - 1 шалтгаан
Ус усны хүмүүсийн амьдрал ажлын хэрэгцээ. - 2 шалтгаан
Бэлтгэсэн: Усны барилгын инженер Б.Аюурзана.
No comments:
Post a Comment