找回密码
 注册
查看: 2403|回复: 10

[讨论]晚上好,各位大虾!这里有一基于bRIAN的ADI算法程序,请指正谬误,谢谢!

[复制链接]
发表于 2003-6-24 20:31:31 | 显示全部楼层 |阅读模式

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

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

x
c##########################################################################
SUBROUTINE SOLVER(FI)
c##########################################################################
PARAMETER(NX=81,NY=81,NZ=81)
COMMON /IDATA/NI,NJ,NK,NIM,NJM,NKM,X(NX),Y(NY),Z(NZ),XC(NX),
*        YC(NY),ZC(NZ)
COMMON /COEF/AW(NX,NY,NZ),AE(NX,NY,NZ),AS(NX,NY,NZ),AN(NX,NY,NZ),
*        AB(NX,NY,NZ),AT(NX,NY,NZ),SU(NX,NY,NZ),APO(NX,NY,NZ),
*AP(NX,NY,NZ),SPAD(NX,NY,NZ),SCAD(NX,NY,NZ)
COMMON IST,JST,KST
c===========================================================================
REAL,DIMENSION(NX,NY,NZ)::FI,FIO,FIOO
REAL,DIMENSION(NX):I,QI,AP1,SU1
REAL,DIMENSION(NY):J,QJ,AP2,SU2
REAL,DIMENSION(NZ):K,QK,AP3,SU3
REAL APR,QR   
DATA PI /NX*0./,QI /NX*0./,PJ /NY*0./,QJ /NY*0./,
*PK /NZ*0./,QK /NZ*0./  
C
C......TO SOLVE WITH TDMA ALONG I LINES
C
DO K=KST,NKM
  DO J=JST,NJM
   DO I=IST,NIM
   AP1(I)=AP(I,J,K)+AE(I,J,K)+AW(I,J,K)
   SU1(I)=SU(I,J,K)+APO(I,J,K)*FI(I,J,K)+AS(I,J,K)*
*    FI(I,J-1,K)+AN(I,J,K)*FI(I,J+1,K)+AT(I,J,K)*FI(I,J,K+1)+
*    AB(I,J,K)*FI(I,J,K-1)-
     *(as(i,j,k)+an(i,j,k)+at(i,j,k)+ab(i,j,k))*fi(i,j,k)
  END DO
C
  PI(IST-1)=0.
  QI(IST-1)=FIO(IST-1,J,K)
C
  DO I=IST,NIM
  APR=AP1(I)-PI(I-1)*AW(I,J,K)
  PI(I)=AE(I,J,K)/APR
  QR=SU1(I)
  QI(I)=(QR+AW(I,J,K)*QI(I-1))/APR
  END DO
C
  DO I=NIM,IST,-1
  FIO(I,J,K)=FIO(I+1,J,K)*PI(I)+QI(I)
  END DO
C
  END DO
END DO
C
C......TO SOLVE WITH TDMA ALONG J LINES
C
DO K=KST,NKM
  DO I=IST,NIM
   DO J=JST,NJM
   AP2(J)=AP(I,J,K)+AN(I,J,K)+AS(I,J,K)
         SU2(J)=SU(I,J,K)+APO(I,J,K)*FI(I,J,K)+
*    AW(I,J,K)*FIO(I-1,J,K)+AE(I,J,K)*FIO(I+1,J,K)+
     *    AT(I,J,K)*FI(I,J,K+1)+AB(I,J,K)*FI(I,J,K-1)-
     *  (AT(I,J,K)+AB(I,J,K))*FI(I,J,K)-(AW(I,J,K)+AE(I,J,K))*FIO(I,J,K)
   END DO
C
  PJ(JST-1)=0.
        QJ(JST-1)=FIOO(I,JST-1,K)
  DO J=JST,NJM
  APR=AP2(J)-PJ(J-1)*AS(I,J,K)
  PJ(J)=AN(I,J,K)/APR
  QR=SU2(J)
  QJ(J)=(QR+AS(I,J,K)*QJ(J-1))/APR
  END DO
  DO J=NJM,JST,-1
  FIOO(I,J,K)=FIOO(I,J+1,K)*PJ(J)+QJ(J)
  END DO
c
      END DO
