plot3d网格读取写入与可视化

本文介绍如何使用Python读取和写入NASA的plot3d网格文件格式,并利用vtk进行网格可视化。文章提供了一个Mesh类,包含设置网格维度、块数目和坐标的方法,以及对每个块的详细描述。
摘要由CSDN通过智能技术生成

说明

plot3d格式是NASA制定并大量使用的CFD网格文件格式,在CFD编程过程中经常涉及到。本文利用Python语言编写一个读取plot3d文件,写入plot3d文件的通用类,并利用vtk完成网格的显示。

对于程序的说明

  1. 使用说明

在主函数中,写入如下代码:

# 新建对象
mesh = Mesh()

# 读文件
fname = 'demo.fmt'
mesh.read(fname)

fname1 = "1111.dat"
mesh.write(fname1)
  1. 程序思路

定义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
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值