PFC_第二章13到16讲

目录

FISH入门

设置重力

跳跃结构

保存模型状态

测量圆的使用


FISH入门


设置重力

new
domain extent -10 10

ball generate radius 0.1 0.3 number 50 box -5 5
wall generate box -5 5
ball attribute density 2e3 damp 0.7
;分配密度和阻尼,damp阻尼系数耗散能量
cmat default model linear property kn 1e6

set gravity 9.8
;一般默认竖向往下
;set gravity 0 -9.8 矢量
cycle 200000

跳跃结构

        每秒生成颗粒,共生成了8个颗粒。(重点理解

new
domain extent -10 10
cmat default model linear property kn 1e6
wall generate box -5 5
set gravity 9.8

[freq=1.0]
[time_next=0]
def jianduan
    if mech.age>=time_next then
        add_ball
        time_next=time_next+freq
    endif
end

def add_ball
    rad=0.5
    x_pos=math.random.uniform*8.0-4
    ;在-4到4之间出现
    pos=vector(x_pos,4.0)
    bp=ball.create(rad,pos)
    ball.density(bp)=2e3
    ball.damp(bp)=0.7
end
set fish callback -1.0 @jianduan
;调用jianduan函数之后,会自动也调用add_ball函数

set timestep fix 1e-3
solve time 8.0
;求解8000步,用time时间8s,实际耗时clock为10s参考)

保存模型状态

new
domain extent -10 10
cmat default model linear property kn 1e6
wall generate box -5 5
ball distribute radius 0.1 0.3 porosity 0.08 box -5 5
ball attribute density 2e3 damp 0.7
cycle 2000 calm 5
;消除初始重叠的影响

solve aratio 1e-5
;设置最大不平衡力

save poro_08

测量圆的使用

        在右侧变量区域可以看到要测量的值的结果。

restore poro_08

measure create position 0 0 radius 4.9
;生成了一个半径为9的测量圆

def get_bianliang
    mp=measure.find(1)
    ,measure指的是测量圆的id号
    poro=measure.porosity(mp)
    ;测量测量圆范围内的孔隙率,默认会考虑重叠,因此会和attribute生成的孔隙率有所差别
    ;误差来源:分布不均匀以及有重叠
    stress_xx=measure.stress.xx(mp)
    stress_yy=measure.stress.yy(mp)
end
@get_bianliang

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值