找回密码
 注册
查看: 1440|回复: 0

[求助]

[复制链接]
发表于 2005-4-14 23:07:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表