继上一篇常应变三角形单元介绍:有限元基础编程 | 常应变单元(静力分析全面讲述),本次分享的是线性应变四边形单元,主要内容有:
由于实际问题的复杂性,需要使用一些几何形状不太规整的单元来逼近原问题,特别是在一些复杂的边界上,有时只能采用不规整单元。
但直接研究这些不规整单元则比较困难,如何利用几何规整单元(如三角形单元、矩形单元、正六面体单元)的结果来研究(推导)所对应的几何不规整单元(叫做参数单元(parametricelement))的表达式?这将涉及到几何形状映射、坐标系变换(等参变换、非等参变换)等问题。
有些教材会引导读者先学习矩形单元,然后逐渐引入四边形单元的等参变换思想。本推文为方便起见直接向读者介绍何为等参变换?如何等参变换?等参变换的意义何在?后续所有单元的刚度矩阵均由等参思想推导。
如下图所示,左侧为等参单元在自然坐标系下的表示,为一个规则的正方形单元(母单元),边长为2;右侧为物理坐标系下的任意形状四边形单元(子单元)。两者坐标系通过特殊的变换(雅可比矩阵),即可由其中一个坐标系代表另一个坐标系。
以形函数对坐标轴偏导为例:
其中,雅可比矩阵可表示为:
写到这里,我们可以看到在实际计算过程中为什么要进行等参变换?
它可以将任意形状的单元的形函数都归结于规则单元形状的形函数,大大降低了求形函数的计算成本,因为规则等参单元的形函数是由前人推导而来,是一组确定的量。
通过等参变换可以将已知等参单元的形函数表示任意单元形状的形函数。(用词可能不太严谨,该段解释是我用自己的语言表述,若有错误之处,欢迎批评指正!)
与等参单元概念类似的还有亚参单元(subparametric element)、超参单元(superparametric element)。
以上概念有个印象就行,目前本文只针对等参单元进行数值编程。
线性应变四边形单元具有4个节点,每个节点两个平动自由度。单元描述如下图所示,节点序号按照逆时针排列(顺序无所谓,但是要一致),单元共有8个自由度,记作 ,相应的有8个节点力,记作 :
接下来会带着大家再次熟悉有限元基本格式,在以后的有限元问题描述上我都会不断的串讲有限元基本格式,加深印象。
因为格式真的很固定,特别适合计算机处理,当然这不代表有限元简单,只不过很多内容不需要我们去推倒,直接拿来用就行(应用型教学)。
以下的理论读者不要觉得枯燥,是和编程直接相关的理论基础,本书将与编程无关的理论均剔除,在后面的程序中,以下的理论公式均有所体现。
单元内某一点的位移,可通过形函数与节点位移描述。
单元内位移场可描述为:
矩阵表示法:
简写:
形函数 也可以反映母单元和子单元的映射关系,设母单元内部一点的坐标为 ,可由形函数插值得到:
雅可比矩阵可表示为:
不要被上面的表达式所吓倒哈!其实在数值编程的过程中,可以把它换成另一种形式:
如此以来是不是简单许多,左侧项为形函数的偏导矩阵,右侧项为节点坐标。
function [JacobianMatrix,XYDerivatives] = Jacobian(nodeCoordinates,naturalDerivatives)
JacobianMatrix = nodeCoordinates'*naturalDerivatives;
XYDerivatives = naturalDerivatives/JacobianMatrix;
end
单元内某一点的应变,可通过几何矩阵 与节点位移描述。
其中,
再次展开:
以上的公式中体现的是形函数对物理坐标轴的偏导,这时候就可以用等参变换关系,用母单元的形函数偏导来表示。
进一步变换:
针对线弹性各向同性材料,平面应力状态下:
平面应变状态:将上式中 的换为 即可。
在对单元区域内进行积分时,可采用高斯—勒让德数值积分技术,至于为什么选用这个积分方法,我的猜想是与勒让德多项式积分区间在[-1,1]之内有关,个人猜想哈。
上式中,t为单元厚度,ngp为高斯积分点的数量,W为高斯点的权重系数。常用高斯积分点位置及权重系数汇总见下表:
for n=1:size(gaussWeights,1)
% 高斯积分点位置
xi_Gauss=gaussLocations_cols(n,1);
eta_Gauss=gaussLocations_cols(n,2);
% 形函数在自然坐标系下的偏导
[shapeFunction,naturalDerivatives] = shapeFunctionQuad(xi_Gauss,eta_Gauss,elemType);
% 计算雅可比矩阵及形函数在物理坐标系下的偏导
[Jacob,XYderivatives]=Jacobian(elemNodeCoordinate,naturalDerivatives);
% 计算几何矩阵B
B(1,1:2:end) = XYderivatives(:,1)';
B(2,2:2:end) = XYderivatives(:,2)';
B(3,1:2:end) = XYderivatives(:,2)';
B(3,2:2:end) = XYderivatives(:,1)';
% 积分点循环计算单元刚度矩阵
k = k+B.'*D*t*B*gaussWeights(n)*det(Jacob);
end
绕节点平均应力技术和面力、体力施加与前一节的常应变三角形单元完全一样,可以照搬,这里就不详细展开了。
可参考历史推文:有限元计算过程中积分点应力如何外插至节点处?【公式推导篇】和单元积分点应力如何外插至节点上 | 数值实现篇。
核心理念:坐标系的转换。
假设 是母单元的自然坐标系, 是由高斯积分点控制的坐标系(术语可能不专业),假设高斯积分方案为 。坐标系转换关系:
单元内任一点的应力 ,由4个高斯积分点应力 进行插值时,可表示为
其中, 是基于高斯积分点的形函数,第一个积分点的坐标在母单元坐标系下为(-1,-1),根据上述的坐标系转换的方式,在高斯积分点的坐标系下,第一个单元节点在高斯积分点坐标系下坐标为 ,将此坐标值代入第一个形函数,得 ,相同的道理,可推导至四个节点在4个形函数下的 外插矩阵:
for i = 1:3
StressElem(e,:,i) = [1+0.5*sqrt(3) -0.5 1-0.5*sqrt(3) -0.5;
-0.5 1+0.5*sqrt(3) -0.5 1-0.5*sqrt(3);
1-0.5*sqrt(3) -0.5 1+0.5*sqrt(3) -0.5;
-0.5 1-0.5*sqrt(3) -0.5 1+0.5*sqrt(3)]*...
[stress(e,1,i);stress(e,2,i);stress(e,3,i);stress(e,4,i)];
end
先考虑如下的单侧受拉模型,如下图所示,模型左侧节点的自由度被固定(UX=UY=0),右侧的节点承受大小为1向右的位移,材料属性见前处理文件:
*Material
1e+06,0.3,1.0,1
弹性模量,泊松比,厚度,平面应力/应变标识
场输出变量有: