有限元刚度矩阵的一维变带宽存储用C++实现(一)

       有限元计算中的刚度矩阵是稀疏、对称矩阵,经过各个自由度的合理排序可以使得其中的非零元素集中在主对角线附近,形成带状矩阵。这样的稀疏带状矩阵在存储时一般有“二维等带宽”和“一维变带宽”存储两种方式。其中,“一维变带宽”存储可以节省大量的内存空间,提高计算速度,但现在网上大多数“一维变带宽”存储的资料都是基于 Fortran语言的,下面讨论“一维变带宽”存储的C++实现。以下仅仅是我自己学习的心得体会,如果大大们发现问题,欢迎提出讨论微笑
        限于篇幅,关于“一维变带宽”存储的详细原理就不赘述了,有兴趣的同学可以去看有限元程序设计的书籍,下面仅讨论其C++实现。

      “一维变带宽”存储需要一个存储刚度矩阵中带内元素的一维数组pGK[L](L为带内元素总数),和一个用于存储刚度矩阵中各行主对角线上元素在数组pGK[L]中的序号(称作对角元地址) 的一维辅助数组pDiag[n](n为刚度矩阵阶数)。由于刚度矩阵中元素关于主对角线对称,故pGK[L]中只存

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值