Fortran Programming Plane Framework by bzs12927

VIEWS: 6 PAGES: 13

									                   15
-




    Fortran Programming:
         Plane Framework




            15–1
Chapter 15: FORTRAN PROGRAMMING: PLANE FRAMEWORK                                    15–2

§15.1   INTRODUCTION
The GFRAME2 program analyzes general plane framework structures under static loads.
This program is implemented in Fortran 77. The following sections explain briefly the
functionality of the GFRAME2 program, stressing the portions in which significant difference
with respect to the truss analysis programs occurs.

§15.2   THE MAIN PROGRAM
Here is a listing of the main program of GFRAME2, which exhibits the overall flow of com-
putations.


C=DECK GFRAME3
C=PURPOSE Solve general plane framework by stiffness method
C=BLOCK FORTRAN
       program           GFRAME2
       integer           MAXELE, MAXNOD, MAXDOF
       integer           SPADIM, DOFNOD, INTFOR
       parameter         (MAXELE=40, MAXNOD=30)
       parameter         (SPADIM=2, DOFNOD=3, INTFOR=3)
       parameter         (MAXDOF=DOFNOD*MAXNOD)
       integer           numnod, numele, numdof
       integer           elenod(2,MAXELE), nodbct(DOFNOD,MAXNOD)
       double precision nodxy(SPADIM,MAXNOD)
       double precision elemod(MAXELE), elearea(MAXELE), eleizz(MAXELE)
       double precision nodfor(DOFNOD,MAXNOD), noddis(DOFNOD,MAXNOD)
       double precision s(MAXDOF,MAXDOF), r(MAXDOF), v(MAXDOF)
       double precision p(MAXDOF), f(INTFOR,MAXELE)
       double precision scopy(MAXDOF,MAXDOF)
C
C           Read and echoprint node (joint) data
C
       call    READNODEDATA (numnod, nodxy, SPADIM, MAXNOD)
       call    PRINTNODEDATA (numnod, nodxy, SPADIM)
C
C           Read and echoprint element (member) data
C
       call    READELEMDATA (numele, elenod, elemod, elearea, eleizz,
     $                       MAXELE)
       call    PRINTELEMDATA (numele, elenod, elemod, elearea, eleizz)
C
C           Read and echoprint degree-of-freedom data
C
       call    READDOFDATA   (numnod, nodbct, nodfor, noddis, DOFNOD)
       call    PRINTDOFDATA (numnod, nodbct, nodfor, noddis, DOFNOD)
C
C           Assemble element stiffness matrices into master stiffness
C
       numdof = DOFNOD*numnod
       call    ASSEMSTIF (numele, elenod, nodxy, SPADIM, DOFNOD,
     $                     elemod, elearea, eleizz, s, numdof)

                                          15–2
15–3                                                       §15.3   PREPROCESSING PHASE


        call      PRINTMASTERSTIF (s, numdof)
        call      COPYSTIF    (s, scopy, numdof)
C
C              Modify equations to account for boundary conditions
C
        call      MODIFYEQS (nodbct, nodfor, noddis, s, r, numdof)
        call      PRINTMODSTIF   (s, numdof)
        call      PRINTRHS       (r, numdof)
C
C              Solve for displacements and print
C
        call      SOLVENODEDISP   (s, r, v, numdof)
        call      PRINTNODEDISP   (numnod, v, DOFNOD)
C
C              Compute and print node forces
C
        call      NODEFORCES (scopy, v, p, numdof)
        call      PRINTNODEFORCES (numnod, p, DOFNOD)
C
C              Compute and print element internal forces
C
        call     ELEMFORCES  (numele, elenod, nodxy, SPADIM, DOFNOD,
       $                      elemod, elearea, eleizz, v, f, INTFOR)
      call       PRINTELEMFORCES (numele, f, INTFOR)
      stop
      end
C=END FORTRAN


