A Manual and Reference for a Frame Analysis Program
Department of Civil and Environmental Engineering
Edmund T. Pratt School of Engineering
Duke University - Box 90287, Durham, NC 27708-0287

Henri Gavin - Associate Professor - Henri.Gavin@Duke.edu - tel: 919-660-5201 - fax: 919-660-5219


FRAME3DD

FRAME3DD is a program for the static and dynamic structural analysis of two- and three-dimensional frames and trusses with elastic and geometric stiffness.

FRAME3DD reads an Input Data file, containing joint coordinates, member geometry, material moduli, restrained joints, prescribed displacements, load information, and optionally, mass information if a modal analysis is to be carried out.

FRAME3DD appends the Input Data with Output Data, resulting in a single Input/Output file. The Output Data recapitulates the input information, gives joint displacements in global coordinates, member end-forces in local coordinates, reactions in global coordinates, and natural frequencies and mode shapes in global coordinates.

FRAME3DD is free software; you may redistribute it and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation. FRAME3DD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License (GPL) for details.


VERSION DATE

December 20, 2007

GETTING STARTED

  1. Read the Manual and Reference (this file).
  2. Download and install the FRAME3DD executable and Gnuplot for your operating system. (See below.)
  3. Download some of the example Input/Output files and compare them to the corresponding plots and movies.
  4. Open a terminal window and run the program.
    frame [example Input/Output file]
  5. Check the computed Output Data, which is written to the end of the Input/Output file.
  6. Plot the structural configuration, the deformed structural shape, and mode-shapes, by starting Gnuplot, and simply typing ...
    gnuplot> load 'example.plt'
    where the example.plt is a filename specified as part of the Input Data. Observe a series of plots by hitting the Return (or Enter) key between plots. If a dynamic analysis was performed, you will enjoy an animation of selected mode shapes. Continue to hit the Return (or Enter) key until the last plot is displayed.
Input Data and Output Data

The Input Data file is a plain ASCII text file and must adhere to the format described below. Several examples are given at http://www.duke.edu/~hpgavin/frame/. Comments may be placed anywhere in the file and are helpful in organizing the Input Data. A comment begins with one of the following four characters: # % ? ; and continues to the end of the line.

To write your own Input Data file, start with an example that resembles the system you would like to analyze. Carefully compare the graphical output of the example, the Output Data written at the end of the Input/Output file, the Input Data at the beginning of the Input/Output file, and the Input Data Format, with the Definition of Variables at the end of this page. Edit your Input Data file with your favorite text editor (vi, gedit, pico, TextEdit (OS X), TextEdit (Windows), Notepad (Windows), etc.) It might take a few tries to get your Input Data just right. FRAME3DD checks the input data for errors prior to anlayzing the system and displays descriptive diagnostic messages when errors are found with the Input Data.


INSTALLING THE LINUX OR SUN VERSION

For any (?) Linux 2.6 kernel running on an Intel or AMD processor.
  1. Download the FRAME3DD binary file and save as "frame" on your Desktop, or some other directory:
    | RIGHT-CLICK-HERE-FOR-LINUX | RIGHT-CLICK-HERE-FOR-SUN |
  2. Download and save an example Input/Output file, such as exA.frm, on your Desktop, or some other directory:
    | RIGHT-CLICK-HERE |
  3. Open a terminal window and ...
    ...$ cd ~/Desktop
    ...$ chmod +x frame
    Create a file called ~/.bash_profile containing the line:
    export PATH=".:$PATH"
    Exit the terminal by typing ... exit
  4. Run FRAME3DD from a terminal window ...
    ...$ cd ~/Desktop
    ...$ frame3dd example.frm
    where example.frm is the name of your Input Data file.
  5. The graphical output is viewed with Gnuplot, which is probably already installed. Open a terminal window and ...
    ...$ cd ~/Desktop
    ...$ gnuplot
    gnuplot> load 'example.plt'
    where example.plt is the name of of the plot file specified in the Input Data.
    Hit the 'Return' key in the Terminal window to see the sequence of plots and animations until the gnuplot> prompt returns.
    To create a PostScript file of your plot, download and save the Gnuplot script: save.plt, and use the following commands:
    gnuplot> load 'save.plt'
    gnuplot> !mv my-plot.ps another-file.ps
    After finishing with your plots, quit Gnuplot by typing ...
    gnuplot> quit
  6. Edit the Input/Output files with vi, gedit, pico, or the like.

