首页/文章/ 详情

使用UDScalar绘制裂纹热点图

1年前浏览3908

    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
    最近编辑:1年前
    lobby
    硕士 |擅长颗粒流PFC
    获赞 834粉丝 4512文章 84课程 21
    点赞
    收藏
    作者推荐
    未登录
    还没有评论
    课程
    培训
    服务
    行家
    VIP会员 学习 福利任务 兑换礼品
    下载APP
    联系我们
    帮助与反馈