我一直在尝试解决与结构力学相关的非线性 PDE(准确地说是非线性 Timoshenko 梁)。我正在做h -refinement 和p -refinement 以达到解决方案。非线性方程组使用 Newton-Raphson 方法求解,我将我的解决方案(指定载荷下的横向位移)与基准解决方案(基准解决方案是使用高度p精化模型生成的,并且该基准解决方案被插值到解决方案使用样条插值的节点)。使用 -norm 和 -norm 计算相对误差。
。
代码是用 MATLAB 编写的。
说了这么多,我的问题是,解决方案的收敛(与基准)在一个限制后停止并开始围绕该限制振荡(参见附图以供参考-LFEM 是具有线性形状函数的 FEM,QFEM 是具有二次形状的 FEM函数,PFEM 是不同的p细化有限元)。我已经使用商业 FEM 包验证了该解决方案,并且它与它完美匹配。我已经梳理了整个代码的错误但无济于事。
错误的来源可能是什么?我观察到解决方案在某些有效数字之前都是准确的,即使在改进之后也不会改变。行为与预期一致,直到相对误差达到,然后问题开始。
