首页/文章/ 详情

测试---三维离散元3DEC V7.0与V9.0运行速度的真实比较

1年前浏览3363

1 引言

Itasca软件非正式地声称V9.0提高了运行速度,而且在去年释放的第一个版本的测试中,通过FLAC2D的运行,确实直观上也感觉提高了运行速度,【FLAC2D 9.0新的研发进展(Beta版发布)】,但迄今为止,官方没有给出定量的比较和评价。为了定量化这种声称和感觉,本文使用3DEC进行了简单的运行速度比较。V7使用的是151版本(7/6/2022),V9使用的是158版本(3/9/2023)。应当指出的是,Itasca 9.0目前还处于Alpha版本,存在着许多不稳定和亟待解决的问题。 

本测试没有使用3DEC的内置FISH函数 time.clock,而直接调用了Python的time模块。测试内容包括建立模型,设置材料属性和初始化模型。测试机器配置:
(1) CPU Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz(2904 MHz)
(2) 内存 32.00 GB(2667 MHz)
(3) 显卡 NVIDIA GeForce GTX 1660 SUPER (6144MB)
(4) CPU核心数  16

2 创建BBM

首先比较创建一个BBM的生成速度。定义一个BBM区域(block create brick 0 7 -1.5 1.5 -7 12),划分成可变形块体(block zone gen edge 0.4),导出BBM模型(block zone list poly file 'bbm.dat')。V7的运行时间为73.058秒,文件尺寸为8435K;V9运行时间为66.661秒,文件尺寸为10230K。可以看出V9的运行时间比V7的运行时间快了大约6秒,但数据文件尺寸比V7多了大约1.5M,这说明V9划分的块体更细了,这是否意味着会拖垮V9的后续处理速度,接着进行下面的测试。

3 创建模型

创建一个包含BBM(或者DFN或者Voronoi)模型的方法有两种:第一种方法是置换法,即首先建立整体模型,然后把拟包含BBM的区域删除,然后用BBM来代替;第二种方法是叠加法,即在BBM的基础之上象积木一样加上周围的非BBM模型。本测试没有比较哪一种方法从更高效,仅使用了第二种叠加法。其步骤如下:导入生成的BBM.dat,导入隧道模型文件(geometry import 'tunnel1.stl'),把几何模型转换为3DEC模型(block cut geometry 'tunnel1');增加BBM上下的围岩(block create brick);划分单元(block zone gen edge),BBM的边长尺寸取与初始创建时的边长0.4,新增的围岩单元边长可得大一些(block zone gen edge 2)。

测试结果显示,V7的运行时间为58.257秒,模型状态文件尺寸为1002.644M;V9的运行时间为70.409秒,模型状态文件尺寸为997.507M。可以看出V9的运行时间比V7的运行时间高出将近11秒,可能的原因是由于上述BBM数据比V7的数据量大,因而运行的时间更长。

接触过量(contact overlap)是3DEC和UDEC经常遇到的问题【使用UDEC单元映射算法可能遇到的问题及其解决方法(CellSpace)】V7使用0.001就可以(block tolerance 0.001),但V9如果使用这个值就会产生警告信息:Atol too large, Atol should be less than minimum block edge。因此为了便于比较,本次测试均把tolerence值设置成0.0001 (block tolerance 0.0001)。

4 材料属性

材料属性设置包括以下几个步骤:设置单元模型(block zone cmodel assign elastic)和属性值(block zone prop);设置节理模型(block contact jmodel assign mohr)和属性值(block contact property);节理的抗拉强度和粘结力使用了空间分布(block contact property-distribution)【正态分布和对数正态分布的应用(Gauss and Log-normal Distribution)隧道开挖的BBM模拟---材料属性(空间变异性)】;设置默认的节理属性(block contact material-table default prop)。使用了多线程算法【Itasca软件的多线程处理(multi-thread processing)】:
      
    fish operator set_cohesion(cx)  if block.subcontact.prop(cx,'tension') < 0  
         block.subcontact.prop(cx,'tension') = 0.0    endif    block.subcontact.prop(cx,'cohesion') = block.subcontact.prop(cx,'tension')*_coh_ten_ratioend[set_cohesion(::block.subcontact.list)]

    测试结果显示V7的运行时间为51.363秒模型状态尺寸为1175.020M;V9的运行时间为61.534秒,模型状态尺寸为1164.493M。可以看出V9的运行时间比V7的运行高出大约10秒,但V9模型状态尺寸比V7模型状态尺寸小了大约11M。

    5 初始化

    材料初始化包括设置材料的原岩应力(block insitu topo ratio)和限定边界条件(block gridpoint apply),使用大变形模式(model large-strain on),模型收敛准则选用自定义循环次数5000次(model solve cycles 5000),用最大不平衡力监测(model his mechanical unbal-max),没有使用model solve convergence 1准则的原因是我目前的机器一旦CPU温度过高就会出现死机,事实上当前的模型运行大约2000次循环后就会达到平衡状态,因此使用cycles=5000是相对合理的选择。

    测试结果显示V9的运行时间为 986.312秒(大约16分钟),模型状态尺寸为1183.428M; V7的运行时间 881.922秒(大约14.6分钟),模型状态尺寸为1193.967M。可以看出V9的运行时间比V7的运行时间高出了大约1.5分钟,但V9模型状态尺寸比V7模型状态尺寸小了大约10.5M。

    6 结束语

    本测试通过一个隧道模型比较了3DEC V7.0和V9.0的运行速度,测试指标包括BBM生成,模型建立,材料属性设置和初始化平衡。目前的测试结果显示,V7和V9的运行速度没有显著差异,V7甚至比V9的运行速度更快一些,但V9保存的模型状态尺寸比V7的模型状态尺寸要小一些(11M左右)。

    来源:计算岩土力学
    离散元3DEC材料
    著作权归作者所有,欢迎分享,未经许可,不得转载
    首次发布时间:2023-04-10
    最近编辑:1年前
    计算岩土力学
    传播岩土工程教育理念、工程分析...
    获赞 120粉丝 877文章 1732课程 0
    点赞
    收藏
    未登录
    1条评论
    Diiiiii.
    签名征集中
    3月前
    请问有v9.0的3dec可以分享吗
    回复

    课程
    培训
    服务
    行家

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