TRƯỜng đẠi học công nghệ nguyễn thị thảo tính toán sóng bấT ĐỐi xứng vùng ven bờ biểN


KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO



tải về 5.13 Mb.
trang61/61
Chuyển đổi dữ liệu07.01.2018
Kích5.13 Mb.
#35871
1   ...   53   54   55   56   57   58   59   60   61

KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO


Sóng bất đối xứng có vai trò quan trọng trong tính toán vận chuyển bùn cát ngang bờ, hình thành các ba cát trong vùng sóng đổ, và khôi phục địa hình đáy biển sau các cơn bão. Sóng đối xứng cùng với dòng chảy ngang bờ (undertow) là những tác nhân chính tạo nên mối cân bằng động địa hình mặt cắt đáy biển. Do đó, việc tính toán các tham số sóng bất đối xứng và thông lượng vận chuyển bùn cát do sự bất đối xứng sóng đóng vai trò quan trọng trong tính toán mô phỏng sự thay đổi địa hình đáy biển.

Trong luận văn này, tác giả đã thực hiện được những nhiệm vụ chính sau:



  1. Giới thiệu về sóng bất đối xứng và vận chuyển bùn cát do sóng bất đối xứng.

  2. Lựa chọn được 2 phương pháp tính toán các tham số sóng bất đối xứng phù hợp bao gồm:

    1. Phương pháp dựa theo nghiên cứu Isobe và Horikawa (1982) và sau đó được cải tiến bởi Grasmeijer và Ruessink (2003) và

    2. Phương pháp dựa theo nghiên cứu của Abreu và nnk (2010) và được tham số hóa các hệ số bởi Ruessink và nnk (2012).

  3. Áp dụng công thức của Camenen và Larson (2005) để tính toán thông lượng vận chuyển bùn cát đáy do sóng bất đối xứng.

  4. Áp dụng công thức của Camenen và Larson (2008) để tính toán thông lượng vận chuyển bùn cát lơ lửng do sóng bất đối xứng.

  5. Viết mã chương trình bằng ngôn ngữ chuẩn FORTRAN 90 để tính toán các tham số sóng bất đối xứng, tính toán dòng thông lượng vận chuyển bùn cát đáy, bùn cát lơ lửng do sóng bất đối xứng.

  6. Tính toán kiểm nghiệm với số liệu đo đạc phòng thí nghiệm của Trường Đại học Công nghệ Delft, Hà Lan và số liệu đo đạc hiện trường tại bãi biển Egmond, Hà Lan.

Qua quá trình tính toán và so sánh với số liệu đo đạc có thể khẳng định mô hình tính toán lan truyền sóng ngẫu nhiên cho kết quả phù hợp rất tốt với số liệu đo đạc. Do đó, mô hình này đã tạo ra các tham số đầu vào đáng tin cậy để tính toán các tham số sóng bất đối xứng vùng ven bờ biển.

Đối với mô hình tính toán sóng bất đối xứng, kết quả tính toán nhận được theo 2 phương pháp đều phù hợp khá tốt với số liệu đo đạc. Nếu tính toán theo phương pháp 1 (Isobe và Horikawa, 1982; Grasmeijer và Ruessink, 2003), vận tốc quỹ đạo sóng cực đại hướng bờ (uc) phù hợp tốt với số liệu đo đạc tại phòng thí nghiệm của trường ĐHCN Delft, Hà Lan. Tuy vậy, kết quả tính toán (uc) thường có xu hướng lớn hơn số liệu số liệu đo đạc hiện trường tại bãi biển Egmond, Hà Lan. Nhìn chung, các kết quả tính toán vận tốc quỹ đạo sóng cực đại hướng ra ngoài khơi (ut) phù hợp tốt với số liệu đo đạc hiện trường. Sai số tương đối trung bình quân phương cho ucut lần lượt là 26.04 % và 22.91 %

Trong trường hợp tính toán theo phương pháp 2 (Abreu và nnk, 2010; Ruessink và nnk, 2012), kết quả tính toán vận tốc quỹ đạo sóng cực đại hướng bờ (uc) và hướng ra ngoài khơi (ut) nhỏ hơn số liệu đo đạc phòng thí nghiệm. Kết quả tính toán ucut cho vùng biển Egmond, Hà Lan phù hợp khá tốt với số liệu đo đạc. Sai số tương đối trung bình quân phương đối với ucut lần lượt là 21.07 % và 23.16 %.

Tính toán vận chuyển bùn cát rất nhạy cảm đối với các tham số sóng bất đối xứng. Các tính toán đối với các thí nghiệm B1, B2 và bãi biển Egmond cho thấy, thông lượng vận chuyển bùn cát tổng cộng do sóng bất đối xứng tính toán theo phương pháp 1 thường lớn hơn đáng kể so với tính toán theo phương pháp 2. Điều đó có thể dẫn đến kết quả tính toán dự báo sự thay đổi địa hình đáy biển dựa theo 2 phương pháp này sẽ khác nhau rõ rệt. Do đó, việc lựa chọn mô hình tính toán các tham số sóng bất đối xứng là rất quan trọng trong tính toán mô phỏng vận chuyển bùn cát và biến đổi địa hình đáy biển.

