CFD后处理出图软件Tecplot的操作技巧(未完待续)

1、实现Tecplot脚本的循环

处理非定常流场文件时需要对大量数据快速处理,可以首先录制一段宏,然后对宏进行修改,在宏中加入循环结构,实现Tecplot的批处理功能。方法为:

在第三行后面插入:

$!Varset |NumLoop|=100
$!Loop |NumLoop|
$!Varset |num|=(|Loop|*5+2)

其中100为循环次数,5为每次循环叠加的值。Loop从1开始,则num初始值为5+2。然后用|num|替换宏文本中的文件编号。
在倒数第二行插入:

 $!EndLoop

  修改语句:将读取的dat或者plt数据和写出的.szplt或者图片用循环标号|num|来表示。  

$!READDATASET '"C:\Users\yuzb\Desktop\|num|.plt" ' 
COMMAND = 'WRITEDATASET FILENAME="C:\Users\yuzb\Desktop\|num|.szplt"'

2、在Windows的cmd窗口中运行Tecplot脚本

如果有一个tecplot的宏文件*.mcr,想要在Windows的cmd窗口中运行,可以通过以下命令实现:

tecplot -b -p <macroname>.mcr

其中:

-b 代表的批处理模式,加上此选项后不会启动tecplot的GUI

-p 告诉tecplot后面跟的是一个宏文件

<macroname>是宏文件的名称

3、实现用Python来控制Tecplot出图:pyTecplot技巧

Tecplot 在2017版本之后新加入了pyTecplot,实现了用Python来调用Tecplot对数据进行后处理。命令: Probe,Extract,New Zone…可以直接进行数据的无缝处理。pyTecplot中命令比较多,Tecplot自带的帮助文档介绍的并不是十分详细,好在Tecplot带有pyTecplot Record的功能,当想要实现Tecplot的某个功能,又不知道具体的语法时,可以录一下命令,然后在录下的代码文件中找到关键的命令。

3.1 从一个数据文件中导出一条直线的数据(Extract Line)

def extractLine(dataFile,line,var,npoints=1000):
    #(0.0903208547222148772,-0.0963074008342203053)
    #(0.0944370036970224452,-0.0941996902371899231)
    dataset = tp.data.load_tecplot(dataFile)
    plot = tp.active_frame().plot()

    point1 =line[0]
    point2 =line[1]

    xstart=point1[0]
    ystart=point1[1]
    zstart=point1[2]

    xend=point2[0]
    yend=point2[1]
    zend=point2[2]
    tp.macro.execute_extended_command(command_processor_id='Extract Precise Line',
    command='XSTART = {xstart} YSTART = {ystart} ZSTART = {zstart} XEND = {xend} YEND = {yend} ZEND = {zend} NUMPTS = {npoints} EXTRACTTHROUGHVOLUME = F EXTRACTTOFILE = F '
    .format(xstart=xstart,ystart=ystart,zstart=zstart,xend=xend,yend=yend,zend=zend,npoints=npoints))

3.2 插值获得任意点的数据(Probe)

def probeData(dataFile,position,var):
    dataset = tp.data.load_tecplot(dataFile)
    plot = tp.active_frame().plot()

    res=[]
    # Set axes of plot (X,Y,Z) to variables (x,y,z) in dataset
    if(len(position[0])==2):
        plot.axes.x_axis.variable = dataset.variable('x')
        plot.axes.y_axis.variable = dataset.variable('y')
        for point in position:
            result = tp.data.query.probe_at_position(point[0],point[1])
            # probe near the center of the data in (x,y)
            res.append(result.data[dataset.variable(var).index])
    else:
        plot.axes.x_axis.variable = dataset.variable('x')
        plot.axes.y_axis.variable = dataset.variable('y')
        plot.axes.z_axis.variable = dataset.variable('z')

        for point in position:
            result = tp.data.query.probe_at_position(point[0],point[1],point[3])
            res.append(result.data[dataset.variable(var).index])

    return res

3.3 导出平面与其他面相交的交线(Slice)

# source需改为SurfaceZones, 否则导出的不是平面与曲面的交线,而是一个面的数据
tp.active_frame().plot().slice(0).slice_source=SliceSource.SurfaceZones
tp.active_frame().plot().slice(0).orientation=SliceSurface.ZPlanes
tp.active_frame().plot().slice(0).origin=(tp.active_frame().plot().slice(0).origin[0],tp.active_frame().plot().slice(0).origin[1],0.005)

tp.macro.execute_command('''$!ExtractSlices Group = 1 ExtractMode = SingleZone''')

该功能在需要获得型面压力分布的数据时十分有用。

关于Licence的问题(正版使用者忽略) 
使用pyTecplot过程中遇到了一个非常令人头疼的问题,Licence的过期问题。使用SolideSQUAD破解版,发现Tecplot的GUI还能正常使用时,pyTecplot的使用却出现了过期的问题,似乎是系统时间超过了2018年之后就会出现。天真地尝试将系统时间往前调,却完全不好使(应该是Tecplot会根据文件的创建时间来判断系统时间是否被调整过)。 
暂时的解决方案是使用VMware虚拟出一台Linux系统,改变Linux系统的系统时间,在虚拟机中安装使用pyTecplot,通过改变文件的元数据来修改时间应该也是可行的。

 

3、Tecplot公式编辑

在菜单栏Data->Data Set Info中查看原始数据名称。

