1. PFC3D接触力可视化基础解析
PFC3D(Particle Flow Code in 3 Dimensions)作为离散元法的代表性软件,其接触力组构图是分析颗粒体系力学行为的"显微镜"。在单轴压缩和单剪试验中,三维接触力网络的可视化能直观展现力链演化、应力传递路径等关键信息。接触力云图通过颜色映射(通常红-黄-绿-蓝代表力值由大到小)和线段粗细呈现力的大小与方向,这是理解颗粒材料宏观力学响应的微观基础。
注意:PFC3D默认的接触力显示可能过于密集,建议通过
plot set magnification调整显示比例,或使用contact force filter过滤微小力值,避免视觉干扰。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 单轴试验的接触力组构图实现
2.1 模型构建与参数设置
单轴试验需首先生成圆柱体或立方体试样,颗粒生成命令示例如下:
fish复制ball distribute porosity 0.4 radius 0.001 0.002 box -0.05 0.05 -0.05 0.05 -0.1 0.1
关键参数包括:
- 孔隙比(porosity):影响初始密实度
- 颗粒半径分布:决定级配特征
- 围压(
wall stress):通过伺服机制施加
2.2 接触力动态演化特征
在轴向加载过程中,接触力云图会呈现典型变化:
- 初始阶段:力链呈随机分布,颜色较浅(蓝绿色为主)
- 弹性阶段:竖向力链逐渐增强(黄色增多),水平力链减弱
- 屈服阶段:出现斜向力链(红色线段),形成"X"型剪切带
- 破坏后:力链断裂重组,局部出现力值骤减(蓝色区域扩大)
实操技巧:使用
history mechanical ratio记录应力比,配合plot bitmap定时截图,可制作力链演化动画。
3. 单剪试验的接触力网络特性
3.1 剪切盒建模要点
单剪试验需特殊边界条件:
fish复制wall generate id 1 plane dip 90 dd 0 origin 0 0 0
wall generate id 2 plane dip 0 dd 0 origin 0 0 0.1
- 上下剪切墙需设置速度边界(
wall attr velocity) - 侧向采用柔性边界模拟无限元条件
3.2 剪切带力链识别方法
剪切过程中接触力云图会显示:
- 剪切带定位:45°方向高密度红色力链聚集
- 力链旋转:初始竖向力链逐渐转向剪切方向
- 力值波动:使用
contact force standard deviation可量化力链震荡幅度
典型问题处理:
fish复制; 解决剪切过程中颗粒穿透问题
contact method deformation area
contact property kn 1e8 ks 1e8 fric 0.5
4. 高级后处理与定量分析
4.1 接触力统计脚本示例
获取最大接触力值及其位置:
fish复制fish define max_force
max_f = 0
max_c = null
loop foreach cp contact.list
if contact.force.global(cp) > max_f
max_f = contact.force.global(cp)
max_c = cp
endif
endloop
io.out('Max force: '+string(max_f)+' at '+contact.pos(max_c))
end
4.2 力链各向异性度计算
通过Fabric张量量化力链方向性:
$$
\phi_{ij} = \frac{1}{N_c}\sum_{c=1}^{N_c}n_i^c n_j^c \frac{f^c}{\langle f \rangle}
$$
对应Fish实现:
fish复制fish define fabric_tensor
tensor = matrix(3,3)
total_force = 0
loop foreach cp contact.list
n = contact.normal(cp)
f = contact.force.global(cp)
tensor = tensor + f * outer_product(n,n)
total_force = total_force + f
endloop
return tensor/total_force
end
5. 工程应用中的典型问题解决方案
5.1 云图颜色标尺优化
默认颜色范围可能掩盖细节,建议:
fish复制plot set contact force color scale max 1e5 ; 手动设置最大值
plot set contact force color palette hot ; 改用高温色谱
5.2 多工况对比技巧
同时显示单轴与单剪云图:
fish复制plot create view 1
plot set title 'Uniaxial Test'
plot contact force
plot create view 2
plot set title 'Shear Test'
plot contact force
plot show view 1 view 2
5.3 接触力数据导出流程
导出特定截面的力链数据:
fish复制contact export force 'section1.txt' range plane dip 45 dd 0 origin 0 0 0
后续可用Python/matlab进行矢量场分析:
python复制import numpy as np
data = np.loadtxt('section1.txt')
plt.quiver(data[:,0], data[:,1], data[:,3], data[:,4], data[:,2])