Trong thời gian tới, tác giả sẽ tiếp tục nghiên cứu về các quá trình thủy động lực và vận chuyển bùn cát vùng ven bờ biển. Cụ thể, những hướng nghiên cứu tiếp theo của đề tài này là:


  • Nghiên cứu về dòng chảy ven bờ do sóng bao gồm dòng chảy dọc bờ và ngang bờ do sóng.

  • Nghiên cứu về vận chuyển bùn cát và tính toán hiệu chỉnh, kiểm tra mô hình tính toán vận chuyển bùn cát.

  • Nghiên cứu về sự phát triển và dịch chuyển ba cát trong vùng sóng đổ.


DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN VĂN

1. Phạm Thành Nam, Nguyễn Thị Thảo, Mô hình tính toán sóng bất đối xứng vùng ven bờ, Tuyển tập công trình Hội nghị khoa học Cơ học Thủy khí toàn quốc năm 2015, trang 487-493.



2. Pham Thanh Nam, Do Thi Thu Ha, Nguyen Thi Thao, Truong Manh Chien, A numerical model of beach morphological evolution due to waves and currents, The 8th Asia-Pacific Workshop on Marine Hydrodynamics – Aphydro 2016 September 20 – 23, Hanoi, Vietnam, pp. 59-66.

TÀI LIỆU THAM KHẢO


  1. Abreu, T., Silva, P.A., Sanchom, F., Temperville, A., 2010. Analytical approximate wave form for asymmetric waves. Coastal Engineering 57, 656–667.

  2. Adeyemo, M.D., 1968. Effect of beach slope and shoaling on wave asymmetry. Proceedings, 11th Conference on Coastal Engineering, American Society of Civil Engineers, London, pp. 145–172.

  3. Bagnold, R.A., 1963. Mechanics of marine sedimentation. Sea 3, 507–528.

  4. Bagnold, R.A., 1966. An approach to the sediment transport problem from general physics. U. S. Geol. Surv. Prof. Pap. 422-I 37 p.

  5. Bailard, J.A., Inman, D.L., 1981. An energetics bedload model for a plane sloping beach: local transport. J. Geophys. Res. 86, 2035–2043.

  6. Battjes, J. 1983. Surf zone turbulence. Proc. 20th IAHR Congress, Moscow, Russia, 137-140.

  7. Bowen, A.J., 1980. Simple models for nearshore sedimentation: beach profiles and longshore bars. Coastline of Canada, Geol. Surv. Canada, pp. 1–11.

  8. Brinkkemper, J., 2013. Modeling the cross-shore evolution of asymmetry and skewness of surface gravity waves propagating over an intertidal sandbar. Master Thesis, Utrecht University, The Netherlands.

  9. Camenen, B., Larson, M., 2005. A general formula for non-cohesive bed load sediment transport. Estuarine, Coastal and Shelf Science 63, 249-260.

  10. Camenen, B., Larson, M., 2007. A unified sediment transport formulation for coastal inlet application. Technical Report ERDC/CHL CR-07-1, US Army Engineer Research and Development Center, Vicksburg, MS.

  11. Camenen, B., Larson, M., 2008. A general formula for noncohesive suspended sediment transport. Journal of Coastal Research 24(3), 615–627.

  12. Cornish, V., 1898. On sea beaches and sand banks. Geology 2, 628–674.

  13. Dibajnia, M., Watanabe, A., 1992. Sheet flow under nonlinear waves and currents. Proceedings of 23rd International Conference on Coastal Engineering, ASCE, Venice, Italy, 2015–2029.

  14. Doering, J.C., Bowen, A.J., 1995. Parameterization of orbital velocity asymmetries of shoaling and breakingwaves using bispectral analysis. Coastal Engineering 26, 15–33.

  15. Doering, John C., Elfrink, B., Hanes, Daniel M., Ruessink, B.G., 2000. Parameterization of velocity skewness. Proceedings 27th Int. Conference on Coastal Engineering, ASCE, Sydney, Australia, 16–20 July 2000, pp. 1383–1396.

  16. Drake, T.G., Calantoni, J., 2001. Discrete particle model for sheet flow sediment transport in the nearshore. Journal of Geophysical Research - Oceans 106 (C9), 19859–19868.

  17. Elfrink, B., Hanes, D.M., Ruessink, B.G., 2006. Parameterization and simulation of near bed orbital velocities under irregular waves in shallow water. Coastal Engineering 53, 915–927.

  18. Elfrink, B., Rakha, K.A., Deigaard, R., Brøker, I., 1999. Effect of near-bed velocity skewness on cross shore sediment transport. Proc. Coastal Sediments '99, Long Island, NY, pp. 33–47.

  19. Elgar, S.L, Guza, R.T., 1985. Observations of bispectra of shoaling surface gravity waves. J. Fluid Mech. 161, 425–448.

  20. Elgar, S.L., Guza, R.T., 1986. Nonlinear model predictions of shoaling surface gravity waves. J. Fluid Mech. 167, 1–18.

  21. Elgar, S.L., Freilich, M.H., Guza, R.T., 1990. Model-data comparisons of moments of nonbreaking shoaling surface gravity waves. J. Geophys. Res. 95 (C9), 16055–16063.

  22. Grasmeijer, B.T., Ruessink B.G., 2003. Modeling of waves and currents in the nearshore parametric vs. probabilistic approach. Coastal Engineering 49, 185–207.

  23. Grasmeijer, B.T., Van Rijn, L.C. 1998. Breaker bar formation and migration. Proc. 26th International Conference on Coastal Engineering, Copenhagen, Denmark, ASCE, pp. 2750–2758.

  24. Grasmeijer, B.T., Van Rijn, L.C. (1999). “Transport of fine sands by currents and waves III: breaking waves over barred profile with ripples”. Journal of Waterway, Port, Coastal, and Ocean Engineering, Vol 125(2), pp. 71–79.

  25. Gonzalez-Rodriguez, D., Madsen, O.S., 2007. Seabed shear stress and bedload transport due to asymmetric and skewed waves. Coastal Engineering 54, 914-929.

  26. Inman, D.L., Bagnold, R.A., 1963. Littoral Processes. Sea 3, 529–543.

  27. Isobe, M., Horikawa, K., 1982. Study on water particle velocities of shoaling and breaking waves. Coast. Eng. J. 25, 109–123.

  28. Kennedy, A.B., Chen, Q., Kirby, J.T., Dalrymple, R.A., 2000. Boussinesq modeling of wave transformation, breaking and runup1: 1D. J.Waterw. Port Coast. Ocean Eng. 126 (1), 39–47.

  29. Komen, G.J., Cavaleri, L., Donelan, M., Hasselmann, K., Hasselmann, S., Janssen, P.A.E.M., 1994. Dynamics and Modelling of Ocean Waves. Cambridge University Press, Cambridge, 532p.

  30. Kuriyama, Y., Katoh, K., Isogami, T., 1990. Wave nonlinearity and cross-shore sediment rate in the vicinity of breaker zone. Proceedings of Coastal Engineering. JSCE, pp. 284 - 288 (in Japanese).

  31. Madsen, P.A., Sørensen,O.R., Schäffer,H.A., 1997. Surf zone dynamics simulated by a Boussinesq type model. Part 2: surf beat and swash oscillations for wave groups and irregular waves. Coast. Eng. 32, 289–319.

  32. Malarkey, J., Davies, A.G., 2012. Free-stream velocity descriptions under waves with skewness and asymmetry. Coastal Engineering 68, 78-95.

  33. Mase, H., 2001. Multi-directional random wave transformation model based on energy balance equation. Coastal Engineering Journal 43(4), 317-337.

  34. Masselink, G., Hughes, M. G., 2003. Introduction to Coastal Processes & Geomorphology. Hodder Education.

  35. Nam, P.T., Larson, M., Hanson, H., Hoan, L.X., 2009. A numerical model of nearshore waves, currents, and sediment transport. Coastal Engineering 56, 1084–1096.

  36. Nam, P.T., Larson, M., Hanson, H., Oumeraci, H., 2017. Model of nearshore random wave transformation: validation against laboratory and field data. Ocean Engineering 135, 183-193.

  37. Nielsen, P., 1992. Coastal bottom boundary layer and sediment transport. World Scientific Publishing, Singapore, Advanced Series on Ocean Engineering, Vol. 4.

  38. Peng, Z., Zou, Q., Wang, B., Reeve, D., 2007. Transformation of wave skewness and asymmetry over smooth low-crested breakwaters. Flood Risk Assessment II, 2007.

  39. Rattanapitikon, W., Vivattanasirisak, T., Shibayama, T., 2003. A proposal of new breaker height formula. Coastal Engineering Journal 45 (1), 29–48.

  40. Ribberink, J.S., 1998. Bed-load transport for steady flows and unsteady oscillatory flows. Coastal Engineering 34, 52–82.

  41. Ribberink, J.S., Al-Salem, A.A., 1994. Sediment transport in oscillatory boundary layers in cases of rippled beds and sheet flow. Journal of Geophysical Research 99, 12707–12727.

  42. Ris, R.C., Booij, N., Holthuijsen, L.H., 1999. A third-generation wave model for coastal regions. Part II. Verification. J. Geophys. Res. 104 (C4), 7667–7681.

  43. Ruessink, B.G., Ramaekers, G., Van Rijn, L.C., 2012. On the parameterization of the free-stream non-linear wave orbital motion in nearshore morphodynamic models. Coastal Engineering 65, 56-63.

  44. Ruessink, B.G., Van Enckvort, I.M.J., Kingston, K.S., Davidson, M.A., 2000. Analysis of observed two- and three-dimensional nearshore bar behavior. Marine Geology 169, 161-183.

  45. Salmon, J.E., Holthuijsen, L.H., Zijlema, M., van Vledder, G.Ph., Pietrzak, J.D., 2015. Scaling depth-induced wave-breaking in two-dimensional spectral wave models. Ocean Modelling 87, 30-47.

  46. Soulsby, D. H., 1997. Dynamics of marine sands: A manual for practical applications. Thomas Telford Publications, London, England, 249 pp.

  47. Stokes, G.G., 1847. On the theory of oscillatory waves. Transactions of the Cambridge Philosophical Society 8, 441–455.

  48. Suntoyo, Tanaka, H., Sana, A., 2008. Characteristics of turbulent boundary layers over a rough bed under saw-tooth waves and its application to sediment transport. Coastal Engineering 55 (12), 1102–1112.

  49. Svendsen, I.A., Madsen, P.A., Buhr Hansen, J., 1978. Wave characteristics in the surf zone. Proceedings of the 16th International Conference on Coastal Engineering, Hamburg, ASCE, vol. 1, pp. 520–539.

  50. Swart, D. H., 1974. Offshore sediment transport and equilibrium beachprofiles. Delft Hydraulics Laboratory Publications 131, Delft, The Netherlands, 302 pp.

  51. Swart, D.H., Loubster, C.C., 1978. Vocoidal water wave theory for all nonbreaking waves. Proc. 16th Int. Conference on Coastal Engineering (ICCE), ASCE, Hamburg, Germany, pp. 467–486.

  52. Torres-Freyermuth, A., Losada, I.J., Lara, J.L., 2007. Modeling of surf zone processes on a natural beach using Reynolds-averaged Navier–Stokes equations. J. Geophys. Res. 112, C09014.

  53. Veeramony, J., Svendsen, I.A., 2000. The flow in surf zone waves. Coastal Engineering 39, 93–122.

  54. Watanabe, A., Sato, S., 2004. A sheet-flow transport rate formula for asymmetric, forward-leaning waves and currents. Proceedings of the 29th International Conference on Coastal Engineering, Lisbon, ASCE, vol. 2, pp. 1703–1714.

  55. Wells, D.R., 1967. Beach equilibrium and second-order wave theory. J. Geophys. Res. 72, 497–504

