在ABAQUS中使用多孔介质模型

在ABAQUS中使用多孔介质模型

引言

ABAQUS软件可以进行渗流/应力耦合分析,上一篇博文也提到过,ABAQUS里很多的本构模型可以与多孔介质一起结合使用,这意味着可以对那些本构模型描述的材料或对象进行渗流/应力耦合分析。ABAQUS使用孔压单元进行渗流/应力耦合分析,该孔压单元包含了位移和孔隙压力这两个基本自由度。结合孔压单元,设置材料的多孔介质属性(主要为渗透系数和初始孔隙比),就可以对现实对象的多孔介质属性进行建模。ABAQUS进行渗流/应力耦合分析的基本理论是Darcy定律和有效应力原理。

ABAQUS多孔介质属性设置

渗透系数设置

假设你已经给一种材料添加了弹性、塑性等力学行为,那么打开材料编辑对话框,按这样的步骤设置渗透系数:Other–>Por Fluid–>Permeability,弹出一下对话框,并添加了一个Permeability的材料行为。需要输入渗透系数和液体比重。如果你的分析中,材料发生很大的变形(孔隙比变化),导致渗透系数发生较大变化。那么渗透系数是随孔隙比变化的。ABAQUS是用渗透系数随孔隙比的变化曲线来描述这样的情形,这时需要输入很多行数据。如果渗透系数变化不大(或者假设不变)输入一行数据就可以了。随后还要记得输入液体的比重。如下图所示

在这里插入图片描述

设置soil分析步

在ABAQUS中进行渗流/应力耦合分析时,需要应用soil分析步,否则将不会计算孔隙压力。设置如下图2所示

在这里插入图片描述
设置孔压单元

在mesh模块中给部件设置Pore Fluid/Stress单元,如图3所示。其他阶次、积分方法等参数根据你自己的需要设置。

在这里插入图片描述

设置初始 孔隙比

在分析开始前,需要对材料给定一个初始孔隙比,随后材料的孔隙比将会随变形而发生变化,将由ABAQUS计算得出。设置孔隙比在Load模块,步骤:单击预定义场按钮,设置Name,应用的分析步step,类型为设置为Other,Types设置为Void ratio。如下图4所示,然后单击Continue,然后选择在窗口或set管理器中需要设置的部件或区域,然后单击对话框的Continue,将弹出一个新的对话框,如图5所示。

在该对话框,可以编辑初始孔隙比。由于孔隙比是一个场变量,在不同的材料区域有可能是均匀的常数,有可能是线性变化的,有可能是与坐标成函数关系,也有可能是毫无规律的,通过测量获得。ABAQUS提供了多种方法定义初始孔隙比,包括一致性的常数、线性变化、函数关系和用户自定义等多种方式。这可以根据你自己的需要在这个对话框中进行设置,如图5所示。

在这里插入图片描述
图4 设置初始孔隙比

在这里插入图片描述

小结

在ABAQUS中使用多孔介质主要进行这几项设置:添加渗透系数,分析步设置为soil,设置孔压单元,设置初始孔隙比。其他的一些细节和辅助参数设置这里就不累赘了,具体参考ABAQUS用户手册或相关教材。多孔介质渗流在器官组织的液体流动、底下水渗流、植物组织液体输送、环境污染物扩散、植物压榨提汁等等的现象中都会涉及到渗流。ABAQUS中不提供单独的孔压单元,若不考虑材料的变形,仍使用Pore Fluid/Stress单元,只是把把材料的位移自由度约束(或者添加刚体约束)。如果材料发生较大变形,应力变化影响了材料的水力传导特性,那么就要考虑渗流/应力耦合分析,才能获得更准确的结果。

  • 12
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
你可以使用以下代码来在Python使用Abaqus模块: ```python from abaqus import * from abaqusConstants import * from caeModules import * # 创建新模型 myModel = mdb.Model(name='MyModel') # 创建新部件 myPart = myModel.Part(name='MyPart', dimensionality=THREE_D, type=DEFORMABLE_BODY) # 创建节点 myPart.Node(coordinates=(0.0, 0.0, 0.0)) myPart.Node(coordinates=(1.0, 0.0, 0.0)) myPart.Node(coordinates=(1.0, 1.0, 0.0)) myPart.Node(coordinates=(0.0, 1.0, 0.0)) myPart.Node(coordinates=(0.0, 0.0, 1.0)) myPart.Node(coordinates=(1.0, 0.0, 1.0)) myPart.Node(coordinates=(1.0, 1.0, 1.0)) myPart.Node(coordinates=(0.0, 1.0, 1.0)) # 创建单元 myPart.Element(nodes=(1, 2, 3, 4), type=HEX8) myPart.Element(nodes=(1, 2, 6, 5), type=HEX8) myPart.Element(nodes=(2, 3, 7, 6), type=HEX8) myPart.Element(nodes=(3, 4, 8, 7), type=HEX8) myPart.Element(nodes=(4, 1, 5, 8), type=HEX8) myPart.Element(nodes=(5, 6, 7, 8), type=HEX8) # 创建新步骤 myModel.StaticStep(name='MyStep', previous='Initial') # 创建新荷载 myModel.ConcentratedForce(name='Load', createStepName='MyStep', region=myPart.sets['Set-1'], cf1=100.0, distributionType=UNIFORM, field='', localCsys=None) # 创建新边界条件 myModel.DisplacementBC(name='BC', createStepName='MyStep', region=myPart.sets['Set-2'], u1=0.0, u2=0.0, u3=0.0, ur1=UNSET, ur2=UNSET, ur3=UNSET, amplitude=UNSET, fixed=OFF, distributionType=UNIFORM, fieldName='', localCsys=None) # 提交作业 myJob = mdb.Job(name='MyJob', model='MyModel') myJob.submit() myJob.waitForCompletion() ``` 这段代码创建了一个简单的八节点立方体有限元模型,并施加了一个均匀分布的荷载和一个边界条件。你可以根据自己的需要修改这个模型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Galaxy_Robot

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值