在本例中,想求总速度,可是只有三个分量u,v和w。其各自对应的变量标号为V7,V8,V9。

在菜单栏中打开:Data->Alter->Specify Equations

在Equations里输入:

V14=SQRT(V7V7+V8V8+V9V9)*

这里解释下为什么这样输入,在Data Set Information里的Variables里,我读入的数据中有13个变量,看前面标的序号,V14就是自己要生成的第14个变量,SQRT()是求平方根,V7,V8,V9分别代表速度u,v,w,这样这个方程求出的就是总速度了。
如果不用前面标的变量名,也可以用自己定义的名称,但是注意,自己定义的名称一定要带上大括号。例如,下面的方程也是一样的:

{speed}=SQRT({u}{u}+{v}{v}+{w}{w})*

当然你也可以混合用:

V14=SQRT({u}{u}+{v}{v}+{w}{w})*

也是正确的,另外说明一点,这里对大小写不敏感。在点击compute按钮之前还需要选择zone,通常选择所有的zone,通过点击All按钮,选择所有zones。点击compute完成方程定义,之后即可使用所定义的变量了。

在Tecplot的帮助中,对这一部分讲解的很仔细,除了定义了一些基本的运算外,还支持微分,如一阶微分:ddx,ddy,ddz,dda,ddr,二阶微分:d2dx2,d2dy2,d2dz2,d2da2,d2dr2x,混合二阶:d2dxy,d2dxz,d2dyz,d2dar。
复杂公式编辑的例子:

将tecplot公式实现代码如下:

{Q}=-1/2*((ddx({u}))**2+(ddy({v}))**2+(ddz({w}))**2)-ddy({u})*ddx({v})-ddz({u})*ddx({w})-ddz({v})*ddy({w})

 运算符主要包括“+”、“-”、“*”、“/”、“**”,分别表示加、减、乘、除、乘方,优先级顺序为:乘方、乘除、加减。
常用的内置函数 :

(1)SIN——正弦函数,输入为弧度 
(2)COS—余弦函数,输入为弧度 
(3)TAN —正切函数,输入为弧度 
(4)ASIN —反正弦,输出为弧度 
(5)ACOS —反余弦,输出为弧度 
(6)ATAN —反正切,输出为弧度 
(7)ATAN2(A,B) —对A/B的结果取反正切,输出为弧度 
(8)ABS—绝对值 
(9)SQRT —求平方根 
(10)LOG, ALOG —自然对数,底数为e 
(11)LOG10, ALOG10 —数学对数,底数为10 
(12)EXP —求幂,以e为底数 
(13)MIN(A,B)—求A与B的最小值 
(14)MAX(A,B) —求A与B的最大值
(15)SIGN —判断正负,若为正数,返回+1,否则返回-1 
(16)ROUND —圆整,结果为最贴近该数的整数 
(17)TRUNC —截断

4、Tecplot图片不需要Export直接粘贴到Word中

edit—>copy to plot to clipboard

然后选bmp,all frame(全部frame,也可以只选当前frame),use width of image on screen(如果想更清楚,选enter width,写个大数字如2000),antialiasing=3 (这个是图片的效果处理,挺有用的)

然后ok, 去Word页面,ctrl-V,tecplot图片就贴到word里了。

5、Tecplot如何通过修改lay文件实现对类似的算例出图

对算例1文件做好了图并保存了1.lay文件,复制一个1.lay文件重命名为2.lay并用文本编辑器打开,发现里面的头几行是这个lay所引用的文件名称,把这个文件自己修改成另外的数据文件如2.dat,保存退出再用tecplot打开,这样算例2的lay就做好了。

注意:新老数据文件要有完全一样的格式,即,变量个数和变量名称 (网格数目可以不一样), 否则tecplot可能会提示错误或者漏掉变量。

6、Tecplot转义字符

粗体       <b>...</b>
斜体       <i>...</i>
下标       <sub>...</sub>
上标       <sup>...</sup>
希腊字母   <greek>...</greek>
数学符号   <math>...</math>
特殊符号   <userdef>...</userdef>

7、Tecplot非结构网格数据格式

1、顶点存储数据格式-Nodal

2、单元存储数据格式-CellCentered

 

 

 

 

 

  • 23
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要安装pytecplot,您需要按照以下步骤进行操作: 1. 首先,确保您已经安装了Tecplot软件。pytecplot是Tecplot的Python接口,因此需要Tecplot软件的支持。 2. 在安装Tecplot之后,您需要安装pytecplot库。您可以使用pip命令来安装pytecplot。打开终端或命令提示符,输入以下命令: ``` pip install pytecplot ``` 这将自动下载并安装pytecplot库及其依赖项。 3. 安装完成后,您可以在Python脚本中导入pytecplot库并开始使用它。在您的Python脚本中,您可以使用如下语句导入pytecplot库: ``` import tecplot ``` 这将使您可以在脚本中使用pytecplot的功能和方法。 引用中提供了一个使用pytecplot的示例程序。您可以根据您的需要修改该示例程序。此示例程序将创建一个Tecplot布局,向其添加文本并将布局保存为PNG文件。您可以根据自己的需求进行更改和扩展。 请注意,如果您在运行程序时遇到许可证错误,请确保您已经正确安装并获得了Tecplot软件的许可证。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [pytecplot 的安装与启动(tecplot GUI能用但是pytecplot不能用)](https://blog.csdn.net/gifterxian/article/details/106976259)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值