| 查看: 1144 | 回复: 5 | |||
[交流]
Fortran平面桁架有限元程序
|
|||
|
program truss_2D use prep use solve implicit none integer :: i,j,m,n,nel,nne,nn,nodof,edof,gdof integer :: e2s(4) real :: L,FN real :: kl(4,4),kg(4,4),T(4,4) integer,allocatable :: elemNodes (:,:) ,nf(:,:) real ,allocatable :: Coords (:,:),prop(:,:), & KK(:,:),loads(:,:) real ,allocatable :: nodedisp(:,:),F(:) ,edg(:), & fg(:),fl(:),delta(:) open ( 10,file = 'data.txt' ) open ( 11,file = 'out.txt' ) read (10,*) nel ! Number of elements read (10,*) nne ! Number of nodes per element allocate ( elemNodes(nel,nne),prop(nel,nne) ) read (10,*) nn ! Number of nodes read (10,*) nodof ! Number of degrees of freedom per node edof = nodof * nne allocate ( Coords(nn,nodof),nf(nn,nodof), & loads(nn,nodof),nodedisp(nn,nodof),edg(edof), & fg(edof),fl(edof) ) read (10,*) ( (elemNodes(i,j), j=1,nne), i=1,nel ) read (10,*) ( (prop(i,j), j=1,nne), i=1,nel ) read (10,*) ( (Coords(i,j), j=1,nodof), i=1,nn ) read (10,*) ( (nf(i,j), j=1,nodof), i=1,nn ) read (10,*) ( (loads(i,j), j=1,nodof), i=1,nn ) gdof = 0 do i = 1,nn do j = 1,nodof if ( nf(i,j)/=0 ) then gdof = gdof + 1 nf(i,j) = gdof end if end do end do allocate ( KK(gdof, gdof), F(gdof),delta(gdof) ) F = 0. call truss_F( m,n,nn,nodof,nf,gdof,loads,F) e2s = 0 KK = 0. do i = 1,nel call truss_T(i,nel,nne,nn,nodof,elemNodes,Coords,L,T) call truss_kl (i,nel,nne,L,prop,kl) call truss_kg (T,kl,kg) call truss_e2s(i,j,nn,nel,nne,nodof,nf,elemNodes,e2s) call form_KK (m,n,edof,gdof,kg,e2s,KK) end do call fem_Solver(KK,F,gdof,delta) ! 求解 nodedisp = 0. forall ( i = 1:nn,j = 1:nodof,nf(i,j)/=0 ) nodedisp(i,j) = delta( nf(i,j) ) end forall do i = 1,nel call truss_T(i,nel,nne,nn,nodof,elemNodes,Coords,L,T) call truss_kl (i,nel,nne,L,prop,kl) call truss_kg (T,kl,kg) call truss_e2s(i,j,nn,nel,nne,nodof,nf,elemNodes,e2s) edg = 0. do j = 1,edof if ( e2s(j) /= 0 ) then edg(j) = delta( e2s(j) ) end if end do fg = matmul( kg,edg ) fl = matmul( T,fg ) FN = fl(3) write (11,100) i write (11,200) FN end do 100 format (/,T10,'单元',I2 ) 200 format (T10,'轴力=',F18.4) end program truss_2D |
» 猜你喜欢
这年头没有找到涵评专家,还有中面上的可能吗
已经有5人回复
2026博士申请求助
已经有10人回复
评审感受-评审感受-评审感受
已经有12人回复
西南大学考核制博士
已经有6人回复
窗边初夏的小雨
已经有10人回复
护理论文 晋升
已经有4人回复
求碳排放博导;方向是LCA、生命周期可持续发展以及碳排放
已经有8人回复
26年申博自荐-计算机视觉
已经有5人回复
导师各种操作恶心咋办
已经有12人回复
现在不知道怎么办,感觉很痛苦
已经有5人回复
» 抢金币啦!回帖就可以得到:
海南大学生物医学工程学院 阿尔茨海默病早期诊断与检测团队 招2026申请考核制博士
+1/95
山东大学深地储能系统工程课题组常年招聘优秀博士后研究人员
+1/84
东北林业大学化学专业招申请考核博士生
+1/83
湖南大学化工院招收2026年入学博士
+1/82
河南师范大学水产学院博士研究生招生
+1/80
华南师范大学(211)- 生物光子学研究院招收生物学、物理学、神经科学等专业博士
+1/37
山东中医药大学2026年申请审核制博士研究生招聘
+1/33
苏州科技大学国家高层次青年人才团队诚聘副教授/讲师(事业编)和科研助理数名
+1/32
双一流高校-南京林业大学-化学工程学院-国家海外优青团队招2026级博士(5月15号截止)
+1/31
双一流高校-南京林业大学-化学工程学院-国家海外优青团队招2026级博士(5月15号截止)
+1/31
北京师范大学珠海校区胡德平课题组招生-理论与计算化学方向-2027秋季入学
+1/12
高校急招科研助理
+1/12
海南大学环境科学与工程学院2026年博士名额一个
+1/9
日常分享MU
+1/8
博士后招聘(高薪40万+)
+1/5
求助标准《牙科学 氟化物防龋材料》YY/T 0823-2020标准
+1/5
中国科学院杭州医学研究所-浙江大学联合培养博士研究生申请
+1/4
细胞分选技术进展与应用
+1/2
天津工业大学双一流高校招博士
+1/1
香港理工大学机械工程学院蔡逸思教授课题组招收博士生,预计入学时间今年九月份
+1/1
简单回复
dsctg2楼
2017-02-24 11:48
回复
springer_(金币+1): 谢谢参与
2017-02-24 14:30
回复
springer_(金币+1): 谢谢参与
是 发自小木虫IOS客户端
2017-11-10 23:54
回复
2018-01-11 19:19
回复
springer_(金币+1): 谢谢参与
是 发自小木虫Android客户端
2018-01-27 19:42
回复
springer_(金币+1): 谢谢参与
顶 发自小木虫IOS客户端












回复此楼