相场Cahn-Hilliard方程的有限元求解

学术   科技   2024-09-03 22:08   山东  

 

点击上方「蓝字」关注我们

 

Cahn-Hilliard 方程作为一类重要的 4 阶非线性扩散方程,是相场建模中的经典方程。它最初由 Cahn 和 Hilliard 在 1958 年研究热力学中两种物质之间相互扩散现象时提出,已广泛应用于描述生物种群的竞争和排斥、河床迁移过程、固体表面微粒扩散等物理现象。

本文以二维 Cahn-Hilliard 方程为例,介绍 FEtch 系统在求解相场问题中的应用。

控制方程

微分形式

对于域 ,Cahn-Hilliard 方程为

边界条件为

初始条件为

在这里待求变量 为序参量(order parameter)。 为常数。 为系统自由能,是序参量 的函数。

由于一般的有限元方法只考虑在单元内计算待求变量的一阶导数,上面的四阶微分方程在一般的有限元方法中是没法求解的。为解决这个问题,导入一个新变量,即化学势函数 。这样,方程 (1) 可分解为以下两个二阶微分方程

弱形式

待求变量为 。根据变分原理,Cahn-Hilliard 方程的弱形式为:求解 满足

算例 1

本算例取自参考文献 [1]。考虑一个二维的 的正方形区域,四周为无流出的自然边界

初始条件为: 值随机分布,取 值为零。

模型参数为:

求序参量 在   内的演化过程。

建模和网格剖分

采用通用前后处理软件 GiD 建模,并将网格剖分为 40 × 40 个线性四边形单元。

计算结果

时间步长取 ,共 1000 步。对计算结果稍加整理,效果如下。

序参量的演化过程

模拟结束时序参量的分布

该计算结果可以与参考文献 [1] 和 [2] 比较。由于采用的初始值、网格数和计算方法的不同,计算结果略有差异。

算例 2

本算例取自参考文献 [3] 的 Case Study-XI。考虑一个二维的 的正方形区域,四周为周期性边界条件

初始条件为: 值随机分布,取 值为零。

模型参数为:

求序参量 在   内的演化过程。

建模和网格剖分

采用通用前后处理软件 GiD 建模,将网格剖分为 40 × 40 个线性四边形单元,并对边界节点施加周期性条件。

计算结果

为节省计算时间,本算例采用自适应时间步长策略。初始时间步长取 ,共使用了 467 个时间步。对计算结果稍加整理,效果如下。

序参量的演化过程

模拟结束时序参量的分布

观察发现,计算结果完全满足周期性边界条件的约束。与参考文献 [3] 计算结果进行比较,整体符合得很好,充分证明了算法和程序的有效性。

参考文献

[1] Cahn-Hilliard equation — FEniCS Project. https://fenicsproject.org/olddocs/dolfin/1.3.0/python/demo/documented/cahn-hilliard/python/documentation.html

[2] Cahn-Hilliard方程的有限元求解. https://zhuanlan.zhihu.com/p/341191075 

[3] Biner S B. Programming phase-field modeling[M]. Switzerland: Springer International Publishing, 2017.



往期推荐

一图读懂 FEtch 的工作流程

谈谈有限元程序开发,兼谈 FEtch 入门

通用前后处理软件 GiD 简介



推荐阅读


FEtch 系统是笔者团队开发的新一代有限元软件开发平台。只需按照有限元语言格式填写脚本文件,即可在线自动生成基于现代 Fortran 的有限元计算程序,从而大幅提高 CAE 软件的开发效率。

我们长期开展 FEtch 系统的试用活动,欢迎私信交流和扫码咨询,免费获取许可证文件

喜欢作者,请点在看

有限元语言与编程
面向科学计算,探索CAE,有限元,数值分析,高性能计算,数据可视化,以及 Fortran、C/C++、Python、Matlab、Mathematica 等语言编程。这里提供相关的技术文档和咨询服务,不定期分享学习心得。Enjoy!
 最新文章