《ANSYS 14.0超级学习手册》一2.2 APDL的流程控制-阿里云开发者社区

开发者社区> 异步社区> 正文

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

简介:
+关注继续查看

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

2.2 APDL的流程控制

ANSYS 14.0超级学习手册
ANSYS在执行APDL所编写的程序时,采取的是逐行解释并执行指令的方式。复杂的程序经常需要控制指令的执行顺序。为此,APDL提供了以下流程控制命令,一种接近于FORTRAN的流程控制命令:

*GO无条件分支。
IF……IFELSE……ELSE……ENDIF条件分支。
DO……ENDDO循环。
*DOWHILE循环。
*REPEAT重复命令。

2.2.1 *GO分支语句

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

*GO, : Branch_1
……
:Branch_1
……
*GO, stop

2.2.2 *IF分支语句

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

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

*IF, VAL1, Oper1, VAL2, Base1, VAL3, Oper2, VAL4, Base2

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。

2.2.3 *DO循环语句

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

*DO,Par,IVAL,FVAL,INC
……
*ENDDO

其中,Par是循环控制变量,只允许使用数值型变量,IVAL是Par初值,FVAL是Par终值,INC为循环变量的步长,默认为1。

DO……ENDDO循环可以与IF分支结合,利用EXIT和*CYCLE指令跳出当前循环过程或整个循环体,格式如下:

*DO
……
*IF
……
*ELSEIF
*CYCLE
……
*ELSE
*EXIT
……
*ENDIF
……
*ENDDO

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

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

分支语句IF或GO命令不允许跳出*DO循环体。

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

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

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

2.2.4 *DOWHILE循环语句

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

*DOWHILE,PAR

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

2.2.5 *REPEAT循环语句

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

*REPEAT,NTOT,VINC1,VINC2,VINC3,VINC4,VINC5,VINC6,VINC7,VINC8,VINC9,VINC10,VINC11

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
打造深度学习的云端实验室
本系列将利用阿里云容器服务的机器学习解决方案,帮助您了解和掌握TensorFlow,MxNet等深度学习库,开启您的深度学习之旅。
13774 0
SUV的配置及使用(SUV简介)|学习笔记
快速学习SUV的配置及使用(SUV简介)
12 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7734 0
使用Spark SQL进行流式机器学习计算(上)
今天来和大家简单说一下如何使用Spark SQL进行流式数据的机器学习处理
1637 0
程序设计课2014年秋第11周学习经验交流和自省
课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。  发现你在学习中成功的经验,以及有好感觉的时候,做一简短总结 能在一定时间内,写出想要表达的信息通过编写代码 总算找到了一点感觉,现在天天晚自习,希望能在自习中重新找回自己学习的状态,尽快追上去。
1675 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
11938
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载