布西涅斯克问题(半无限弹性体的点荷载)
布西涅斯克问题(半无限弹性体的点荷载)的理论基础
概述
老师,我在土壤工程教科书中看到过Boussinesq的半无限体问题,它也能用作V&V基准吗?
这是3D固体单元验证中非常有用的经典问题。弹性半无限体表面施加集中荷载 $P$ 时,应力和位移的精确解由Boussinesq在1885年推导。包含3D场的$1/r$奇异性,最适合评估单元精度和奇异点附近的网格设计。
这个问题在什么场合使用?
主要有两个方面。一是FEA的3D固体单元的代码验证。另一个是Hertz接触分析的前期验证。Hertz接触理论是从Boussinesq解的叠加(面压分布的卷积积分)推导得出的,因此在不能通过Boussinesq问题的求解器上进行接触分析是危险的。
支配方程
请提供具体的解析解。
以荷载点为原点、荷载方向为$z$轴正方向的圆柱坐标$(r, z)$表示。设$R = \sqrt{r^2 + z^2}$,位移场为
其中$G = E/[2(1+\nu)]$是剪切弹性模量。应力场中最重要的$z$轴上的竖直应力为
在$r = 0$, $z \to 0$处会发散。FEA如何处理?
这是个核心问题。FEA的离散化无法精确再现奇异点。因此应在远离荷载点的位置进行与理论值的比较。评估点应以 $z > 5h_{elem}$($h_{elem}$为荷载点附近的单元尺寸)为目标。荷载点处的应力值与网格有关,没有意义,因此不在评估范围内。
有限模型中的近似
如何用FEA的有限模型表示半无限体?
采用足够大的模型尺寸就可以了。如果关注领域的最大距离为 $L_{eval}$,模型外形应为 $R_{model} \geq 10 L_{eval}$,深度 $D_{model} \geq 10 L_{eval}$。远方边界条件的标准做法是底面$z$方向固定,侧面为径向滚轮。
利用轴对称性用CAX8单元(Abaqus)或2D轴对称单元求解计算效率最高。如果需要3D验证,可用1/4对称的3D模型。
也可以使用无限单元吗?
可以的。使用Abaqus的CINAX4(轴对称无限单元)或CIN3D8(3D无限单元)放在外边缘,可以将模型尺寸缩减到$R_{model} \geq 3 L_{eval}$左右。计算成本大幅降低,所以在参数化研究中建议采用无限单元。
基准验证数据
我想用具体数值进行验证。
标准参数:$P = 1$ MN、$E = 200$ GPa、$\nu = 0.3$。评估点为荷载点正下方 $z = 0.1$ m。
| 物理量 | 理论值 | Abaqus CAX8R | Nastran CHEXA-20 | 误差(Abaqus) |
|---|---|---|---|---|
| $\sigma_{zz}$ [MPa] | -47.75 | -47.61 | -47.53 | 0.29% |
| $u_z$ [mm] | 0.00249 | 0.00248 | 0.00248 | 0.40% |
网格尺寸5mm时可获得1%以内的精度。用3个网格水平计算GCI,得到约0.5%,证明已充分收敛。
布西涅斯克问题(半无限弹性体的点荷载)的数值计算方法
网格设计策略
荷载点周围的网格应如何设计?
对应$1/r^2$的应力梯度,偏置网格是必需的。以荷载点为中心的放射状网格(蜘蛛网网格)最优,单元尺寸应按等比级数递增。
- 荷载点附近:$h_{min} = L_{eval}/100$ 左右
- 外缘:$h_{max} = L_{eval}/2$ 左右
- 偏置比:1.5~2.0的等比级数
轴对称情况下,在荷载点($r=0$轴上)放置一列退化的三角形单元,从该处向外放射状展开四边形单元。
TET10的自动网格划分不行吗?
精度可以,但获得相同精度所需的单元数是HEX20的3~5倍。对于验证目的,建议使用映射网格(六面体)。不过,从为复杂形状应用考虑出发,对自动四面体网格的精度进行此问题验证也很有意义。
Richardson外推与GCI
请告诉我用GCI定量评估网格收敛的步骤。
以荷载点正下方$z = 0.1$ m的$\sigma_{zz}$为指标进行3个水平的计算。
| 网格 | $h_{min}$ [mm] | $\sigma_{zz}$ [MPa] | 与理论值的差 [%] |
|---|---|---|---|
| 粗 | 20.0 | -44.2 | 7.4 |
| 中 | 10.0 | -46.9 | 1.8 |
| 细 | 5.0 | -47.5 | 0.5 |
观测到的收敛次数:$p = \ln|(44.2-46.9)/(46.9-47.5)| / \ln 2 \approx 2.5$
GCI_fine: $1.25 \times |(-46.9-(-47.5))/(-47.5)| / (2^{2.5}-1) \approx 0.3\%$
观测到的收敛次数超过理论值2,没问题吗?
在奇异点附近,在进入完全渐近区域之前可能出现超收敛。应添加第4个网格水平($h_{min} = 2.5$ mm)来验证$p$是否稳定。一旦在渐近区域内$p$稳定,就可保证GCI的可靠性。
求解器特定实现说明
请总结各求解器的注意事项。
Abaqus:CAX8R是标准。用*CLOAD在轴上节点施加荷载。底面的无限单元用CINAX4。后处理可用Python脚本通过ODB API提取应力。
Nastran:CTRIAX6可进行轴对称分析但使用不便。实际应用中多用3D模型配合CHEXA-20。用SOL 101求解,用GPSTRESS输出获取任意点的应力张量。
CalculiX:使用Abaqus兼容的C3D20单元。没有轴对称单元,用3D模型求解。用ccx执行,.frd用ParaView可视化。
Code_Aster:MODELISATION='AXIS'用于轴对称。单元相当于QUAD8。用SALOME生成网格,用命令文件设置边界条件。
各求解器是否能得到相同结果?
在相同网格密度和单元次数下,位移的4~5位有效数字相同,应力的3~4位相同。差异主要来自节点外推算法的差异。如果在积分点值处进行比较,一致度会进一步提高。
布西涅斯克问题(半无限弹性体的点荷载)的实际应用
V&V基准的集成
如何把Boussinesq问题融入公司的V&V体系?
按以下步骤进行。
1. 参考解程序编写:用Python编写Boussinesq解的计算函数。10行左右代码。用NumPy数值微分自行验证此函数
2. 标准网格模板创建:用Gmsh等编写脚本自动生成3个水平的偏置网格
3. 自动对比脚本:求解器运行→结果提取→理论解比较→GCI计算→合否判定一气呵成的Python脚本
4. 集成到pytest:运行 pytest test_boussinesq.py 可一次性完成全部检查
判定基准如何设置?
评估点($z = 0.1$ m)处$\sigma_{zz}$和$u_z$与理论值的偏差在1%以内。以"细"网格的值为基准,GCI < 5%。此基准与悬臂梁基准处于同一精度水平,具有一致性。
接触力学的扩展
从Boussinesq问题如何推进到Hertz接触?
Hertz接触理论是Boussinesq解对面压分布的卷积积分推导得出的。球与平面接触时,接触面处的半椭圆形面压分布
积分可获得接触半径$a$和最大面压$p_0$。Boussinesq验证→Hertz接触验证→一般接触问题是分阶段Validation的最佳实践。
原来如此,是从简单到复杂的逐步信任积累呢。
完全正确。V&V的基本原则是"从简单到复杂"。Boussinesq(线性弹性、轴对称)→Hertz(接触但有解析解)→一般接触(非线性、有摩擦)的推进。在各阶段确认与参考解的一致,再以此作为下一阶段的信任基础。
土壤工程的应用
在土壤工程实务中Boussinesq解如何应用?
在地基设计初期作为第一近似被使用。计算地中增加应力,推估压密沉降量。具体采用Newmark图表或Fadum积分表的方法来求取矩形分布荷载下的应力增量,这种方法已广泛应用。
在FEA验证中也很有用。特别是用来确认FEA模型的边界条件(底面固定深度和侧面位置)的合理性。如果FEA结果与Boussinesq解相差很大,说明模型边界过近或边界条件设置有问题。
地基是非均质、非线性的,弹性解就够了吗?
当作用应力远小于地基屈服应力的地域(常时荷载下的地基)时,弹性近似就能获得实用精度。如需处理大变形或液化,则需进入弹塑性模型或有效应力分析。但即使这样,Boussinesq解在初期应力状态推估或数值级估计上仍可使用。
布西涅斯克问题(半无限弹性体的点荷载)的软件对比
Abaqus 中的详细实现
请告诉我Abaqus输入文件的具体要点。
轴对称CAX8R模型的要点如下。
- *NODE 中定义 $r \geq 0$ 的节点。$r = 0$ 的节点自动作为对称轴处理
- *ELEMENT, TYPE=CAX8R 定义8节点低减积分的轴对称四边形单元
- *BOUNDARY 中底面设为 YSYMM($u_z = 0$),侧面配置无限单元或设 $u_r = 0$
- *CLOAD 在对称轴上表面节点施加 $P/2\pi$(轴对称周向积分补偿由Abaqus自动处理)
注意:轴对称模型的CLOAD是"全周荷载"而非"单位弧度荷载"。这个地方出错会导致$2\pi$倍的偏差。
输出如何获取?
*OUTPUT, HISTORY, VARIABLE=PRESELECT 输出特定节点的时刻历位移。应力用*EL PRINT 获取单元积分点值,或用Python ODB API提取坐标指定的场输出。probeValues 方法可获取任意点的内插值,非常便于理论值自动对比。
Nastran中的实现
听说Nastran的轴对称不太方便。
CTRIAX6是6节点三角形,四边形的情况下用TRAX3或TRAX6,但不如Abaqus方便。实务中常用3D 1/4对称模型配合CHEXA-20求解。
用SOL 101求解,用GPSTRESS(SORT1,REAL)获取应力输出。提取特定节点应力可用DMAP ALTER或pyNastran的OP2读取方便。
交叉检查时要注意什么?
Nastran的应力张量输出顺序为 $\sigma_{xx}, \sigma_{yy}, \sigma_{zz}, \sigma_{xy}, \sigma_{yz}, \sigma_{xz}$,而Abaqus为 $\sigma_{11}, \sigma_{22}, \sigma_{33}, \sigma_{12}, \sigma_{13}, \sigma_{23}$。特别是剪切分量的顺序不同(Nastran为 $xy, yz, xz$,Abaqus为 $12, 13, 23$),对比时一定不要弄混。
开源求解器的实现
用CalculiX和Code_Aster怎样进行验证?
CalculiX与Abaqus的.inp文件格式基本兼容,几乎可直接使用。用C3D20单元进行3D 1/4模型求解。需要注意的是,CalculiX的C3D20积分点配置与Abaqus略有不同。结果精确到3~4位,但要求更高精度时应在源代码(src/e_c3d.f)中确认积分方案细节。
Code_Aster使用 MODELISATION='AXIS' + QUAD8 进行轴对称分析。用SALOME的SMESH模块生成网格,以MED格式输出。在命令文件中用AFFE_MODELE和AFFE_MATERIAU定义物理参数。
开源软件结果能信任的根据是什么?
源代码公开,第三方能直接验证单元定式推导算法。实际上CalculiX的C3D20刚度矩阵计算在e_c3d.f内的Gauss积分中明确呈现。商业求解器则没有这种透明性。在学术论文中基于开源软件进行验证,其结果可作为商业求解器的独立验证引用,这是既定方法论。
布西涅斯克问题(半无限弹性体的点荷载)的先端研究
扩展到多层地基(Burmister解)
实际地基不是均匀的。多层的情况有解析解吗?
Burmister(1945)推导了双层弹性体解。其中包含Hankel变换的积分形式,需数值积分但作为参考解存在。铺装设计(上层沥青、下层路基)的FEA验证中使用。
N层一般解可用传递矩阵法系统建构,ELSYM5和KENLAYER等专用程序可计算。以此作为FEA的参考值,验证层界面的处理(共享节点 vs. TIE约束)的精度。
层界面建模时要注意什么?
完全粘结条件下共享节点足够,但若考虑滑动界面则需接触条件。完全粘结的验证以Burmister解为参考;滑动界面的验证需用层间无摩擦的Burmister解。分阶段验证尤为重要。
扩展到动力问题(Lamb问题)
动态荷载的情况呢?
Lamb问题(1904)正是这种情况。半无限体表面施加阶跃荷载时的过渡性弹性波传播,有P波、S波、Rayleigh波到达时刻与振幅的理论解。
显式法求解器(LS-DYNA、Abaqus/Explicit、OpenRadioss)的验证最优。通过CFL条件 $\Delta t \leq h_{elem} / V_p$($V_p$为P波速度)决定的时间步长与网格尺寸的关系是否恰当,可用波前到达时刻的精度来确认。
弹性波分析的网格标准怎样?
每波长的节点数是关键。二次单元1波长5~6个单元,一次单元10~12个单元为目标。S波波长 $\lambda_s = V_s / f$ 决定所需单元尺寸。需对不同网格密度的波形进行比较,确认数值色散(周频依赖的相速度偏差)在允许范围内。
扩展到非线性
弹塑性地基如何处理?
弹塑性无精确解,以Boussinesq弹性解作为杨氏模量参数化研究的基准。低荷载阶段弹塑性解与弹性解一致,随荷载增加偏离扩大(压缩屈服→塑性域扩展→承载力极限)。确认此偏离规律物理合理即可。
Terzaghi极限承载力公式 $q_u = cN_c + \gamma D_f N_q + 0.5\gamma B N_\gamma$ 是弹塑性FEA的另一参考。对比FEA结果与承载力理论的吻合,提高Validation的可信度。
所以Boussinesq问题始终是"验证的出发点"吧。
布西涅斯克问题(半无限弹性体的点荷载)的故障排除
模型边界的影响
模型外形太小会怎样?
固定边界的反射导致应力被高估。底面固定过浅时,荷载点正下方的$\sigma_{zz}$会比理论值大20%以上。现象为改变模型尺寸时结果波动,则应怀疑此影响。
对策:
- 逐步增大模型尺寸,直到结果不再变化
- 用无限单元近似遥远边界条件
- 经验上确保 $R_{model} \geq 20 z_{eval}$
无限单元失效时怎么办?
无限单元的衰减函数可能与问题特性不匹配。Abaqus无限单元假设指数衰减,但Boussinesq解是$1/r$衰减,严格上不完全吻合。实用上精度足够,但若对残差敏感,加大有限单元区域(向无限单元边界远离)较为安全。
荷载施加问题
在1个节点施加集中荷载时,该节点处的应力会无限大,对吧。
这是正常现象。荷载点处的应力随网格细化无限增长。这反映了物理的奇异性,不是FEA缺陷。
实务对策:
1. 不评估荷载点处的应力。在 $z > 5h_{elem}$ 处评估
2. 若荷载分布为面压,当半径$a$小于评估距离的1/10时,与理论值的差<1%
3. Hertz接触等物理上确定面压分布的情况,应直接给定分布并与Boussinesq解的积分对比
荷载分散的具体方法?
等价性验证通过反力总和等于施加荷载来确认。
数值伪影
结果出现奇怪的波动?
用低阶单元(TET4、HEX8)的应力等值线图会产生锯齿形不连续。这是因为C0连续单元在元素边界处应力(歪变导数)不连续。
处理:
- 改用二阶单元(TET10、HEX20)可大幅改善
- 用节点平均化(SPR法:Zienkiewicz-Zhu超收敛斑块回复)平滑
- 平滑前后差大的地方是网格不足的迹象
SPR法初次听说。
Zienkiewicz和Zhu(1992)提出的事后误差估计法。各节点的斑块内积分点应力用最小二乘法高精度恢复为节点应力。恢复前后的差是局部离散化误差估计。商用求解器中多作为选项实现。Abaqus中可用*ERROR INDICATOR。
相关主题
了
详细
报告