数据结构

Tecplot 360 支持两种不同类型的数据:Ordered DataFinite Element Data.

  • Ordered data是一组按一维、二维或三维数组逻辑存储的点,其中 I、J、K 是数组中的索引值。数据点的数量是数组中所有维度的乘积。

  • Finite-element数据排列在两个数组中:变量数组和连接矩阵。变量数组是二维或三维空间中的点集合,这些点连接成多边形或多面体单元,称为elements。节点之间的连接由连接矩阵定义。

连接列表

连接列表用于定义有序或基于单元的有限元区域中每个单元包含哪些节点。要创建连接列表,您需要知道区域类型以及每个区域中的单元数量。

每个单元所需的节点数量由区域类型隐含决定。例如,如果您有一个有限元四边形区域,则每个单元需要定义四个节点。同样,对于 BRICK 区域,每个单元必须提供八个数字;对于 TRIANGLE 区域,每个单元必须提供三个数字。如果某个单元的节点数少于区域类型要求的数量,只需重复一个节点编号即可。例如,如果您在处理有限元四边形区域,并希望创建一个三角形单元,只需在列表中重复一个节点(例如 1,4,5,5)。

在下面的示例中,该区域包含两个四边形单元。因此,连接列表必须有八个值。前四个值定义构成单元 1 的节点。同样,后四个值定义构成单元 2 的节点。

单元

此示例的连接列表如下所示:

ConnList[8] = {4,5,2,1,  /* nodes for Element 1 */
               5,6,3,2}; /* nodes for Element 2 */
务必按顺时针或逆时针顺序提供节点列表。否则,单元会发生扭曲,生成的元素形状将不正确。

有序数据

有序数据由一维、二维或三维逻辑数组定义,维度为 IMAX、JMAX 和 KMAX。这些数组定义了节点和单元之间的互连关系。变量可以是节点变量或单元中心变量。节点变量存储在节点处;单元中心值存储在单元内部。

一维Ordered Data(I 有序、J 有序或 K 有序)

一个一维数组,其中 IMAX、JMAX 或 KMAX 大于或等于 1,其余维度等于 1。对于节点数据,存储值的数量等于IMAX * JMAX * KMAX。对于单元中心的 I 有序数据(其中 IMAX 大于 1,JMAX 和 KMAX 等于 1),存储值的数量为 (IMAX-1) —— 类似地适用于 J 有序和 K 有序数据。

二维Ordered Data(IJ 有序、JK 有序、IK 有序)

一个二维数组,其中三个维度(IMAX、JMAX、KMAX)中的两个大于 1,另一个维度等于 1。对于节点数据,存储值的数量等于IMAX * JMAX * KMAX。对于单元中心的 IJ 有序数据(其中 IMAX 和 JMAX 大于 1,KMAX 等于 1),存储值的数量为(IMAX-1)(JMAX-1)—— 类似地适用于 JK 有序和 IK 有序数据。

三维Ordered Data(IJK 有序)

threedvaluelocate三维数组,其中IMAX * JMAX * KMAX。对于基于单元中心的数据,存储值的数量为(IMAX-1)(JMAX-1)(KMAX-1).

索引节点有序数据

对于节点有序数据,n 维数组的值被视为一维数组。例如,给定一个维度为10x20x30的 IJK 有序区域。要访问I=3, J=4, K=5(基于 1)处的值,应使用:

IMax       = 10
JMax       = 20
KMax       = 30
I       = 3
J       = 4
K       = 5
NodeIndex = I + (J-1)*IMax + (K-1)*IMax*JMax

索引基于单元中心的有序数据

对于基于单元中心的有序数据,表示单元中心的索引与表示单元最低索引角的节点索引相同。

例如,下图显示了一个维度为 3x4 的 IJ 有序区域。

访问有序CC数据
Figure 1. An IJ-ordered zone dimensioned 3x4. Cell index numbers are based on the point number in the lowest corner of the cell.

要访问右上角单元的单元中心值,请使用以下方法:

IMax      = 3
JMax      = 4
KMax      = 1
I      = 2
J      = 3
K      = 1
CellIndex    = I + (J-1)*IMax + (K-1)*IMax*JMax

