博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Paraview: Calculate Derivatives of 3-D Unstructured Dataset
阅读量:5735 次
发布时间:2019-06-18

本文共 1478 字,大约阅读时间需要 4 分钟。


关注九天学者微信公众号()第一时间获取技术贴更新!


Paraview 是一款基于VTK的、开源的、跨平台的科学数据可视化软件,其三维显示和后处理功能非常强大。可以在官方网站下载安装。相信接触过CFD或者其它的动力学模拟的科研工作者都知道此神器!虽然之前吐槽过其图像导出功能,但是三维数据实时演示和一些后处理绝对是很棒的!

非结构化三维数据可视化

以局部地幔对流和地壳温度结构模拟结果为例

img_10b0af971fc4a848b6d4a76384dd03a1.png
3D Unstructured Dataset: Temperature

一阶导数\nabla T

\nabla T=\frac{\partial T}{\partial x}\vec{i} + \frac{\partial T}{\partial y}\vec{j} +\frac{\partial T}{\partial z}\vec{k}

img_9b46a15c0cb89d7ca73f434ed5d51f44.png
T的方向导数的模

  1. 对目标数据应用GradientOfUnstructuredDataSet Filter
  2. 选择计算方向导数的数据:这里选择的是T,如图中红框所示
  3. 勾选Compute Gradient 计算梯度(\nabla T):如图中的蓝框所示。当然了还可以计算散度(Divergence: \nabla \cdot \vec{v})和旋度(Vorticity: \nabla \times \vec{v}),(前提是选择的数据是矢量)
  4. 设置计算结果名称:这里设置的名称为Gradients1,如图中的蓝框所示
  5. 可视化:在顶部可视化数据下拉菜单中选择刚才计算生成的Gradients1,在其右边的下拉菜单中会有四个变量:Magnitude, X, Y, Z分别表示梯度模和x, y, z三个方向上的导数

paraview 对一个标量应用GradientOfUnstructuredDataSet得到的是三个导数分量和一个模

二阶导数 \nabla^2 T

\nabla^2 T = \frac{\partial^2 T}{\partial x^2} + \frac{\partial^2 T}{\partial y^2} +\frac{\partial^2 T}{\partial z^2}这是数学形式,但是paraview求解二阶导数有两种方式。

应用两次 GradientOfUnstructuredDataSet

对第一步求得的Gradients1再应用一次GradientOfUnstructuredDataSet,并设置结果名称为Gradients2。因为Gradients1中有三个分量,而Paraview并没有给出选项具体选择哪个分量计算第二次导数,而是对三个分量都计算。因此得到的Gradients2结果中包含九个分量,编号从0到8. 其对应的分量为:T_{xx}, T_{xy}, T_{xz}; T_{yx}, T_{yy}, T_{yz}; T_{zx}, T_{zy}, T_{zz}

img_4cd95db3c240a637decccaea66ca07a3.png
对T求两次Gradient

Compute Derivatives

对某标量(比如T)应用一次Compute Derivatives Filter

img_8eb1afb218e4e16961eb1e650e79cf6c.png
对T应用Compute Derivatives Filter
  1. 选择目标数据:这里选择的是T, 如图中红框所示
  2. 选择输出类型:此Filter对于标量求了一个一阶导数和一个二阶导数,输出类型分别为三个分量的Scalar Gradient(与应用一次GradientOfUnstructuredDataSet的结果相同)和九个分量的张量类型Vector Gradient(与应用两次GradientOfUnstructuredDataSet的结果相同)。对于矢量输入数据(比如是\vec{v}而不是T),两个输出类型分别为VorticityStrain
  3. 可视化:在上方的可视化数据选项下拉菜单中多出了两个cell data数据体,分别为Scalar GradientVector Gradient如图中绿色框所示。前者有三个分量和一个模,后者有九个分量和一个模。

GradientOfUnstructuredDataSetCompute Derivatives的区别,前者是计算结果输出的是Point Data类型,后者输出的是Cell Data类型。计算结果类似,由于一个是point的一个是cell的,所以显示的结果略微有差别。可参见对此问题的讨论

对数据体进行算术运算

img_e99638bfa8dcefe296c97bc0b6527929.png
对数据进行算术运算

关注九天学者微信公众号()第一时间获取技术贴更新!


转载地址:http://ruwzx.baihongyu.com/

你可能感兴趣的文章
webpack+typescript+threejs+vscode开发
查看>>
python读excel写入mysql小工具
查看>>
如何学习区块链
查看>>
搜索问题的办法
查看>>
微信分销系统商城营销5大重点
查看>>
求职准备 - 收藏集 - 掘金
查看>>
htm5新特性(转)
查看>>
Linux-Centos启动流程
查看>>
php 设计模式
查看>>
后端技术精选 - 收藏集 - 掘金
查看>>
Laravel 服务容器
查看>>
6天面试、斩获6家硅谷巨头Offer,我是如何做到的?
查看>>
Scala模式匹配的亮点——Martin Odersky访谈(四)
查看>>
mac安装kubernetes并运行echoserver
查看>>
多页架构的前后端分离方案(webpack+express)
查看>>
AWS推出深度学习容器,简化AI程序开发
查看>>
算法(第4版) Chapter 1
查看>>
前端技术选型的遗憾和经验教训
查看>>
“亲切照料”下的领域驱动设计
查看>>
GIT
查看>>