MOOSE的voronoi图功能相关介绍

在做晶粒生长、晶体塑性等相场模拟过程中,需要生成初始的晶粒结构,即泰森多边形构成的voronoi图。MOOSE中的PolycrystalVoronoi提供了该功能,此外还可以实现晶粒取向序参量的分配,保证相邻晶粒的序参量不同。在输入文件的主要使用如下:
[GlobalParams]:设定使用的序参量数量以及基本名称。MOOSE推荐的voronoi图使用的序参量数量,一般来说二维结构8个,三维结构25个。设置的序参量数量过少的话,可能造成有的晶粒找不到合适的序参量。
[UserObjects]:调用PolycrystalVoronoi生成voronoi图,主要定义晶粒数和随机种子数(可以多一点)。其中coloring_algorithm = bt的作用是给每个晶粒赋予序参量,KDtree可以加快泰森多边形的生成速度、提高计算效率(可选择使用)。
[ICs]:设定序参量的初始条件,这里注意polycrystal_ic_uo = voronoi,等号右侧的voronoi名称要与PolycrystalVoronoi的模块名一致,以便确定调用目标。
相关代码及案例结果如下图所示:

经验分享:一开始可以多设置一点序参数,多余的序参量不会分配给晶粒,即初始条件都为零。为减小后面的计算费时,可以根据生成结果再修改序参数数量从新生成。int_width并不是界面实际宽度,只是用于初始晶界的过度;如果实际晶界宽度过大而计算域小,同时又想生成多个晶粒,这个是实现不了的,后面演化会直接吞没了。