INSTALLING THE OS X VERSION

For OS X running on a PowerPC (PPC) or Intel processor.
  1. Download the FRAME3DD application and save as "frame" on your Desktop, or some other directory:
    | CTRL-CLICK-HERE-FOR-PPC | CTRL-CLICK-HERE-FOR-INTEL |
  2. Download and save an example Input/Output file, such as exA.frm, on your Desktop, or some other directory:
    | CTRL-CLICK-HERE |
  3. Open a Terminal window (Applications > Utilities > Terminal) and ...
    ...$ cd ~/Desktop
    ...$ chmod +x frame
    Create a plain text file (using TextEdit) called ~/.profile containing the line:
    export PATH=".:$PATH:/usr/local/bin"
    Quit the Terminal application. [APPLE] [Q]
  4. Run FRAME3DD from a Terminal window: (Applications > Utilities > Terminal) ...
    ...$ cd ~/Desktop
    ...$ frame3dd example.frm
    where example.frm is the name of your Input Data file.
  5. Edit the Input/Output files with TextEdit (Applications > TextEdit) or vi
    Make sure you are in Plain Text mode ... [SHIFT] [APPLE] [T] ... or ... Format > Make Plain Text ...

The graphical output is viewed with Gnuplot. You'll need both AquaTerm and Gnuplot.

Download and install AquaTerm v1.0.0 (not v1.0.1).

  1. Click on "v1.0.0" then click on "AquaTerm1.0.0.dmg" to start the download.
  2. Click on the "AquaTerm1.0.0.dmg" icon in your HardDisk download directory.
  3. Click on the "AquaTerm.pkg" icon and continue with the installation.
    Enter the administrator password when asked.
  4. If you have already installed AquaTerm v1.0.1, you may not be able to instal v1.0.0.
    In that case open a Terminal window (Applications > Utilities > Terminal) and ...
    ...$ cd /usr/local/lib/
    ...$ sudo ln -s libaquaterm.1.0.1.dylib libaquaterm.1.0.0.dylib
    Enter the administrator password when asked.

For a version of Gnuplot for OS X-Intel, or for a version with mouse-scrolling and panning features, install X11 and Apple Development Tools, and then compile Gnuplot from sources.

To download and install Gnuplot 4.0.0 for OS X running on PowerPC:
|CLICK-HERE| ... and ...

  1. Click on the green Download button for "gnuplot 4.0.0"
  2. Click on "Gnuplot-4.0.0.dmg" and save to disk.
  3. Click on the "Gnuplot-4.0.0.dmg" icon in your HardDisk download directory.
  4. Click on the "gnuplot.pkg" icon and continue with the installation.
    Enter the administrator password when asked.
  5. Create a file called "~/.gnuplot" (using TextEdit) containing the single line:
    set term aqua
  6. Test that Gnuplot works. Open a Terminal window (Applications > Utilities > Terminal) and ...
    ...$ gnuplot
    gnuplot> plot sin(x)
    gnuplot> quit
  7. Visualize your FRAME3DD analysis output. Open a Terminal window (Applications > Utilities > Terminal) and ...
    ...$ cd ~/Desktop
    ...$ gnuplot
    gnuplot> load 'example.plt'
    where example.plt is the name of of the plot file specified in the Input Data.
    Hit the 'Return' key in the Terminal window to see the sequence of plots and animations until the gnuplot> prompt returns.
    Save or print plots using [APPLE] [P].
    After finishing with your plots, quit Gnuplot by typing ...
    gnuplot> quit


INSTALLING THE DOS/MS-Windows VERSION