The above listing displays the typical phases of a linear-static finite element program. Any
such program goes through 3 major phases: (1) preprocessing or problem definition, (2)
processing or problem solving, and (3) postprocessing or result display. These stages are
described in further detail below in the order they are performed.

§15.3      PREPROCESSING PHASE
The preprocessing phase defines the problem to be solved to the computer. Or, more
precisely, the discrete finite element model to be analyzed is specified by reading data
from an input file.
This data is read by subroutines READNODEDATA, READELEMDATA, and READDOFDATA, which
define data pertaining to nodes, elements and degrees of freedom, respectively. These three
subroutines make use of the Fortran free-field read statement. Their logic is quite similar
to that of the GTRUSS2 and GTRUSS3 and will not be listed here.

§15.3.1 Reading Node Data

The first data line read by READNODEDATA specifies the number of node points numnod. This
is checked against the maximum number of nodes, which comes via argument maxnod. Then
READNODEDATA reads numnod lines containing the node number and its x and y coordinates

                                            15–3
Chapter 15: FORTRAN PROGRAMMING: PLANE FRAMEWORK                                     15–4

(three items per line). As illustration, the node coordinate data for the example frame
should be

                                         4
                                         1,   0.,0.
                                         2,   0.,5.
                                         3,   10.,5.
                                         4,   10.,0.


§15.3.2 Reading Element Data

Subroutine READELEMDATA reads first the number of elements into numele, which is checked
against the maximum number of elements maxele. Then it reads numele lines containing
the element number, the two end node numbers, the elastic modulus E, the cross section
area A and the moment of inertia Izz (six items per line). For the example frame the
element data is

                                 3
                                 1, 1,2, 1000.,2.,5.
                                 2, 2,3, 1000.,4.,20.
                                 3, 3,4, 1000.,2.,5.


§15.3.3 Reading DOF Data

Finally, READDOFDATA reads numnod data lines containing the node number, the three
boundary condition tags for DOFs (vx , vy and θz ), three prescribed nodal-force components
(px , py and mz ) and three prescribed nodal-displacement components in that order (ten
items per line). Tags have values 0 or 1. A zero indicates that the force component is
prescribed, a one that the displacement component is prescribed. If a quantity is not
prescribed, a zero is entered as “dummy value” to satisfy the read statement. For the
example frame, with the horizontal forces at nodes 2 and 3 specified to be 5, the DOF
data is

                           1,   1,1,1,   0.,0.,0.,     0.,0.,0.
                           2,   0,0,0,   5.,0.,0.,     0.,0.,0.
                           3,   0,0,0,   5.,0.,0.,     0.,0.,0.
                           4,   1,1,1,   0.,0.,0.,     0.,0.,0.


§15.3.4 Printing Input Data

The problem definition data is printed by subroutines PRINTNODEDATA, PRINTELEMDATA,
and PRINTDOFDATA. These are not listed as their logic is quite simular to the corresponding
subroutines in GTRUSS2 and GTRUSS3.

                                              15–4
15–5                                                         §15.4   PROCESSING PHASE


§15.4   PROCESSING PHASE

§15.4.1 Forming the Stiffness Equations

If no error is detected in the preprocessing phase, the processing phase begins with a call
to subroutine ASSEMSTIF to form the master stiffness matrix in array s. Here is the listing
of ASSEMSTIF:

C=DECK ASSEMSTIF
C=PURPOSE Assemble element stiffness matrices into master stiffness
C=BLOCK FORTRAN
         subroutine    ASSEMSTIF
       $             (numele, elenod, nodxy, spadim, dofnod,
       $              elemod, elearea, eleizz, s, numdof)
         integer             spadim, dofnod, numele, numdof, elenod(2,*)
         double precision nodxy(spadim,*)
         double precision elemod(*),elearea(*),eleizz(*)
         double precision se(6,6), s(numdof,numdof)
         integer             eft(6), i, j, m, p, q, ni, nj, ierr, iaerr
