声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6777|回复: 33

[计算力学] 新手问问题:单元编号,节点编号,节点自由度数都是怎么弄的?

[复制链接]
发表于 2006-10-8 18:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
在编写FORTRAN程序时,单元编号和节点编号怎么在程序中实现的??还有节点自由度数是什么意思呢?
单元阵到总阵组装时该怎么做??
谢谢!

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2006-10-9 00:12 | 显示全部楼层
看看最基本的有限元理论吧   这个东西学习起来快  忘记也快   知道理论就可以了
发表于 2006-10-9 12:34 | 显示全部楼层

找本比较简单的有限元书看看就明白了

看看杆件的或者平面弹性力学,两者都是比较简单,而且书上一般还附带有程序
 楼主| 发表于 2006-10-14 19:52 | 显示全部楼层

谢谢

我的意思是这样的!
因为我这个结构有2000个单元,我如果一个接一个的输入很费时间,所以我想有没有办法可以让他自动输入
哪位高手给点建议,点拨我一下
谢谢了
发表于 2006-10-14 21:26 | 显示全部楼层
.
     计算规模比较大时,要求程序有前处理功能,你如果是为了分析工程实际问题,建议使用现成的商业程序;如果是学位论文,建议例题不要太大。

    网格优化涉及的理论也是很复杂的,简单的可以用坐标增量来自动生成,一般的有限元书后面也能找到,单仅限于非常简单的情况... ...

评分

1

查看全部评分

 楼主| 发表于 2006-10-16 12:35 | 显示全部楼层

是比较简单的情况!

是单一结构的
全是矩形单元,8节点的
整个区域也是矩形的
我想应该有办法做到的
但是我总转不过那个弯
发表于 2006-10-16 13:14 | 显示全部楼层
.
    按照单元节点自由度方程编号组装的。

    可以看看有限元的书,或将你的算例和程序贴上来,不然不好说的... ...
 楼主| 发表于 2006-10-16 19:25 | 显示全部楼层
单元节点自由度方程是什么意思呢?总看到这个,但总是不太明白!
我的例子是,一个1000*500的板,分成40*40个单元,每个单元8个节点,每个节点坐标的数组是XY(24,N),每个单元的节点号是NE(8,N),每个单元8个节点6个自由度,就是这样的一个问题.
我的想法是用DO循环一下输入.
不知道能实现不
发表于 2006-10-17 20:36 | 显示全部楼层
.
    编的程序放上来... ...
 楼主| 发表于 2006-10-17 21:19 | 显示全部楼层
SUBROUTINE CPLATE8_INPUT(ID,X,MTH,NR,
     &LM,NE,XY,TK,AG,PR,IZ,NZ,NUMNP,NEQ,IN,IO,IP,IM,IX)
      IMPLICIT REAL*8 (A-H,O-Z)
      DIMENSION ID(6,NUMNP),X(3,NUMNP),MTH(NEQ),NR(10)
      DIMENSION LM(48,NR(2)),NE(8,NR(2)),XY(24,NR(2))
      DIMENSION TK(NR(3)),AG(NR(3)),PR(1),I8(8)
      ND = 6 * 8
C-----------------------------------------------------------------------
C             Read and generate shell element information
C-----------------------------------------------------------------------
1      READ( IN,'(8E10.4)') (PR(I),I=1,8)
      WRITE(IO,2000) (NR(I),I=2,4),(PR(J),J=1,8)
2      READ( IN,'(2I5)') IZ,NZ
      IF(NR(4).NE.0) THEN
      WRITE(IO,2010)  IZ,NZ
      ENDIF
      WRITE(IO,2020)
      DO 100 I=1,NR(3)
3      READ( IN,'(I5,F10.4,F10.4)') MM,TK(I),AG(I)
  100 WRITE(IO,'(I9,F18.4,F22.0)') MM,TK(I)*1000.,AG(I)        ! m => mm
      WRITE(IO,2030)
C
      DO 200 INE=1,NR(2)
