声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2644|回复: 8

[Fortran] 可以建立矩阵类型的FUNCTION 么?

[复制链接]
发表于 2006-12-29 13:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
FORTRAN中 FUNCTION 可以很方便地自己编写函数,我的问题是能否用到矩阵里面啊?矩阵中的每一个元素都是一个FUNCTION,请教FORTRAN 高手~
回复
分享到:

使用道具 举报

发表于 2007-1-1 10:30 | 显示全部楼层
我想Fortran不支持这种特性。

你是不是想对一个矩阵中的不同元素进行不同的function call?
 楼主| 发表于 2007-1-2 20:00 | 显示全部楼层

我做的是采用全局形函数的结构有限元问题

我要做的是全局形函数的有限元问题,在求结构的刚度和质量矩阵的时候,必然要在整个求解域求解,我想要矩阵类似MATLAB一样可以对矩阵内的元素求导或者积分~

我是这样做的:
1 建立全局的形函数矩阵N,特殊情况形函数就是各阶振型,前面的系数就类似广义的坐标;
2 然后对 N'*N进行积分,就得到质量矩阵
上面的积分可以用高斯积分,也可以用现成的函数积分进行(VF里面有了函数积分的命令).我用MATLAB编写了一个程序但是计算效率特别低下,计算一个10自由度问题要用几个小时而且占用内存还很大,基本不能用!

请问全局形函数问题 大家的积分是怎么处理的?高斯积分么?
发表于 2007-1-2 20:29 | 显示全部楼层
我也是用MATLAB搞计算。我的经验是:
  尽量不要用循环,多用向量,矩阵。
   我将原来的代码改进后(将循环全部该为向量,对于二重循环是矩阵),计算时间只是原来的
1/10,甚至几十分之一。

评分

1

查看全部评分

 楼主| 发表于 2007-1-2 21:27 | 显示全部楼层

太对了,我觉得就是这个问题

Pengweicai说的太对了,提醒了我,我马上就修改程序试试,我这个程序分别用了3个循环,一个是频率,另外两个是空间的坐标,我以前也是遇到类似的问题,可惜总结不够!

太感谢了!:handshake :lol :victory:
发表于 2007-1-3 09:11 | 显示全部楼层
原帖由 confer 于 2007-1-2 21:27 发表
Pengweicai说的太对了,提醒了我,我马上就修改程序试试,我这个程序分别用了3个循环,一个是频率,另外两个是空间的坐标,我以前也是遇到类似的问题,可惜总结不够!

太感谢了!:handshake :lol :victory:


matlab程序编写方法对计算效率的影响确实很大,可以有很大的提升余地
但是如果是搞计算,不管怎么样设计程序,其效率和fortran比起来还是相差很远的
发表于 2007-1-3 09:13 | 显示全部楼层
原帖由 confer 于 2007-1-2 20:00 发表
我要做的是全局形函数的有限元问题,在求结构的刚度和质量矩阵的时候,必然要在整个求解域求解,我想要矩阵类似MATLAB一样可以对矩阵内的元素求导或者积分~

我是这样做的:
1 建立全局的形函数矩阵N,特殊情况形 ...



还是没太搞清楚具体要实现什么?
 楼主| 发表于 2007-1-3 18:23 | 显示全部楼层

瑞利里兹方法中,刚度阵和质量阵的计算

原帖由 风花雪月 于 2007-1-3 09:13 发表



还是没太搞清楚具体要实现什么?



一般情况有限元是采用局部坐标的,这个刚度阵和质量阵是在局部坐标下积分的,用的是高斯积分点的累加方法实现数值积分,但是对于瑞利里兹方法由于试探函数是全局的,所以刚度阵和质量阵一定要采用全局坐标的积分形式,我也采用高斯积分的形式已经编写了程序,但是即使用FORTRAN效率也很低,可能是中间非零的稀疏矩阵我没有特别处理的原因,内存占用很大,计算缓慢!
发表于 2007-1-4 08:48 | 显示全部楼层
原帖由 confer 于 2007-1-3 18:23 发表
一般情况有限元是采用局部坐标的,这个刚度阵和质量阵是在局部坐标下积分的,用的是高斯积分点的累加方法实现数值积分,但是对于瑞利里兹方法由于试探函数是全局的,所以刚度阵和质量阵一定要采用全局坐标 ...


有限元程序,稀疏矩阵时必须要处理的,否则效率必然低下,至少也要做一下二维等带宽处理
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-10 23:34 , Processed in 0.065186 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表