ANSYS的APDL中运算符除常用的 (加)、-(减)、*(乘)、/(除)、**(幂)五个运算符外,还有<(小于)、>(大于)两个运算符(称为比较运算符),前五个很容易理解和使用,后两个使用较少。这里主要介绍一下“<和>”运算符。比较运算符“<和>”表示在运算表达式中,采用满足比较条件的参数进行运算,也就是在计算时先行比较,然后采用满足比较后的值进行加减乘除幂计算,简单理解为“你行你上”。
例如:有表达式y=10*x**2 x,x取a与b的较大者,可采用如下运算:
a=4
b=3
y=10*(a>b)**2 (a>b)
上句表示a>b为y=10*a**2 a,否则为y=10*b**2 b
很显然,与使用*IF块相比要简单很多,使用*IF块如下:
*if,a,gt,b,then
y1=10*a**2 a
*else
y1=10*b**2 b
*endif
同样,若有a>b时采用z=5*a**2 b**3 a,而a<b时采用z=5*b**2 a**3 b,则可写成如下语句:
a=1
b=5
z=5*(a>b)**2 (a<b)**3 a>b
采用*IF块时如下:
*if,a,gt,b,then!{--1
z=5*a**2 b**3 a
*else!--1
z=5*b**2 a**3 b
*endif!--1}
运算符“>和<”与运算符“ -*/”用法一样,只不过有些不习惯而已。“加”是两个变量做加法计算,而“比较”是两个变量做比较计算,这样使用起来与加减乘除幂无异。但因为常规运算中,没有这种运算符,因此难有直接的表达式;即便是在分段函数中,也呈类似*IF块的表达方式。
最后的问题,在实际建模或计算中,有哪些场景采用“比较运算符”效率更高?有此种情况的请留言。
声明:原创文章,欢迎留言与我讨论,如需转载留言