C
         iaerr = 0
         do 1200 i = 1,numdof
           do 1100 j = 1,numdof
             s(i,j) = 0.0
  1100       continue
  1200     continue
C
         do 2000 m = 1,numele
           ni =     elenod(1,m)
           nj =     elenod(2,m)
           call     BEAM2STIF (m, nodxy(1,ni), nodxy(1,nj), elemod(m),
       $                        elearea(m), eleizz(m), se, ierr)
           if (ierr .gt. 0)                then
             iaerr =     iaerr + ierr
           else
             call     PRINTELEMSTIF (m, se, 6)
             eft(1) =      dofnod*(ni-1)+1
             eft(2) =      eft(1)+1
             eft(3) =      eft(2)+1
             eft(4) =      dofnod*(nj-1)+1
             eft(5) =      eft(4)+1
             eft(6) =      eft(5)+1
             do 1800 i = 1,6
                p =   eft(i)
                do 1600 j = 1,6
                  q =   eft(j)
                  s(p,q) = s(p,q) + se(i,j)
  1600            continue
  1800          continue
           end if
  2000     continue
C

                                          15–5
Chapter 15: FORTRAN PROGRAMMING: PLANE FRAMEWORK                                15–6

      if (iaerr .ne. 0)             then
        print *, ’ASSEMELEM: Error(s) in element formation’
        stop ’Error stop’
      end if
      return
      end
C=END FORTRAN

In the element formation loop — the loop over ne=1,numele — ASSEMSTIF calls BEAM2STIF,
which forms and returns the 6 × 6 stiffness matrix of an individual 2-node plane beam
element. Here is BEAM2STIF:
C=DECK BEAM2STIF
C=PURPOSE Form plane beam element stiffness matrix
C=BLOCK FORTRAN
      subroutine    BEAM2STIF (m, xyi, xyj, emod, area, izz, esm, ierr)
      integer            m, ierr
      double precision xyi(2), xyj(2), emod, area, izz, esm(6,6)
      double precision dx, dy, l, ll, c, s, ra, rb
C
      ierr = 0
      dx =     xyj(1) - xyi(1)
      dy =     xyj(2) - xyi(2)
      ll =     dx**2 + dy**2
      l =      sqrt (ll)
      if (l .eq. 0.0)                then
        print *, ’BEAM2STIF: Element ’,m,’ has zero length’
        ierr =    1
        return
      end if
      c =    dx/l
      s =    dy/l
      ra =   emod*area/l
      rb =   emod*izz/l
      esm(1,1) = ra*c*c        + rb*12.*s*s/ll
      esm(1,2) = ra*c*s        - rb*12.*c*s/ll
      esm(1,3) =              - rb* 6.*s/l
      esm(1,4) = -esm(1,1)
      esm(1,5) = -esm(1,2)
      esm(1,6) = esm(1,3)
      esm(2,1) = esm(1,2)
      esm(2,2) = ra*s*s        + rb*12.*c*c/ll
      esm(2,3) =                 rb* 6.*c/l
      esm(2,4) = -esm(2,1)
      esm(2,5) = -esm(2,2)
      esm(2,6) = esm(2,3)
      esm(3,1) = esm(1,3)
      esm(3,2) = esm(2,3)
      esm(3,3) =                 rb* 4.
      esm(3,4) = -esm(3,1)
      esm(3,5) = -esm(3,2)
      esm(3,6) =                 rb* 2.
      esm(4,1) = esm(1,4)

                                        15–6
15–7                                                   §15.5   POSTPROCESSING PHASE


      esm(4,2)   = esm(2,4)
      esm(4,3)   = esm(3,4)
      esm(4,4)   = -esm(4,1)
      esm(4,5)   = -esm(4,2)
      esm(4,6)   = esm(4,3)
      esm(5,1)   = esm(1,5)
      esm(5,2)   = esm(2,5)
      esm(5,3)   = esm(3,5)
      esm(5,4)   = esm(4,5)
      esm(5,5)   = -esm(5,2)
      esm(5,6)   = esm(5,3)
      esm(6,1)   = esm(1,6)
      esm(6,2)   = esm(2,6)
      esm(6,3)   = esm(3,6)
      esm(6,4)   = esm(4,6)
      esm(6,5)   = esm(5,6)
      esm(6,6)   = esm(3,3)
      return
      end
