小百 发表于 2005-6-16 19:28:37

[ 求助]FORTRAN中大型数组的存储和求解

各位大侠们,如何存储求解几十万非零元素的数组?
我写了一个十字链表可以存储,但是用Gauss消去法求解的时候,释放的内存不能重新利用,程序不断地开新内存最后导致计算的速度下降。搞得现在是一筹莫展啊。各位有什么好办法,先行叩首谢过了。

BG 发表于 2005-6-16 19:58:39

Re:[ 求助]FORTRAN中大型数组的存储和求解

ELEMENT-BY-ELMENT 和 PCG 联合运用试试,最好是采用并行结构的
EBE--PCG方法应该能有所改善吧,我刚接触,没有做过,你不妨试试,我们可以交流一下的,呵呵

hillyuan 发表于 2005-6-17 09:25:00

Re:[ 求助]FORTRAN中大型数组的存储和求解

几十万非零元素的数组对现在的计算机来说只是小儿科了,用稀疏矩阵存储即可。另外现在这方面的公开源码甚多(本人曾贴出了列表,可参考),用不着把时间化在这上面。

小百 发表于 2005-6-17 15:40:49

Re:[ 求助]FORTRAN中大型数组的存储和求解

谢谢hillyuan,去找找看。再问一句,稀疏矩阵存储是怎么存储?
我是学固体力学的,对计算机方面一窍不通,还请多多指教。

hillyuan 发表于 2005-6-17 18:32:33

Re:[ 求助]FORTRAN中大型数组的存储和求解

稀疏矩阵存储是怎么存储
=>只存储非零数,另外定义两个数组指示非零数的行列位置。

我是学固体力学的
-> 我也是。

对计算机方面一窍不通
=>能写出链表结构,这样说过谦了. 不过看起来你是闭门造车型,这么基础的东西,参考资料到处都有啊。

小百 发表于 2005-6-17 18:42:51

Re:[ 求助]FORTRAN中大型数组的存储和求解

hillyuan老大,简直要崇拜您了。

dynacn 发表于 2005-6-23 10:33:33

Re:[ 求助]FORTRAN中大型数组的存储和求解

我写了FORTRAN程序,仅存非零元素,一般十几万自由度非零元素也只有一百多万,在写求解程序时采用预优迭代法,总体来看比ansys的计算速度慢多了,不知有没有哪位写过大型稀疏对称正定方程组的直接求解程序(就是对方程首先进行排序,然后进行符号分解进而数值分解的程序)

hillyuan 发表于 2005-6-23 10:48:16

Re:[ 求助]FORTRAN中大型数组的存储和求解

不知有没有哪位写过大型稀疏对称正定方程组的直接求解程序=>

http://www.simwe.com/forum/viewthread.php?tid=438632
页: [1]
查看完整版本: [ 求助]FORTRAN中大型数组的存储和求解