END DO
C
C......TO SOLVE WITH TDMA ALONG K LINES
C
DO I=IST,NIM
  DO J=JST,NJM
  DO K=KST,NKM
AP3(K)=AP(I,J,K)+AT(I,J,K)+AB(I,J,K)
  SU3(K)=SU(I,J,K)+APO(I,J,K)*FITWO(I,J,K)+
*    AS(I,J,K)*FITWO(I,J-1,K)+AN(I,J,K)*FITWO(I,J+1,K)+
     *    AW(I,J,K)*FIONE(I-1,J,K)+AE(I,J,K)*FIONE(I+1,J,K)-
*(AS(I,J,K)+AN(I,J,K))*FIOO(I,J,K)-(AW(I,J,K)+AE(I,J,K))*
*FIO(I,J,K)
  END DO
  PK(KST-1)=0.
  QK(KST-1)=FI(I,J,KST-1)
  DO K=KST,NKM
  APR=AP3(K)-PK(K-1)*AB(I,J,K)
  PK(K)=AT(I,J,K)/APR
  QR=SU3(K)
  QK(K)=(QR+AB(I,J,K)*QK(K-1))/APR
  END DO
  DO K=NKM,KST,-1
  FI(I,J,K)=FI(I,J,K+1)*PK(K)+QK(K)
  END DO
  END DO
END DO
C
C
      RETURN
      END
发表于 2003-6-24 22:08:12 | 显示全部楼层

[讨论]晚上好,各位大虾!这里有一基于bRIAN的ADI算法程序,请指正谬误,谢谢!

bRIAN是什么?
能否将所用的方程和离散公式贴出来?否则很难对号?
很好的程序,就差一点不完善了!
谢谢!
 楼主| 发表于 2003-6-24 22:45:08 | 显示全部楼层

[讨论]晚上好,各位大虾!这里有一基于bRIAN的ADI算法程序,请指正谬误,谢谢!

是Brian,一个cfd兼数学方面的外国大牛,故用其名字来命名该格式,具体方程和离散公式如下(即是陶老师数值传热学教材p103页,Edit2):
 楼主| 发表于 2003-6-24 22:52:00 | 显示全部楼层

[讨论]晚上好,各位大虾!这里有一基于bRIAN的ADI算法程序,请指正谬误,谢谢!

又及,图中物性参数暂取常数,最上式中将密度和比热移到方程右侧即可与下面式子相应。不过由于习惯,在编程时我并没有这样做。这一点并不影响什么。
 楼主| 发表于 2003-6-24 23:28:53 | 显示全部楼层

[讨论]晚上好,各位大虾!这里有一基于bRIAN的ADI算法程序,请指正谬误,谢谢!

必须说明的是,在验证程序的过程中,我总感觉计算结果不大对,贴出来跟大家请教、讨论。
 
发表于 2003-6-25 11:06:26 | 显示全部楼层

[讨论]晚上好,各位大虾!这里有一基于bRIAN的ADI算法程序,请指正谬误,谢谢!

在第一版的第几页?
读别人的程序真难啊,不知道变量的意义
 楼主| 发表于 2003-6-25 11:42:42 | 显示全部楼层

[讨论]晚上好,各位大虾!这里有一基于bRIAN的ADI算法程序,请指正谬误,谢谢!

歉意!是我的程序写的不够清楚,请原谅!在第二版的103页
发表于 2003-6-26 20:12:57 | 显示全部楼层

[讨论]晚上好,各位大虾!这里有一基于bRIAN的ADI算法程序,请指正谬误,谢谢!

好厉害呀
我看了很就都不知道怎么写程序
 楼主| 发表于 2003-6-26 20:59:34 | 显示全部楼层

[讨论]晚上好,各位大虾!这里有一基于bRIAN的ADI算法程序,请指正谬误,谢谢!

老兄,别取笑我了,我也是初学者!而且,程序写的也不好,请多指教!
发表于 2003-6-26 21:22:19 | 显示全部楼层

[讨论]晚上好,各位大虾!这里有一基于bRIAN的ADI算法程序,请指正谬误,谢谢!

厉害,
是要好好学一下!!!
发表于 2009-9-9 10:57:36 | 显示全部楼层
我也Brian ADI格式编程序算了类似三维非稳态导热问题,结果也是不对,不知是否该算法本身有问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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