C=END FORTRAN


The logic of the element formation subroutine follows closely that of the symbolic program
discussed in Chapter 12.

§15.4.2 Applying Boundary Conditions

Subroutine MODIFYEQS uses the defree of freedom (DOF) data to modify the master stiffness
matrix and node force vector to account for the displacement boundary conditions. The
procedure for applying these conditions is the one previously explained in Chapters 5 and
7. The logic of MODIFYEQS is not shown as it is identical to that in GTRUSS2 and GTRUSS3.

§15.4.3 Solving the Stiffness Equations

The modified stiffness equations are processed by a “black box” linear equation solver that
carries out the LU factorization of the coefficient matrix and then uses this factorization
to solve for the righ-hand side. In the absence of a factorization error, the solution re-
turned by the solver represent the computed node displacements, which include prescribed
displacement values.
These operations are performed by subroutines LUFACT and LUSOLV, which should be
viewed as “black boxes” and are not listed here. This particular equation solver does
not take advantage of symmetry and sparseness and is therefore only suitable for fairly
small problems containing, say, less than 100 DOFs. A “solution driver” interface be-
tween the main program and the solver is provided by subroutine SOLVENODEDISP, which
is identical to the corresponding code in GTRUSS2 and GTRUSS3.

§15.5   POSTPROCESSING PHASE


                                          15–7
Chapter 15: FORTRAN PROGRAMMING: PLANE FRAMEWORK                                     15–8

§15.5.1 Recovering Nodal Forces
Subroutine NODEFORCES postmultiplies the computed displacements by the original master
stiffness matrix, a copy of which was made by COPYSTIF. This recovery process provides
the node forces including reactions. The logic of these subroutines is identical to that in
GTRUSS2 and GTRUSS3.

§15.5.2 Computing Internal Member Forces
Subroutine ELEMFORCE take care of the final postprocessing step, which is the recovery of
the element internal forces. As explained previously, for E-B beam elements, the three
internal forces are the axial forces and the two end bending moments (bending moments
evaluated at the end nodes of the element). Here is a listing of this subroutine.

C=DECK ELEMFORCES
C=PURPOSE Calculate axial element forces
C=BLOCK FORTRAN
         subroutine   ELEMFORCES
       $             (numele, elenod, nodxy, spadim, dofnod,
       $              elemod, elearea, eleizz, v, f, intfor)
         integer      numele, spadim, dofnod, intfor, elenod(2,*)
         double precision       nodxy(spadim,*)
         double precision       elemod(*),elearea(*),eleizz(*)
         double precision       v(dofnod,*), f(intfor,*)
         integer      m, ni, nj
         double precision       dx,dy,l,ll, c,s
         double precision       vx1,vx2,vy1,vy2,r1,r2, curv1,curv2
C
         do 2000 m = 1,numele
           ni =      elenod(1,m)
           nj =      elenod(2,m)
           dx =      nodxy(1,nj) - nodxy(1,ni)
           dy =      nodxy(2,nj) - nodxy(2,ni)
           ll =      dx**2+dy**2
           l =       sqrt(ll)
           c =       dx/l
           s =       dy/l
           vx1 =     c*v(1,ni) + s*v(2,ni)
           vx2 =     c*v(1,nj) + s*v(2,nj)
           vy1 =    -s*v(1,ni) + c*v(2,ni)
           vy2 =    -s*v(1,nj) + c*v(2,nj)
           r1 =      v(3,ni)
           r2 =      v(3,nj)
           f(1,m) = elemod(m)*elearea(m)*(vx2-vx1)/l
           curv1 =   6.*(vy2-vy1)/ll+2.*(-r1-r1-r2)/l
           curv2 =   6.*(vy1-vy2)/ll+2.*( r2+r2+r1)/l
           f(2,m) = elemod(m)*eleizz(m)*curv1
           f(3,m) = elemod(m)*eleizz(m)*curv2
  2000     continue
