24小时热门版块排行榜    

查看: 1795  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

11hours

铜虫 (小有名气)

[求助] matlab 有限元计算扩散问题,建立整体矩阵好慢。大家帮忙看看代码

扩散问题,其中有应力场作用。在建立整体矩阵时(不知道该叫什么名字)速度很慢。先贴段代码,就这段特别慢。

UK1=zeros(NodeNum,NodeNum);%NodeNum=443 是节点数量
UK2=zeros(NodeNum,NodeNum);
%不知道组装整体矩阵的方法对不对,我是把单元矩阵的元素放到整体矩阵对应的节点位置上,累加。这是不是叫贡献法?
for EN=1:EleNum%EleNum=401单元数量
    Bi=subs(B,{x1,x2,x3,x4,y1,y2,y3,y4},...%{C,x C,y}T=[B]{C},{C}是单元的四个节点浓度,B就是求C梯度的矩阵。B中变量有,单元局部坐标xi 和 eta,整体坐标{x1,x2,x3,x4,y1,y2,y3,y4}
        {Node(Elem(EN,2),2),Node(Elem(EN,3),2),Node(Elem(EN,4),2),Node(Elem(EN,5),2),...
        Node(Elem(EN,2),3),Node(Elem(EN,3),3),Node(Elem(EN,4),3),Node(Elem(EN,5),3)});
    Press=[Pressure(Elem(EN,2),2),Pressure(Elem(EN,3),2),Pressure(Elem(EN,4),2),Pressure(Elem(EN,5),2)]';%Pressure是节点应力矩阵。第一列是节点号,第二列是应力值,
%Node()是节点坐标矩阵,第一列是编号,第二列和三列是x y坐标。Elem()是单元矩阵,第一列是单元编号,第2至5列是四个节点的编号。
%这段我是想把每个单元节点的坐标代入B,下来就可以对xi 和 eta积分了。   
    dK1=Bi'*Bi;
    dK2=Bi'*VH/R/T*Bi*Press*A; %VH/R/T都是常数,Press每个载荷步要变——!
    %积分K1
    [r,c]=size(dK1);
    K1=zeros(r,c);
    for m=1:r
     for n=1:c
      dk1=matlabFunction(dK1(m,n));
      K1(m,n)=dblquad(dk1,-1,1,-1,1);
     end
    end
    %积分K2
    [r,c]=size(dK2);
    K2=zeros(r,c);
    for m=1:r
     for n=1:c
      dk2=matlabFunction(dK2(m,n));
      K2(m,n)=dblquad(dk2,-1,1,-1,1);
     end
    end
    %组装UK1,UK2
    UK1Loc=Elem(EN,2:5); %确定总体矩阵中的存放位置
    for i=1:4
        for j=1:4
            UK1(UK1Loc(1,i),UK1Loc(1,j))=UK1(UK1Loc(1,i),UK1Loc(1,j))+K1(i,j);
            UK2(UK1Loc(1,i),UK1Loc(1,j))=UK2(UK1Loc(1,i),UK1Loc(1,j))+K2(i,j);
        end
    end
    %UK组装完毕
end
%%%%%%%%%结束
UK1也就罢了,组装一次也就行了,以后不会变。但UK2中有个Press是每个载荷步要变。
dK2=Bi'*VH/R/T*Bi*Press*A;

[r,c]=size(dK2);
    K2=zeros(r,c);
    for m=1:r
     for n=1:c
      dk2=matlabFunction(dK2(m,n));
      K2(m,n)=dblquad(dk2,-1,1,-1,1);
     end
    end
这样每个载荷步都要求一次K2,而每次求都会很慢。
初次自己写有限元程序,大家帮我看看:
1、整体矩阵组装的方法对不对
2、积分有没有更快的方法。
3、整个过程能不能加速。
谢谢
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

seekforunite

木虫 (著名写手)

