Fortran Coder

请教一个温度在网格上分配的算法

查看数: 4136 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-12-20 13:58

正文摘要:

如图所示,将单元所得温度值分配到1-9节点上,其中: 节点1379 分别为单元1-4温度值;节点2为单元1、2的平均值;节点4为单元1、3的平均值;节点6为单元2、4的平均值;节点8为单元3、4的平均值; 节点5为单元1234的 ...

回复

珊瑚虫 发表于 2014-12-20 20:42:42
建议参照有限元后处理应力磨平操作进行计算,即对每个单元进行循环,循环的过程中累积节点的温度,并且记录每个节点所在的单元数,最后用累积温度除以每个节点所在的单元数即可:
do ie=1,ne       !单元总数循环
do inode=1,nd  !每个单元的节点数
T(ELEMS(inode.ie))=T(ELEMS(inode.ie))+每个单元计算出来的节点温度  !累积单元节点温度
nn(ELEMS(inode.ie))=nn(ELEMS(inode.ie))+1                                    !累积每个节点所在的单元数
enddo
enddo
! 再平均
T(1:NNODE)=T(1:NNODE)/NN(1:NNODE)
楚香饭 发表于 2014-12-20 16:00:14
你这算法有点罗嗦,还不如分情况填呢。

[Fortran] 纯文本查看 复制代码
tem = [6 12 24 36]!单元温度
NJoints = 6 !节点数
NElems = 4 !单元数
NJE = 4      !每个单元节点数
Elems = [1 2 5 4; 
                2 3 6 5;
                4 5 8 7;
                5 6 9 8!单元节点构造
node_tem = zeros(NJoints,1)
do k = 1:NJoints
        t = 0;
        ne = 0;
     do iel = 1:NElems
         do jel =1: NJE 
             if  Elems(iel,jel) == k
                 ne = ne+1;
                 t = t + tem(iel);
             end
         enddo
     enddo
    node_tem = t/ne;
 enddo

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-3 19:43

Powered by Tencent X3.4

© 2013-2024 Tencent

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