PHỤ LỤC

1. Mã chương trình tính toán các tham số sóng bất đối xứng

1.1. Mã chương trình tính toán theo phương pháp 1


subroutine asymmetry_wave()

! after GR (2003) and IH (1982)



real:: uw0,corr_fact,uw_mu,skewness,skewness_max,skewness_a

real:: lamda_1,lamda_2,lamda_3,lamda_4,lamda_5,tp_gd

integer::i,j

real,allocatable:: uw_c(:,:),uw_t(:,:) !

deallocate(uw_c,uw_t,stat=ierr)

allocate(uw_c(nx,ny),uw_t(nx,ny),stat=ierr)

tmp=0.


tmp_1=0.

do i=1,nx

do j=1,ny

wh_13=w_height(i,j) *1.3 ! h13

! wave obital velocity and correction factor

if(ttdep(i,j)<=eps_val .or. w_period(i,j)<=0. .or. w_length(i,j)<=0.) then

uw0=0.


corr_fact=0.

else

uw0=pi*wh_13/w_period(i,j)/sinh(2*pi*ttdep(i,j)/w_length(i,j))

tmp=wh_13/ttdep(i,j)

if (tmp>0.9)then

tmp=0.9


tmp_1=ttdep(i,j)+wh_13/2. uw0=pi*wh_13/w_period(i,j)/sinh(2*pi*tmp_1/w_length(i,j))