For DOS and MS-Windows, the following special guidelines should be followed:
  1. Download the FRAME3DD executeable and save as "frame.exe" on your Desktop, or some other directory:
    | RIGHT-CLICK-HERE |
  2. Download and save an example Input/Output file, such as exA.frm, on your Desktop, or some other directory:
    | RIGHT-CLICK-HERE |
  3. Create a directory called C:\tmp if it doesn't already exit.
  4. The plot filename (plot_file) must have eight or fewer characters before the period (.) and three or fewer characters after the period. No more than one period (.) may be included in the file name. The mesh data file name (mesh_file) should contain no more than seven characters, and no character may be a period (.). The mode shape data file name (mode_file) should contain no more than five characters, and no character may be a period (.). The example Input/Output files, exA.frm ... exG.frm, adhere to these rules.
  5. You may need to change the line /tmp/mesh_file to C:\tmp\mesh_file and the line /tmp/mode_file to C:\tmp\mode_file
  6. Run FRAME3DD from a MS-DOS window or Command Prompt window ...
    (Start > Programs > Accessories > Command Prompt)
    ...> cd C:\Documents and Settings\your_name_here\My Documents\
    ...> frame3dd example.frm
    where example.frm is the name of your Input Data file.
  7. The graphical output is best viewed with the MS-Windows version of Gnuplot. The DOS version of Gnuplot works except for mode shape animation. Right-clicking on one of these two links will download a .zip file for Gnuplot. Click on Open to start WinZip, and Extract to creat a Gnuplot folder in My Documents. Open the folder My Documents\Gnuplot\bin and right click on wgnuplot to create a shortcut to your Desktop. Clicking on the wgnuplot icon on the desktop will start Gnuplot. To load the plot into Gnuplot, first change directories to the directory in which you are running the FRAME3DD analysis, by clicking on the ChDir button at the top of the Gnuplot window and typing ...
    C:\Documents and Settings\your_name_here\My Documents
    Display the plot of your structure by typing ...
    gnuplot> load 'example.plt'
    where example.plt is the name of of the plot file specified in the Input Data.
    Hit the 'Return' key in the Terminal window to see the sequence of plots and animations until the gnuplot> prompt returns.
  8. Edit your input data file using any plain text editor, i.e., (Start > Programs > Accessories > Notepad) or vi.
  9. You may wish to delete all the files in C:\tmp\ when you have finished your analyses.

STRUCTURAL MODELING

Units

The Output Data is formated using floating point display, not scientific notation. To obtain the greatest number of significant digits in the output, use units of force and length such that the modulus of elasticity occupies three to five figures before the decimal point. For example, if the frame to be analyzed is made of steel or aluminum, use units of (kips (1000 pounds) and inches), or (kilo-Newtons, millimeters, and kiloTons), or (GigaNewtons, meters, and MegaTons).

Cross Section Properties and Coordinate Transformation

To analyze a structure as a "truss" with this software, specify Jxx, Iyy, and Izz to be much smaller than they would be normally, but not zero. If the shear forces and bending moments in your structural elements are extremely small, then your structural model represents a "truss" approximation of the actual structure. See example A.

Cross-sectional properties of beams and bars are specified in a local coordinate system, in which the x-axis of the local coordinate system is oriented along the axis of the beam or bar element. Ax is the cross-sectional area of the beam or bar, which is given as the area perpendicular to its local x-axis. The local y-axis and z-axis are aligned with the principle directions of the cross section. The bending moments of inertia, Iyy and Izz, are the principle bending moments of inertia for the cross section.

When a beam or bar element is placed into the structure it is translated and rotated and optionally rolled about its local x-axis. By allowing the member to be 'rolled' about its local x-axis during the stiffness matrix assembly process, cross-axis bending effects are included. Issues related to rolling of cross sections and cross-axis bending are important only for three-dimensional structural systems or planar structures with out-of-plane deformation, such as grillages. For planar structures with deformations only in the plane, these issues do not arise. In addition, these issues do not arise for three-dimensional structures made entirely of elements for which Iyy=Izz, i.e., square and circular cross sections.

The default coordinate transformation process starts with the beam element's centroidal axis placed along the global X-axis, and the principle axes of the cross section are aligned with the global Y- and Z-axes. To place the beam in the structure, first it is rotated about the global Y-axis, then about the global Z-axis, then 'rolled' or spun about the local x-axis. If the roll angle is zero, this process results in a transformation for which loads in the global Z-direction will cause no cross-axis bending. In this code, this type of coordinate transformation is called "Z-axis is vertical" and is selected primarily for the sake of visualization with Gnuplot, in which the Z-axis is vertical for all three-dimensional plots.