您会注意到这些公式与节点数据完全相同。因此,在 IMax、JMax 和 KMax 处存在未使用的值间隙,这些间隙must应保持未赋值状态。

上述公式适用于一维、二维和三维数据。对于较低维度,公式会简化。

一维有序数据(I、J 或 K 方向)

XY 线图的值通常按一维数组排列,由单个参数索引:I 有序数据用 I,J 有序数据用 J,K 有序数据用 K,其余两个索引值等于 1。

在每个节点处,N变量(V1, V2, …​, VN)被定义。如果将数据排列成表格,其中节点处的变量值(N值)按行给出,且每个节点对应一行,则表格将如下所示。

表 1. I 有序节点数据值表(典型 XY 图)。
V1 V2 V3 …​ VN (节点处的值I = 1)

V1

V2

V3

…​

VN

(Values at node I = 2)

V1

V2

V3

…​

VN

(Values at node I = 3)

V1

V2

V3

…​

VN

V1

V2

V3

…​

VN

V1

V2

V3

…​

VN

(Values at node I = IMax)

参见XY and Polar Line Plots了解关于XY图的更多信息。

IJK有序数据绘图

在一维或二维数据集中,通常会绘制所有数据点。但对于IJK有序数据,您可以通过使用Surfaces页面中的Zone Style对话框来指定要绘制的曲面。您可以选择仅绘制外表面,或选择绘制I、J和K平面的组合。请参阅Surfaces以获取详细信息。

数据的逻辑表示与物理表示

通过连接所有具有相同I索引的点可得到一组I线,J线和K线同理。对于IJ有序数据,这两组线会在二维坐标系中绘制,形成二维网格。当I线和J线同时在三维坐标系中绘制时,会生成三维曲面网格图。两种网格的示例如下所示。如您所见,逻辑数据点可以在物理空间中变换为任意形状。

meshij
Figure 2. Left, a 2D mesh of IJ-ordered data points. Right, a 3D mesh of IJ-ordered data points.

有限元数据

虽然有限元数据通常与用于模拟三维结构复杂问题(如传热、流体动力学和电磁学)的数值分析相关联,但它也为组织复杂几何形状内部或周围的数据点提供了一种有效方法。例如,不同线上的数据点数量可能不同,数据集中间可能存在空洞,或者数据点可能不规则(随机)分布。对于此类复杂情况,您可以将数据组织为元素的拼合体。每个元素可以独立于其他元素,因此您可以对元素进行分组以拟合复杂边界,并在元素组内留出空隙。下图展示了如何使用有限元数据对复杂边界进行建模。

fe struct
Figure 3. This figure shows finite element data used to model a complex boundary.

有限元数据定义了一组点(节点)以及这些点的连接元素。变量可以定义在节点处或单元(元素)中心。有限元数据可分为三种类型:

  • Line data是一组定义二维或三维线的线段。与I有序数据不同,单个有限元线区域可能由多个不连续的线段组成。每个数据点(节点)处的变量值以类似于I有序数据的方式输入数据文件,其中节点使用I索引编号。此数据之后是另一组定义节点间连接的数据。这第二部分通常称为连接列表。所有元素都是由连接列表中指定的两个节点组成的线。

  • Surface data是一组定义二维场或三维曲面的三角形、四边形或多边形元素。使用多边形元素时,每个元素的边数可能不同。在有限元曲面数据中,您可以为每个区域选择将数据排列为三点(三角形)、四点(四边形)或可变点(多边形)元素。每个节点的点数及其排列方式由区域的元素类型决定。如果需要混合使用四边形和三角形,您可以在四边形元素类型中重复一个节点来创建三角形,或者使用多边形元素。

  • Volume data是一组定义三维体场的四面体、砖块或多面体元素。使用多面体元素时,每个元素的边数可能不同。有限元体单元可以包含四个点(四面体)、八个点(砖块)或可变数量的点(多面体)。下图展示了四面体和砖块元素的节点排列方式。多面体数据的连接排列由提供多面体面映射数据的方法决定。

    表2. 有限元体数据集的连接排列

    四面体连接关系

    ijk有序块

    四面体连接排列

    砖块连接排列

