首页/文章/ 详情

使用UDScalar绘制裂纹热点图

2年前浏览4382


    PFC中用户可以在plot中绘制自己想要的变量,标量、矢量、张量分别对应UDScalar、UDVector、UDTensor。这三个变量的设定都需要plot中的位置信息(pos),以及数值(value)。


    前面文章中讲述了使用UDTensor绘制应力十字架,以及使用UDVector绘制剪力弯矩图(离散元模拟C30混凝土构件)。这里使用UDScalar绘制裂纹热点图,这样三个变量的基本demo就全了,大家可以根据自己需求进行开发使用。


    下面的result为单轴算例的结果,outqipao函数就是绘制热点图的函数,需要用户传入模型的轮廓,这里只能绘制矩形试样。用户可以自己去调整搜索的分割数,以及搜索半径。这里的逻辑就是遍历模型中的点,然后以这个点为圆心,计算搜索半径内的裂纹数。

 






























   restore resultdef outqipao(x_min,x_max,y_min,y_max)      n_split_x=20.0   n_split_y=40.0   x_inri=(x_max-x_min)/n_split_x   y_inri=(y_max-y_min)/n_split_y   sousuo_rad=x_inri   weizhi_count=1      array redianarr(10000)   loop n(1,n_split_x-1)    loop m(1,n_split_y-1)        x_pos=x_min x_inri*n        y_pos=y_min y_inri*m        n_count=0        loop foreach frac dfn.fracture.list            dist=math.sqrt((dfn.fracture.pos.x(frac)-x_pos)^2 (dfn.fracture.pos.y(frac)-y_pos)^2)            if dist<sousuo_rad then                n_count =1            endif        endloop        p_sc = user.scalar.create(x_pos,y_pos)         user.scalar.value(p_sc)=n_count        redianarr(weizhi_count)=p_sc        weizhi_count =1    endloop   endloopend@outqipao([-wlx*0.5*1.1],[wlx*0.5*1.1],[-wly*0.5],[wly*0.5])

    


这里显示出运行结果,不光颜色,大小也可以看出裂纹的热度。




注意这个函数对搜索分割数和搜索半径比较敏感,用户可以进行调整。


半径扩大到x_inri的两倍时,过渡性会更加好点。



分割数为30,60时,整个精度也会高很多。



    这个处理方式目前应该还没人做过,大家感兴趣可以将这个方法引入自己论文中,可以比较直观的看出模型中裂纹数目的区别。


来源:超级大的lobby
科普代码&命令离散元裂纹PFC
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-09-28
最近编辑:2年前
lobby
硕士 |擅长颗粒流PFC
获赞 878粉丝 4965文章 83课程 22
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