|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我现用非守恒形式的有限体积法计算浅水方程。底高程为:
b(x)=0.2-0.05(x-10)^2 当8<x<12时。其他时b(x)=0
初值为:
(1)给定入流单宽流量hu=1.53m/s。出流处z=h=0.4m
(2)给定入流单宽流量hu=0.18m/s。出流处z=h=0.33m
我的设置如下:但结果不对。其他部分没错
subroutine boundary(u0,nx)
implicit double precision (a-h,o-z)
double precision u0(0:2,0:nx+1,3)
h=0.4
u=0.45
u0(0,0,1)=h
u0(0,0,2)=u
h=0.33
u=0.
u0(0,nx+1,1)=h
u0(0,nx+1,2)=u
do l=1,2
do m=1,2
u0(l,0,m)=0.0
u0(l,nx+1,m)=0.0
enddo
enddo
end
subroutine initial(x,u0,nx,dx)
implicit double precision (a-h,o-z)
double precision u0(0:2,0:nx+1,3)
double precision x(0:nx+1)
xl=0
xr=25.
dx=(xr-xl)/nx
do i=0,nx+1
x(i)=i*dx
do l=1,2
if(x(i).ge.8.0.and.x(i).le.12.0) then
u0(l,i,3)=0.2-0.05*(x(i)-10.0)**2
else
u0(l,i,3)=0.0
endif
enddo
enddo
do 10 i=0,nx+1
if(x(i).lt.10.0)then
h=0.4
u=0.45
b=0.0
else
h=0.33
u=0
b=0.0
endif
u0(0,i,1)=h
u0(0,i,2)=u
u0(0,i,3)=b
do 10 l=1,2
do 10 m=1,2
u0(l,i,m)=0.0
10 continue
end |
|