首页/文章/ 详情

FLAC3D 7.0 新特性简介(P4)---软件集成

6月前浏览11629

1 引言

这个系列笔记根据2020年6月Itasca公司发布的Webinar视频改写和扩展而成,主要介绍了FLAC3D 7.0的新功能,穿插了我自己的观点和部分功能的试验,仅作为学术工作参考使用。因为这是公开展示的视频,非内部培训资料,没有版权保护的限制,所以这个笔记断续地插入了视频中的一些截图。迄今为止,已经介绍如下三部分:


Part 1: FLAC3D 7.0 新特性简介(P1)---速度提升

Part 2: FLAC3D 7.0 新特性简介(P2)---FISH的显著改进

Part 3: FLAC3D 7.0 新特性简介(P3)---新的本构模型


现在继续FLAC3D的新特性---软件集成,即把Itasca系列软件中的FLAC3D与PFC, 3DEC共享一个平台和图形用户界面且相互耦合。 


2 为什么要软件集成

软件集成最典型的例子是我们每天使用的Office系列软件,在岩土工程领域,最典型的例子是GeoStudio (SLOPE/W, SIGMA/W, SEEP/W等)。当一个系列软件发展得越来越大时,编程和维护代码会变得十分复杂,对于许多公用的模块,比如岩土本构模型,每个软件包都得写一遍。通过软件集成,能够提高开发效率,减少代码重复,对开发者来说,这是非常期望的一件事情,这是软件集成的第一个原因。自从FLAC3D 5.0 和PFC 5.0开始(大约6,7年前的时候),Itasca着手开发这种集成环境。第二个原因是为了软件之间的耦合,FLAC3D处理的是连续介质,PFC处理的是离散介质, 在一些特定的计算领域,需要对这两种介质进行耦合。早期FLAC与PFC之间的耦合是用socket实现数据传递,但二者是分开运行的。FLAC3D 7.0得耦合是作为插件来处理的,当启动FLAC3D时,3DEC 7.0 和PFC 7.0 自动加载到FLAC3D的工作环境中,各个软件例如FLAC3D的zone单元,PFC 的Ball单元,3DEC的Block单元能够同时计算, 更显著的是,现在FLAC3D内置了PFC-FLAC3D之间的耦合,用户不需要编制专门的接口程序。

现在FLAC3D,PFC,3DEC的帮助文件也集成到一起了,极大方便了命令的查找。


3 软件集成存在的问题

首先,软件集成对计算机硬件提出了更高的要求,多核的CPU,SSD固态硬盘,大的内存和磁盘空间容量,高分辨率的显卡都是运行FLAC3D集成环境必须的。安装一个FLAC3D目前需要的磁盘空间大约是3.5G。这确实有点臃肿,当安装(FLAC3D, PFC, 3DEC)其中一个软件时,另外两个也自动安装,这一点感觉很不好,因为在大多数情况下用户并不需要进行耦合计算,恰当的设计方式应该是用户能够自主选择安装哪一个软件,现在的情况有点儿"流氓软件"的招数,当然软件集成目前还处在测试阶段。


4 耦合的PFC-FLAC3D模型

当启动FLAC3D时,程序自动加载了PFC模块,这些模块是以动态连接库(DLL)储存的,用来实例化所有与PFC相关的模型分量。这些模块是:

program load module 'contact'

program load module 'pfc'

program load guimodule 'pfc'

program load module 'pfcthermal'

program load guimodule 'pfcthermal'

program load module 'ccfd'

program load guimodule 'ccfd'

program load module 'wallsel'

program load module 'wallzone'


模型由两种FLAC3D实体单元和一些自由产生的PFC颗粒单元组成。


经过耦合计算后的位移等值线图。


对上面的图沿着对称面切一半, 显示其剖面的位移等值线图,可以看出在压力作用下颗粒的移动情况。

在压力的作用下,颗粒之间的连接开始断裂。

完整的代码如下:


; Test by GeotechWu on 6/11/2020

;-------------------------------------------------------------------
;                Punch Indentation of a Bonded
;                Material
;-------------------------------------------------------------------
model new
model title 'Punch Indentation of a Bonded Material'
;make repeatable by setting the random number seed
model random 10001
;set the model domain for PFC balls and walls
model domain extent -2 2 -2 2 -2.5 0 condition destroy
;largestrain mode must always be on for coupled simulations
model large-strain on
;apply timestep scaling so the PFC timestep will be 1
model mechanical timestep scale

;define the effective modulus of the DEM material -
; use this as the Young's modulus of the bed of zones as well
[materialMod =1.0e6]
;define the Young's modulus of the zones comprising the punch
[punchYoung =1.0e7]

