首页/文章/ 详情

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

1年前浏览2451

1. 引言

这个系列笔记是根据昨天(2020年6月4日)Itasca公司发布的Webinar视频改写而成的,主要介绍了FLAC3D 7.0的新特性。Itasca公司目前正在开发它的下一个版本8.0。我用笔记的型式记录下这个视频所讲的内容,同时穿插了我自己的观点和使用方法,仅作为学术研究参考使用。因为这是个公开展示的视频,不是内部培训资料,没有版权保护的限制,所以这个笔记不间断地插入了视频中的一些截图。接下来我们将按照视频中的顺序依次介绍FLAC3D的新特性。不确定这个系列多少集能够全部介绍完,一天写一点,有兴趣的同学关注就好了。

2. 什么是FLAC3D

简言之,FLAC3D是专为岩土工程领域开发的软件,用于处理土,岩石,地下水,地热以及地层支护。FLAC3D的基元型式有许多种,如下图所示,通过这些基元的组合可以产生出几何形状非常复杂的模型。FLAC3D发展初期,单元网格的划分只能是结构化的,但现在FLAC3D已经能够象ABAQUS一样处理非结构化的网格。与大多数有限元软件不同的是FLAC3D使用显式的计算方法通过时步推进(与时俱进)来计算的,这能够有效地解决岩土工程的动力问题,例如波的传播和地震液化,几何大变形以及高度的材料非线性问题通过引入阻尼,FLAC3D也能够解决似平衡状态的静态问题,例如我们经常用来分析边坡或隧道的稳定性。

FLAC3D 6.0开始使用了最新的开发环境,编译器和图形库,重新组织了软件的架构,使得程序运行速度加快,绘图功能更强,Windows的远程桌面现在使用了DirectX库。所有的帮助文档现在都使用了HTML文件,当用户输入命令时需要帮助,把鼠标移动到关键字后面按Ctrl 空格键即可查看相关命令,也可以按F1键查找相关命令的帮助文件,极大地节省了数据文件的准备时间。如下图所示。

不过,任何东西的发展都伴随着负面影响,从用户的角度说说这种显著变化后的缺点或者操作不适应性,在此吐槽一下。首先,6.0以前版本使用的代码必须全部改写,尽管FLAC3D提供了一个转换命令,如下图所示,但不是所有的命令都能通过这个工具转换过来,因为新版本一方面废除了以前的一些命令,另一方面也增加了一些新的命令。在笔记《3DEC的编程变化(1)》中曾经介绍过部分命令的改变格式,尽管这是针对3DEC写的,但由于现在3DEC,PFC,FLAC3D已经集成在一起,命令格式是互通的。其次,至少目前的7.0版本帮助文件只提供HTML格式不提供PDF格式,这在我们作自然语言处理时感到非常不方便,因为从HTML提取出来的文字是带格式<html>符号的,需要经过二次处理才能变成纯文本,当然也可以把每个HTML文件先转化成PDF格式或Word格式,但这需要大量时间完成这个工作。

3. 速度提升

FLAC3D声称,由于使用了多栈处理技术和改进的算法,导致FLAC3D的运行速度大幅提升。在Python语言中,可以通过导入multiprocessing模块让多个核心同时工作。目前还没有测试显式地调用这个模块与不使用这个模块有没有性能上的差别。

    import itasca as itit.command("python-reset-state false")import multiprocessingmax_threads = multiprocessing.cpu_count()import six

    3.1 力学测试(Mechanical)

    在这个力学测试中,共有624,000个单元,使用Mohr-Coulomb准则,7.0的运算速度比6.0提升了33%。总的来说,CPU处理器越多,速度越快。目前我使用的机器是Core(TM) i7-8700 CPU @ 3.20GHz,CPU核心数是12个。另外,计算机安装SSD固态硬盘和大的内存(目前我的内存是24G)也能够有效地提高速度,尽管没有定量评价。

      zone cmodel assign mohr-coulomb


      3.2 流体测试(Fluid Flow)

      FLAC3D能够模拟地下水的瞬态流动和稳态流动,也能模拟土的固结过程。在这个大坝注入水的流体测试中,显示流体的计算速度比固体的计算速度加速更快,比6.0快2.6倍。这个模型由于水的注入需要评价大坝的稳定性,原来3小时运行这个模型,现在用7.0版本只需要1个小时就完成了。

        model configure fluidzone fluid biot on


        3.3 热测试(Thermal)

        FLAC3D能够模拟热传导,尤其应用在地下核废料处理领域。对于热的计算,声称运行速度提升更快,比6.0版本快8.6倍。据称FLAC3D的7.0版本不再使用多栈处理技术,而是使用单核运算。说实话,因为以前没有接触过热的模拟,这个地方我还真的不太明白为啥会这样,不使用多栈技术反而更快??How come?

          model configure thermalmodel thermal active on

          3.4 边界条件测试(Apply Logic and Dynamic Free-field)

          以前的版本Apply Logic 不是多栈的,7.0版本使用了多栈技术,从而加快了速度,在这个测试中是6.0版本的2.4倍。现在可以使用local(每个网格点,面,或单元)的FISH函数施加边界条件,在local系统内自动放置多个约束。非笛卡尔坐标系施加法向速度条件不需要手动指定平面。

            zone face apply velocity-localzone face apply velocity-normalzone face apply velocityzone gridpoint fix velocity

            FLAC3D可以进行动力分析,用户把指定的加速度,速度或应力波直接输入模型,既可以作为外部边界条件,也可以作为模型的内部激励。FLAC3D包含吸收场和自由场(free-field)边界条件模拟无限弹性介质的作用。动态计算可以与地下水流模型模型进行耦合,包括生成动态孔隙压力(液化)。当模拟地震效应时需要用到Free-field边界,假如波从模型的底部向上传播,为了不使模型边界发生扭曲,每一个时步施加力的边界条件,多栈技术可以加速这种问题的处理速度。

              model config dynamicmodel dynamic active=on

              4. 结束语

              根据Itasca发布的最新视频,改编和扩展介绍了FLAC3D 7.0的新特性。本文作为本系列的第一部分,主要介绍了部分7.0版本的速度提升性能,下个笔记将继续介绍其它速度提升的新特性。(13:35)

              来源:计算岩土力学
              Mechanical非线性python岩土PFCFLAC3D3DEC材料
              著作权归作者所有,欢迎分享,未经许可,不得转载
              首次发布时间:2022-09-27
              最近编辑:1年前
              计算岩土力学
              传播岩土工程教育理念、工程分析...
              获赞 119粉丝 871文章 1732课程 0
              点赞
              收藏
              未登录
              还没有评论

              课程
              培训
              服务
              行家

              VIP会员 学习 福利任务 兑换礼品
              下载APP
              联系我们
              帮助与反馈