endif

corr_fact=1.-0.40*tmp



endif

! maximum between onshore and offshoer peak velocity

uw_mu=2.*corr_fact*uw0

if(uw_mu == 0.) then

uw_c(i,j)=0.

uw_t(i,j)=0.

else

! skewness max

skewness_max=0.85-2.5*dep(i,j)/w_length(i,j)

if (skewness_max < 0.62) skewness_max=0.62

if (skewness_max > 0.75) skewness_max=0.75

! skewness_a by IH (1982) and modied by GR (2003)

tp_gd=w_period(i,j)*sqrt(g/dep(i,j))

if(tp_gd > 20) then ! value of lamda_5

lamda_5=5.6e-3*tp_gd*tp_gd - 4.0e-5*tp_gd*tp_gd*tp_gd



else

lamda_5=3.2e-3*tp_gd*tp_gd + 8.0e-5*tp_gd*tp_gd*tp_gd



endif
if (tp_gd > 15) then ! lamda_4

lamda_4=-2.7+0.53*tp_gd



else

lamda_4=-15 +1.35*tp_gd



endif

lamda_3=(0.5-lamda_5)/(lamda_4-1+exp(-lamda_4))

lamda_2=lamda_3*lamda_4+lamda_5

lamda_1=0.5-lamda_3

