建议参照有限元后处理应力磨平操作进行计算,即对每个单元进行循环,循环的过程中累积节点的温度,并且记录每个节点所在的单元数,最后用累积温度除以每个节点所在的单元数即可: 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) |
你这算法有点罗嗦,还不如分情况填呢。 [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