An alternative, more customary, coordinate transformation process is also implemented in the software. In the alternative coordinate transformation process, the beam is first rotated about the global Z-axis, then about the global Y-axis, then rolled about the local x-axis. If the roll angle is zero, this transformation results in a beam with no cross-axis bending due to loads are applied in the global Y-direction. In the code, this type of transformation is called "Y-axis is vertical." Again, for planar structures, with no out-of-plane bending, which lie in the global X-Y, Y-Z, or X-Z planes, and for structures made entirely of bars with Iyy=Izz, the details of the coordinate transformation procedure do not matter. For a derivation of the alternative coordinate transformation method, refer to section 8.3 of the textbook Matrix Analysis of Structures by A. Kassimali.

Torsion

Polar Moments of Inertia depend on the shape of the cross-section. For sections with a circular cross section:
Jxx = Iyy + Izz

For sections with a solid rectangular cross section (width=b, depth=d):
Jxx = Q d b^3 ( b < d )
where Q = 1/3 - 0.2244 / (d/b + 0.1607);

For more details, see page 271 of Timoshenko and Goodier (1951).

For open sections made up of thin plates (length=b, thickness=t):
Jxx = Sum [ b t^3 / 3 ]

For closed single-box sections made up of thin plates:
Jxx = 4 Ax^2 / Sum [ b / t ]

Restraint to warping deformation is not considered in the analysis.

Shear Deformation, Dynamics, Geometric Stiffness, and Buckling

The FRAME3DD analysis will optionally include the effects of shear deformation and/or geometric stiffness. The geometric stiffness matrix includes the effects of axial forces on bending and warping-torsoinal behaviors. When both shear deformations and geometric stiffness effects are included, the geometric stiffness matrix includes shear deformation effects. If shear deformation effects are not to be included, simply set the shear variable to zero (0). If shear deformation effects are neglected then the values for the shear areas Asy and Asz will not be used in the calculations. Any non-zero value for Asy and Asz will do.

The FRAME3DD analysis will optionally include a dynamic analysis for natural modes of vibration. Dynamic properties may be obtained for the un-stressed or the stressed structure by either neglecting or including geometric stiffness effects. The mass may be modeled using either the consistent mass matrix or the lumped mass matrix.

Computation of rigid-body and flexible modes of free-free (un-restrained) structures is possible. The stiffness matrix need not be positive definite in order to compute natural frequencies and mode shapes. If one or more rigid-body modes (with zero frequency) are present, then the computation of the natural frequencies should make use of frequency shifting. A Sturm check is carried out to determine if any eigen-values were missed.

Reduced order stiffness and mass matrices may be computed via a static condensation, Guyan reduction, or dynamic condensation. The condensed mass and stiffness matrices are saved as text files Kc and Mc. The Guyan reduction method is generalized so that the condensed matrices match the fundamental frequency of the original structure exactly. The dynamic condensation method is a pseudo-inverse-modal-matrix method, and the resulting condensed mass and stiffness matrices may be ill-conditioned. The pseudo-inverse of the modal matrix is computed using a regularization method which somewhat improves the conditioning of the condensed mass and stiffness matrices.

If a dynamic analysis is not to be performed, simply set the modes variable (the number of desired modes) to zero (0). If modes is set to zero, FRAME3DD will stop reading the Input/Output file at this point. If modes is set to zero, there is no need to provide numerical values for the quantities from lump to czz[nC]. (See the Input Data Format specification and Definition of Variables below.)

To determine the buckling load of a structure, include geometric stiffness effects and increase the loads until the stiffness matrix ceases to be positive- definite. Additionally, you may compute the fundamental natural frequency of the structure and observe how the fundamental frequency decreases with increased loading. In principle, the fundamental frequency is zero when the loads are at the buckling load.

If geometric stiffness effects are included in the analysis and if the loads are close to the buckling load of the structure, then it is recommended to put two or three joints along each beam element. (i.e. divide each beam element into three or four beam segments). Including these extra joints is strongly recommended if a buckling analysis is to be performed.

Whenever geometric stiffness effects are included, the analysis is non-linear and superposition does not hold. The geometric stiffness matrix is a secant stiffness matrix. In most cases the geometric stiffness matrix lies between the un-stressed stiffness matrix and the tangent stiffness matrix.

