paraview显示自己写的流场(入门)

本文介绍了如何使用C++创建二进制流场文件,并通过Paraview进行读取和设置,展示了从编写代码到可视化过程。作者分享了自己实践的过程和参考资源,适合初学者理解文件I/O与Paraview数据导入技巧。
摘要由CSDN通过智能技术生成

在YouTube上看到Sharcnet HPC这个人的介绍paraview写入流场格式的视频。很简单,基本上不用什么额外的格式。在此尝试了一下。

操作

1 自己准备一个流场

其实就一列,就是数组a,用c++ 写出到二进制文件aaa.raw

#include <math.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
    const int n=20;
    const int dim=2*n+1;
    float *a;
    a=(float *)malloc(dim*dim*dim*sizeof(float));
    for (int i = -n; i <= n; i++)
    {
        for (int j = -n; j <= n; j++)
        {
            for (int k = -n; k <= n; k++)
            {
                    a[((k+n)*dim+(j+n))*dim+i+n]=i+j+k;
                    printf("i=%d j=%d k=%d index=%d value=%d\n",i,j,k,((k+n)*dim+(j+n))*dim+i+n), i+j+k;
            }
        }
    }
    FILE *fp =fopen("aaa.raw","wb");
    fwrite(a,sizeof(float),dim*dim*dim,fp);
    printf("end\n");
    free(a);
    fclose(fp);
}

在这里插入图片描述编译运行得到aaa.raw
在这里插入图片描述

注意文件拓展名为raw

2 paraview读入并设置格式

在这里插入图片描述

类型选Image Reader
在这里插入图片描述设置如下

  • 类型选float
  • 大小端选小端
  • 维度选3维
  • data extent输入40 40 40 (0-41是41个数,我们写入的流场是节点值而非网格值)

apply

在这里插入图片描述

用imageFile着色,展示surface
最后的结果如下

在这里插入图片描述

附录 youtube 上原本的代码和流场

上面的都是我自己写的,原视频博主的流场要复杂一些,他的代码如下(吐槽一句他的中式英语)
在这里插入图片描述

他的设置如下(和我基本一样)

在这里插入图片描述

展示的流场如下

在这里插入图片描述

参考

殷维杰的博客
https://www.cnblogs.com/Jay-CFD/p/11557836.html
YouTube视频地址 Sharcnet HPC
https://youtu.be/yexB3W2FYM0?t=2601

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值