4      READ(IN,'(18I5)') MM,(I8(I),I=1,8),KG,(NE(I,INE),I=1,8)
      IF(MM.NE.INE) THEN
         WRITE(IO,'(//5X,18HERROR IN ELEMENT !,//)')
         STOP
        ENDIF
      DO 105 I=1,8
        IF(I8(I).GT.NUMNP) THEN
         WRITE(*,'(//5X,18H单元结点编号出错!,2I8//)') MM,I8(I)
         STOP
        ENDIF
        IF(NE(I,INE).GT.NUMNP) THEN
         WRITE(*,'(//5X,18H单元结点编号出错!,2I8//)') MM,NE(I,INE)
         STOP
        ENDIF
  105 CONTINUE
      WRITE(IO,'(5X,I4,1X,8I7)')INE,(I8(I),I=1,8)
      WRITE(IP,'(5X,I4,1X,8I7)')INE,(I8(I),I=1,8)
        IF(NR(4).EQ.0.OR.NR(4).EQ.1) THEN
      WRITE(IX)(I8(I),I=1,8)
        ENDIF
C
C
      DO 110 JJ=1,8
      DO 110 II=1,3
  110 XY(II+3*(JJ-1),INE) = X(II,I8(JJ))
C
      DO 120 JJ=1,8
      DO 120 II=1,6
  120 LM(II+6*(JJ-1),INE) = ID(II,I8(JJ))
C
      IF(NR(4).NE.0) THEN
       DO 140 II=1,8
       IF(NE(II,INE).NE.0) THEN
       WRITE(IM) I8(II),NE(II,INE)
       DO 130 JJ=1,6
  130  LM(JJ+6*(II-1),INE) = ID(JJ,NE(II,INE))
       ENDIF
  140  CONTINUE
      ENDIF
C
C     Determine the active column heights of element with LM[48,N]
C
      CALL COLHT(MTH,LM(1,INE),ND)
C
  200        CONTINUE
C
C     处理分层区上下子板中和轴的法向坐标偏移
C
      IF(NR(4).EQ.1) THEN
       PH = 0.
       DO 210 I=1,NR(3)
  210  PH = PH + TK(I)
       EX = 0.
       DO 220 I=IZ,NZ
  220  EX = EX + TK(I)
       EZ = (PH-EX)/2.
         DO 230 I=1,NR(2)
         DO 230 J=1,8
  230  XY(3*J,I) = XY(3*J,I) + EZ
      ENDIF
      IF(NR(4).EQ.2) THEN
       PH = 0.
       DO 240 I=1,NR(3)
  240  PH = PH + TK(I)
       EX = 0.
       DO 250 I=IZ,NZ
  250  EX = EX + TK(I)
       EZ =-(PH-EX)/2.
         DO 260 I=1,NR(2)
         DO 260 J=1,8
  260  XY(3*J,I) = XY(3*J,I) + EZ
      ENDIF
 楼主| 发表于 2006-10-17 21:20 | 显示全部楼层
这个是输入信息那部分的
主要就是开始的时候
节点号的位置应该怎么弄呢!??
发表于 2006-10-18 21:22 | 显示全部楼层
.
    这是8节点复合材料板壳单元,这一段是处理单元的输入信息,而节点信息是不在这个子程序里的,在主程序的前面专门有段节点坐标和约束输入主程序。

   程序要从头仔细读,逐行逐句的理解... ...

   希望你有进展。
 楼主| 发表于 2006-10-19 13:22 | 显示全部楼层
4      READ(IN,'(18I5)') MM,(I8(I),I=1,8),KG,(NE(I,INE),I=1,8)
这句不是输入节点号吗?
 楼主| 发表于 2006-10-19 13:25 | 显示全部楼层
您说的节点信息是X(II,I8(JJ))吗?
这个都是一个一个读的吗?
发表于 2006-10-19 13:37 | 显示全部楼层
.
   不是。

   这是输入单元的节点编号,存放在NE(I,J)。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-26 09:14 , Processed in 0.093260 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表