skewness_a=lamda_1+lamda_2*uw_mu/sqrt(g*dep(i,j)) + lamda_3*exp(-lamda_4*uw_mu/sqrt(g*dep(i,j))) ! skewness_a

! skewness

skewness=0.5+(skewness_max-0.5)*tanh((skewness_a-0.5)/(skewness_max-0.5)) uw_c(i,j)=skewness*uw_mu ! onshore peak velocity

uw_t(i,j)=uw_mu-uw_c(i,j) ! offshore peak velocity



endif

enddo

enddo

!call wave_onoffshore_Egmond_98(IS,uw_c,uw_t)

!call wave_onoffshore_GR_99(uw_c,uw_t)

call sediment_transport_asymmetry_wave(uw_c,uw_t)

end subroutine

!--------------------------------------------------------------------


1.2. Mã chương trình tính toán theo phương pháp 2


subroutine asym_wave_new()

! after Abreu et al. (2010) and Ruessink et al. (2012)



integer:: i,j,k

real:: ur_val,r_val,phi_val,b_val,f_val

real:: del_t,omega,w_per,w_hei,sum,dep_ij

real:: u_crest(nx,ny),u_trough(nx,ny)

real:: u_per(100),uw_ij,root_uw(3)

real:: t_on(nx,ny),t_off(nx,ny)

deallocate(qbx_as,qby_as,qsx_as,qsy_as,stat=ierr)

allocate(qbx_as(nx,ny),qby_as(nx,ny),qsx_as(nx,ny),qsy_as(nx,ny),stat=ierr)

do i=1,nx

do j=1,ny

dep_ij=dep(i,j)

w_per=w_period(i,j)

w_hei=w_height(i,j)



if(dep_ij<=eps_val .or. w_per<=0. .or. w_hei <=0 )then

u_crest(i,j)=0.

u_trough(i,j)=0.

else

uw_ij=uw_vel(i,j)

ur_val=ursell_para(i,j)

b_val=B_para(ur_val)

r_val=R_para(b_val)

phi_val=phi_para(ur_val)

f_val=sqrt(1.-r_val*r_val)

del_t=w_period(i,j)/100.

omega= 2.*pai/w_per

u_on_2=0.

u_off_2=0.

tmp_on=0.

tmp_off=0.

num_on=0


do it=1,100

t=(it-1)*del_t

u_per(it)=uw_ij*f_val*(sin(omega*t)+r_val*sin(phi_val)/(1+f_val))/(1-r_val*cos(omega*t+phi_val))

if(u_per(it)>0.)then

num_on=num_on+1

u_on_2=u_on_2 + u_per(it)*u_per(it)*del_t

tmp_on=tmp_on + u_per(it)*u_per(it)



else

u_off_2=u_off_2 + u_per(it)*u_per(it)*del_t

tmp_off=tmp_off + u_per(it)*u_per(it)

endif

enddo

! u_crest and u_trough

u_crest(i,j)=maxval(u_per)

u_trough(i,j)=-minval(u_per)

! rms u_crest and u_trough

rms_on=sqrt(tmp_on)/num_on

rms_off=sqrt(tmp_off)/(100-num_on)

! determining the crest and trough periods

root_uw=0.

k=1


do it=1,99

if(u_per(it)*u_per(it+1)<=0) then

root_uw(k)=(it+0.5)*del_t

k=k+1

endif

enddo

if(root_uw(2)>0.)then

t_cr=root_uw(2)-root_uw(1)



else

t_cr=root_uw(1)



endif

t_tr=w_period(i,j)-t_cr



if(t_cr>t_tr)then

! trough period is always higher than crest period

t_cr=t_tr

t_tr=w_period(i,j)-t_tr



endif

t_on(i,j)=t_cr

t_off(i,j)=t_tr

enddo

enddo

end subroutine

! ----------------------------------------------------------------------!



function uw_vel(i,j) ! near bed orbital velocity by linear wave theory

real:: uw_vel

depij=ttdep(i,j)+eps_val

uw_vel=pai*w_height(i,j)/w_period(i,j)/sinh(2*pai*depij/w_length(i,j)) ! ttdep(i,j)

end function

! -----------------------------------------------------------------------------



function ursell_para(i,j) ! calculating Ursell parameter

real:: ursell_para

depij=ttdep(i,j)+eps_val

ursell_para=g*w_height(i,j)*sqrt(2.)*w_period(i,j)*w_period(i,j)/depij/depij

!ursell_para=g*w_height(i,j)*sqrt(2.)*w_period(i,j)*w_period(i,j)/dep(i,j)**2 !ursell_para=w_height(i,j)*sqrt(2.)*w_length(i,j)*w_length(i,j)/ttdep(i,j)**3 ! ttdep(i,j)



end function

! -----------------------------------------------------------------------------



function psi_para(ursell)

real:: psi_para,ursell,p5_coef,p6_coef

