matlab 有限单元法
平面8节点等参元完整程序
module Elem_Rect8 ! 八节点等参元
implicit none
integer (kind(1)),parameter ::ikind=(kind(1))
integer (kind(1)),parameter ::rkind=(kind(0.d0))
type :: typ_Kcol
real(rkind),pointer :: Row(:)
end type typ_Kcol
type :: typ_GValue !总体控制变量
integer(ikind) :: NNode, NElem, NLoad, NMat, NSupport
integer(ikind) :: NGlbDOF !整体自由度总数
integer(ikind) :: NGENS, NodeDOF,ElemNodeNo
integer(ikind) :: NInt
end type typ_GValue
type Typ_Node !定义节点类型
real(rkind) :: coord(2) !节点坐标
integer(ikind) :: GDOF(2) !整体自由度编码
real(rkind) :: DISP(2) !节点位移
real(rkind) :: dDISP(2) !节点位移增量
real(rkind) :: dForce(2) !节点不平衡力
end type typ_Node
!=============================================================================
Type typ_IntPoint !定义积分点参数
real(rkind) :: EPS(3) !应变
real(rkind) :: SIG(3) !应力
real(rkind) :: D(3,3) !本构矩阵
real(rkind) :: B(3,16) !几何矩阵
real(rkind) :: DETJ !雅克比行列式
end type Typ_IntPoint
type Typ_Rect8 !定义实体单元
integer(ikind) :: NodeNo(8) !节点编号
real(rkind) :: E !弹性模量
real(rkind) :: u !泊松比
real(rkind) :: t !单元厚度
real(rkind) :: EK(16,16) !单元刚度矩阵
type(typ_intpoint) :: IntP(9) !积分点