wzg123 发表于 2007-12-30 23:44

新手求助帮忙,渗流分析APDL!

第一次求解得到结果,然后要判断水头值与位置高程大小,将水头值小于位置高程的节点找出来,再找这些节点对应的单元,将其杀死(ekill),其余单元将其激活(alive);再求解solve,然后再进行第二次比较......总共进行10次。
我对APDL语言是个新手,不知道怎么编程,找了些论坛资料,试着编写,但是觉得挺难,希望得到大家的帮助,在次表示最真诚的谢意,也祝福大家新年快乐!下面是我写的不完整程序,大家指导我写完整好吗?再次谢谢!
*DIM,N_TEMP,ARRAY,N_MAX ! 定义节点温度变量-总水头
*DIM,N_PRE,ARRAY,N_MAX ! 定义节点压力水头变量,总水头-Y坐标
CONUTT=10 ! 最大循环次数
*DO,COM_NUM,1,CONUTT
*DO,I,1,N_MAX!循环I从1到节点最大值N_MAX,每次默认增量为1
N_TEMP(I)=TEMP(I) ! 计算节点温度(总水头)
N_PRE(I)=N_TEMP(I)-NY(I) ! 计算节点压力,总水头-Y坐标
*IF,PRESS_T,GT,0,THEN
找到这些节点——》找到节点的单元-》ealive他们
ELSE
找到其余节点的单元-》ekill他们
*ENDIF
*ENDDO
SOLVE
*ENDDO

wzg123 发表于 2007-12-31 10:08

早上补充如下,但不是很清楚,大家帮我看看,急啊
!第一求解完毕,这一步是用界面操作的,我对APDL不熟悉
*DIM,N_TEMP,ARRAY,N_MAX ! 定义节点温度变量-总水头
*DIM,N_PRE,ARRAY,N_MAX ! 定义节点压力水头变量,总水头-Y坐标
*GET,N_MAX,NODE,,NUM,MAX ! 获得最大节点号
*GET,E_MAX,ELEM,,NUM,MAX ! 获得最大单元号

*DO,I,1,N_MAX!循环I从1到节点最大值N_MAX,每次默认增量为1
N_TEMP(I)=TEMP(I) ! 计算节点温度(总水头)
N_PRE(I)=N_TEMP(I)-NY(I) ! 计算节点压力,总水头-Y坐标
*ENDDO

*DIM,NCON,ARRAY,3 ! 定义数组,用于存贮单元三个节点号
CONUTT=10 ! 最大循环次数
*DO,COM_NUM,1,CONUTT
*DO,I,1,E_MAX
*DO,KK,1,3
*GET,NCON(KK),ELEM,I,NODE,KK ! 获取单元三个节点编号
*ENDDO
TEMP_Y=(N_TEMP(NCON(1))+N_TEMP(NCON(2))+N_TEMP(NCON(3)))/3 !计算单元中心点平均温度
CENTR_Y=(NY(NCON(1))+NY(NCON(2))+NY(NCON(3)))/3!计算单元中心点平均高程
PRESS_T=TEMP_Y-CENTR_Y
*IF,PRESS_T,LT,0,THEN
ekill,I   !杀死这个单元,这样对吗?
else
ealive,I    !激活这个单元,这样对吗?
*ENDIF
*ENDDO

!重新加边界条件
!定义上游面总水头值
LSEL,S,LINE,,1,7      !找出1到7号上边界线
NSLL,S,1
NSEL,R,LOC,Y,16,37.2
D,ALL,TEMP,37.2

!定义排水体处总水头值
LSEL,S,LINE,,10
NSLL,S,1
D,ALL,TEMP,14

!求解
SOLVE
FINISH
*ENDDO
SAVE

[ 本帖最后由 wzg123 于 2007-12-31 10:33 编辑 ]
页: [1]
查看完整版本: 新手求助帮忙,渗流分析APDL!