p5_coef=0.815 ! +- 0.055

p6_coef=0.672 ! +- 0.073

psi_para= -90 + 90*tanh(p5_coef/ursell**p6_coef) ! in degree



end function

! -----------------------------------------------------------------------------



function phi_para(ursell)

real:: phi_para,ursell,p5_coef,p6_coef,psi_para

!pai=3.141592654

p5_coef=0.815 ! +- 0.055

p6_coef=0.672 ! +- 0.073

psi_para= -90 + 90*tanh(p5_coef/ursell**p6_coef) ! in degree

phi_para=-psi_para*pai/180. - pai/2. - 0.05*pai



end function

! -----------------------------------------------------------------------------



function B_para(ursell)

real:: B_para,ursell

real:: p1_coef,p2_coef,p3_coef,p4_coef,log_ursell

p1_coef=0.

p2_coef=0.857 ! +-0.016

p3_coef=-0.471 ! +-0.025

p4_coef=0.297 ! +-0.021

log_ursell=log10(ursell)

B_para = p1_coef + (p2_coef - p1_coef)/(1.+exp((p3_coef-log_ursell)/p4_coef))

end function

! -----------------------------------------------------------------------------



function R_para(b_val)

real:: R_para,b_val,tmp_b

tmp_b=b_val*sqrt(2./(9.+2.*b_val*b_val))

R_para=2.*sqrt(tmp_b)/(1.+tmp_b)

end function

2. Mã chương trình tính toán vận chuyển bùn cát do sóng bất đối xứng

2.1. Mã chương trình tính toán theo phương pháp 1


!--------------------------------------------------------------------

subroutine sediment_transport_asymmetry_wave(uwc,uwt)

real:: uwc(nx,ny),uwt(nx,ny)

real:: Tc,Tt,Tp

integer:: i,j,k,num_dt

real:: t_val,xv,comb_vel,tich_phan,teta_on,teta_off,teta_net

real:: gama_t,gam_u,theta_1,theta_2

real, allocatable:: qtx_as(:,:),qty_as(:,:)

deallocate(qtx_as,qty_as,stat=ierr)

allocate(qtx_as(nx,ny),qty_as(nx,ny),stat=ierr)

deallocate(qbx_as,qby_as,qsx_as,qsy_as,stat=ierr)

allocate(qbx_as(nx,ny),qby_as(nx,ny),qsx_as(nx,ny),qsy_as(nx,ny),stat=ierr)

num_dt=50



do i=1,nx

do j=1,ny

if( uwt(i,j)>0. .and. uwc(i,j)>0.) then

Tc=uwt(i,j)/(uwt(i,j)+uwc(i,j))*w_period(i,j)

Tt=w_period(i,j)-Tc Tpw=w_period(i,j)

! angle between wave and current



if(uc_total(i,j)<=0)then

tmp=0.


else

tmp=u(i,j)/uc_total(i,j)



endif

cur_angle=acos(tmp)

wav_angle=w_angle(i,j)

cw_angle=abs(wav_angle-cur_angle) teta_c=teta_cur(i,j)

teta_w=teta_wav(i,j)

teta_wm=0.5*teta_w

teta_cw=sqrt(teta_c*teta_c+teta_w*teta_w+2.*teta_c*teta_w*cos(cw_angle))

gama_t=Tpw/Tc-1. gama_u=uwt(i,j)/uwc(i,j)

tmp=sqrt(abs((gama_t*gama_t*gama_u*gama_u-1)/(gama_t*gama_t-1)))

tmp_1=sqrt(abs((gama_t*gama_t*gama_u*gama_u-1)/(gama_t*gama_t-1))/gama_u)

theta_2=Tc/Tpw/pai*asin(tmp)

theta_1=(1.-Tc/Tpw)/pai*asin(tmp_1)-theta_2

!--------------------------------------------------------

! Onshore Phase

!--------------------------------------------------------

! averaged onshore peak velocity, determined by rms value

comb_vel=0.

delta_Tc=Tc/num_dt

tmp=0.

tich_phan=0.



do k=1,num_dt

t_val=-theta_2*Tpw + (k-1)*delta_Tc

uc_val=uwc(i,j)*sin(pai*t_val/Tc)

tmp = tmp + uc_val*uc_val

comb_vel=uc_total(i,j)*cos(cw_angle)+uc_val

tich_phan=tich_phan+comb_vel*comb_vel*delta_Tc

!write(1953,'(2f10.3)')t_val,uc_val

enddo

av_uc=sqrt(tmp)/num_dt

uc_on=sqrt(tich_phan/delta_Tc)/num_dt

! weighting parameter for fiction coeff. at onshore phase

xv=uc_total(i,j)/(uc_total(i,j)+av_uc)

! friction due to waves and currents

fcw=xv*fc_n(i,j)+(1.-xv)*fc_wav(i,j)

! Shield parameter for onshore phase

teta_on=tich_phan*fcw/Tc/(2.*com_denominator)

