土木工程专业能做什么?在本科的时候就听过老师讲有一位土木工程专业的前辈转行到医院了,在大部分人的脑海里,土木除了能快速盖一个医院大楼之外,似乎和医院八竿子打不着。但本科的那个老师就说前辈到医院去做模拟,模拟血管中的血液流动,今天刚好碰到了这个案例,花了一天时间模仿出来了,本案例来源于comsol案例库中流固耦合里的blood_vessel,仅用于个人学习和交流。
这两张图显示了主动脉和它的分支的形状,主动脉及其分支被心肌包裹,主要包含心肌(心肌:① 密度 = 1200 千克/立方米 ②线性弹性行为:Lame' 参数μ等于 7.20-106 N/m2,而另一个Lame'参数λ等于20μ)、动脉(① 密度 = 960 千克/立方米 ②线性弹性行为:Lame' 参数μ等于 6.20-106 N/m2,而另一个Lame'参数λ等于20μ)和血液(① 密度 = 1060 千克/立方米 ②动态粘度 = 0.005 牛顿/平方米)三种内容。
生物组织建模是一个高级课题,无穷小位移假失效,应力应变关系也是非线性的,应变不再很小(大于百分之几),必须修改标准的基于位移的有限元计算公式。主动脉及其网状血管嵌入在生物组织中,先计算动脉内血液的速度场和压力分布,然后分析血液流动产生的压力使血管壁发生变形的情况。
① 创建三维模型,选用流体流动中的流固耦合固体体几何模块,选择一般研究中的瞬态开始研究,前面我们说过,和时间相关的就用瞬态。
在全局定义的参数1中输入时间持续参数t和心脏跳动时的相对压力振幅alpha,再定义一个分段函数,这样可以描述一个周期内的压力变化值。
分段函数
分段函数图像
② 然后导入已有的模型,通过比例因子将模型调整到合适的比例,然后使用移除细节功能自动修复几何图形中的小问题。形成联合体后,在组件中定义显式,分别定义血液、动脉、肌肉、入口,出口1-5和其他边界、加载边界。
③ 设置层流,在层流中设置入口和出口,入口和出口处的压力如下所示。
主动脉及其分支的压力
④ 然后是固体力学模块,选中1、2域,在线弹性材料1的线弹性材料模块将其指定参数改为Lame参数。并且定义部分边界为辊支撑边界。
固体力学模块
⑤ 流固耦合模块,在固体几何当中选择结构上的流体荷载,确保内容为流体到固体的单项耦合。
流固耦合中的单向耦合
⑥ 材料模块,定义肌肉、血液和动脉的各项参数。
⑦ 构建网格
⑧ 瞬态方程设置:range(0, 0.05, 1.5) 是一个常用于数值计算和仿真软件(如 MATLAB、COMSOL 等)中的函数,生成一个指定范围内的数值序列。列的起始值,即从 0 开始。0.05:步长,每次增加的值。每两个连续值之间相差 0.05。1.5:终止值,即生成的序列最大值不会超过 1.5。将会生成以下序列0, 0.05, 0.1, 0.15, 0.2, 0.25, ..., 1.45。
⑨ 按照相同的要求添加稳态研究。在求解配置器中的瞬态求解器当中修改采用步长到合适的位置。
在结果中找到速度,在参数值t中选择1,在分段函数当中,t=1时是最大值,然后在切面中选择平面数和平面即可,下图选择zx平面,选择一个平面数量。
图1 主动脉及其分支的速度场
⑩ 先在位移中选择变形,然后添加预定义的绘图,固体力学的位移选项,然后绘制,即可得到流体对固体的影响和固体的位移情况。
图2 血管中的位移
百度百科中的评价:血管中血液的流动问题是一个经典的流固耦合问题,最近在中仿社区上看到过一个模型,是有一个inlet,三个outlet的心脏上主动脉模型,这个问题中由于上主动脉周围受肌肉约束,不会发生大的变形,所以可以看成单向耦合的问题,先计算血管里血液的流场对壁的压力,再把压力作为血管壁应力计算的初始条件。模型的话是三部分,血管外的肌肉domain(材料要查阅相关的医学手册),血管是一个domain(材料属性也是查阅手册,然后在material里手动设定),血管内的流体域。这个模型也可以考虑双向耦合的问题,但是对硬件的要求很高,工作站以下的设备可能要算个几天了。