implicit real*8(a-h,o-z) dimension x(315500),y(315500),z(315500),e66(6,6),b(3,3)& &,mesh(300000,8),meshkou(300000,8) b1=1.0d0 h1=1.0d0 ell=5.0d1 !要素分割 nx1=1 ny1=1 nz=200 nitimen=(nx1+1)*(ny1+1) !ヤング率 ezz=206.0d3!z軸方向 !ezz=7.694d3!z軸 exx=ezz/25.0d0!x軸 eyy=ezz/25.0d0!y軸 !ezz2=206.0d3!z軸方向 !ポアソン比 poixy=0.016d0 poixz=poixy poiyx=poixy poiyz=poixy poizx=0.4d0 poizy=poizx !せん断弾性係数の入力 gxy=ezz/15.0d0 gxz=gxy gyz=gxy !1つあたりの要素の長さ? xn1=b1/nx1 yn1=h1/ny1 zn=ell/nz !節点番号ごとの節点座標!i~mで始まるのがdoで使える !真ん中部分の鋼材の節点 do k=0,nz do j=0,ny1 do i=1,nx1+1 nset=i+j*(nx1+1)+k*nitimen x(nset)=(i-1)*xn1 y(nset)=j*yn1 z(nset)=k*zn end do end do end do !i5~6が整数,aが文字,f9,6が小数.1peとかはeの*乗 !接点番号と座標の出力 print'("*NODE, NSET=NALL")' do i=1,(nz+1)*nitimen print'(i6,a,f9.6,a,f9.6,a,f9.6)',& &i,',',x(i),',',y(i),',',z(i) end do !要素番号とその要素の8接点の接点番号 nyou=0 do k=0,nz-1 do j=0,ny1-1 do i=1,nx1 nyou=nyou+1 mesh(nyou,1)=i+j*(nx1+1)+k*nitimen mesh(nyou,2)=mesh(nyou,1)+nx1+1 mesh(nyou,3)=mesh(nyou,2)+nitimen mesh(nyou,4)=mesh(nyou,1)+nitimen mesh(nyou,5)=mesh(nyou,1)+1 mesh(nyou,6)=mesh(nyou,2)+1 mesh(nyou,7)=mesh(nyou,3)+1 mesh(nyou,8)=mesh(nyou,4)+1 end do end do end do print'("*ELEMENT, TYPE=C3D8, ELSET=Ekou")' do i=1,nz*(nx1*ny1) print'(i6,a,i6,a,i6,a,i6,a,i6,a,i6,a,i6,a,i6,a,i6)',& &i,',',& &mesh(i,1),',',& &mesh(i,2),',',& &mesh(i,3),',',& &mesh(i,4),',',& &mesh(i,5),',',& &mesh(i,6),',',& &mesh(i,7),',',& &mesh(i,8) end do nyousosuu=nz*nitimen !載荷接点、拘束接点の設定 !cgxでやるのめんどいので節点指定 print'("*NSET,NSET=kousoku")' do i=1,nitimen nkousoku=i print'(i6,a)',nkousoku,',' end do ! 境界条件 print'("*BOUNDARY")' print'("kousoku,1,3")' print'("*MATERIAL,NAME=ELkou")' print'("*ELASTIC")' print'("206.d3, 0.3")' print'("*SOLID SECTION,ELSET=Ekou,MATERIAL=ELkou")' ! 載荷条件 print'("*STEP")' print'("*STATIC,SOLVER=SPOOLES")' print'("*DLOAD")' print'("*INCLUDE, INPUT=zd.dlo")' ! datのオプション print'("*NODE PRINT,NSET=Nall")' print'("U")' print'("*NODE FILE")' print'("U")' print'("*END STEP")' ! ! ! end !######## 直交異方性の定数を出すプログラム ######## subroutine ortho(e66,exx,eyy,ezz,poixy,poixz,poiyz,gyz,& &gxz,gxy,poiyx,poizx,poizy) implicit real*8(a-h,o-z) dimension e66(6,6),b(3,3) !応力-ひずみ行列:e66 do i=1,6 do j=1,6 e66(i,j)=0.d0 end do end do ! e66(1,1)=1.d0/exx e66(1,2)=-poixy/exx e66(1,3)=-poixz/exx e66(2,1)=-poiyx/eyy e66(2,2)=1.d0/eyy e66(2,3)=-poiyz/eyy e66(3,1)=-poizx/ezz e66(3,2)=-poizy/ezz e66(3,3)=1.d0/ezz ! !****** 逆行列を取って、応力-ひずみ行列に変換する****** det=e66(1,1)*e66(2,2)*e66(3,3)+e66(2,1)*e66(3,2)*e66(1,3)& &+e66(3,1)*e66(1,2)*e66(2,3)-e66(2,1)*e66(1,2)*e66(3,3)& &-e66(3,1)*e66(2,2)*e66(1,3)-e66(1,1)*e66(3,2)*e66(2,3) b(1,1)=(-1.d0)**(1+1)*(e66(2,2)*e66(3,3)-e66(3,2)*e66(2,3)) b(1,2)=(-1.d0)**(1+2)*(e66(2,1)*e66(3,3)-e66(3,1)*e66(2,3)) b(1,3)=(-1.d0)**(1+3)*(e66(2,1)*e66(3,2)-e66(3,1)*e66(2,2)) b(2,1)=(-1.d0)**(2+1)*(e66(1,2)*e66(3,3)-e66(3,2)*e66(1,3)) b(2,2)=(-1.d0)**(2+2)*(e66(1,1)*e66(3,3)-e66(3,1)*e66(1,3)) b(2,3)=(-1.d0)**(2+3)*(e66(1,1)*e66(3,2)-e66(3,1)*e66(1,2)) b(3,1)=(-1.d0)**(3+1)*(e66(1,2)*e66(2,3)-e66(2,2)*e66(1,3)) b(3,2)=(-1.d0)**(3+2)*(e66(1,1)*e66(2,3)-e66(2,1)*e66(1,3)) b(3,3)=(-1.d0)**(3+3)*(e66(1,1)*e66(2,2)-e66(2,1)*e66(1,2)) do i=1,3 do j=1,3 e66(i,j)=b(j,i)/det end do end do ! !****** せん断補正係数を入力 ****** !print*,'xy面のせん断弾性係数を入れて下さい' !read*, gxy e66(4,4)=gyz !print*,'xz面のせん断弾性係数を入れて下さい' !read*, gxz e66(5,5)=gxz !print*,'yz面のせん断弾性係数を入れて下さい' !read*, gyz e66(6,6)=gxy ! ! return end