!---------------------------------------------------------

! Offshore Phase

!---------------------------------------------------------

! averaged offshore peak velocity, determined by rms value

comb_vel=0.

delta_Tt=Tt/num_dt

tmp=0.


tich_phan=0.

do k=1,num_dt

t_val=Tc-theta_2*Tpw + (k-1)*delta_Tt

ut_val=uwt(i,j)*sin(pai*(t_val-Tpw-theta_1*Tpw)/Tt)

tmp=tmp + ut_val*ut_val

comb_vel= uc_total(i,j)*cos(cw_angle)+ut_val

tich_phan=tich_phan + comb_vel*comb_vel*delta_Tt



enddo

av_ut=sqrt(tmp)/num_dt

uc_off=sqrt(tich_phan/delta_Tt)/num_dt

! weighting parameter for friction coeff. at offshore phase

xv=uc_total(i,j)/(uc_total(i,j)+av_ut)

! friction combined from waves and current

fcw=xv*fc_n(i,j)+(1.-xv)*fc_wav(i,j)

! Shield parameter for offshore wave

teta_off=tich_phan*fcw/Tt/(2.*com_denominator)

teta_net=max(0.,teta_on-teta_off) ! Calibration coeficient in bed load formula

xv=teta_cur(i,j)/(teta_cur(i,j)+teta_wav(i,j))

aw_coef= 6.+6.*xv

!---------------------------------------------

! Bed load by asymmetry waves

!---------------------------------------------

as_bed_load = hs_as*sqrt(com_denominator)*d50* aw_coef *sqrt(teta_net) *teta_mean(i,j)*exp(-hs_b*teta_cr/teta_cw)

qbx_as(i,j)=as_bed_load * cos(wav_angle)

qby_as(i,j)=as_bed_load * sin(wav_angle)

!---------------------------------------------

! Suspended load by asymmestry waves

!---------------------------------------------

bed_ref_con=bed_refer_concen(i,j)

sed_diff=sediment_diffusivity(i,j)

if(sed_diff<=0)then

as_sus_load=hs_as*(av_uc-av_ut)*bed_ref_con*sed_diff/sett_vel



else

as_sus_load=hs_as*(av_uc-av_ut)*bed_ref_con*sed_diff/sett_vel*(1.-exp(-sett_vel*ttdep(i,j)/sed_diff))



endif

qsx_as(i,j)=as_sus_load * cos(wav_angle);

qsy_as(i,j)=as_sus_load * sin(wav_angle);

else

qbx_as(i,j)=0.;qby_as(i,j)=0.;qsx_as(i,j)=0.;qsy_as(i,j)=0.



endif

enddo

enddo
! writing the total load by asymmetry waves

qtx_as=qbx_as+qsx_as

qty_as=qby_as+qsy_as
! call total_load_Egmond_98(1216,qtx_as) ! save only total load

call total_load_Egmond_98(1216,qbx_as) ! save bedload and suspended load

call total_load_Egmond_98(1218,qsx_as)

deallocate(qtx_as,qty_as,stat=ierr)

end subroutine

2.2. Mã chương trình tính toán theo phương pháp 2


! ------------------------------------------------------------------------------------------- !

!Calculating paperameters for determining wave skewness and asymmetry wave

! after Abreu et al., 2010 and Ruessink et al., 2012

! ------------------------------------------------------------------------------------------- !


subroutine sed_transp_asym_wave_new()

integer:: i,j,k

real:: ur_val,r_val,phi_val,b_val,f_val

real:: del_t,omega,w_per,w_hei,sum,dep_ij

real:: u_crest(nx,ny),u_trough(nx,ny)

real:: u_per(100),uw_ij,root_uw(3)

real:: t_on(nx,ny),t_off(nx,ny)

real, allocatable:: qtx_as(:,:),qty_as(:,:)
deallocate(qtx_as,qty_as,stat=ierr)

allocate(qtx_as(nx,ny),qty_as(nx,ny),stat=ierr)

deallocate(qbx_as,qby_as,qsx_as,qsy_as,stat=ierr)

allocate(qbx_as(nx,ny),qby_as(nx,ny),qsx_as(nx,ny),qsy_as(nx,ny),stat=ierr)
qtx_as=0.; qty_as=0.

qbx_as=0.

qby_as=0.

qsx_as=0.

qsy_as=0.
do i=1,nx

do j=1,ny

dep_ij=dep(i,j)

w_per=w_period(i,j)

w_hei=w_height(i,j)


if(dep_ij<=eps_val .or. w_per<=0. .or. w_hei <=0 )then

u_crest(i,j)=0.

u_trough(i,j)=0.

else

! shear stress due to asymmetry wave


! angle between wave and current

if(uc_total(i,j)<=0)then

tmp=0.


else

tmp=u(i,j)/uc_total(i,j)



endif

cur_angle=acos(tmp)

wav_angle=w_angle(i,j)

cw_angle=abs(wav_angle-cur_angle)