;create a bed of zones for the balls to sit inside
zone create brick size 35 35 35 point 0 -4 -4 -4.5 point 1 4 -4 -4.5 ...
                               point 2 -4 4 -4.5 point 3 -4 -4 -1 group 'bed'
zone cmodel assign elastic
zone property young [materialMod] poisson 0.25
zone cmodel null ...
           range position-x -1.5 1.5 position-y -1.5 1.5 position-z -2 -1
;as the balls are packing into this region -
;fix the gridpoint motions as the balls are settling
zone gridpoint fix velocity

;wrap the bed with walls
wall-zone create name 'bed' starting-zone 30013
;create a wall over the top
wall generate name 'top' plane position 0 0 -1

;create a cloud of balls that are arbitrarily overlapping
ball distribute porosity 0.4 box -1.5 1.5 -1.5 1.5 -2 -1 radius 0.04 0.06

;set the ball density and local damping coefficient
ball attribute density 2600 damp 0.7
;set the default contact behavior -
;the deformability method sets properties of the linear portion
;of the contact model
contact cmat default model linearpbond method deformability ...
                  emod [materialMod] kratio 1.0
;allow the balls to rearrange, nulling the linear
;and angular velocities every 100 cycles
model cycle 1000 calm 100
;delete any balls that flew out of the bed
ball delete range position -1.5 -1.5 -2  1.5 1.5 -1 not

;bond the balls together with the specified gap
contact method bond gap 2.0e-3
;set the parallel bond properties from the pb_deform method
contact method pb_deform emod [materialMod] kratio 1.0
;remove the linear portion of the contact properties
;and set the contact strength
;this will be a relatively weak material
contact property lin_mode 1 pb_ten 2e4 pb_coh 2e5 ...
       range contact type 'ball-ball'
;set the ball-facet contact strength to be very high
contact property lin_mode 1 pb_ten 1e100 pb_coh 1e100 ...
       range contact type 'ball-facet'
;remove the box
wall delete wall range name 'top'
;set the default behavior for new ball-ball and ball-facet contacts
contact cmat default model linear type ball-ball method deformability ...
                  emod [materialMod] kratio 1.0 property fric 0.3
contact cmat default model linear type ball-facet method deformability ...
                  emod [materialMod] kratio 1.0 property fric 0.3
;remove all velocities, fix the balls,
;cycle 2 to remove any contact forces that previously existed from
;the simple packing procedure
model calm
ball fix velocity spin
ball attribute force-contact multiply 0.0
contact property lin_force 0 0 0
model cycle 2
ball free velocity spin
;fix the z- velocity of zones at the bottom of the model
zone gridpoint free velocity
zone gridpoint fix velocity-z range position-z -5 -4.4
;reset the ball displacement
ball attribute displacement multiply 0.0
model save 'withoutPunch'

;create the rounded punch and assign properties to it
zone create cylinder point 0 0 -0.5 0 ...
                 point 1 [-math.sqrt(2.0)/2.0] -0.5 [-math.sqrt(2.0)/2.0] ...
                 point 2 0 0.5 0 ...
                 point 3 [math.sqrt(2.0)/2.0] -0.5 [-math.sqrt(2.0)/2.0] ...
                 size 5 5 5 group 'punch'
zone cmodel assign elastic range group 'punch'
zone property young [punchYoung] poisson 0.25 range group 'punch'
;wrap the punch with walls
wall-zone create range group 'punch'
;assign a group the gridpoints on the top of the punch and fix the z- velocity
zone gridpoint group "fixed" range position-z -0.4 1
zone gridpoint fix velocity-z -.0001 range group "fixed"
model save 'withPunch'

;push the punch into the balls with just minimal failure of the material
model cycle 1000
zone gridpoint fix velocity-z 0.0 range group "fixed"
;solve to an equilibrium state to show the current displacements
model solve ratio-average 1.0e-4
model save 'beforeFailure'

;push the punch in and watch the zone displacement
;diminish after the onset of failure
zone gridpoint fix velocity-z -.0001 range group "fixed"
model cycle 1000
zone gridpoint fix velocity-z 0.0 range group "fixed"
;failure will continue and the granular specimen will rearrange,
;reducing the displacements
model solve ratio-average 1.0e-3

model save 'afterFailure'


5. 结束语

本文简要介绍了FLAC3D的新特性---软件集成, 软件集成是Itasca系列未来的发展趋势,讨论了目前状态下软件集成的优缺点,演示了一个PFC-FLAC3D耦合的例子。

来源:计算岩土力学
断裂岩土GeoStudioPFCFLAC3D3DEC材料试验
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-09-27
最近编辑:6月前
计算岩土力学
传播岩土工程教育理念、工程分析...
获赞 143粉丝 1037文章 1776课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