Henri Gavin - Associate Professor - Henri.Gavin@Duke.edu - tel: 919-660-5201 - fax: 919-660-5219
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.
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.
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).
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 ...
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 TransformationTo 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 BucklingThe 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.
ConnectionsAll 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.
LoadsConcentrated 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
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
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.
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
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. Source code is available from http://www.sourceforge.net/projects/frame3dd/ |