tecplot中用公式修改数据
前几天因为使用遇到问题,看了一下Tecplot中如何用公式修改数据,把相关帮助随便翻译了一下,希望对大家有帮助。Data->Alter->Specify Equations 可以使用公式Tecplot 公式形式如下:Lvalue = f(Rvalue1, Rvalue2, Rvalue3, ...)f() 类似FORTRAN 表达式,参考下面的内容。Lvalue 是对一个存在或不存在的变量的引用,RvalueN 是对值的引用(如常数、变量值或序号)。公式中可以有空格,但是在内部函数名称和变量名称中不能有空格。如果Lvalue 指定的变量在当前Frame 的数据集中存在,公式将修改变量的值;如果不存在就建立一个新变量。如果公式包含语法错误,在一个错误对话框中显示公式,告知错误的大概位置。每个公式占一行,可以使用多个公式,单击 Compute 生效,每个公式按顺序用于所有指定的ZONE 和数据。公式变量和值变量可以用3种方法指定:根据数据文件中的顺序,名称或字母代码。可以用数据文件中变量的顺序引用变量,V1 是数据文件中的第一个变量,V2 是第二个,依此类推。如,要设置数据文件中第一个变量等于第二个变量和第三个变量的和,用V1 = V2 + V3用这个方法创建新变量必须指定下一个变量的序号,假设数据文件中有5个变量,可以创建一个新变量等于第四个变量的一半:V6 = V4 / 2不能跳过中间的数字指定变量,否则Tecplot 弹出错误信息对话框指出变量名无效。变量也可以用名称指定,方法为用大括号("{"和"}")包含变量
名,如要设置V3 等于变量R/RFR 的值用:V3 = {R/RFR}变量名大小写不敏感,前后的空格也忽略,因此下面的公式是相同的:v3 = {R/rfr} V3 = { r/rfr }变量名中的空格有意义,因此下面的公式和上面的公式不同:V3 = {R / rfr}如果有两个或多个变量名字相同,Tecplot 使用第一个变量,即如果V5 和V9 都叫R/rfr,用变量名时使用的是V5。大括号也可以用于公式左侧,此时如果该变量不存在就创建一个新变量,这在公式文件中很重要,如,下面的公式设置变量T/R 等于变量T 除以变量R,如果不存在变量T/R,将创建一个新变量。{T/R} = {T} / {R}变量也可以用字母代码表示,有效的字母代码为:I: 数据的I 序号J: 数据的J 序号(有限元ZONE 为1)K: 数据的K 序号(有限元ZONE 为1)X: X轴变量(在XY Line 图形中,所有图形必须有相同的X 变量名称)Y: Y轴变量(在XY Line 图形中,所有图形必须有相同的Y 变量名称)Z: Z轴变量(如果存在)A: Polar 图的Theta 轴,如果这个变量有效,图形必须是Polar Line,且所有图形必须有相同的Theta 变量名称R: Polar 图的R 轴,图形必须是Polar Line,且所有图形必须有相同的Theta 变量名称U: 向量的X 分量(如果存在)V: 向量的Y 分量(如果存在)W: 向量的Z 分量(如果存在)B: value-blanking variable (if
set).Plot->Blanking->value-Blanking里设置C: 等值线变量(如果存在)S: 散点大小变量(如果存在)字母代码可以用于公式右侧任意位置,不要加大括号,例如:V3 = I + JV4 = cos(X) * cos
(Y) * cos(Z){Dist} = sqrt(U*U + V*V + W*W){temp} = min(B,1)代表变量的字母代码,除I, J, K外,都可以用在公式左侧,如:Z = X*X/(1+Y*Y)W = 0S = 1+ABS(S)如果Tecplot 图不存在使用的字母代码会有出错信息,如在非3D 图形中使用Z,字母代码引用的变量只对当前Frame 有效。公式中还可以使用辅助数据,如引用数据文件中的辅助数据从无量纲变量计算有量纲变量,公式中使用辅助数据语法如下:
AUXZONE[nnn]:NameAUXDATASET:NameAUXFRAME:Name例如辅助数据集中的常数Pref 可以用AUXDataSet ref 引用,使用这个变量的公式如:{P} = {P_NonDim} * AUXDataSet refFrame 辅助数据常数Mach 可以用AUXFrame:Mach 引用。ZONE 辅助
数据常数有2种方法引用:AUXZone:Name 对当前ZONE 使用Name,
AUXZone[nnn]:Name 对ZONE 号为nnn 的ZONE 使用Name。如果正在对ZONE 1-3 操作,对ZONE 1 操作时,AUXZone:Reynolds 引用ZONE 1 中的辅助数据Reynolds,对ZONE 2 操作时,AUXZone:Reynolds 引用ZONE 2 中的辅助数据Reynolds,依此类推。
而AUXZone[2]:Reynolds 对所有操作ZONE 引用ZONE 2 中的辅助数据常数Reynolds。公式
操作符和函数操作符:+ 加- 减* 乘/ 除** 指数优先级为:** 高*,/ +,- 低可用函数(除非注明,所有函数使用一个参数):SIN: Sine (用弧度)COS: Cosine (用弧度)TAN: Tangent (用弧度)ABS: 绝对值ASIN: Arcsine (结果是弧度)ACOS: Arccosine (结果是弧
度)ATAN: Arctangent (结果是弧度)ATAN2(A,B): Arctangent of A/B (结果是弧度)SQRT: 开平方LOG: 自然对数(底是e)ALOG: 自然对数(底是e)LOG10: 以10为底的对数ALOG10: 以10为底的对数EXP: 指数(底是e); EXP(V1)=e**(V1).MIN(A,B): A 和 B 的最小值MAX(A,B): A 和B 的最大值SIGN: 参数为负时返回-1,否则返回+1ROUND: 舍入到最近整数TRUNC: 去掉小数部分LOG 和ALOG 等价,LOG10 和ALOG10 等价。要调用内部函数,把它的参数放在小括号("(" 和")")里,如:V4 = ATAN(V1)Tecplot 有一组完全的一、二阶导数和微分函数:ddx ddy ddz dda ddr d2dx2 d2dy2 d2dz2 d2da2 d2dr2 d2dxy
d2dyz d2dxz d2darddi ddj ddk d2di2 d2dj2 d2dk2 d2dij d2djk d2dik导数和微分函数可以象内部函数一样使用,如:V4 = ddx(V3)V6 = d2dx2(v5){dC/dx} = ddx(C)V8 = ddj(X){Vt12} = ddy({Vt11}(i+1)) + ddy({Vt11}(i-1))Z = d2dj2(sin(v5*v6))V9 = ddj(ddx({R/T}))C =
d2dij(C[1]-C){NEWVAR} = ddi(X)+ddj(Y)+ddk(Z)导数和微分函数限制如下:IJK-ordered ZO
NE 的导数和微分用全3D 体积计算。如果在选定ZONE 的所有数据点上存在导数没有定义的点,那么在所有点都不进行计算。导数计算使用当前Frame 的坐标轴定义,如果有多个Frame 且对相同的数据集有不同的变量指定时需要注意。所有导数和微分都在数据点中心或网格中心(如果导数变量是网格中心变量)。2个ZONE 边界上的导数可能不同,因为Tecplot 每次只计算一个ZONE 。导数和微分函的边界条件对于ordered ZONE ,一阶导数和微分的边界值(ddx, ddy, ddz, ddi, ddj, and ddk)用simple 或complex 方法计算,缺省是simple。配置文件中的下面参数控制使用的方法:$!INTERFACE DATA {DERIVATIVEBOUNDARY=SIMPLE}把SIMPLE 改为COMPLEX 使用complex 边界条件。对于simple 边界条件,边界导数用边界的一阶导数计算,等价于一阶导数在边界上是常数(二阶导数等于0)。complex 边界条件时,边界导数从相邻内点导数线性外插,等价于二阶导数在边界上时常数(一阶导数线性变化)。二阶导数和微分(d2dx2, d2dy2, d2dz2, d2dxy, d2dyz, d2dxz, d2di2, d2dj2, d2dij, d2dk2, d2djk, and d2dik)忽略这些边界条件,边界导数被设置成等于内部相邻的导数,等价于二阶导数在边界上是常数。可以用序号范围和序号选项建立自己的导数边界条件。指定ZONE 号:变量后跟中括号可以指定变量值的ZONEV3 = V3 - V3[1]X = ( X[1] + X[2] + X[3] ) / 3{TempAdj} = {Temp}[7] - {Adj}V8 = V1[19] -
2*C[21] + {R/T}[18]ZONE 号必须是小于等于ZONE 数的正整常数。指定的ZONE 必须和当前区域有相同的结构(I-, IJ-, 或IJK-ordered 或有限元) 和维数(即IMax, 节点数等),不指定时使用当前ZONE。ZONE 指定只在公式右侧起作用,所有公式右侧的值在修改前都不变。要在公式左侧指定ZONE,在指定公式对话框中ZONE 内指定。指定数据序号用小括号("(" 和")")可以指定序号,可以是绝对位置或相对当前的位置,如:V2 = ( V2(i+1) + V2(i-1) ) / 2U = U(i+1,j) - U(i-1,j) + V(i+2,1) + 3*W(i-1){NTQ} = {TQ} + {TQ}(i-3,j+7,k-1) - {TQ}(3,j+1,k+8}S = S(i+1,j) - V3(2) + {RFR/T}(J+2)用I,J,K 可以指定序号相对当前位置的偏移,必须使用整数偏移量,如果超过ZONE 末尾,使用边界值,如当I=IMax-1 和I=IMax 时,V3(i+2) 使用V3(imax);I=1 或2 时,V3(i-2) 使用V3(1)。用一个正整数指定绝对位置,如V3(2) 引用V3 的第二个值。序号顺序必须是I, J, K 顺序的,如果数
trunc函数怎么切除小数点后几位据是I-ordered 忽略J,如果数据不是IJK-ordered 忽略K,在有限元数据中不可以使用序号。序号指定只在公式右侧起作用,如果不指定则使用当前序号,要在公式左侧使用序号,在指定公式对话框中Index Ranges 内指定。序号可以和ZONE 共同使用,先用ZONE,如:V3 = V3 - V3[1](i+1)Y = Y[1] - Y[2](1) + Y(1,j+3) + Y 新变量的数据类型可以在New
Var Data Type 下拉列表中指定,缺省是Auto,Tecplot 自动指定合适的类型。也可以手
动指定。可用数据类型为:Single: 4byte 浮点数Double: 8byte 浮点数Long Int: 4byte 整数Short Int: 2byte 整数Byte: 1byte 整数(0-255)Bit: 0或1 新变量的位置可以在New Var Location 下拉列表中指定,缺省是Auto,Tecplot 假设变量在节点上,即使公式中所有变量都是cell-centered 的也一样。修改公式使用范围ZONE 和序号范围是可以修改的,要对
单独的公式指定范围,在公式末尾加冒号(,再加下面的语句:公式范围=
Comments<Z=<set>> = 限制ZONE<I=start[,end[,skip]]> = 限制I 的
范围<J=start[,end[,skip]]> = 限制J 的范围<K=start[,end[,skip]]> = 限制K 的范围<D=<datatype>> = 创建新变量时,设置左侧变量数据类型例如,要把ZONE 1,3,4,5 的X 加1:X=X+1:<Z=[1,3-5]>下面的例子每隔一个序号I 就对X
加1,注意,0 表示序号最大值。X=X+1:<I=1,0,2>下面的例子创建一个新变量,同时赋予变量类型:{NewV}=X-Y:<D=Byte>对话框中的Remove 按钮可以删除这些限制。公式例子下面的公式中V1 (数据文件中的第一个变量) 变成自己的2.5 倍:V1 =

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。