PFC(1)—ball generate与ball distribute的区别、导出颗粒参数(位置及半径)、对导出的txt文件数据进行分列操作

1.ball generate与ball distribute的区别
(1)ball generate生成圆柱形试样
ball generate radius [keli_rdmin] [keli_rdmax] number 100 ...
    range cylinder end1 0 0 [sample_hight*0.5-keli_rdmin] ...
    end2 0 0 [-sample_hight*0.5+keli_rdmin] radius [sample_rad-keli_rdmin]
    

在这里插入图片描述

ball generate生成的颗粒无接触,对生产散体有优势
(2)ball distribute生成圆柱形试样
ball distribute radius [keli_rdmin] [keli_rdmax]  porosity 0.2 ...
    range cylinder end1 0 0 [sample_hight*0.5-keli_rdmin] ...
    end2 0 0 [-sample_hight*0.5+keli_rdmin] radius [sample_rad-keli_rdmin]

在这里插入图片描述

ball distribute生成的颗粒会有重叠,能够控制孔隙率
2.生成一个圆柱试样不能够导出颗粒参数(位置及半径)
new 
def chicun_par    
    
    sample_rad=0.4
    sample_hight=sample_rad*2
    
    keli_rdmin=0.04
    keli_rdmax=0.08
end
@chicun_par

domain extent [-sample_rad*1.5] [sample_rad*1.5] [-sample_rad*1.5] [sample_rad*1.5] ...
    [-sample_hight*0.5*1.5] [sample_hight*0.5*1.5]

[n=1.4]
wall generate cylinder base 0 0 [-sample_hight*0.5*n] axis 0 0 1 ...
                    height [sample_hight*n] radius [sample_rad] cap false false

wall generate plane position 0 0 [sample_hight*0.5] dip 0 ddir 0
wall generate plane position 0 0 [-sample_hight*0.5] dip 0 ddir 0

ball generate radius [keli_rdmin] [keli_rdmax] number 100 ...
    range cylinder end1 0 0 [sample_hight*0.5-keli_rdmin] ...
    end2 0 0 [-sample_hight*0.5+keli_rdmin] radius [sample_rad-keli_rdmin]

cmat default model linear method deform emod 10e8 kratio 1.5 property fric 0.5

ball attribute density 2.7e3 damp 0.7
cycle 2000 calm 50

solve

ball delete range cylinder end1 0 0 [sample_hight*0.5] ...
    end2 0 0 [-sample_hight*0.5] radius [sample_rad] not

def output_balls_info
    ball_num=ball.num
    file_infp=array.create(ball_num+1)
    count=1
    file_infp(count)="pos_x      pos_y      pos_z      radius"
    count+=1
    
    loop foreach local bp ball.list
            file_infp(count) = string.build("%1      %2      %3      %4",ball.pos.x(bp),ball.pos.y(bp),ball.pos.z(bp),ball.radius(bp)) 
            count+=1
    end_loop    

    outflag=file.open("CubeWall.txt", 1, 1)
    file.write(file_infp,ball_num+1)
    file.close()
end
@output_balls_info

save sample
注意最后数据会导出在CubeWall.txt中,如果找不到数据可以在此电脑中进行搜索

在这里插入图片描述

3.对导出的txt文件数据进行分列操作
进行后处理,将数据导入到excel中进行分列,在导入数据的分隔符号中选择空格,分列的具体操作过程如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋进的小hang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值