首页 理论教育FLAC3D非饱和渗流功能的开发与应用

FLAC3D非饱和渗流功能的开发与应用

【摘要】:在FLAC3D软件中,可以通过设置流体抗拉强度来允许负孔隙压力的产生与发展,这为利用FLAC3D软件进行非饱和渗流分析提供了可能。从FLAC3D渗流计算过程来看,其负压形成机理是合理的、正确的。FLAC3D软件现有的版本在渗流数值计算过程中始终将负压区的饱和度强制置为1,使得计算过程中非饱和区的渗透系数也始终采用恒定的饱和渗透系数,这做法与非饱和渗流理论是相悖的。图9.5为FLAC3D在增量计算时步中的非饱和单元渗透系数修正计算FISH程序框图。

非饱和渗流计算的关键是获得正确的饱和度与负压关系,并根据饱和度计算出非饱和区的渗透系数,然后在求解过程中实时调整单元渗透系数即可实现非饱和渗流过程的分析。

对于非饱和土,1980年,Van Genuchten提出了土体中体积含水率与负压的四参数关系方程,即

式中:θ为体积含水率;θr为残余体积含水率;θs为饱和体积含水率;p为负孔隙压力,k Pa;a、m、n为拟合参数。

根据体积含水率与饱和度关系θ=φs(φ为孔隙率,s为饱和度),由式(9.22)得到饱和度与负孔隙压力的关系式为

式中:s为饱和度;sr为残余饱和度;其余符号意义同前。

非饱和渗流分析的实质是:①计算过程中非饱和区的渗透系数小于饱和区渗透系数,饱和度越小,渗透系数越小;②负孔隙压力(基质吸力)与饱和度存在对应函数关系,对不同岩土体,吸湿和脱湿过程的函数关系可能不同。为简化起见,也有在吸湿和脱湿过程中采用相同函数的做法。

在FLAC3D软件中,可以通过设置流体抗拉强度来允许负孔隙压力的产生与发展,这为利用FLAC3D软件进行非饱和渗流分析提供了可能。在FLAC3D软件进行计算时,在非饱和状态下,FLAC3D软件直接将负孔隙压力置零,然后根据节点流体体积的改变量来计算饱和度的增量。非饱和负压的计算也根据节点代表流体体积的改变量来完成。当流出节点的流体体积大于流入节点的流体体积,流体体积该变量为负值(导致孔隙体积不能被流体全部充填),从而计算出的孔隙压力为负值。

从FLAC3D渗流计算过程来看,其负压形成机理是合理的、正确的。FLAC3D软件现有的版本在渗流数值计算过程中始终将负压区的饱和度强制置为1,使得计算过程中非饱和区的渗透系数也始终采用恒定的饱和渗透系数,这做法与非饱和渗流理论是相悖的。因此,如果能在非饱和渗流计算时段内,能自动根据上一计算增量时间步的结果来调整非饱和区的渗透系数,就能够实现利用FLAC3D软件进行非饱和渗流计算了。

FLAC3D软件提供了内置FISH语言,用于在计算过程中对各种计算物理量进行控制或修正。其提供的FISHCALL命令可根据每一计算步的结果调整各种FISH变量和FLAC3D内置变量(诸如各种力学参数和渗流计算参数等)。该功能与增量法有限元软件处理相同问题的思路完全一致。

根据上述思想,利用FISH语言在FLAC3D软件中实现非饱和渗流过程的方法如下:

(1)设置流体抗拉强度,允许渗流计算过程中因节点流量负流入而形成的负压区(尽管此时节点出现负孔隙压力,节点饱和度仍为1.0)。

(2)通过FISH内置变量z_pp(pz)获取单元的负孔隙压力值(该值根据节点孔隙压力,在FLAC3D中自动插值获得),然后用式(9.23)计算单元饱和度,

图9.5 非饱和单元渗透系数修正计算框图

(3)根据式(9.23)计算得到的单元饱和度,利用关系式Kr(s)=s2(3-2s)计算单元相对渗透系数。

(4)对负压区单元的渗透系数进行修正:即对非饱和区单元的饱和渗透系数(计算输入值)乘以第(3)步计算得到的Kr(s)值,然后再赋值给该单元,从而实现非饱和区渗透系数的修改。值得注意的是,通过式(9.23)计算得到的饱和度必须另外开辟存储单元,而负压节点的饱和度在整个计算过程中仍然保持为1.0。

经过上述4个步骤,即可在FLAC3D软件中实现一般意义上的非饱和渗流计算过程。值得一提的是,上述过程仅对渗流模块有效,而负压引起的土体有效应力的增加,需要在力学计算步中通过编写FISH函数另行处理。图9.5为FLAC3D在增量计算时步中的非饱和单元渗透系数修正计算FISH程序框图。