天天看点

《ANSYS 14.0超级学习手册》一2.2 APDL的流程控制

本节书摘来自异步社区《ansys 14.0超级学习手册》一书中的第2章,第2.2节,作者 张建伟 , 白海波 , 李昕, 更多章节内容可以访问云栖社区“异步社区”公众号查看

ansys 14.0超级学习手册

ansys在执行apdl所编写的程序时,采取的是逐行解释并执行指令的方式。复杂的程序经常需要控制指令的执行顺序。为此,apdl提供了以下流程控制命令,一种接近于fortran的流程控制命令:

*go无条件分支。

if……ifelse……else……endif条件分支。

do……enddo循环。

*dowhile循环。

*repeat重复命令。

go命令是无条件分支命令,不能从循环体或者条件分支中利用它跳转出来执行其他命令,因此go命令不可以与其他分支或循环嵌套使用。*go命令格式如下:

apdl通过比较两个数值大小来确定当前满足的条件,选择性地在多个指令段中执行其中的一个。

*if语句是条件分支语句,使用格式如下:

val1,val2,val3,val4,为4个比较数,oper1与oper2是两个比较运算符。比较运算符有以下几种。

eq(等于,equal):val1 = val2

ne(不等于,not equal):val1≠val2

lt(小于,less than):val1

gt(大于,greater than):val1>val2

le(小于或等于,less than or equal):val1≤val2

ge(大于或等于,greater than or equal):val1≥val2

ablt(绝对值小于,absolute values of val1 and val2 before

abgt(绝对值大于,absolute values of val1 and val2 before> operation):|val1|> |val2|

base1是逻辑表达式oper1为真时的操作,如果逻辑表达式oper1为假则继续读取下一行程序;如果后面没有第二个条件oper2,则base1为then;如果后面有第二个条件oper2,则base1为逻辑连接词(and、or、xor),由两个条件组合成一个条件,条件连接如下。

and:表示oper1与oper2条件同时为真时,结果为真。

or:表示oper1与oper2条件至少一个为真时,结果为真。

xor:表示oper1与oper2条件同时为假时,结果为真。

base2是两个条件为真时执行操作,base2 = then。

*do命令是循环操作指令,格式如下:

其中,par是循环控制变量,只允许使用数值型变量,ival是par初值,fval是par终值,inc为循环变量的步长,默认为1。

do……enddo循环可以与if分支结合,利用exit和*cycle指令跳出当前循环过程或整个循环体,格式如下:

其中cycle为中断当前循环,直接进入下一步循环,exit为直接跳出当前循环体,读者应注意两者区别。

使用*do循环时,有如下注意事项:

分支语句if或go命令不允许跳出*do循环体。

在do循环中,第一次循环后自动禁止命令结果输出,要得到所有结果输出需要在do循环中使用/gopr或/go语句。

/clear命令不会清除*do循环的堆栈,但会清除所有参数,因此要在/clear命令前执行/parsave命令来防止删除。

不允许使用label将程序跳转到另一行,但通常可通过*if分支来实现。

*dowhile也是循环指令, 将重复循环体指令直到外部控制参数改变为止, 指令格式如下:

其中par为判断条件,当par为真则执行下一次循环,为假则中止。与do循环相比,dowhile循环无需事先知道循环的次数,直接由循环条件控制,*do循环则需要先确定循环的起点与终点。

*repeat指令按照事先指定的次数重复上一条指令,且命令中的参数可以按固定增量递增。

ntot是命令重复的次数,该次数是包含初始执行的,因此必须大于2,且必须为整数。vinc1~vinc11分别是11个参数在每次循环时的增量。