| 查看: 1172 | 回复: 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 |
» 猜你喜欢
水蒸气蒸馏法乳化现象
已经有3人回复
时间戳他又来了
已经有8人回复
小木虫看见有人已经知道结果了
已经有8人回复
J-J-W不为人知的一面
已经有11人回复
自然基金已经彻底沦为学术资源的交换工具
已经有36人回复
全人类对于AI的整体认知,尚且停留在幼儿园启蒙阶段
已经有14人回复
没消息就是被刷了呗
已经有10人回复
周末思考-婚姻长久底色
已经有12人回复
27考博求助
已经有4人回复
深圳大学材料学院“智能分子材料团队”招聘博士后
已经有4人回复
» 抢金币啦!回帖就可以得到:
求助2013年-2011年,武汉哪所学校的实验室合成过单价3万/克(或毫升)的剧毒成品?
+5/3345
求助2013年-2011年,武汉哪所学校的实验室合成过单价3万/克(或毫升)的剧毒成品?
+5/2520
诚征女友
+1/268
浙江理工大学能源催化团队诚聘专职教师/博士后
+2/242
中国石油大学(北京)未来能源学院“电催化能源工程”课题组博士后招聘
+1/171
上海 东华大学 刘栋良 招 2027 学术型博士(化学专业)
+1/78
没基金,自费做nature课题值得吗?
+1/62
西安交通大学补亚忠课题组招聘2027年博士生
+1/33
厦门大学化学化工学院廖洪钢课题组招聘助理1名(全职)
+1/32
深圳大学 招收2027级硕士/博士研究生 (推免/ 报考) 金属材料/ 3D打印/ 氢能等方向
+1/30
直博夏令营--北京理工大学/国家人工智能学院AI交叉学科联合招生
+1/30
PEMFC耐久数据合作
+2/28
哈尔滨工业大学物理学院光电材料和器件团队:招收2027级秋季和2028级春季博士生
+1/27
海南大学教职 入职要求 考核要求
+1/24
一株吊兰
+1/19
中山大学孙逸仙纪念医院潘越教授团队招聘博士后和科研助理
+1/4
中山大学国家级青年人才课题组招收推免硕士2名(2027年入学)
+2/4
西安女医生寻找可以共度余生的另一半
+2/4
北京理工大学-集成电路与电子学院杰青团队-招博士后
+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客户端











回复此楼