- 积分
- 0
- 注册时间
- 2004-12-13
- 仿真币
-
- 最后登录
- 1970-1-1
|
对网上一位老兄的渗流计算程序进行了修改,计算稳定渗流,根据前次计算结果,不断修改浸润线出口位置。迭代过程比较简单,容易收敛。算例是《土工原理与计算》第三章中的矩形土坝。与初学者分享。
fini
/cle
/prep7
!定义材料,建模,剖分网格
et,1,plane55
mp,kxx,1,1e-7
k,1,0,0
k,2,4,0
k,3,4,6
k,4,0,6
a,1,2,3,4
lesize,1,,,10
lesize,2,,,15
mshape,0
mshkey,1
mat,1
amesh,all
nummrg,node
*get,n_max,node,,num,max
*dim,n_temp,array,n_max
!定义上游边界条件
lsel,s,line,,4
nsll,s,1
d,all,temp,6
!定义下游边界条件
lsel,s,line,,2
nsll,s,1
*get,n_num,node,,count
*dim,n_no,array,n_num
ii=0
*do,i,1,n_max
*if,nsel(i),eq,1,then
ii=ii+1
n_no(ii)=i
*endif
*enddo
cyd=2
nsel,r,loc,y,0,cyd
*get,n_num1,node,,count
*dim,n_no1,array,n_num1
ii=0
*do,i,1,n_max
*if,nsel(i),eq,1,then
ii=ii+1
n_no1(ii)=i
*endif
*enddo
*do,i,1,n_num1
d,n_no1(i),temp,ny(n_no1(i))
*enddo
!第一次求解
/solu
antype,0
solve
fini
!迭代计算
*do,com_num,1,5
/post1
set,1
*do,i,1,n_max
n_temp(i)=temp(i)
*enddo
!重新定义下游边界条件
/solu
lsel,s,line,,2
nsll,s,1
ddel,all,temp
cyd1=0
*do,i,1,n_num
*if,n_temp(n_no(i)),ge,ny(n_no(i)),then
d,n_no(i),temp,ny(n_no(i))
*if,ny(n_no(i)),gt,cyd1,then
cyd1=ny(n_no(i))
*endif
*endif
*enddo
*if,abs(cyd-cyd1),gt,0.001,then
cyd=cyd1
*else
*exit
*endif
solve
fini
*enddo |
|