C
         return
         end

                                          15–8
15–9                                                   §15.5   POSTPROCESSING PHASE


C=END FORTRAN


§15.5.3 Printing Results
The results of the analysis are printed by several display subroutines. Their logic is not
listed, as it is quite similar to those in GTRUSS2 and GTRUSS3.




                                          15–9
Chapter 15: FORTRAN PROGRAMMING: PLANE FRAMEWORK                                        15–10



                       Appendix: Running The Example Frame

The input data for the three-member “poratl” example frame described in Chapter 13 is


4
1    0,0
2    0,5
3    10,5
4    10,0
3
1    1,2 1000,2,5
2    2,3 1000,4,20
3    3,4 1000,2,5
1    1,1,1 0,0,0, 0,0,0
2    0,0,0 5,0,0, 0,0,0
3    0,0,0 5,0,0, 0,0,0
4    1,1,1 0,0,0, 0,0,0


Running this with GFRAME2 produces the following output.


    --- Node coordinate data ---
    Node       x-coord       y-coord
       1      0.000000      0.000000
       2      0.000000      5.000000
       3     10.000000      5.000000
       4     10.000000      0.000000

 ------ Element data -------------
 Element i-node j-node   Modulus            Area     Iner-zz
       1      1      2 1000.0000          2.0000      5.0000
       2      2      3 1000.0000          4.0000     20.0000
       3      3      4 1000.0000          2.0000      5.0000

 --------------------- Degree-of-freedom data ----------------------
 Node BCtags     x-force    y-force    z-momen    x-displ    y-displ            z-rotat
     1 1 1 1    0.000000   0.000000   0.000000   0.000000   0.000000           0.000000
     2 0 0 0    5.000000   0.000000   0.000000   0.000000   0.000000           0.000000
     3 0 0 0    5.000000   0.000000   0.000000   0.000000   0.000000           0.000000
     4 1 1 1    0.000000   0.000000   0.000000   0.000000   0.000000           0.000000

 Stiffness matrix of element 1:
             1           2         3           4          5           6
    1 4.8000E+02 0.0000E+00 -1.2000E+03 -4.8000E+02 0.0000E+00 -1.2000E+03
    2 0.0000E+00 4.0000E+02 0.0000E+00 0.0000E+00 -4.0000E+02 0.0000E+00
    3 -1.2000E+03 0.0000E+00 4.0000E+03 1.2000E+03 0.0000E+00 2.0000E+03
    4 -4.8000E+02 0.0000E+00 1.2000E+03 4.8000E+02 0.0000E+00 1.2000E+03
    5 0.0000E+00 -4.0000E+02 0.0000E+00 0.0000E+00 4.0000E+02 0.0000E+00
    6 -1.2000E+03 0.0000E+00 2.0000E+03 1.2000E+03 0.0000E+00 4.0000E+03

                                           15–10
15–11                                                §15.5 POSTPROCESSING PHASE


Stiffness matrix of element  2:
            1           2          3          4          5           6
   1 4.0000E+02 0.0000E+00 0.0000E+00 -4.0000E+02 0.0000E+00 0.0000E+00
   2 0.0000E+00 2.4000E+02 1.2000E+03 0.0000E+00 -2.4000E+02 1.2000E+03
   3 0.0000E+00 1.2000E+03 8.0000E+03 0.0000E+00 -1.2000E+03 4.0000E+03
   4 -4.0000E+02 0.0000E+00 0.0000E+00 4.0000E+02 0.0000E+00 0.0000E+00
   5 0.0000E+00 -2.4000E+02 -1.2000E+03 0.0000E+00 2.4000E+02 -1.2000E+03
   6 0.0000E+00 1.2000E+03 4.0000E+03 0.0000E+00 -1.2000E+03 8.0000E+03