teta_c=teta_cur(i,j)

teta_w=teta_wav(i,j)

teta_wm=0.5*teta_w

teta_cw=sqrt(teta_c*teta_c+teta_w*teta_w+2.*teta_c*teta_w*cos(cw_angle))

! tinh toan cac tham so song bat doi xung
uw_ij=uw_vel(i,j)

ur_val=ursell_para(i,j)

b_val=B_para(ur_val)

r_val=R_para(b_val)

phi_val=phi_para(ur_val)

f_val=sqrt(1.-r_val*r_val)

del_t=w_period(i,j)/100.

omega= 2.*pai/w_per

u_on_2=0.

u_off_2=0.

tmp_on=0.

tmp_off=0.

num_on=0

do it=1,100

t=(it-1)*del_t

u_per(it)=uw_ij*f_val*(sin(omega*t)+r_val*sin(phi_val)/(1+f_val))/(1-r_val*cos(omega*t+phi_val))

if(u_per(it)>0.)then

num_on=num_on+1

comb_vel=uc_total(i,j)*cos(cw_angle)+u_per(it)

u_on_2=u_on_2 + u_per(it)*u_per(it)*del_t

tmp_on=tmp_on + u_per(it)*u_per(it)

else

comb_vel=uc_total(i,j)*cos(cw_angle)+u_per(it)

u_off_2=u_off_2 + u_per(it)*u_per(it)*del_t

tmp_off=tmp_off + u_per(it)*u_per(it)



endif

enddo
! u_crest and u_trough
u_crest(i,j)=maxval(u_per)

u_trough(i,j)=-minval(u_per)


! rms u_crest and u_trough

rms_on=sqrt(tmp_on)/num_on

rms_off=sqrt(tmp_off)/(100.-num_on)

! determining the crest and trough periods

root_uw=0.

k=1


do it=1,99

if(u_per(it)*u_per(it+1)<=0) then

root_uw(k)=(it+0.5)*del_t

k=k+1

endif

enddo

if(root_uw(2)>0.)then

t_cr=root_uw(2)-root_uw(1)



else

t_cr=root_uw(1)



endif
t_tr=w_period(i,j)-t_cr

if(t_cr>t_tr)then
t_cr=t_tr

t_tr=w_period(i,j)-t_tr



endif
t_on(i,j)=t_cr

t_off(i,j)=t_tr


!--------------------------------------------------------

! Onshore Phase

!--------------------------------------------------------

! weighting parameter for fiction coeff. at onshore phase

xv=uc_total(i,j)/(uc_total(i,j)+rms_on) ! u_crest(i,j)

! friction due to waves and currents

fcw=xv*fc_n(i,j)+(1.-xv)*fc_wav(i,j)

! Shield parameter for onshore phase

teta_on=u_on_2*fcw/t_cr/(2.*com_denominator)

! Offshore Phase

! --------------------------------------------------------

! weighting parameter for friction coeff. at offshore phase

xv=uc_total(i,j)/(uc_total(i,j)+ rms_off ) ! u_trough(i,j)

! friction combined from waves and current

fcw=xv*fc_n(i,j)+(1.-xv)*fc_wav(i,j)

! Shield parameter for offshore wave

teta_off=u_off_2*fcw/t_tr/(2.*com_denominator)
teta_net=max(0.,teta_on-teta_off)
! Calibration coeficient in bed load formula

xv=teta_cur(i,j)/(teta_cur(i,j)+teta_wav(i,j))

aw_coef= 6.+6.*xv
!---------------------------------------------

! Bed load by asymmetry waves

!---------------------------------------------

as_bed_load = hs_as*sqrt(com_denominator)*d50* aw_coef *sqrt(teta_net) *teta_mean(i,j)*exp(-hs_b*teta_cr/teta_cw)

qbx_as(i,j)=as_bed_load * cos(wav_angle)

qby_as(i,j)=as_bed_load * sin(wav_angle)

!---------------------------------------------

! Suspended load by asymmestry waves

!---------------------------------------------

bed_ref_con=bed_refer_concen(i,j)

sed_diff=sediment_diffusivity(i,j)

if(sed_diff<=0)then

as_sus_load=(rms_on-rms_off)*bed_ref_con*sed_diff/sett_vel else

as_sus_load=(rms_on-rms_off)*bed_ref_con*sed_diff/sett_vel*(1.-exp(-sett_vel*ttdep(i,j)/sed_diff))

endif

qsx_as(i,j)=as_sus_load * cos(wav_angle);

qsy_as(i,j)=as_sus_load * sin(wav_angle);

endif

enddo

enddo

! writing the total load by asymmetry waves

qtx_as=qbx_as+qsx_as

qty_as=qby_as+qsy_as




call total_load_Egmond_98(1217,qbx_as) ! new modif save qbx and qsx

call total_load_Egmond_98(1219,qsx_as)

end subroutine



tải về 5.13 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   53   54   55   56   57   58   59   60   61




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương