FieldFunction.ppt
《FieldFunction.ppt》由会员分享,可在线阅读,更多相关《FieldFunction.ppt(66页珍藏版)》请在冰豆网上搜索。
FieldFunction培训教程培训教程CDAJ-China技术部技术部lFieldFunction介绍介绍lFieldFunction实例实例什么是什么是FieldFunction?
lFieldFunction提供了在提供了在STAR-CCM+中存取求解器中存取求解器中的单元中的单元/边界数据的一种机制。
边界数据的一种机制。
lFieldFunction在在STAR-CCM+中有着十分广泛的应中有着十分广泛的应用。
它可以实现绝大多数其它用。
它可以实现绝大多数其它CFD软件中需要使用用软件中需要使用用户子程序才能实现的功能,而且不需要安装特别的编户子程序才能实现的功能,而且不需要安装特别的编译器,有着虽使用简便但功能强大的特点。
译器,有着虽使用简便但功能强大的特点。
FieldFunction有什么用处有什么用处?
lFieldFunction最常见的用处就是用来显示计算结果。
最常见的用处就是用来显示计算结果。
例如想要显示某个壁面上的压力分布云图,这里,例如想要显示某个壁面上的压力分布云图,这里,“压力压力”(Pressure)就是一个)就是一个FieldFunction。
lFieldFunction更进一步的用处还可以用来定义边界更进一步的用处还可以用来定义边界和区域上的值、或者定义初始条件。
此时一般需要用和区域上的值、或者定义初始条件。
此时一般需要用户事先编写好一个户事先编写好一个FieldFunction,然后把它应用到,然后把它应用到边界、区域或初始条件的设定中去。
例如想要将一个边界、区域或初始条件的设定中去。
例如想要将一个速度入口边界的速度大小值赋成随着速度入口边界的速度大小值赋成随着Y坐标呈抛物线坐标呈抛物线规律变化,就需要先写一个满足这个规律的规律变化,就需要先写一个满足这个规律的FieldFunction,然后将其应用到速度入口边界的设定中。
,然后将其应用到速度入口边界的设定中。
FieldFunction的分类(的分类
(1)l从从FieldFunction的生成方式来看,可分为的生成方式来看,可分为SystemFieldFunction和和UserFieldFunction两类。
两类。
SystemFieldFunction是软件根据所选择的物理模型自动生成的。
是软件根据所选择的物理模型自动生成的。
UserFieldFunction是用户基于已有的是用户基于已有的FieldFunction,再结合运,再结合运算法则编写而成。
算法则编写而成。
UserFieldFunction图标(绿色的笔)SystemFieldFunction图标(黄色的笔)FieldFunction的分类(的分类
(2)l从从FieldFunction的类型来看,可分为的类型来看,可分为ScalarFieldFunction、VectorFieldFunction、ArrayFieldFunction和和PositionFieldFunction四类。
四类。
lSystemFieldFunction的类型是自动生成时即已固的类型是自动生成时即已固定的;定的;UserFieldFunction的类型需要用户具体指定。
的类型需要用户具体指定。
ScalarFieldFunctionlScalarFieldFunction对应于一个具体的数值,可以对应于一个具体的数值,可以是正数、负数或者零。
是正数、负数或者零。
l温度、压力等标量值是温度、压力等标量值是ScalarFieldFunction。
12413函数名,在函数名,在ScalarScene标尺栏上的标尺栏上的名称。
名称。
函数类型。
函数类型。
量纲。
量纲。
可以参考可以参考FunctionName,通过,通过$Temperature取得温度值。
取得温度值。
VectorFieldFunctionlVectorFieldFunction定义的是一个可以在不同坐标定义的是一个可以在不同坐标系下转换的矢量。
系下转换的矢量。
l速度、单元质心坐标等是速度、单元质心坐标等是VectorFieldFunction。
函数名,在函数名,在VectorScene标尺栏上标尺栏上的名称。
的名称。
函数类型。
函数类型。
量纲。
量纲。
可以参考可以参考FunctionName,通过,通过$Velocity取得取得速度的三个分量。
速度的三个分量。
12413X分量分量$Velocity0Y分量分量$Velocity1Z分量分量$Velocity2VectorFieldFunctionl当当VectorFieldFunction在在Scalar标尺栏出现可选的标尺栏出现可选的时候,其值的大小及各个分量可以选择成如下形式:
时候,其值的大小及各个分量可以选择成如下形式:
MagnitudeCartesianorLaboratory:
uiujukCylindrical:
uRadialuTangentialuAxialSpherical:
uRadialuPolaruAzimuthalArrayFieldFunctionlArrayFieldFunction定义的是一个三维数组,它不定义的是一个三维数组,它不具有坐标系转换的功能。
具有坐标系转换的功能。
l当当ArrayFieldFunction在在Scalar标尺栏出现可选的标尺栏出现可选的时候,其值的大小及各个分量可以选择成如下形式:
时候,其值的大小及各个分量可以选择成如下形式:
MagnitudeX-componentvalueY-componentvalueZ-componentvaluePositionFieldFunctionlPositionFieldFunction定义的是一个可以在不同坐标定义的是一个可以在不同坐标系下转换的位置。
系下转换的位置。
l当当PositionFieldFunction在在Scalar标尺栏出现可选的标尺栏出现可选的时候,其值的大小及各个分量可以选择成如下形式:
时候,其值的大小及各个分量可以选择成如下形式:
MagnitudeCartesianorLaboratory:
uXuYuZCylindrical:
uruthetauzSpherical:
uruthetauphi变量的参照方法(变量的参照方法
(1)l使用已有的使用已有的FieldFunction作为参照变量定义新的作为参照变量定义新的UserFieldFunction时,针对不同的已有时,针对不同的已有FieldFunction类型,需要使用不同的参照方法。
具体为参类型,需要使用不同的参照方法。
具体为参照照ScalarFieldFunction类型时,需要在其类型时,需要在其FunctionName前添加一个美元符号;前添加一个美元符号;VectorFieldFunction类型前添加两个美元符号。
类型前添加两个美元符号。
Scalar值:
值:
$SCALARVector值:
值:
$VECTOR0,$VECTOR1,$VECTOR2l如果需要参照的变量名称中含有字符如果需要参照的变量名称中含有字符-、*等,则等,则会被运算法则自动误识别为减号、乘号等。
为了避免会被运算法则自动误识别为减号、乘号等。
为了避免这种误识别,需要将这样的变量名称放在大括号内。
这种误识别,需要将这样的变量名称放在大括号内。
例如变量名称为例如变量名称为test-Temperature,则写成如下格式:
,则写成如下格式:
$test-Temperature变量的参照方法(变量的参照方法
(2)l使用已有使用已有Vector/PositionFieldFunction在不同坐在不同坐标系下的分量作为参照变量,定义新的标系下的分量作为参照变量,定义新的UserFieldFunction时,可以使用以下方法时,可以使用以下方法(这里以单元质心坐(这里以单元质心坐标标Centroid为例):
为例):
$Centroid(“CoordinateSystem1”)其中,其中,CoordinateSystem1代表的是不同坐标系的名称。
代表的是不同坐标系的名称。
例如:
例如:
在在Cartesian坐标系下,坐标系下,$Centroid(“CartesianSystem”)0、$Centroid(“CartesianSystem”)1、$Centroid(“CartesianSystem”)2分别代表了单元质心坐标矢量分别代表了单元质心坐标矢量在在CartesianSystem这个坐标系下的三个分量。
这个坐标系下的三个分量。
同理,在同理,在Cylindrical或或Spherical坐标系下的三个分量也可以使用坐标系下的三个分量也可以使用类似的方法。
类似的方法。
定义定义UserFieldFunction
(1)l在鼠标右键点击在鼠标右键点击ToolsFieldFunctions,选择,选择New新建了一个新建了一个UserFieldFunction之后,需要正之后,需要正确修改其名称、类型、量纲、确修改其名称、类型、量纲、FunctionName,并正,并正确书写其确书写其Definition内容。
内容。
定义定义UserFieldFunction
(2)l书写书写Definition时用到的语法是时用到的语法是C语言的一个子集。
语言的一个子集。
l如果书写的内容不符合语法要求,会在如果书写的内容不符合语法要求,会在Output窗口中窗口中出现如下的错误提示信息,需要仔细检查修改直至错出现如下的错误提示信息,需要仔细检查修改直至错误提示信息不再出现。
误提示信息不再出现。
定义定义UserFieldFunction(3)l在在UserFieldFunction的属性中,有一个选项的属性中,有一个选项IgnoringBoundaryValues。
l通常通常FieldFunction在存取边界上的数据时,如果边界上存在存取边界上的数据时,如果边界上存储有需要的数据,则直接使用;如果边界上没有存储需要的储有需要的数据,则直接使用;如果边界上没有存储需要的数据,则取用临近边界的第一层体网格单元中的数据。
数据,则取用临近边界的第一层体网格单元中的数据。
l但在某些特定场合,即使边界上已经存储有数据,我们仍希但在某些特定场合,即使边界上已经存储有数据,我们仍希望只得到临近边界的第一层体网格单元中的数据,此时就可望只得到临近边界的第一层体网格单元中的数据,此时就可以选中以选中IgnoringBoundaryValues选项来实现这个功能。
选项来实现这个功能。
l例如,定义例如,定义UserFieldFunction内容为内容为$Velocity.mag(),代表了速度矢量值的大小,并想在,代表了速度矢量值的大小,并想在ScalarScene中的中的WallBoundary上显示这个上显示这个UserFieldFunction。
但由于。
但由于壁面边界上已经存储有速度值为壁面边界上已经存储有速度值为0的数据,因此需要选中的数据,因此需要选中IgnoringBoundaryValues选项来实现云图的显示。
选项来实现云图的显示。
FieldFunction运算法则(运算法则
(1)四则运算四则运算逻辑运算逻辑运算三角函数三角函数FieldFunction运算法则(运算法则
(2)矢量函数矢量函数FieldFunction运算法则(运算法则(3)杂项函数杂项函数FieldFunction运算法则(运算法则(4)条件表达式条件表达式FieldFunction调用调用Report
(1)l每个新建的每个新建的Report都会自动产生一个都会自动产生一个SystemFieldFunction,用户在编写,用户在编写UserFieldFunction时即可时即可加以引用。
加以引用。
引用格式为:
引用格式为:
$l由于在编写由于在编写Report时亦可使用时