Stiffness matrix of element  3:
            1           2          3          4          5           6
   1 4.8000E+02 0.0000E+00 1.2000E+03 -4.8000E+02 0.0000E+00 1.2000E+03
   2 0.0000E+00 4.0000E+02 0.0000E+00 0.0000E+00 -4.0000E+02 0.0000E+00
   3 1.2000E+03 0.0000E+00 4.0000E+03 -1.2000E+03 0.0000E+00 2.0000E+03
   4 -4.8000E+02 0.0000E+00 -1.2000E+03 4.8000E+02 0.0000E+00 -1.2000E+03
   5 0.0000E+00 -4.0000E+02 0.0000E+00 0.0000E+00 4.0000E+02 0.0000E+00
   6 1.2000E+03 0.0000E+00 2.0000E+03 -1.2000E+03 0.0000E+00 4.0000E+03

Assembled master   stiffness matrix:
            1             2           3             4           5           6
   1 4.8000E+02     0.0000E+00 -1.2000E+03   -4.8000E+02 0.0000E+00 -1.2000E+03
   2 0.0000E+00     4.0000E+02 0.0000E+00     0.0000E+00 -4.0000E+02 0.0000E+00
   3 -1.2000E+03    0.0000E+00 4.0000E+03     1.2000E+03 0.0000E+00 2.0000E+03
   4 -4.8000E+02    0.0000E+00 1.2000E+03     8.8000E+02 0.0000E+00 1.2000E+03
   5 0.0000E+00    -4.0000E+02 0.0000E+00     0.0000E+00 6.4000E+02 1.2000E+03
   6 -1.2000E+03    0.0000E+00 2.0000E+03     1.2000E+03 1.2000E+03 1.2000E+04
   7 0.0000E+00     0.0000E+00 0.0000E+00    -4.0000E+02 0.0000E+00 0.0000E+00
   8 0.0000E+00     0.0000E+00 0.0000E+00     0.0000E+00 -2.4000E+02 -1.2000E+03
   9 0.0000E+00     0.0000E+00 0.0000E+00     0.0000E+00 1.2000E+03 4.0000E+03
  10 0.0000E+00     0.0000E+00 0.0000E+00     0.0000E+00 0.0000E+00 0.0000E+00
  11 0.0000E+00     0.0000E+00 0.0000E+00     0.0000E+00 0.0000E+00 0.0000E+00
  12 0.0000E+00     0.0000E+00 0.0000E+00     0.0000E+00 0.0000E+00 0.0000E+00
            7             8           9            10          11          12
   1 0.0000E+00     0.0000E+00 0.0000E+00     0.0000E+00 0.0000E+00 0.0000E+00
   2 0.0000E+00     0.0000E+00 0.0000E+00     0.0000E+00 0.0000E+00 0.0000E+00
   3 0.0000E+00     0.0000E+00 0.0000E+00     0.0000E+00 0.0000E+00 0.0000E+00
   4 -4.0000E+02    0.0000E+00 0.0000E+00     0.0000E+00 0.0000E+00 0.0000E+00
   5 0.0000E+00    -2.4000E+02 1.2000E+03     0.0000E+00 0.0000E+00 0.0000E+00
   6 0.0000E+00    -1.2000E+03 4.0000E+03     0.0000E+00 0.0000E+00 0.0000E+00
   7 8.8000E+02     0.0000E+00 1.2000E+03    -4.8000E+02 0.0000E+00 1.2000E+03
   8 0.0000E+00     6.4000E+02 -1.2000E+03    0.0000E+00 -4.0000E+02 0.0000E+00
   9 1.2000E+03    -1.2000E+03 1.2000E+04    -1.2000E+03 0.0000E+00 2.0000E+03
  10 -4.8000E+02    0.0000E+00 -1.2000E+03    4.8000E+02 0.0000E+00 -1.2000E+03
  11 0.0000E+00    -4.0000E+02 0.0000E+00     0.0000E+00 4.0000E+02 0.0000E+00
  12 1.2000E+03     0.0000E+00 2.0000E+03    -1.2000E+03 0.0000E+00 4.0000E+03

