| 查看: 1194 | 回复: 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 |
» 猜你喜欢
广西大学-广州大学招聘博士后 欢迎广大优秀人才!!!
已经有11人回复
闲聊
已经有3人回复
江苏省自然基金 什么时候出结果
已经有4人回复
如何查询2026年获批项目名称?
已经有3人回复
两块石头
已经有10人回复
科研人应该花精力去思考如何解决问题,而不是去凝练问题
已经有19人回复
售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急
已经有15人回复
面上没中,邀请各位路过的虫友分析一下分数
已经有13人回复
初秋的晨风
已经有6人回复
Ei源刊怎么投
已经有4人回复
» 抢金币啦!回帖就可以得到:
【征稿中!】2026年机械、制造技术与材料国际会议 (MEMTM 2026)
+1/328
武汉,诚征男友,如果合适,异地也可以
+1/193
招收大湾区大学-哈工深联培博士1名
+1/193
南京大学医学院附属鼓楼医院 肿瘤疫苗与纳米医学团队 博士后招聘
+1/81
2027级博士研究生——质谱分析
+5/45
中国科学院兰州化学物理研究所青岛基地王楠楠课题组诚招联合培养硕士一名
+1/15
招聘电池方向博士
+1/12
上海交大刘苏萌课题组招收集成电路专项硕士生(ALD前驱体方向,头部企业联培)
+1/12
自己1篇和学生2篇 ,祈福!
+1/10
哈工大马樱招收2027级计算机类博士生
+1/8
招聘材料计算,分子动力学模拟相关讲师
+1/6
横向课题结题时企业突然问专利归谁,合同里没约定的话默认算谁的?
+1/5
合肥工业大学许婷婷老师招收2027年入学博士研究生,有机/高分子合成背景
+1/4
河南省科学院|事业编制|专职科研岗|生物材料 / 生物工程博士 |郑州
+1/3
新加坡国立大学Sibudjing Kawi教授课题组part-time PhD(热催化/等离子体催化方向)
+1/2
招聘材料计算,分子动力学模拟兼职讲师
+1/2
赣南师范大学先进封装前沿材料课题组科研助理招聘公告
+1/2
Paris Saclay university, Dallerac教授团队招收2027CSC–Saclay合作奖学金博士生
+1/2
天津大学浙江研究院2026年第二批招聘公告:高分子等方向特聘青年研究员/博士后
+1/1
天津大学-东莞材料所27年联培博士-半导体材料与AI器件
+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客户端










回复此楼