Connections

All connections are moment-resisting. Moment-free conditions can be modeled explicitely only at pinned reactions. Internal hinges may be modeled using a short element with low values of Jxx, Iyy, and Izz. Beams may be considered infinitely rigid within a sphere of a specified radius around a joint.

Loads

Concentrated static loads may be applied to joints, or in an interior of a member. Concentrated static moments may be applied to joints. Uniformly distributed static loads may be applied over an entire member. Thermal loads assume a linear temperature gradient through the member.

Cross Section Properties of some Steel Sections
Cross Section Properties of some Standard Wood Sections
             Ax      Asy     Asz     Jxx     Iyy     Izz   
             in^2    in^2    in^2    in^4    in^4    in^4

     2x3    3.750   2.500   2.500   1.776   1.953   0.708 
     2x4    5.250   3.500   3.500   2.875   6.359   0.984
     2x5    6.750   4.500   4.500   3.984  11.390   1.266  
     2x6    8.250   5.500   5.500   5.099  20.800   1.547 
     2x8   10.850   7.233   7.233   7.057  47.630   2.039
     2x10  13.880   9.253   9.253   9.299  98.930   2.602  
     2x12  16.880  11.253  11.253  11.544 178.000   3.164 
     2x14  19.880  13.253  13.253  13.790 290.800   3.727
Elastic Material Properties of Douglas Fir
     Modulus of Elasticity (E)         1700 - 1900 ksi
     Shear Modulus         (G)          640 -  710 ksi

NUMERICAL DETAILS


ENHANCEMENTS PROJECTED FOR FUTURE VERSIONS


INPUT DATA FORMAT

A one-line descriptive title of your analysis MUST be the FIRST line of the file

nJ       nM                                      % number of joints and members
  J[1]       x[1]       y[1]       z[1]     r[1]       
    :          :          :          :        :  % joint numbers and coordinates
  J[nJ]      x[nJ]      y[nJ]      z[nJ]    r[1]


                                            % member numbers, loc'ns, and prop's
M[1]  J1[1]  J2[1]  Ax[1]  Asy[1]  Asz[1]  Jxx[1]  Iyy[1]  Izz[1]  E[1]  G[1]  p[1]
  :      :      :      :       :       :       :       :       :     :     :     :
M[nM] J1[nM] J2[nM] Ax[nM] Asy[nM] Asz[nM] Jxx[nM] Iyy[nM] Izz[nM] E[nM] G[nM] p[nM]

shear                               % 1: include shear deformation;   0: don't 
geom                                % 1: include geometric stiffness; 0: don't 
/tmp/mesh_file                      % mesh data file name for plotting
plot_file                           % plot file name 
exagg                               % exaggerate deformations 
anlyz                               % 1: stiffness analysis; 0: data check only 

nF                                                    % number of loaded joints 
  J[1]    Fx[1]   Fy[1]   Fz[1]   Mxx[1]  Myy[1]  Mzz[1]
    :        :       :       :        :       :       :          % nodal forces
  J[nF]   Fx[nF]  Fy[nF]  Fz[nF]  Mxx[nF] Myy[nF] Mzz[nF]

nW                                        % number of uniform distributed loads
  M[1]    Wx[1]   Wy[1]   Wz[1]
    :        :       :       :     % uniform member loads in member coordinates
  M[nW]   Wx[nW]  Wy[nW]  Wz[nW]

nP                                         % number of concentrated point loads
  M[1]    Px[1]   Py[1]   Pz[1]   x[1]     %  point loads in member coordinates
    :        :       :       :      :      %  and x=distance from coordinate J1
  M[nP]   Px[nP]  Py[nP]  Pz[nP]  x[nP]

nT                                 % number of members with temperature changes 
  M[1]  a[1]   hy[1]   hz[1]   Ty+[1]  Ty-[1]  Tz+[1]  Tz-[1]     % member no., 
    :     :       :       :        :       :       :       :      % temp. coef. 
  M[nT] a[nT]  hy[nT]  hz[nT]  Ty+[nT] Ty-[nT] Tz+[nT] Tz-[nT] % sizes, & temps 

