资源描述:
《平面8节点等参元子程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、平面8节点等参元子程序!平面8节点等参元程序!清华大学土木工程系:陆新征moduleElem_Rect8!八节点等参元implicitnoneinteger(kind(1)),parameter::ikind=(kind⑴)integer(kind(1))5parameter::rkind=(kind(O.dO))type::typ_Kcolreal(rkind),pointer::Row(:)endtypetyp_Kcoltype::typ_GValue!总体控制变量integer(ikind)::NN
2、ode,NEIem,NLoad,NMat,NSupportinteger(ikind)::NGIbDOF!整体口由度总数integer(ikind)::NGENS,NodeDOF.EIemNodeNointeger(ikind)::Nlntendtypetyp_GValuetypeTyp_Node!定义节点类型real(rkind)::coord(2)integer(ikind)::GDOF(2)real(rkind)::DISP(2)real(rkind)::dDISP(2)!节点坐标!整体H由度编码!
3、节点位移!节点位移增量real(rkind)::dForce(2)!节点不平衡力endtypetyp_NodeTypetyp_lntPoint!定义枳分点参数real(rkind)::EPS⑶real(rkind)::SIG(3)real(rkind)::D(3,3)real(rkind)::B(3,16)real(rkind)::DETJendtypeTyp」ntPoint!应变!应力!本构矩阵!几何矩阵!雅克比行列式typeTyp_Rect8!定义实体单元integer(ikind)::NodeNo(
4、8)!节点编号real(rkind)::Ereal(rkind)::ureal(rkind)::treal(rkind)::EK(16,16)type(typ_intpoint)::lntP(9)endtypeTyp_Rect8typeTyp_Load!定义荷载类型integer(ikind)::NodeNoreal(rkind)::Value(2)endtypeTyp_LoadtypeTyp_Support!定义支座类型integer(ikind)::NodeNointeger(ikind)::DOFr
5、eal(rkind)::ValueendtypeTyp_Support!弹性模量!泊松比!单元厚度!单元刚度矩阵!积分点!荷载作用节点编号!荷载大小!支座节点编号!支座约束自由度!支座位移大小containssubroutineGet_Elem_K(GValue,Elem,Node)!核心程序,得到单元的刚度矩阵implicitnonetype(typ_GValue)::GValuetype(typ_Node)::Node(:)type(typ_Rec⑹::Elem(:)real*8::lnvJ(2,2)
6、real*8::Coord(8,2),lntPCoord(9,2),lntPwt(9),dN(2,8)integer::l,ElemNocallGet_lntP_Prop(lntPCoord,lntPWt)!计算积分点信息doElemNo=1,size(Elem)Elem(ElemNo)%EK=0.0do1=1,GValue%ElemNodeNo;!得到节点处标coord(l,:)=Node(Elem(ElemNo)%NodeNo(i))%coord;enddoElem(ElemNo)%EK=OdODO1
7、=1,size(Elem(ElemNo)%lntP)!计算本构矩阵callGet_D(Elem(ElemNo)%lntP(l)%D,Elem(ElemNo)%E,Elem(ElemNo)%u)!计算形函数对局部坐标导数callGet_dN_dxi(dN,lntPCoord(i,1),lntPCoord(i,2))lnvJ=matmul(dN,Coord)!得到雅克比行列式Elem(ElemNo)%lntP(l)%DETJ=lnvJ(1,1)*lnvJ(2,2)-lnvJ(1,2)*lnvJ(2,1)lnv
8、J=matinv(lnvJ);!对雅克比行列式求逆dN=matmul(lnvJ,dN)!得到形函数対整体坐标的导数callGet_B(Elem(ElemNo)%lntP(l)%B,dN)!得到几何矩阵Elem(ElemNo)%EK=Elem(ElemNo)%EK+&matmul(matmul(transpose(Elem(ElemNo)%lntP(l)%B),&Elem(ElemNo)%lntP(l)%D),Elem(Elem