在基于单元的元素类型(三角形、四边形、四面体或砖块)中,可以通过重复点来实现包含较少点数的元素。例如,连接列表n1 n1 n1 n1 n5 n6 n7 n8(其中n1重复了四次)n1 n1 n3 n3 n5 n5 n7 n7也是在砖块区域中定义金字塔形元素的有效方式。

在Tecplot 360中,每个有限元数据区域必须仅由一种元素类型组成。但是,只要在每个数据点处定义的变量数量相同,您可以在数据集中的每个区域内使用不同的数据点结构。

Data Format Guide提供关于如何在Tecplot文本文件格式中格式化有限元数据的详细信息。

有限元数据限制

处理有限元数据存在以下限制:

  • 有限元数据的XY图将其视为I有序数据,即忽略连接列表。仅绘制节点而非单元,且节点按数据文件中出现的顺序绘制。

  • 向量图和散点图中的索引跳跃将有限元数据视为I有序数据,忽略连接列表。节点根据其在数据文件中的顺序进行跳跃。

变量位置(单元中心或节点)

数据值可存储在节点或单元中心。

  • 对于有限元网格,单元中心即单元的中心(质心)。

  • 在许多类型的图中,单元中心值会在内部插值到节点。

面邻接

如果一个单元的面与所选单元共享所有节点,或通过数据集中的面邻接数据被识别为邻接单元,则该单元被视为邻接单元。各区域类型中单元的面编号定义如下。

不同区域类型的面邻接示例。

ijk 有序块

A:FE砖形单元或IJK有序单元的节点与面邻接示例。

ij有序块

B:IJ有序/FE四边形单元的节点与面编号示例。

四面体面邻接

C:四面体面邻接示例。

可通过在数据文件中指定面邻接条件,覆盖区域内单元间的隐式连接,或建立相邻区域间单元的连接。请参阅TECFACE中的Data Format Guide以获取更多信息。

处理非结构化数据集

Tecplot 360默认将非结构化数据加载为单个I有序区域,并以XY模式显示。若I有序区域包含多个因变量,则被视为不规则区域。包含一个因变量(即XY或极坐标线)的I有序数据集是not不规则区域。

要检查不规则数据,可进入Data Set Info对话框(通过Data菜单访问)。该对话框左下角显示IMax、JMax和KMax的赋值。若IMax大于1,且JMax和KMax等于1,则数据为不规则数据。

通过查看图形也可轻松判断是否为不规则数据。若在开启网格层时查看不规则数据,数据点将按其在数据集中出现的顺序用线连接。

您可以通过以下方式组织 Tecplot 360 的数据集。

  • 使用文本编辑器手动排列数据文件。

    使用Label Points and Cells菜单中的Plot功能,检查是否可以通过文本编辑器修正 I、J 和/或 K 的值来轻松校正数据集。
  • 使用以下Data→Interpolation选项之一。请参阅Data Interpolation.

示例:非结构化三维体

要在场图中使用三维体不规则数据,必须将数据插值到规则的 IJK 有序区域。请执行以下步骤进行数据插值:

  1. 将三维体不规则数据放入数据文件中的 I 有序区域。

  2. 读取数据文件并创建三维散点图。

  3. Data菜单中选择Create Zone→Rectangular. (Circular同样适用。)

  4. Create Rectangular Zone对话框中,输入新区域的 I、J 和 K 维度;每个维度至少应输入 10。维度越高,插值网格越精细,但插值和绘图时间也越长。

  5. 输入新区域的最小和最大 X、Y、Z 值。默认值为当前(不规则)数据集的最小值和最大值。

  6. 单击Create创建新区域,然后Close关闭对话框。

  7. Data menu, choose Interpolate→Inverse-Distance菜单中选择。也可使用 Kriging 插值。

  8. 在插值对话框中,选择不规则数据区域作为源区域,新创建的 IJK 有序区域作为目标区域。根据需要设置其他参数(详情请参阅Data Interpolation)。

  9. 选择Compute点击按钮执行插值。

插值完成后,您可以像处理其他3D体积区域一样绘制新的IJK有序区域。您可以绘制等值面、体积流线等。此时,建议停用或删除原始不规则区域,以免与新区域的绘图产生冲突。

Figure 4展示了将不规则数据插值到IJK有序区域的示例,并在结果区域上绘制了等值面。

ito3dijk
Figure 4. Irregular data interpolated into an IJK-ordered zone.