资源描述:
《平面8节点等参元完整程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、平面8节点等参元完整程序moduleElem_Rect8!八节点等参元implicitnoneinteger(kind(1)),parameter::ikind=(kind(1))integer(kind(1)),parameter::rkind=(kind(0.d0))type::typ_Kcolreal(rkind),pointer::Row(:)endtypetyp_Kcoltype::typ_GValue!总体控制变量integer(ikind)::NNode,NElem,NLoad,NMat,NSupportinteger(ikind)::NGlbDOF!整体自
2、由度总数integer(ikind)::NGENS,NodeDOF,ElemNodeNointeger(ikind)::NIntendtypetyp_GValuetypeTyp_Node!定义节点类型real(rkind)::coord(2)!节点坐标integer(ikind)::GDOF(2)!整体自由度编码real(rkind)::DISP(2)!节点位移real(rkind)::dDISP(2)!节点位移增量real(rkind)::dForce(2)!节点不平衡力endtypetyp_Node!==================================
3、===========================================Typetyp_IntPoint!定义积分点参数real(rkind)::EPS(3)!应变real(rkind)::SIG(3)!应力real(rkind)::D(3,3)!本构矩阵real(rkind)::B(3,16)!几何矩阵real(rkind)::DETJ!雅克比行列式endtypeTyp_IntPointtypeTyp_Rect8!定义实体单元integer(ikind)::NodeNo(8)!节点编号real(rkind)::E!弹性模量real(rkind)::u!泊松
4、比real(rkind)::t!单元厚度real(rkind)::EK(16,16)!单元刚度矩阵type(typ_intpoint)::IntP(9)!积分点!........................endtypeTyp_Rect8typeTyp_Load!定义荷载类型integer(ikind)::NodeNo!荷载作用节点编号real(rkind)::Value(2)!荷载大小endtypeTyp_LoadtypeTyp_Support!定义支座类型integer(ikind)::NodeNo!支座节点编号integer(ikind)::DOF!支座约束自由
5、度real(rkind)::Value!支座位移大小endtypeTyp_SupportcontainssubroutineGet_Elem_K(GValue,Elem,Node)!核心程序,得到单元的刚度矩阵implicitnonetype(typ_GValue)::GValuetype(typ_Node)::Node(:)type(typ_Rect8)::Elem(:)real*8::InvJ(2,2)!雅克比矩阵及其逆矩阵real*8::Coord(8,2),IntPCoord(9,2),IntPwt(9)real*8::dN(2,8)!节点坐标,积分点坐标,权函数
6、,形函数导数integer::I,ElemNocallGet_IntP_Prop(IntPCoord,IntPWt)!计算积分点信息doElemNo=1,size(Elem)Elem(ElemNo)%EK=0.0doI=1,GValue%ElemNodeNo;!得到节点坐标coord(I,:)=Node(Elem(ElemNo)%NodeNo(i))%coord;enddoElem(ElemNo)%EK=0d0DOI=1,size(Elem(ElemNo)%IntP)!计算本构矩阵callGet_D(Elem(ElemNo)%IntP(I)%D,Elem(ElemNo)%
7、E,Elem(ElemNo)%u)!计算形函数对局部坐标导数callGet_dN_dxi(dN,IntPCoord(i,1),IntPCoord(i,2))InvJ=matmul(dN,Coord)!得到雅克比行列式Elem(ElemNo)%IntP(I)%DETJ=InvJ(1,1)*InvJ(2,2)-InvJ(1,2)*InvJ(2,1)InvJ=matinv(InvJ);!对雅克比行列式求逆dN=matmul(InvJ,dN)!得到形函数对整体坐标的导数callGet_B(Elem(ElemNo)%IntP(I)%B,