来自:IDAJ中国Ansys技术团队 徐淑君
更多资料/视频:产品专栏/Ansys
随着仿真工况的日益复杂,在数值模拟中经常会遇到一些无法在界面上直接赋值的边界条件,比如按一定空间位置排列,随时间变化,或和某个变量相关等等。越来越多的工程师希望对边界条件进行自定义设置。
Ansys Fluent中有以下几种自定义边界条件的方法:
– 利用profile文件赋值
– 采用Fluent Expressions定义
– 编写UDF
今天,我们来了解一下如何采用Fluent Expressions定义边界条件。
从2019版本开始,Fluent中加入了和CFX中的表达式功能类似的“Fluent Expression Language”(表达式语言)。它是一种基于Python的解释型的声明式语言,是由数值、变量、运算符、函数组成的可以返回一定值的字符串,例如,Vmax*(5.0*exp(-t-0.3 /2.8 ))。
表达式可以指定与时间、迭代步、位置、求解变量相关的复杂的边界条件和源项,基于时间和迭代步指定不同的模型和求解器设置。同一个表达式对Windows和Linux都适用。
表达式可以取代部分UDF、Scheme、Journal的功能,虽然不能完全取代,但比UDF、scheme更加易学易用,是非常值得学习的一个功能。
表达式的值可以是实数,整数,布尔值或数量。数量是具有量纲的实数。数量格式为 [],例如2324.0 。
表达式的计算结果可以是实数,布尔值,实数场或布尔值场。例如,2 * StaticPressure在一个区域上计算时,会返回real field(实数场);而average(2 * StaticPressure,[“ inlet”])返回的是一个实数值。
表达式包含很多运算符和函数,如下表所示。
| 
 描述  | 
 函数  | 
| 
 运算符  | 
 +, -, *, /, ** (power), ^ (power), >, >=,  | 
| 
 传统  | 
 AND(, , …) IF(, , ) NOT() OR(, , …) XOR()  | 
| 
 双曲线  | 
 acosh() asinh() atanh() cosh() sinh() tanh()  | 
| 
 数学  | 
 abs() *besselJ(n**, ) *besselY(n**, ) ceil() exp() floor() gradient() log() log10() max(, , …) min(,, …) mod(, ) normalize(,[,…]) round() sqrt() step() trunc() *besselJ 是第一类贝塞尔函数,besselY 是第二类贝塞尔函数。 **n 必须是“double”类型的常量。  | 
| 
 归约  | 
 Area([, , …]) AreaAve(Field, [‘location’]) AreaInt(Field, [‘location’]) *Average(, [, , …], Weight= ) Centroid([‘location’]) Count([‘location’]) CountIf(Boolean_Expr, [‘location’]) Force ([‘location’], …) MassAve(Field,[‘location’]) MassFlow([‘location’]) MassFlowAve(Field, [‘location’]) MassFlowAveAbs(Field, [‘location’]) MassFlowInt(Field, [‘inelt1’], [‘inlet2’]) MassInt(Field, [‘location’]) Maximum(, [, , …]) Minimum(, [, , …]) Moment(, [‘location’]) PressureForce([‘location’], …) *Sum(, [, , …], Weight= ) SumIf( Field, Boolean_Expr, [‘location’], Weight=) ViscousForce([, , …]) Volume([, , …]) VolumeAve(Field, [‘location’]) VolumeInt(Field, [‘location’])  | 
| 
 三角  | 
 acos() asin() atan() atan2(, ) cos() sin() tan()  | 
| 
 矢量  | 
 cross(, ) dot , ) unitVector(, , ) .dir vector(, , , [“unit”])  | 
不要在单个表达式中使用多个比较运算符,因为该运算将无法正常工作。 例如,400 > StaticTemperature> 300 将不起作用。要完成此表达式,请使用AND(StaticTemperature> 300 ,StaticTemperature )。
科学常数,如下表所示。
| 
 变量  | 
 描述  | 
 值  | 
| 
 PI  | 
 圆周率Pi  | 
 3.14159265358979323846  | 
| 
 e  | 
 声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢! 
                
                    成都企业数智化创新发展沙龙(金牛区站)圆满召开,华天软件持续助力轨道交通制造业数字化转型
                
                 
                            
                     上一篇
                    2022年11月1日
                 
            
                
                    Ansys Motion & Ansys Rocky耦合应用案例
                
                 
            
                    下一篇 
                    2022年11月1日
                 
             |