XFEM通用网格处理与节点增强工具箱
项目介绍
本项目是一个基于MATLAB开发的扩展有限单元法(XFEM)前处理计算平台。它专门设计用于解决断裂力学中的不连续性问题,通过将几何不连续性(如裂纹)与有限元背景网格解耦,消除了传统有限元法要求网格边界必须匹配几何界面的限制。
工具箱实现了从背景网格生成、水平集场构建、增强节点自动识别到复杂切割单元高精度数值积分的完整工作流。这种方法允许在不重新划分网格的情况下,精确模拟裂纹的几何形态及其对位移场的影响。
功能特性
- 结构化背景网格自动生成:支持自定义尺寸和密度的规则四边形网格划分。
- 双水平集(Level-Set)几何建模:采用有符号距离函数描述裂纹面,并利用法向投影距离精确定义裂纹前缘位置。
- 智能节点增强引擎:自动判定受裂纹影响的单元类型,并区分Heaviside(穿透型)增强节点与Tip(尖端型)增强节点。
- 单元子拓扑重构算法:对于被裂纹切割的非规则单元,采用子三角形剖分技术,确保积分精度。
- 多方案数值积分策略:内置标准四边形积分方案与针对被切割单元的子三角形对称积分方案。
- 全自动预处理可视化:直观展示网格、裂纹位置、增强节点类型及积分点分布。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 工具箱需求:MATLAB核心功能集,数值计算涉及三角剖分函数。
- 硬件建议:标准桌面配置即可满足常规网格规模的计算需求。
实现逻辑说明
程序的运行遵循严格的XFEM前处理流水线:
首先,通过预设的域尺寸和划分密度,计算并生成节点坐标矩阵与单元拓扑连接表,构建基础的有限元计算背景。
其次,基于输入的裂纹几何特征(起点与终点坐标),程序计算所有节点相对于裂纹面的有符号距离场(phi)以及相对于裂纹尖端的切向距离场(psi)。这两个场共同决定了空间中任意点与不连续界面的位置关系。
接着,进入增强识别阶段。程序遍历所有单元,通过检查单元节点phi值的正负变化判定该单元是否被裂纹穿过。若单元被穿透且包含尖端(psi值跨越0点),则识别为尖端单元;若仅穿透而不含尖端,则识别为穿透单元。根据这种分类,自动为对应的节点分配增强类型标记。
在数值积分环节,程序根据单元类型采取不同的策略。对于常规单元,使用标准的2x2高斯积分。对于被裂纹切割的单元,程序会动态寻找裂纹与单元边界的交点,将原单元剖分为多个不重叠的子三角形。
最后,系统调用可视化模块,通过不同的颜色和标记符号,将复杂的拓扑逻辑(如Heaviside节点、Tip节点、子单元积分点及真实的物理裂纹线)在统一的坐标系下进行渲染输出。
关键算法与细节分析
- 水平集计算逻辑:通过向量投影算法实现。phi场利用法向量点积计算点到直线的最短符号距离;psi场则衡量节点在裂纹延伸方向上的投影位置,用于界定裂纹的有效长度和尖端范围。
- 增强节点判定准则:
Heaviside增强:当单元各节点的phi值乘积小于0,且所有节点的psi值均小于0时,触发该增强。
Tip增强:当单元内部存在psi值的符号变换,且同时存在phi值的符号变换时,该单元节点被识别为尖端增强节点。
优先级处理:程序实现了Tip节点优先级高于Heaviside节点的逻辑,确保尖端附近的复杂场得到正确处理。
- 子单元剖分算法:采用了一种基于线性切割点的拓扑重构技术。程序通过线性插值精确定位裂纹与单元各边的交点,结合原单元顶点形成多边形点集,随后利用底层的Delaunay算法进行三角化。
- 积分精度控制:针对剖分后的三角形子块,应用三点对称积分公式。这种方法不仅能够处理不规则的切割形态,还能保证即使在裂纹附近存在高度非线性场时,也能获得足够的能量积分精度。
使用方法
- 环境配置:将项目的所有脚本文件放置在同一个MATLAB工作路径下。
- 参数自定义:根据需要修改主程序开头的几何尺寸(L, W)、网格密度(nx, ny)以及裂纹的起始坐标(crack_geom)。
- 执行计算:在MATLAB命令行窗口输入该脚本定义的入口函数名并回车。
- 结果查看:程序将自动弹出图形窗口,可视化展示XFEM拓扑重构结果。用户可以通过图例识别不同类型的增强节点和积分方案。