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:
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.
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:
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à
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).
Á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.
Á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.
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.
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 uc và ut 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 uc và ut 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 uc và ut 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
Abreu, T., Silva, P.A., Sanchom, F., Temperville, A., 2010. Analytical approximate wave form for asymmetric waves. Coastal Engineering 57, 656–667.
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.
Bagnold, R.A., 1963. Mechanics of marine sedimentation. Sea 3, 507–528.
Bagnold, R.A., 1966. An approach to the sediment transport problem from general physics. U. S. Geol. Surv. Prof. Pap. 422-I 37 p.
Bailard, J.A., Inman, D.L., 1981. An energetics bedload model for a plane sloping beach: local transport. J. Geophys. Res. 86, 2035–2043.
Battjes, J. 1983. Surf zone turbulence. Proc. 20th IAHR Congress, Moscow, Russia, 137-140.
Bowen, A.J., 1980. Simple models for nearshore sedimentation: beach profiles and longshore bars. Coastline of Canada, Geol. Surv. Canada, pp. 1–11.
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.
Camenen, B., Larson, M., 2005. A general formula for non-cohesive bed load sediment transport. Estuarine, Coastal and Shelf Science 63, 249-260.
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.
Camenen, B., Larson, M., 2008. A general formula for noncohesive suspended sediment transport. Journal of Coastal Research 24(3), 615–627.
Cornish, V., 1898. On sea beaches and sand banks. Geology 2, 628–674.
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.
Doering, J.C., Bowen, A.J., 1995. Parameterization of orbital velocity asymmetries of shoaling and breakingwaves using bispectral analysis. Coastal Engineering 26, 15–33.
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.
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.
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.
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.
Elgar, S.L, Guza, R.T., 1985. Observations of bispectra of shoaling surface gravity waves. J. Fluid Mech. 161, 425–448.
Elgar, S.L., Guza, R.T., 1986. Nonlinear model predictions of shoaling surface gravity waves. J. Fluid Mech. 167, 1–18.
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.
Grasmeijer, B.T., Ruessink B.G., 2003. Modeling of waves and currents in the nearshore parametric vs. probabilistic approach. Coastal Engineering 49, 185–207.
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.
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.
Gonzalez-Rodriguez, D., Madsen, O.S., 2007. Seabed shear stress and bedload transport due to asymmetric and skewed waves. Coastal Engineering 54, 914-929.
Inman, D.L., Bagnold, R.A., 1963. Littoral Processes. Sea 3, 529–543.
Isobe, M., Horikawa, K., 1982. Study on water particle velocities of shoaling and breaking waves. Coast. Eng. J. 25, 109–123.
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.
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.
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).
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.
Malarkey, J., Davies, A.G., 2012. Free-stream velocity descriptions under waves with skewness and asymmetry. Coastal Engineering 68, 78-95.
Mase, H., 2001. Multi-directional random wave transformation model based on energy balance equation. Coastal Engineering Journal 43(4), 317-337.
Masselink, G., Hughes, M. G., 2003. Introduction to Coastal Processes & Geomorphology. Hodder Education.
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.
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.
Nielsen, P., 1992. Coastal bottom boundary layer and sediment transport. World Scientific Publishing, Singapore, Advanced Series on Ocean Engineering, Vol. 4.
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.
Rattanapitikon, W., Vivattanasirisak, T., Shibayama, T., 2003. A proposal of new breaker height formula. Coastal Engineering Journal 45 (1), 29–48.
Ribberink, J.S., 1998. Bed-load transport for steady flows and unsteady oscillatory flows. Coastal Engineering 34, 52–82.
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.
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.
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.
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.
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.
Soulsby, D. H., 1997. Dynamics of marine sands: A manual for practical applications. Thomas Telford Publications, London, England, 249 pp.
Stokes, G.G., 1847. On the theory of oscillatory waves. Transactions of the Cambridge Philosophical Society 8, 441–455.
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.
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.
Swart, D. H., 1974. Offshore sediment transport and equilibrium beachprofiles. Delft Hydraulics Laboratory Publications 131, Delft, The Netherlands, 302 pp.
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.
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.
Veeramony, J., Svendsen, I.A., 2000. The flow in surf zone waves. Coastal Engineering 39, 93–122.
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.
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
Chia sẻ với bạn bè của bạn: |