comsol枝晶生长相场法模拟 二元合金 考虑溶质偏析
枝晶生长这玩意儿在金属凝固过程中就跟毛细血管分叉似的,搞材料的人没少被它折腾。相场法模拟最大的好处就是能直观看到晶体扭来扭去长成树杈状的过程,特别是处理界面问题时比传统的尖锐界面方法省事多了。
咱们先看个相场核心方程:
phi_t = M_phi * (epsilon^2 * laplacian(phi) - dF_dphi + lambda*(c - c_eq))这个φ场变量控制晶体形态(0是液态,1是固态),epsilon控制界面厚度。有意思的是lambda这个溶质耦合项,直接把浓度场c和相场捆在一起了。这里的溶质再分配系数k决定了固态和液态的浓度差异,k值越小偏析越明显。
在COMSOL里设置溶质场得用扩散方程:
Model.species('c').transport = { 'D_l*(1 - phi)^3 + D_s*phi^3' # 扩散系数随相场变化 '- (c_l - c_s)*phi_t' # 溶质排出项 };注意这里的phit其实是相场变化速率,凝固过程中固态排出的溶质会堆积在固液界面前沿。Dl和D_s得设置差个数量级,比如液态扩散系数1e-9 m²/s,固态可能只有1e-13。
界面各向异性必须加,否则长出来的都是圆滚滚的晶体:
epsilon = epsilon0 * (1 + delta * cos(n*theta))delta控制各向异性强度,n=6对应六重对称的枝晶臂。但实际跑起来发现delta超过0.04就容易出现数值不稳定,得配合自适应网格用。
有个坑是初始扰动设置。试过随机噪声和预设晶核两种方式,发现用高斯分布的初始扰动更接近实验观察:
double init_phi = 0.5 + 0.1*exp(-(x^2+y^2)/0.1e-6)但要注意扰动幅度别超过0.2,否则可能直接导致相场崩溃。模拟过程中发现溶质富集区会自发形成二次枝晶臂,这时候需要把网格细化到0.1微米级别才能捕捉细节。
最后吐槽下计算量——二维模拟跑个200秒物理时间得用32核集群跑一晚上。为了省资源可以开对称边界条件,但这样会错过枝晶竞争生长的有趣现象。建议新手先用各向同性模型练手,等参数调明白了再上各向异性+溶质场耦合。