nR                                            % number of joints with reactions 
  J[1]    Rx[1]   Ry[1]   Rz[1]   Rxx[1]  Ryy[1]  Rzz[1]
    :        :       :       :        :       :       :       % 0:free, 1:fixed 
 J[nR]    Rx[nR]  Ry[nR]  Rz[nR]  Rxx[nR] Ryy[nR] Rzz[nR]

nD                      % number of joints with prescribed displacements  
  J[1]   Dx[1]  Dy[1]  Dz[1]  Dxx[1]  Dyy[1]  Dzz[1]
    :       :      :      :       :       :       :  % prescribed displacements 
  J[nD]  Dx[nD] Dy[nD] Dz[nD] Dxx[nD] Dyy[nD] Dzz[nD]

modes                                          %       number of desired modes 
Mmethod                                        % 1: Subspace Jacobi, 2: Stodola
lump                                           % 0: consistent mass, 1: lumped 
/tmp/mode_file                                 %     mode shape data file name 
tol                                            %  convergence tolerance ~ 1e-4 
shift             % shift-factor for rigid body modes, make 0 for pos.def. [K] 

 M[1]  d[1]  BMs[1]
   :     :       :                           % beam density and extra beam mass
 M[nM] d[nM] BMs[nM]

nI                          % number of joints with extra joint mass or inertia
 J[1]  JMs[1]   JMx[1]  JMy[1]  JMz[1]     % joint masses and rotatory inertias 
   :       :        :       :       :                      % global coordinates 
 J[nI] JMs[nI]  JMx[nI] JMy[nI] JMz[nI]

nA                                    % number of modes to be animated 
 anim[0] ... anim[nA] % list of modes to be animated, sorted by increasing freq. 
pan                                         % 1: pan during animation; 0: don't

Cmethod % matrix condensation method ...  0=none, 1=static, 2=Guyan, 3=dynamic
nC                                                % number of condensed joints
 J[1]  cx[1]  cy[1]  cz[1]   cxx[1]  cyy[1] czz[1]
    :      :      :      :        :       :       :    % 1: condense; 0: don't
 J[nC] cx[nC] cy[nC] cz[nC]  cxx[nC] cyy[nC]  czz[nC]
  m[1]   m[2]   m[3]  ...      % list of modes matched in dynamic condensation
                               % if Cmethod == 1, only mode m[1] is matched.


