0%

DAGMC几何和数据可视化

科学计算达到了结果之后,总是希望能够画出酷炫的图来展示自己的成果。比如说展示复杂几何结构的的图,展示数据在空间分布的图,或者两者结合起来的几何和数据匹配的图。

我们在使用DAGMC的过程中,除了Trelis几何模型处理阶段有图形以外,我们还可以把meshtal的结果和几何一起展示出来。

要制作这种几何和数据结合的图,我们可以使用visit或者ParaView。
下面以Visit为例展示过程。

我们把几何文件和数据文件都转换为vtk格式,然后用visit就可以画图了。

几何模型准备

经过Trelis处理到处的geom.h5m文件可以使用MOAB的工具mbconvert将h5m文件转化为vtk文件。

不过我们不能直接使用那个用于输运计算的几何文件。因为那个文件中存在一个graveyard,那个是我们添加在原本几何模型外围的中子计算截止区域的几何。我们不需要这个graveyard,需要在Trelis模型中去掉这部分,导出一个没有graveyard的几何文件。

数据文件准备

我们得到meshtal或者OpenMC的state point文件后,可以通过PyNE这个工具来将其先转化为h5m文件,然后再通过mbconvert转化为vtk文件。

meshtal数据写入h5m文件

比如一个包含fmesh4和fmesh14的meshtal文件,我们想画femsh4的图,可以通过下面的python脚本将这fmesh4的数据写入到h5m文件中:

1
2
3
4
5
6
7
8
9
from pyne import mcnp
from pyne.mesh import MeshTally
# define data tag names, 4 set of data, their default names are
# neutron_result neutron_result_rel_error neutron_result_total neutron_result_total_rel_error
tags={4:["n_result", "n_rel_error", "n_total_result", "n_total_rel_error"],
14:["n_result", "n_rel_error", "n_total_result", "n_total_rel_error"]}
meshtal = mcnp.Meshtal("meshtal", tags=tags)
meshtally = meshtal.tally[4]
meshtally.write_hdf5("meshtally4.h5m", write_mats=False)

state point数据写入h5m文件

Assuming that there is a mesh tally with ID 4, mesh id 1.

1
2
3
4
5
6
from pyne.mesh import MeshTally
from pyne import openmc_utils
tags={4:["n_result", "n_rel_error", "n_total_result", "n_total_rel_error"]}
sp = "statepoint.xx.h5"
meshtally = openmc_utils.create_meshtally(sp, tally_id=4, mesh_id=1, tag_names=tags[4]}
meshtally.write_hdf5("meshtally4.h5m", write_mats=False)

将h5m文件转化为vtk文件

使用下面的命令将h5m文件转化为vtk文件:

1
mbconvert meshtally4.h5m meshtally4.vtk

visit绘图

单独绘制几何

运行visit -> File -> Open file -> 选择几何vtk文件 -> 在窗口找到Plots子窗口 -> 点击Add下单菜单 -> 选择mesh -> 选择mesh -> 窗口出现一个对象 -> 点击Plots子窗口Draw按钮

按照上述流程几何显示出几何文件的网格结构图。

下图是计算停机剂量的例子中的几何图形:
几何图

单独绘制数据

与绘制几何类似:

运行visit -> File -> Open file -> 选择数据vtk文件 -> 在窗口找到Plots子窗口 -> 点击Add下单菜单 -> 选择pseudocolor -> 选择相应的tally tag -> 窗口出现一个对象 -> 点击Plots子窗口Draw按钮

剂量图

同时绘制几何和数据

同时绘制几何和数据的操作其实就是将几何和图像同时话在同一个图上,操作流程就是上述两者的结合。

几何加图