说明
plot3d格式是NASA制定并大量使用的CFD网格文件格式,在CFD编程过程中经常涉及到。本文利用Python语言编写一个读取plot3d文件,写入plot3d文件的通用类,并利用vtk完成网格的显示。
对于程序的说明
- 使用说明
在主函数中,写入如下代码:
# 新建对象
mesh = Mesh()
# 读文件
fname = 'demo.fmt'
mesh.read(fname)
fname1 = "1111.dat"
mesh.write(fname1)
- 程序思路
定义Mesh类,包含有:
属性:
1. 网格维度: DIM = 3
2. 网格块数目: int BlockNum
3. 网格块坐标数目:np.array([]) Block_list
4. 网格块列表 list(Block)
方法:
1. setBlockNum: 设置网格块数目
2. setBlockList: 设置网格块数目
3. MeshInit: 创建mesh对象,给BlockNum和Block_list赋值
4. setBlock: 设置每一个块的坐标和IBLANK
每个Block具有:
1. id,jd,kd: 三个方向上坐标数目
2. X,Y,Z: 三个方向的坐标分量(一维列阵)
3. IBlank:当前块的IBlank值
源码
# !/usr/bin/env python
# -*- coding:utf-8 -*-
import math
import numpy as np
class Block():
"""
描述Plot3d文件中的一个Block
"""
def __init__(self, ID, JD, KD):
self.id = ID
self.jd = JD
self.kd = KD