VARIABLE DEFINITIONS

       a         - Coefficient of thermal expansion (1/degree)
       anim      - List of modes to be animated, by mode number
       plot_file - Plot filename for the Gnuplot-formatted data
                   To plot, type   load 'plot_file' within Gnuplot.
       Ax        - Cross-sectional area of (prismatic) member i
                   (The x-axis is along the member length, in local coordinates)
       Asy       - Shear area in the local y-axis of (prismatic) member i
       Asz       - Shear area in the local z-axis of (prismatic) member i
       anlyz     - 1: Perform stiffness analysis, 0: Check data only
       BMs       - extra mass on a beam, not including self mass
       Cmethod   -  matrix condensation method ...  0=none, 1=static, 2=Guyan, 3=dynamic
       cx        - 1: retain X d.o.f. in condensed system at joint J;  0: don't
       cy        - 1: retain Y d.o.f. in condensed system at joint J;  0: don't
       cz        - 1: retain Z d.o.f. in condensed system at joint J;  0: don't
       cxx       - 1: retain X axis rotation at joint J;  0: don't
       cyy       - 1: retain Y axis rotation at joint J;  0: don't
       czz       - 1: retain Z axis rotation at joint J;  0: don't
       Dx        - Prescribed displacement in the global X direction
       Dy        - Prescribed displacement in the global Y direction
       Dz        - Prescribed displacement in the global Z direction
       Dxx       - Prescribed rotation in the global X direction
       Dyy       - Prescribed rotation in the global Y direction
       Dzz       - Prescribed rotation in the global Z direction
       d         - mass density of a member
                   steel:    7.324e-7 kip s^2/in^4 = 7.85 g/cm^3 = 7.85e-12 MTon/mm^3
                   concrete: 2.245e-7 kip s^2/in^4 = 2.41 g/cm^3 = 2.41e-12 MTon/mm^3
       E         - Modulus of elasticity of member i
                   modulus of steel = 29000 kip/in^2 = 20000 kN/cm^2
       exagg     - Factor for exaggeration of the deformations in the plot
       Fx        - Joint load in the global X direction
       Fy        - Joint load in the global Y direction
       Fz        - Joint load in the global Z direction
       G         -  Shear modulus of elasticity of member i
       geom      - 1: include geometric stiffness effects, 0: do not.
       hy        - member section dimension in the local y coordinate dir.
       hz        - member section dimension in the local z coordinate dir.
       Iyy       - Moment of inertia for bending about the local y axis
       Izz       - Moment of inertia for bending about the local z axis
       J         - Joint number
       J1        - Joint 1 of member i
       J2        - Joint 2 of member i
       JMs       - extra mass of a joint for translational motion
       JMx       - extra rotatory inertia of a joint about global x coord. dir.
       JMy       - extra rotatory inertia of a joint about global y coord. dir.
       JMz       - extra rotatory inertia of a joint about global z coord. dir.
       Jxx       - Torsional moment of inertia of member i
       lump      - 1: use lumped mass matrix, 0: use consistent mass matrix
       M         - Member number 
       Mxx       - Joint Moment about the global X axis
       Myy       - Joint Moment about the global Y axis
       Mzz       - Joint Moment about the global Z axis
       m         - list of modes to match in dynamic condensation
       mesh_file - Data file for the Gnuplot-formatted mesh data for plotting
       modes     - number of modes to be calculated
       Mmethod   - the modal analysis method 1: Subspace Jacobi, 2: Stodola
       mode_file - Data file for the Gnuplot-formatted mode data for plotting
       nA        - number of mode shapes to animate must be less than 20
       nC        - number of joints for matrix condensation 
       nD        - number of prescribed joint displacements not greater than nR
       nF        - number of loaded joints
       nI        - number of joints with extra joint mass or inertia
       nJ        - number of Joints
       nM        - number of Members 
       nP        - number of concentrated member loads
       nR        - number of restrained joints
       nT        - number of members with temperature changes
       nW        - number of distributed loads
       p         - the roll angle of the beam element, in degrees
       pan       - 1: pan the camera view during animation,  0: don't
       Px        - member load in the local x direction
       Py        - member load in the local y direction
       Pz        - member load in the local z direction
       Rx        - 1: Restrained in the global X direction,  0: free
       Ry        - 1: Restrained in the global Y direction,  0: free
       Rz        - 1: Restrained in the global Z direction,  0: free
       Rxx       - 1: Moment Restrained about the global X axis, 0: free
       Ryy       - 1: Moment Restrained about the global Y axis, 0: free
       Rzz       - 1: Moment Restrained about the global Z axis, 0: free
       r         - r radius of rigid sphere around joint i 
       shear     - 1: include shear deformations, 0: do not.
       shift     - shift factor for non-definite stiffness matrices
       tol       - tolerance for finding mode shapes ~ 1.e-4
       Ty+       - temperature change on the local +y face of the member
       Ty-       - temperature change on the local -y face of the member
       Tz+       - temperature change on the local +z face of the member
       Tz-       - temperature change on the local -z face of the member
       Wx        - uniform member load in the local X direction
       Wy        - uniform member load in the local Y direction
       Wz        - uniform member load in the local Z direction
       x         - x coordinate of a joint in global coordinates
       y         - y coordinate of a joint in global coordinates
       z         - y coordinate of a joint in global coordinates
       xP        - distance from J1 to the concentrated member load


REFERENCES

