sbzhanglangming 发表于 2010-11-24 16:57:27

哪位有分块解法的源程序啊

为了解决老板的有限元大自由度问题,最近在研究王勖成《有限单元法》上的分块解法,但书上讲的不是很详细,特别是那句“以二维等带宽存储为例,只要网格的结点编号和单元编号合理,很容易做到进入内存的系数矩阵只有最后的D行元素集成尚未完毕。”我觉得应该是可以全部集成的,因为所有的单元的单刚矩阵都是可以求得的,我不理解这句话的意思,可能我没看到过源程序,希望哪位大侠提供下以供参考。

pasuka 发表于 2010-11-24 23:01:13

为了解决老板的有限元大自由度问题,最近在研究王勖成《有限单元法》上的分块解法,但书上讲的不是很详细,特别是那句“以二维等带宽存储为例,只要网格的结点编号和单元编号合理,很容易做到进入内存的系数矩阵只有 ...
sbzhanglangming 发表于 2010-11-24 16:57 http://forum.simwe.com/images/common/back.gif
这种方法和一维变带宽方法已经被扬弃了~现在都是用稀疏矩阵存储方法
具体可以查看北大袁明武的文章

penultimate 发表于 2010-11-25 10:35:50


这种方法和一维变带宽方法已经被扬弃了~现在都是用稀疏矩阵存储方法
具体可以查看北大袁明武的文章
pasuka 发表于 2010-11-24 23:01 http://forum.simwe.com/images/common/back.gif
直接采用sparse matrix方式,跳跃太大,
在进行矩阵求解时,要用到图论的知识,除非这方面的知识已经足够。
北大的求解器使用的也是开源的代码解决这部分问题的吧。
建议楼主仍然采用内外存交换的方法,逻辑简单,程序可控。
在需要锦上添花时,再考虑sparse matrix的方法

pasuka 发表于 2010-11-25 11:02:40


直接采用sparse matrix方式,跳跃太大,
在进行矩阵求解时,要用到图论的知识,除非这方面的知识已经足够。
北大的求解器使用的也是开源的代码解决这部分问题的吧。
建议楼主仍然采用内外存交换的方法,逻辑简单 ...
penultimate 发表于 2010-11-25 10:35 http://forum.simwe.com/images/common/back.gif
没有什么大的难度~在matlab里面或者Fortran编程都是非常简单的事情
matlab的涉及矩阵求解的内置函数都已经支持稀疏矩阵了
Fortran的话,安装ivf专业版后,只要用标准的压缩行或压缩列,甚至matlab那种坐标存储格式即可,mkl自带各种存储格式转换函数的,矩阵求解的话,调用pardiso,自动并行效率高多了。
不喜欢mkl的话,去HSL下载MA57、MA47的代码,都支持稀疏矩阵存储格式的。

sbzhanglangming 发表于 2010-11-25 14:27:28

3# penultimate
谢谢你啊不知道这种内外存交换的程序哪里可以找到? 我要写的是二维半带宽存储,一部分系数矩阵集成消元修正后利用数据库作为外存贮,不知道我这种思路好不好实现,还烦请高手指教。

sbzhanglangming 发表于 2010-11-25 14:39:10

4# pasuka
兄弟真是高手,但本人对数值计算了解不深,能否详细讲下具体操作方法 谢谢

pasuka 发表于 2010-11-25 16:24:37

4# pasuka
兄弟真是高手,但本人对数值计算了解不深,能否详细讲下具体操作方法 谢谢
sbzhanglangming 发表于 2010-11-25 14:39 http://forum.simwe.com/images/common/back.gif
仅供参考吧

penultimate 发表于 2010-11-25 17:24:45


没有什么大的难度~在matlab里面或者Fortran编程都是非常简单的事情
matlab的涉及矩阵求解的内置函数都已经支持稀疏矩阵了
Fortran的话,安装ivf专业版后,只要用标准的压缩行或压缩列,甚至matlab那种坐标存储格 ...
pasuka 发表于 2010-11-25 11:02 http://forum.simwe.com/images/common/back.gif
一语惊醒梦中人!
IVF关于稀疏矩阵求解的文档和背景资料全吗?

pasuka 发表于 2010-11-26 08:54:56


一语惊醒梦中人!
IVF关于稀疏矩阵求解的文档和背景资料全吗?
penultimate 发表于 2010-11-25 17:24 http://forum.simwe.com/images/common/back.gif
MKL里面帮助文档写得挺详细的,例子也很多。具体算法原理没有仔细看
页: [1]
查看完整版本: 哪位有分块解法的源程序啊