Master stiffness matrix modified for BC:
            1           2           3              4            5            6
   1 1.0000E+00 0.0000E+00 0.0000E+00        0.0000E+00   0.0000E+00   0.0000E+00
   2 0.0000E+00 1.0000E+00 0.0000E+00        0.0000E+00   0.0000E+00   0.0000E+00
   3 0.0000E+00 0.0000E+00 1.0000E+00        0.0000E+00   0.0000E+00   0.0000E+00
   4 0.0000E+00 0.0000E+00 0.0000E+00        8.8000E+02   0.0000E+00   1.2000E+03


                                       15–11
Chapter 15: FORTRAN PROGRAMMING: PLANE FRAMEWORK                              15–12

   5    0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 6.4000E+02 1.2000E+03
   6    0.0000E+00 0.0000E+00 0.0000E+00 1.2000E+03 1.2000E+03 1.2000E+04
   7    0.0000E+00 0.0000E+00 0.0000E+00 -4.0000E+02 0.0000E+00 0.0000E+00
   8    0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 -2.4000E+02 -1.2000E+03
   9    0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 1.2000E+03 4.0000E+03
  10    0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
  11    0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
  12    0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
              7           8          9         10         11          12
   1    0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
   2    0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
   3    0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
   4   -4.0000E+02 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
   5    0.0000E+00 -2.4000E+02 1.2000E+03 0.0000E+00 0.0000E+00 0.0000E+00
   6    0.0000E+00 -1.2000E+03 4.0000E+03 0.0000E+00 0.0000E+00 0.0000E+00
   7    8.8000E+02 0.0000E+00 1.2000E+03 0.0000E+00 0.0000E+00 0.0000E+00
   8    0.0000E+00 6.4000E+02 -1.2000E+03 0.0000E+00 0.0000E+00 0.0000E+00
   9    1.2000E+03 -1.2000E+03 1.2000E+04 0.0000E+00 0.0000E+00 0.0000E+00
  10    0.0000E+00 0.0000E+00 0.0000E+00 1.0000E+00 0.0000E+00 0.0000E+00
  11    0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 1.0000E+00 0.0000E+00
  12    0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 1.0000E+00

RHS of stiffness equations:
            1
   1 0.0000E+00
   2 0.0000E+00
   3 0.0000E+00
   4 5.0000E+00
   5 0.0000E+00
   6 0.0000E+00
   7 5.0000E+00
   8 0.0000E+00
   9 0.0000E+00
  10 0.0000E+00
  11 0.0000E+00
  12 0.0000E+00


 -- Computed displacements --
 Node       x-displ       y-displ       z-rotat
    1    0.00000000    0.00000000    0.00000000
    2    0.01525822    0.00528169   -0.00193662
    3    0.01525822   -0.00528169   -0.00193662
    4    0.00000000    0.00000000    0.00000000


 -- Nodal forces recovered from K.v --
 Node       x-force       y-force      z-moment
    1     -5.000000     -2.112676     14.436620
    2      5.000000      0.000000      0.000000
    3      5.000000      0.000000      0.000000
    4     -5.000000      2.112676     14.436620



                                      15–12
15–13                                       §15.5 POSTPROCESSING PHASE


-- Computed internal forces --
 Elem    Ax-force   B-moment1  B-moment2
    1    2.112676 -14.436620   10.563380
    2    0.000000   10.563380 -10.563380
    3   -2.112676 -10.563380   14.436620




                                    15–13

								
To top