★ ★
xiegangmai: 金币+2, 谢谢参与 2012-11-04 19:21:33
楼主的问题解决了没?其实采用matlab编写有限元程序时,如果采用先计算出刚度阵元素再逐个累加到总体刚度阵中,则确实是很费时。
解决的方法之一采用稀疏矩阵sparse解决,楼主可以查找sparse的相关的帖子。
坚持努力!
8楼2012-11-03 10:19:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

awenluxm

禁虫 (正式写手)


感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢参与! 2012-07-09 00:04:16
本帖内容被屏蔽

2楼2012-07-08 23:39:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

有限元的计算量很大的,完全不适合用matlab来做
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
3楼2012-07-09 08:56:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

11hours

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by awenluxm at 2012-07-08 23:39:52
我建议你用通用有限元软件!更成熟

我要计算的载荷步很多,还有些特殊结果通用的没法计算。
4楼2012-07-09 10:05:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 基金评审时,评审专家还回去看申请人代表作之外的文章吗? +8 孤单12站 2024-06-26 11/550 2024-06-26 19:29 by IceBreak_l
[基金申请] 今年什么时候会评啊 +8 lancet0903 2024-06-24 8/400 2024-06-26 19:11 by binfriedman
[基金申请] 国基在研影响申请结果吗 +10 WOWO159357 2024-06-26 10/500 2024-06-26 18:19 by 德尚中行
[有机交流] 有机物的酸酐如何准确表征 10+3 方酱 2024-06-24 7/350 2024-06-26 17:53 by 宁静远行
[有机交流] 大佬们,打的核磁氢谱与chemdraw预测的有偏差 +5 来了个 2024-06-26 5/250 2024-06-26 17:28 by Jasonlin7758
[考研] 刚当完兵回来想考研 +7 五官在线 2024-06-23 18/900 2024-06-26 17:05 by 1158057902
[论文投稿] 投稿求助 +5 平凡的日子 2024-06-19 6/300 2024-06-26 16:38 by 大大熊呀
[基金申请] 博后面上今天下午会公布吗?有无消息? +26 hajkdfdf 2024-06-24 43/2150 2024-06-26 16:04 by kyukitu
[基金申请] 博后面上和特助今天出吗? +41 逗您玩 2024-06-21 78/3900 2024-06-26 16:00 by HAPPY_0225
[基金申请] 刚刚收到科研之友邮件 +30 olivermiaoer 2024-06-19 44/2200 2024-06-26 13:11 by 芦苇薇薇~
[教师之家] 神奇的中医 +8 水冰月月野兔 2024-06-24 10/500 2024-06-26 12:10 by lyfbangong
[基金申请] 今天能不能出来名单 +8 地理学1995 2024-06-25 10/500 2024-06-26 09:46 by msjy
[硕博家园] 考博英语 +5 198新用户 2024-06-25 10/500 2024-06-26 08:09 by 地狱伞兵
[基金申请] 基金申请书名称有变化 +5 xuel2011 2024-06-25 7/350 2024-06-26 00:07 by 老虎当猫养
[第一性原理] Vasp 版权问题 10+4 竹叶青9 2024-06-22 5/250 2024-06-25 14:58 by 无所谓109
[教师之家] 复旦夏同学提出高校成年人学生退学不应该让家长审核,大家认同吗? +10 苏东坡二世 2024-06-22 17/850 2024-06-24 16:52 by wanghuawei
[有机交流] 生成亚胺的反应怎么能进行完全 +3 1369836 2024-06-23 3/150 2024-06-23 18:44 by hwqMSE
[论文投稿] OSA期刊审稿逾期 +3 Thomas_Squid 2024-06-22 3/150 2024-06-23 15:20 by wspglt
[基金申请] F03青年基金函评结果 +5 暨阳一只柴 2024-06-19 6/300 2024-06-23 14:30 by adsqsj
[基金申请] 工材口青年基金大概什么样能上会? +15 今晚推荐22 2024-06-20 21/1050 2024-06-22 23:04 by qbn0326
信息提示
请填处理意见