变带宽总刚集成和求解简单程序例子.docVIP

变带宽总刚集成和求解简单程序例子.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
01 变带宽总刚集成及求解简单程序例子 C ============================================ C 变带宽总刚集成及求解简单程序例子 C LU分解法,in-core only C 主要参考文献: C 1. 袁驷 程序结构力学 C 2. 江见鲸 陆新征 叶列平 混凝土结构有限元分析 C ============================================ module MatSolve use Lxz_Tools use TypeDef use Elem_Prop implicit none integer :: NGlbDOF !总自由度数 contains subroutine Get_GK(GValue,Node,Elem,Rebar,Load,Support,Initial_Load) type(typ_GValue) :: GValue ! 总体控制变量数据结构 type(typ_Node) :: Node(:) ! 节点性质数据结构数组 type(typ_Elem) :: Elem(:) ! 混凝土单元性质数据结构数组 type(typ_Rebar) :: Rebar(:) ! 钢筋单元性质数据结构数组 type(typ_Load) :: Load(:) ! 荷载数据结构数组 type(typ_Load) :: Initial_Load(:) ! 初始荷载数据结构数组 type(typ_Support) :: Support(:) ! 支座数据结构数组 type(typ_Kcol),allocatable :: Kcol(:) ! 变带宽总体刚度矩阵数组 real(rkind),allocatable :: GLoad(:), GDisp(:) ! 荷载,位移向量 integer(ikind) :: BandWidth(2*GValue%NNode) !带宽 real(rkind) :: Plenty ! 支座罚函数 integer(ikind) :: ELocVec(8) integer(ikind) :: I,J,K integer(ikind) :: MinDOFNum NGlbDOF=2*GValue%NNode !计算总自由度数 Plenty=1.0 allocate(GLoad(NGlbDOF)) allocate(GDisp(NGlbDOF)) !查找带宽 do I=1,NGlbDOF BandWidth(I)=I end do do I=1,GValue%NElem do J=1,4 ELocVec(J*2-1)=2*Elem(I)%NodeNo(J)-1 ELocVec(J*2)=2*Elem(I)%NodeNo(J) end do MinDOFNum=minval(ELocVec) do J=1,8 BandWidth(ELocVec(J))=min(MinDOFNum,BandWidth(ELocVec(J))) end do end do do I=1,GValue%NRebar do J=1,2 ELocVec(J*2-1)=2*Rebar(I)%NodeNo(J)-1 ELocVec(J*2 )=2*Rebar(I)%NodeNo(J) end do MinDOFNum=minval(ELocVec(1:4)) do J=1,4 BandWidth(ELocVec(J))=min(MinDOFNum,BandWidth(ELocVec(J))) end do end do ! 总刚矩阵分配内存 allocate(Kcol(NGlbDOF)) do I=1, NGlbDOF allocate(Kcol(I)%Row(BandWidth(I):I)) Kcol(I)%Row=0.d0 end do ! 单元自由度向量生成及总刚集成 do I=1, GValue%NElem do J=1,4 ELocVec(J*2-1)=2*Elem(I)%NodeNo(J)-1 ELocVec(J*2)=2*Elem(I)%NodeNo(J) end do do J=1,8 do K=1,J if(ELocVec(J)ELocVec(K)) then Kcol(ELocVec(J))%row(ELocVec(K))= Kcol(ELocVec(J))%row(ELocVec(K))+Elem(I)%EK(J,K) else Kcol(ELocVec(K))%row(ELocVec(J))= Kcol(ELocVec(K))%row(ELocVec(J))+Elem(I)%EK(J,K) end if end do end do ! 罚函数法确定边

文档评论(0)

139****3928 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档