This software was developed using methods presented in the following texts. The books by A. Kassimali and J.S. Przemieniecki provide good starting points.
  1. Howard G. Allen, Background to Buckling, McGraw-Hill, 1980. ASIN: 0070841004
  2. Klaus-Jurgen Bathe, Finite Element Procedures, Prentice-Hall, 1995. ISBN: 0133014584
  3. Arthur P. Boresi, Richard J. Schmidt, and Omar M. Sidebottom, Advanced Mechanics of Materials, John Wiley & Sons, 1993. ISBN: 0471551570
  4. Raymond W. Clough and Joseph Penzien, Dynamics of Structures, McGraw-Hill, 1993. ASIN: 0070113920
  5. J. P. Den Hartog, Advanced Strength of Materials, Dover Press, 1987. ISBN: 0486654079
  6. Thomas J. R. Hughes, The Finite Element Method: Linear Static and Dynamic Finite Element Analysis, Dover Press, 2000. ISBN: 0486411818
  7. Aslam Kassimali, Matrix Analysis of Structures, Brooks/Cole, 1999. ISBN: 0534206700
  8. Jaroslav Mackerle, ``Finite element linear and nonlinear, static and dynamic analysis of structural elements: a bibliography (1992-1995),'' Engineering Computations, vol. 14, no. 4, pp. 347-440, 1997.
  9. Jaroslav Mackerle, ``Finite element linear and nonlinear, static and dynamic analysis of structural elements - an addendum - A bibliography (1996-1999),'' Engineering Computations, vol. 17, no. 3, pp. 274-351, 2000.
  10. William McGuire, Richard H. Gallagher, and Ronald D. Ziemian, Matrix Structural Analysis, 2nd ed. John Wiley, 1999. ISBN: 0471376515
  11. W.D. Pilkey, Weize Kang and Uwe Schramm, ``New structural matrices for a beam element with shear deformation,'' Finite Elements in Analysis and Design, vol. 19, pp. 25-44, 1995.
  12. William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery, Numerical Recipes in C: The Art of Scientific Computing, Cambridge University Press, 1993. ISBN: 0521431085
  13. J.S. Przemieniecki, Theory of Matrix Structural Analysis, Dover Press, 1985. ISBN: 0486649482
  14. Robert E. Sennett, Matrix Analysis of Structures, Waveland Press, 2000. ISBN: 1577661435
  15. S. Timoshenko and J.N. Goodier, Theory of Elasticity, 2nd ed., McGraw Hill, 1951.
  16. Ansel C. Ugural and Saul K. Fenster, Advanced Strength and Applied Elasticity, 3rd ed., Prentice-Hall, 1995. ISBN: 013137589X

SOURCE CODE

The source code is written in AINSI C and is extensively commented. The source code includes functions for frame analysis, LDL' decomposition, LU decomposition, Newton-Raphson iteration, sub-space iteration, Stodola iteration, Sturm eigen-value check, static condensation, Guyan reduction, and dynamic condensation.
    file name      description                                               revision date
    -----------    --------------------------------------------------------  -----------------
    main.c          C source-code for main driver routines                14 March    2008
    frame3dd.c      C source-code for frame analysis                      20 December 2007
    frm_io.c        C source-code for input-output functions              14 March    2008
    eig.c           C source-code for generalized eigenvalue analysis      7 November 2002
    ldl_dcmp.c      C source-code for LDL' decomposition                  26 December 2001 
    lu_dcmp.c       C source-code for LU decomposition                     5 May      1998
    coordtrans.c    C source-code for coordinate transformation           14 March    2008
    nrutil.c        C source-code for dynamic memory allocation           23 April    2001

FRAME3DD compiles with the gcc compiler, the DJGPP gcc compiler, the LCC-win32 compiler, and the MinGW compiler.

    gcc -O -o frame3dd main.c frame3dd.c frm_io.c ldl_dcmp.c lu_dcmp.c coordtrans.c eig.c nrutil.c -lm

Author
    Henri P. Gavin 
    Department of Civil and Environmental Engineering
    Duke University, Box 90287 
    Durham, NC  27708--0287 

    Henri.Gavin@Duke.edu


FRAME3DD is is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Simply put, the GPL says that anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it. By distributing the complete source code for FRAME3DD under the terms of the GPL, we guarantee that you and all other users will have the freedom to redistribute and change FRAME3DD.

FRAME3DD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License (GPL) and the GNU General Public License FAQ for more details.

© 1992-2008 Henri P. Gavin. Verbatim copying and distribution is permitted in any medium, provided this notice is preserved.

Department of Civil and Environmental Engineering
Duke University, Box 90287
Durham, NC 27708-0287

Source code is available from http://www.sourceforge.net/projects/frame3dd/


updated: May 6 2003, Nov 8 2004, Nov 22 2004, Nov 29 2004, Dec 2 2004, Dec 10 2004, Dec 6 2006, Feb 22 2007, Mar 1 2007, June 6 2007, December 20 2007, March 14 2008