24小时热门版块排行榜    

查看: 1794  |  回复: 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的回帖

baobiao007

木虫 (职业作家)

中国特色

有限元的计算量很大的,完全不适合用matlab来做
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
3楼2012-07-09 08:56:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 11hours 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 基金评审时,评审专家还回去看申请人代表作之外的文章吗? +8 孤单12站 2024-06-26 11/550 2024-06-26 19:29 by IceBreak_l
[有机交流] 有机物的酸酐如何准确表征 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
[硕博家园] 博士该不该读? +8 L1009225316 2024-06-25 8/400 2024-06-26 16:26 by huixiong0627
[论文投稿] 我在写关于多维空间的论文,希望能与大家交流,准备在science上发表 +8 lgf519 2024-06-24 10/500 2024-06-26 16:25 by 梦渺岚烟
[基金申请] 青年基金E02口青基去年几个函评专家? +6 他山攻玉之石 2024-06-25 9/450 2024-06-26 15:09 by 他山攻玉之石
[基金申请] 要持续整治滥发“帽子”、“牌子”之风 +6 babu2015 2024-06-25 6/300 2024-06-26 14:52 by felicity6056
[基金申请] 评审专家会不会很在意申请人的单位啊 +11 lancet0903 2024-06-24 13/650 2024-06-26 11:42 by 漠上藜梭
[基金申请] 厅级项目出校却没中 +13 Iwould 2024-06-23 20/1000 2024-06-26 06:14 by foolishmani
[基金申请] 基金申请书名称有变化 +5 xuel2011 2024-06-25 7/350 2024-06-26 00:07 by 老虎当猫养
[基金申请] 博后面上到底什么时候出结果??? +7 爱学lsy 2024-06-24 7/350 2024-06-25 19:24 by 暴走的蒜泥
[基金申请] 能看出是否上会了吗 +10 articlefan 2024-06-23 15/750 2024-06-25 16:05 by 请慎重修改昵称
[硕博家园] 数据不好 +5 Hetai 2024-06-23 7/350 2024-06-25 12:37 by 1591099
[有机交流] 求助析晶问题 20+4 dengdawang 2024-06-24 5/250 2024-06-24 21:22 by cc116
[金属] EBSD的解析率只有10% +3 wallace6666 2024-06-20 7/350 2024-06-24 16:52 by wallace6666
[基金申请] 说博后基金7月出的真打电话了吗? +12 antonysole 2024-06-24 14/700 2024-06-24 13:39 by sizhouyi
[基金申请] 青年和面上,哪个上会难度更大 +12 今晚推荐22 2024-06-21 18/900 2024-06-24 11:08 by 半简体
[公派出国] 博士csc联培会看重第一学历学校层次吗 +4 也就这样 2024-06-23 4/200 2024-06-24 08:18 by 晓目崇
[基金申请] F03青年基金函评结果 +5 暨阳一只柴 2024-06-19 6/300 2024-06-23 14:30 by adsqsj
[基金申请] 听大佬说今年信息口本子数量大幅增加? +8 wutzxt 2024-06-21 9/450 2024-06-21 19:58 by wutzxt
信息提示
请填处理意见