| 查看: 1102 | 回复: 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 |
» 猜你喜欢
青椒八年已不青,大家都被折磨成啥样了?
已经有8人回复
免疫学博士有名额,速联系
已经有4人回复
交叉科学部支持青年基金,对三无青椒是个机会吗?
已经有5人回复
国家基金申请书模板内插入图片不可调整大小?
已经有6人回复
招博士
已经有6人回复
限项规定
已经有8人回复
国家级人才课题组招收2026年入学博士
已经有5人回复
Fe3O4@SiO2合成
已经有6人回复
青年基金C终止
已经有4人回复
26申博求博导推荐-遥感图像处理方向
已经有4人回复
» 抢金币啦!回帖就可以得到:
哈尔滨工程大学青岛创新发展基地招聘青年教师
+1/473
nanomaterials特刊:纳米材料在电化学能源领域的应用(SCI 中科院三区,IF4.5)征稿
+5/210
南方科技大学周友运课题组诚聘博士后、科研助理
+1/176
“超分子材料交叉研究团队”联合诚聘博士后 [清华/吉大/复旦/北大]
+1/79
“超分子材料交叉研究团队”联合诚聘博士后 [清华/吉大/复旦/北大]
+1/79
美国R1大学--德克萨斯大学埃尔帕索分校(UTEP) 土木、环境与建筑工程系 博士招生
+1/79
华南师范大学胡勇军教授课题组招收2026年博士研究生
+1/76
非粮生物质能技术全国重点实验室合成生物学创新团队全球招聘博士/博士后
+1/76
西北工业大学民航学院招博士与硕士复合材料方向
+1/74
广东工业大学自动化学院鲁仁全教授团队刘勇华老师招收2026年博士研究生(申请制)
+1/73
南京林业大学特聘教授团队招聘博后和2026博士研究生
+1/72
上海市“光探测材料与器件”工程技术研究中心(上海应用技术大学)招聘优秀研究人员
+1/41
教育部重点实验室和清华大学某国家重点实验室,联合培养硕生、博生,并长期招博士后
+1/33
南开大学物理学院张书辉副教授招收凝聚态物理理论方向博士生、硕士生
+1/29
中国科学院上海光学精密机械研究所 特种强激光薄膜课题组
+1/26
电子科技大学崔春华课题组招收物理化学背景博士生1名-申请考核制
+2/6
山东大学集成电路学院王凌云研究员招收2026年硕士生及联合培养硕士生
+1/6
中山大学柔性电子学院黄维院士团队诚招柔性可穿戴电子方向博士生(2026年9月入学)
+1/6
生信(包括AI)博后招聘(3名):美国德州理工大学健康科学中心
+1/5
广东以色列理工学院博士/硕士招生-通过稀疏观测用数据驱动方法预测湍流
+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客户端













回复此楼