Sei sulla pagina 1di 256

FINITE ELEMENT PROGRAM IN AUTOCAD VBA

FOR WINKLER FOUNDATION









by
Name Roll No.
1. Jhaman Lalchandani 94 CE 31


Supervised by
Prof. Mumtaz Ali Memon
Mr. Rasool Bux Mahar
Department of Civil Engineering
Mehran University of Engineering and Technology, Jamshoro
Submitted in partial fulfillment of the requirements for the degree of
Bachelor of Civil Engineering
July, 2000

ii
D DE ED DI IC CA AT TI IO ON N
This work is dedicated to Leibniz, Gottfried Wilhelm, (1646-1716), German philosopher,
mathematician, and statesman, regarded as one of the supreme intellects of the 17th
century.
Leibniz was considered a universal genius by his contemporaries. His work encompasses
not only mathematics and philosophy but also theology, law, diplomacy, politics, history,
philology, and physics.













iii
C CE ER RT TI IF FI IC CA AT TE E
This is to certify that the work presented in this thesis titled FINITE
ELEMENT PROGRAM IN AUTOCAD VBA FOR WINKLER FOUNDATION is
entirely written by the following students themselves under the supervision of Prof.
Mumtaz Ali Memon and Mr. Rasool Bux Mahar.
Name Roll No.
1. Haibat Khan Abro 94 CE 60
2. Jhaman Lalchandani 94 CE 31




Thesis Supervisors External Examiner



Chairman
Department of Civil Engineering


Date :________________




iv
ACKNOWLEDGEMENTS

The authors wish to express their gratitude to Mr. M. Soomar Khatri, Chairman, Dept. of
Civil Engineering, for the help and cooperation he rendered at every stage of the project.
The authors are indebted to Prof. Mumtaz Ali Memon and Mr. Rasool Bux Mahar, the
thesis supervisors, for the advice and help in preparing the thesis.
The authors acknowledge, with thanks, the time spared and the help and expert advice
given by Dr. Ghulam Hussain Sidiqui.
In the last, but not the least, the authors are extremely grateful to Mr. Parvaiz Ahmed
Shaikh, Mr. Fazlullah Solangi, and Mr. Mohammad Muhajir for lending their books for a
considerable length of time.




















v

Abstract
In conventional method for design of combined footings, the soil-structure interaction is
usually neglected because it requires a lot of calculations. Instead, the footings are designed
by assuming that they are rigid. However, the demerit of this assumption is that the
computed bending moments are higher than actual, which means that larger amounts of
reinforcement steel are to be provided than required. This soil-structure interaction
phenomena, was first studied by Winkler (1867) by assuming it as a beam (structure) on
elastic springs (soil) placed continuously underneath it. Even though, this Winkler
Foundation Model gives much better approximation of soil pressure, it did not gain much
popularity because the problem becomes statically indeterminate and requires lots of
calculations.
The authors have developed a finite element program BEAMDEZ in AutoCAD VBA,
which is based on Winkler Foundation Model and computes design parameters (bending
moment, shear, soil pressure, deflection, rotation, etc at all node points in the discretized
footing) and draws shear, bending moment, soil pressure, and deflection diagrams in
AutoCAD. The program also considers soil-structure separation and elastic range of soil. It
is illustrated through examples that bending moments obtained by this method are smaller
than those obtained by conventional method and therefore the reinforcement design requires
about 30% less steel than by conventional method.

vi
TABLE OF CONTENTS
LIST OF SYMBOLS X
INTRODUCTION 1
1.1 BACKGROUND 1
1.2 AIM 2
1.3 FOOTINGS 3
1.4 DESIGN OF FOOTINGS 4
1.4.1 Design of Combined Footing by Conventional (Rigid) Method 5
1.4.2 Design of Combined Footing by Finite element method 5
1.5 NUMERICAL SOLUTIONS 6
1.6 FINITE ELEMENT METHOD 8
1.7 HISTORICAL COMMENTS 9
FINITE ELEMENT METHOD 10
2.1 BACKGROUND OF THE FINITE ELEMENT METHOD 10
2.2 MATRIX METHODS (STIFFNESS/DISPLACEMENT METHOD) 11
2.3 STIFFNESS AND FLEXIBILITY METHODS OF MATRIX ANALYSIS 12
2.4 STIFFNESS METHOD 12
2.5 ANALYSIS OF CONTINUUM STRUCTURES 13
2.6 CLASSICAL ANALYSIS OF SOLIDS 13
2.7 FINITE ELEMENT ANALYSIS OF SOLIDS 14
2.8 Fundamental requirements 15
2.9 FINITE ELEMENT CONCEPTS 15
2.9.1 Elements 15
2.9.2 Type and Number of Elements 16
2.9.3 Equilibrium and Degrees of Freedom 16
2.9.4 External Loads 16
2.9.5 Accuracy of Solution 17
2.9.6 Necessity of Computer Application 17
2.9.7 Continuity of Displacements 17
2.9.8 Plotting of Results 17
2.10 APPLICABILITY TO DIFFERENT FIELDS 17
2.11 GENERAL STEPS IN FINITE ELEMENT METHOD 18
2.12 MATRIX OPERATIONS 19
2.12.1 Transpose of Matrix 19
2.12.2 Matrix Multiplication 19
2.12.3 Symmetric Matrices 20
2.12.4 Band Matrix 20
2.12.5 Identity Matrix 21
2.12.6 Inverse Matrix 21

vii
2.13 ADVANTAGES OF FINITE ELEMENT METHOD 21
2.13.1 Better Approximations 22
2.13.2 Trial Solutions 22
2.13.3 Boundary Conditions 22
2.13.4 Material Properties 23
2.13.5 Non Homogenous Continua 23
2.13.6 Systematic Generality 23
2.14 LIMITATIONS OF FINITE ELEMENT METHOD 24
2.14.1 Validity of Results 24
2.14.2 Computer Requirements 24
2.14.3 Discretizing the Continuum and Data Input 25
2.14.4 Interpretation of Results 25
COMBINED FOOTINGS 26
3.1 COMBINED FOOTING 26
3.2 PURPOSE OF COMBINED FOOTINGS 26
3.2.1 Columns Near Property Line 26
3.2.2 Closely Spaced Columns 27
3.2.3 Poor Soil 27
3.2.4 Differential Settlement 28
3.3 SHAPE OF COMBINED FOOTINGS 28
3.3.1 Rectangular Combined Footing 29
3.3.2 Trapezoidal Footing 29
3.3.3 Strap Footing 30
3.3.4 Strip, Grid, And Mat Foundation 31
3.4 DESIGN OF RECTANGULAR COMBINED FOOTINGS 31
3.4.1 Footing Dimensions 32
3.4.2 Rounding of Dimensions 32
3.4.3 Shear and Moment Computations 32
3.4.4 Depth of Footing 32
3.4.5 Reinforcement Design 33
3.4.5.1 Main Reinforcement 33
3.4.5.2 Transverse Reinforcement 33
3.4.5.3 Shear Reinforcement 34
3.5 DESIGN STEPS 34
3.6 DEMERITS OF RIGID DESIGN 35
3.6.1 Assumptions of Rigid Design 35
3.7 BEAM ON ELASTIC FOUNDATION 36
BEAM ON ELASTIC FOUNDATION 37
4.1 ELASTIC FOUNDATION 37
4.2 WINKLER MODEL 37
4.3 LIMITATIONS OF WINKLER MODEL 38
4.4 OTHER MODELS 38
4.5 MODULUS OF SUBGRADE REACTION 39
4.6 PREVIOUS EFFORTS BY RESEARCHERS TO EVALUATE THE VALUE OF K 41
4.7 NEW RESEARCH FOR EVALUATION OF THE VALUE OF K 42

viii
4.7.1 Augmentation of k 42
4.7.2 Vallabhans Iterative Procedures 43
4.7.3 Non-Dimensional Parameters For k 43
4.8 DISPLACEMENT METHOD 43
4.9 BASIC DIFFERENTIAL EQUATION 43
4.10 GENERAL SOLUTION OF THE DIFFERENTIAL EQUATION 45
4.11 BOUNDARY CONDITIONS OF AN UNLOADED MEMBER 48
4.12 STIFFNESS MATRIX OF A MEMBER ON ELASTIC FOUNDATION 49
4.13 APPLICATION OF THE FINITE ELEMENT METHOD 67
4.14 GENERAL RELATIONS 67
4.15 DEVELOPMENT OF THE ELEMENT A MATRIX 71
4.16 DEVELOPMENT OF THE ELEMENT B (OR A
T
) MATRIX 72
4.17 DEVELOPMENT OF ELEMENT S MATRIX 72
4.18 DEVELOPMENT OF THE ELEMENT ESA
T
AND EASA
T
MATRICES 75
4.19 DEVELOPMENT OF THE GLOBAL MATRIX ASA
T
76
4.20 ADDING THE NODE SPRINGS K TO ASA
T
77
4.21 DEVELOPMENT OF P MATRIX 78
4.22 BEAM WEIGHT 78
4.23 BOUNDARY CONDITIONS 78
PROGRAM 80
5.1 CAD 80
5.2 CAE 80
5.3 AUTOCAD 2000 81
5.3.1 AutoCAD ActiveX Technology 81
5.4 RAPID APPLICATION DEVELOPMENT (RAD) 82
5.5 VISUAL BASIC 82
5.6 VBA 83
5.7 AUTOCAD VISUAL BASIC FOR APPLICATIONS (VBA) 83
5.7.1 VBA implementation in AutoCAD 84
5.7.2 Strengths of AutoCAD ActiveX and VBA Together 85
5.7.2.1 Speed 85
5.7.2.2 Ease of Use 85
5.7.2.3 Windows Interoperability 85
5.7.2.4 Rapid Prototyping 85
5.7.2.5 Programmer Base 85
5.7.3 Embedded and Global VBA Projects 85
5.8 FLOW CHART OF THE PROGRAM 87
5.9 PROGRAM CODE 88
Code: Beamdimensions 88
Code: boundary 96
Code: Elements 106
Code: Exporter 143
Code: Filer 145
Code: loadmom 147
Code: memberlen 153
Code: saver 158
Code: starter 160

ix
USER GUIDE 162
6.1 INSTALLATION 162
6.2 LOADING THE PROGRAM 162
6.3 RUNNING THE PROGRAM 163
6.4 ENTERING BEAM DATA 164
6.5 DISCRETIZING THE BEAM 165
6.6 ENTERING ELEMENT LENGTHS 165
6.7 APPLIED LOADS AND MOMENTS 165
6.8 BOUNDARY CONDITIONS 166
6.9 RESULTS 167
6.10 CURSOR ICONS 170
EXAMPLE PROBLEMS 171
Example problem 1: 171
Example problem 2: 181
Example problem 3: 194
Example problem 4: 209
Example problem 5: 224
APPENDICES 227
REFERENCE 230
INDEX 233



x
LIST OF SYMBOLS
= Poissons ratio
u = slope, rotation
| = multiplier
A = deflection
= percentage of steel
= area ratio
o = deformation
o = pressure
Ao = change in settlement or deformation
Ao = increment of contact pressure
AH = settlement of foundation
v
s
= Poissons ratio of soil
a = depth of Whitneys block
A = area
A
b
= area of steel bar
A
g
= gross cross-sectional area of concrete
A
s
= area of steel
b = width
B = width
C = compression force
d =depth of footing
d
b
= dia. of bar
E = modulus of elasticity
EI = bending rigidity
E
s
= modulus of elasticity of soil
f
c
' = characteristic 28-day compressive strength of concrete
f
y
= characteristic strength of steel
I = identity matrix
k
s
= modulus of subgrade reaction
L = length
L
d
= development length
LF = load factor
M = bending moment
M
n
= nominal moment
M
u
= ultimate (factored) moment
N = number of elements
P = applied load
P
u
= ultimate load
P
w
= working load
q = bearing pressure
q
a
= allowable bearing pressure
Q
con
= constant soil pressure

xi
q
ult
= ultimate computed bearing pressure
R = resultant force
S = center to center distance between columns
SF = safety factor
T = tension force
UR = ultimate ratio
V = shear force
v
c
= shear stress
w = load intensity
w = width of column
y = deflection


1
C H A P T E R O N E
INTRODUCTION
1.1 Background
Conventionally the combined footings are designed by assuming that they are rigid. This
assumption allows the engineer to consider the soil pressure as linear. Then the footing
dimensions are set in such a way that the centroid of area (in plan) of footing coincides
with the resultant of column loads. This gives rise to uniformly distributed soil pressure
on the entire footing area, thus the combined footing for any number of columns can be
considered as an inverted uniformly loaded continuous beam with all reactions (column
loads) known. These assumptions render the problem as statically determinate, thus
simplifying the design process. However, the demerit of these assumptions is that higher
than actual bending moments are obtained, which implies that larger than required
amounts of steel are to be provided. This becomes uneconomical because steel is an
expensive item.
In practice, a footing cannot be made so much rigid that its bending becomes negligible
because this would require a great depth of concrete, which will again render it
uneconomical. Due to this bending, deflection is not same at all points; for example,
deflection will usually be more under the columns than at midspan between them. Since
soil pressure will be higher for greater deflections, these non-uniform deflections will
give rise to non-uniform soil pressure under the footing. This phenomena, known as
soil-structure interaction, was first studied by Winkler in 1867 by assuming it as a beam
(structure) on elastic springs (soil) placed continuously underneath it. Even though this
model (called Winkler Foundation Model) gave much better approximation of soil
pressure, it did not gain much popularity because the problem became statically
indeterminate and required a lot of calculations.


2
In present age, when tools like matrix displacement method (which does not distinguish
between determinate and indeterminate structures) and finite element method has been
developed and high-speed digital computers are commonly available, the Winkler
Foundation Model can be solved easily and quickly. Still many engineers design the
combined footings by conventional method because the commercial software packages of
finite element analysis are rather too expensive.
1.2 Aim
Authors have developed a finite element program BEAMDEZ in AutoCAD VBA with
the aim that it should be easily available to anyone who requires it. This program
computes design parameters (bending moment, shear, soil pressure, deflection, rotation,
etc at all node points of the discretized footing) based on the theory of
beam-on-elastic-foundation and draws the shear, bending moment, soil pressure, and
deflection diagrams in AutoCAD. Soil reaction is modeled as springs under the footing
(Winkler Foundation Model). The program also considers soil-structure separation (soil
pressure is zeroed out at such nodes to prevent tension in soil) and elastic range of soil (a
certain deflection after which soil pressure becomes constant). Deflections and rotations
are obtained using the stiffness matrix. As the stiffness of the footing is considered, the
bending moment obtained is more realistic and lower in magnitude than the one
computed by the conventional (rigid) method. This results in economical design of the
footing because lesser amount of reinforcement steel is required.
Every effort has been taken to make the program user friendly. Data entry and editing
have been made very easy. Data files can be saved by the program in binary format and
results can be exported to text format. The shear force, bending moment, deflection,
rotation, and soil pressure diagrams can be obtained readily in AutoCAD and can be
manipulated using AutoCADs rich set of tools. These diagrams can be printed easily and
saved in various file formats supported by AutoCAD for use in other programs such as
word processors, etc.


3
A two column combined footing and a three column combined footing have been
designed by both the conventional (rigid) method and the finite element method to
illustrate the economy achieved by the later method.
1.3 Footings
Footings are structural members used to support columns and walls and transmit their
load to the soil. Footings act as transition-members to distribute the higher pressure of
loads coming from the superstructure to larger areas of soil in such a way that
- the load bearing capacity of the soil is not exceeded,
- Excessive settlement, differential settlement, or rotations are prevented, and
- Adequate safety against overturning or sliding is maintained.
Types of footings:
Different types of footings may be used to support building columns or walls. The most
common types are as follows:






Figure-1.1 Types of footings
1. Continuous or Wall footings are used to support structural walls that carry loads from
other floors, or to support nonstructural walls. They have limited width and a


4
continuous length under the wall. Wall footings may have one thickness, be stepped,
or have a sloped top.
2. Isolated or single footings are used to support single columns. They may be square,
rectangular, or circular. Again, the footing may be of uniform thickness, stepped, or
have a sloped top. This is one of the most economical types of footings and it is used
when columns are spaced at relatively long distances.
3. Combined footings usually support two or more columns in a line. The shape of the
footing in plan may be rectangular or trapezoidal, depending on column loads.
Combined footings are used when two columns are so close that single footings
cannot be used, or when one column is located at or near a property line.
4. Cantilever or strap footings consist of two single footings connected with a beam or a
strap and support two single columns. They are used when one footing supports an
eccentric column and the nearest adjacent footing lies at quite a distance from it. This
type replaces a combined footing and is more economical.
5. Raft or mat foundation consists of a single large footing, usually under the entire
building area, and supports the columns of the building. They are used when
- the soil bearing capacity is low
- column loads are heavy
- single footings cannot be used
- piles are not used
- differential settlement must be reduced through the entire footing system.
1.4 Design of footings
The area of footing is determined according to the bearing capacity of the soil and
intensity of the applied loads. The depth of the footing and reinforcement are determined
for punching shear, beam shear, and bending moment calculations.


5
1.4.1 Design of Combined Footing by Conventional (Rigid) Method
In conventional method, the basic assumption is that the footing is a rigid member so that
the soil pressure can be taken as linear. In order to make the soil pressure uniform, the
length of footing is set in such a manner that the resultant of loads coming from columns
acts at the centroid of the footing area. If the soil pressure is uniform and the resultant of
applied loads acts at the centroid of the footing then the settlements will also be uniform.
This assumption is approximately true if the soil is homogeneous and footing is rigid.
However, in actual practice, it is very difficult to make a rigid footing because the
thickness required would have to be large. Bowles suggests that the success of the
designs based on the assumption of a rigid member has probably resulted from a
combination of soil creep, concrete stress transfer, and overdesign.
Depth of the footing is obtained from two-way action or wide-beam shear (whichever is
greater). Reinforcement steel is designed using the selected depth and bending moment
diagram.
1.4.2 Design of Combined Footing by Finite element method
Because the footing cannot be made rigid in actual practice, therefore the settlements will
not be uniform or linear if the column spacing is large. For one thing, the more heavily
loaded columns will cause larger settlements, and thereby larger subgrade reactions, than
the lighter ones. Also, since the continuous strip or beam between the columns will
deflect upward relatively to the nearby columns, this means that the soil settlement, and
thereby the subgrade reaction, will be smaller midway between columns than directly at
the columns. This is shown schematically in figure 1.2. In this case, the subgrade
reaction can no longer be assumed as uniform. A reasonably accurate but fairly complex
analysis can then be made using the theory of beams on elastic foundations.
Structure/soil interaction problems may be simplified as a beam (structure) on springs
(soils), which is a one dimensional (1D) problem.
Even though Winkler had studied the beam on elastic springs in 1867 but the method was
not used in common practice because of the enormous amount of calculations involved.
Because of easy availability of computers and development of finite element procedures


6
in present times, the beam-on-elastic-foundation analysis can be made easily by assuming
it as a beam on springs (or Winkler foundation) and using a computer program.










Figure-1.2 Combined Footing
Due to the overdesign involved in rigid method, current practice tends to modify the
design by beam-on-elastic-foundation analysis. Now the footing is considered as a
beam or flexural member. Modified moments (which tend to be lower in magnitude)
are obtained using finite element analysis using a computer program. Thus, an
economical design can be obtained as will be shown later using the finite element
program BEAMDEZ.
1.5 Numerical Solutions
Practically all phenomena in nature, whether biological, geological, or mechanical, can be
modeled with the help of laws of physics, using algebraic, differential, or integral


7
equations relating various quantities of interest. To determine the characteristics of fluid
flow, finding the concentration of pollutants in sea water or in the atmosphere, stress
distribution in complex structures subjected to a variety of loads, and simulating weather
in an attempt to understand and predict the mechanics of formation of tornadoes and
thunder storms are a few examples of many important practical problems. To derive the
governing equations for these problems is not unduly difficult, but to solve these by exact
methods of analysis is a formidable task. In such cases, the numerical methods are
employed as an alternative means of finding approximate solutions. Among these the
finite-difference method, variational methods such as the Ritz and Galerkin methods, and
the finite-element method have been frequently used.
In the finite-difference approximation of a differential equation, the derivatives in the
equations are replaced by difference equations, which involve the values of the solution at
discrete mesh points of the domain. The resulting discrete equations are solved, after
imposing the boundary equations for the values of the solution at the mesh points. Even
though the finite-difference method is simple in concept, it suffers from several
disadvantages. The most notable are the inaccuracy of derivatives of the approximated
solution, the difficulties in imposing the boundary conditions along non-straight
boundaries, the difficulty in accurately representing geometrically complex domains, and
the inability to employ non-uniform and nonrectangular meshes.
In the variational solution of differential equations, the differential equation is put into an
equivalent variational form, and then the approximate solution is assumed to be a
combination (Ec
j
|
j
) of given approximation functions |
j
. The parameters c
j
are
determined from the variational form. The variational methods suffer from the
disadvantage that the approximation functions for problems with arbitrary domains are
difficult to construct.
The finite element method overcomes the difficulty of the variational methods because it
provides a systematic procedure for the derivation of the approximation functions. The
method is endowed with two basic features, which account for its superiority over other
competing methods. First, a geometrically complex domain of the problem is represented


8
as a collection of geometrically simple subdomains called finite elements. Second, over
each finite element the approximation functions are derived using the basic idea that any
continuous function can be represented by a linear combination of algebraic polynomials.
The approximation functions are derived using concepts from interpolation theory, and
are therefore called interpolation functions. Thus, the finite element method can be
interpreted as a piecewise application of the variational methods (e.g., Ritz and weighted-
residual methods), in which the approximation functions are algebraic polynomials and
the undetermined parameters represent the values of the solution at a finite number of
preselected points called nodes, on the boundary and in the interior of the element.
1.6 Finite Element Method
Availability of high-speed computers with large memories has enabled engineers to
employ various numerical discretization techniques for approximate solution of complex
problems. One such technique is the finite element method.
It was originally developed as a tool for structural analysis, but the theory and formulation
have been progressively so refined and generalized that the method has been applied
successfully to such other fields as heat flow, seepage, hydrodynamics, and rock
mechanics. Since the method has a broad applicability to different fields of science and
the computer code for its solution can be applied to different problems with little or no
change, the method has gained wide acceptance by designers and research engineers.
Even though the finite element method has been around for more than 40 years and is
recognized as an extremely valuable tool, many engineers still do not know how to go
about using it and very few engineers understand it. One of the main reasons for this is
that the subject has generally been surrounded by a high level of research activity.
Coupled with this is a fact that because of the amount of calculations, which the method
involves, it tended to go directly from its embryonic stage to an advanced computing
stage. There never seemed to be an intermediate stage at which it could have been
conveniently slotted into curricula of various engineering subjects, even though the basic
principles on which the method is based are taught. The three basic conditions involved


9
in the finite element method are the equilibrium of forces, compatibility of displacements,
and stress-strain relationships and it essentially relies on the matrix methods and computer
programming for the solution of problems. The method is quite versatile and can be
applied to very complex problems.
The finite element method is the best approach available for the numerical analysis of
continua. The theory requires discretization of a given structure into a network of finite
elements and implementation of the analysis on a digital computer.
1.7 Historical comments
Finite element is not a novel idea to represent given domains as collections of discrete
elements. Ancient mathematicians had estimated the value of t by discretizing the
circumference of a circle in small line segments making a polygon inscribed in the circle.
They computed the value of t to accuracies of almost 40 significant digits by representing
the circle as a polygon of a finitely large number of sides.
In modern times the idea found a home in aircraft structural analysis, where, for example,
wings and fuselages are treated as assemblage of stringers, skins, and shear panels. In
1941, Hrenikoff [Hrenikoff, 1941] introduced the so-called framework method, in which
a plane elastic medium was represented as a collection of bars and beams. The use of
piecewise continuous functions defined over a subdomain to approximate the unknown
function dates back to the work of Courant [Courant, 1943], who used an assemblage of
triangular elements and the principle of minimum potential energy to study the St. Venant
torsion problem. Although certain key features of the finite element method can be found
in the works of Hrenikoff [Hrenikoff, 1941] and Courant [Courant, 1943], the formal
presentation of the finite element method is attributed to Argyris and Kelsey [Argyris,
1960] and to Turner, Clough, Martin, and Topp [Turner, 1956]. However, the term
finite element was first used by Clough [Clough, 1960]. Since its inception, the
literature on finite-element applications has grown exponentially and today there are
numerous journals, which are primarily devoted to the theory and application of the finite-
element method.

10
C H A P T E R T W O
FINITE ELEMENT METHOD
The finite element method has gained wide acceptance by the engineering professions for
being an extremely valuable method of analysis. Its employment has allowed satisfactory
solution to be achieved for many problems, which had formerly been considered as
insoluble. Within a relatively short period, application of the method has been extended
to many fields. Many shareware and commercial software packages are available
nowadays for general and specific application.






Figure-2.1 Typical skeletal structures. (a) Continuous beam. (b)
Multistory frame.
2.1 Background of the Finite Element Method
Many engineering structures are composed of a series of individual members, which are
connected together at a number of points. Such structures are called skeletal structures,
the points at which the individual members are connected being referred to as node
points. Examples of such structures are the continuous beams, trusses, and the
multistory frames. Engineers have long appreciated that the analysis of these skeletal
Typical nodal
point
Typical individual
member
Typical
individual
member
Typical
nodal
point
(a) (b)


11
structures can be carried out by first considering the behavior of each individual element
independently and by then assembling the elements together in such a way that
equilibrium of forces and compatibility of displacements are satisfied at each nodal point.
An example of such a process is the analysis of a continuous beam by the slope-deflection
method where the relationship between the moments and the rotations within each
individual span of the beam is first established, the spans then being combined together
such that equilibrium of moments and compatibility of rotations are satisfied at the points
of interconnection.
However, when a structure comprised of many members, such as a continuous beam
containing many spans or a multistory frame containing many bays, is being analyzed,
this type of approach can become very laborious and can involve the solution of a large
number of simultaneous equations. Because of this, in the past much research effort has
been devoted to developing analytical techniques, based on a physical appreciation of the
structural behavior, which would reduce the amount of work required to complete an
analysis, and would not require the direct solution of many simultaneous equations. A
prime example of such a technique is the Hardy Cross Moment Distribution Method, in
which, instead of setting up the simultaneous equations explicitly as in the slope-
deflection method, the solution is accomplished in a series of convenient steps.
With the advent of the electronic digital computer, however, engineers realized that the
solution of a large number of simultaneous equations no longer posed an insurmountable
problem and this prompted a return to fundamental methods of analysis, such as the
slope-deflection method. These methods, since they involve a number of repetitive steps,
are particularly suitable for automatic computation, and they have been formulated to take
maximum advantage of the capabilities of a digital computer. These so-called matrix
methods for analyzing skeletal structures have been firmly established for a number of
years.
2.2 Matrix Methods (Stiffness/Displacement Method)
The finite element method was first introduced to civil engineering through attempts to
generalize the stiffness method to deal with structural continua, such as the covering


12
sheeting on aircraft wings. As a result, many of the concepts and much of the
terminology of the stiffness method has been incorporated into the finite element method.
To understand the principles of the finite element method, it is helpful first to consider
briefly the basis of the stiffness method of structural analysis.
2.3 Stiffness and Flexibility Methods of Matrix Analysis
The matrix methods of structural analysis may be formulated in three different ways.
i. Stiffness (displacement) method.
ii. Flexibility (force) method.
iii. Mixed method
The stiffness and flexibility methods differ in the order in which the two basic conditions
of joint (or nodal) equilibrium and compatibility are treated. In the stiffness method, the
displacement compatibility conditions are satisfied and the equations of equilibrium set
up and solved to yield the unknown nodal displacements. In the flexibility method, the
conditions of joint equilibrium are first satisfied and the equations arising from the need
for compatibility of nodal displacements solved to yield the unknown forces in the
members. In addition to these two basic approaches, in recent years a mixed formulation
involving both approaches has been also used.
2.4 Stiffness Method
The stiffness method was derived for skeletal structures. Analysis of behavior under
imposed loading is performed in stages. First, member connections are prevented from
displacement and the loading on the fixed joints is determined from separate analyses of
each member. Second, sets of linear simultaneous equations relating forces and
displacements at the end of each member are derived. These are called local stiffness
matrices. All of the calculations described so far are performed on isolated members, but
in the third stage the stiffness matrix of the entire structure is compiled using equilibrium
of forces on each joint and compatibility of displacements of member ends at each joint.


13
Displacement boundary conditions are imposed at appropriate joints and these render the
overall stiffness matrix non-singular. Solution of the equations gives the joint
displacements and from these and the local stiffness matrices the load effects on each
member are determined. The method has a number of features that facilitate automatic
handling. Local stiffness matrices of members and joint loading from members can be
determined by procedures that need take no account of the overall structural
configuration. The overall stiffness matrix, called the global stiffness matrix, of a
structure can be assembled automatically from the local stiffness matrices of members
using only a specification of the members connected to each joint. Standard solution to
linear simultaneous equations can be used to determine joint displacements. A single
computer program can be derived to solve all skeletal structures from a description of
member loading, member properties, structural topology, and the displacement boundary
conditions.
2.5 Analysis of Continuum Structures
In addition to skeletal structures, engineers are often also concerned with the analysis of
continuum structures, such as deep beams, plates and slabs subjected to bending, dam
walls, folded-plate and shell structures, where the structural surface is continuous instead
of being composed of a number of individual components. Classical methods, such as the
classical theory of plate flexure, can be applied to the analysis of these continua, but such
methods have very limited fields of application because of the great difficulties that are
experienced when dealing with any irregularities in structural geometry or applied loading
conditions.
2.6 Classical Analysis of Solids
The classical approach for analyzing a solid requires finding a stress or displacement
function that satisfies the differential equations of equilibrium, the stress-strain
relationships, and the compatibility conditions at every point in the continuum, including
the boundaries. Because these requirements are so restrictive, very few classical solutions
have been found. Among those, the solutions are often infinite series that is practical


14
calculations require truncation, leading to approximate results. Furthermore,
discretization of differential equations by the method of finite differences has the primary
disadvantage that boundary conditions are difficult to satisfy. A secondary disadvantage
is that accuracy of the results is usually poor.




Figure-2.2 Typical finite element idealizations of continua. (a)
Dam wall (b) Folded plate
2.7 Finite Element Analysis of Solids
On the other hand, the finite element approach yields an appropriate analysis based upon
an assumed displacement field, a stress field, or a mixture of these within each element.
The finite element method represents the extension of matrix methods for skeletal
structures to the analysis of continuum structures. In the finite element method, the
continuum is idealized as a structure consisting of a number of fictitious individual
elements connected only at nodal points, as shown in figure-2.2. It is only in this
idealization that the method differs from the standard matrix method. The loads or other
influences cause deformations (or strains) throughout the continuum, accompanied by
internal stresses and reactions at restrained points. The primary objectives of analysis by
finite elements are to calculate approximately the stresses and deflections in a structure.
The finite element method is extremely powerful since it enables continua with complex
geometrical properties and loading conditions to be accurately analyzed. The method
Typical nodal
point
finite element
Typical nodal
point
Typical triangular
finite element
(a) (b)


15
involves extensive computations but, because of the repetitive nature of these
computations, it is ideally suited for programming for a solution using a computer.
2.8 Fundamental requirements
Whatever the cause of the internal forces and deformations in a structure, three basic
conditions must be observed. These are:
i. the equilibrium of forces;
ii. the compatibility of displacements; and
iii. the laws of material behavior.
The first condition merely requires that the internal forces balance the external applied
loads. Although the use of this condition alone is sometimes sufficient to enable a
statically determinate problem to be solved, the conditions of compatibility and material
behavior then being automatically satisfied, for redundant structures it yields insufficient
information to enable a complete analysis to be conducted. In these circumstance the
conditions of compatibility must be invoked separately. Compatibility requires that the
deformed structure fits together, i.e. that the deformations of the members are compatible.
Before this condition can be used, it is necessary to know the relationship between load
and deformation for each component of the structure. This relationship, which in
problems of linear elasticity reduces to the use of Hookes Law, is the third condition.
The use of these three conditions is a fundamental requirement of any method of
structural analysis.
2.9 Finite Element Concepts
In order to work with the finite element method, some knowledge of matrix methods,
mechanics, variational methods, and computer skills is necessary.
2.9.1 Elements
A finite element is a subregion of a discretized continuum. It is of finite size (not
infinitesimal or infinite) and usually has a simpler geometry than that of the continuum.


16
The shape of elements can be line elements (spring and beam elements), triangular,
rectangular, tetrahedral, or brick elements, etc (figure-2.3). The vertices of the elements
are known as node points or simply nodes.








Figure-2.3 Types of finite elements
2.9.2 Type and Number of Elements
The type and number of elements used can be decided by the analyst depending on the
accuracy required and the number of critical locations.
2.9.3 Equilibrium and Degrees of Freedom
The number of equilibrium equations for each node is set by specifying the number of
degrees of freedom, as is done for skeletal structures. A problem with infinite degrees of
freedom can be converted to one with a finite number by the finite element method in
order to simplify the solution process.
2.9.4 External Loads
The system of external loads acting on the actual solids must be replaced by an equivalent
system of forces acting at the node points.
Axisymmetric Hexahedron (brick) Tetrahedron
Quadrilateral Triangle Spring
Beam (line)


17
2.9.5 Accuracy of Solution
In general, the accuracy of the solution will be greater if the number of elements is large.
However, computer time (and cost) also increases with number of elements chosen so it is
generally wise only to use a dense concentration of elements in the critical areas of the
solid which are likely to be of particular interest.
2.9.6 Necessity of Computer Application
In any case, finite element method is a computer-oriented method that must be
implemented with appropriate digital computer programs.
Although the analysis of each individual element in the finite element method is
straightforward, the analysis of a large number of elements becomes extremely tedious.
For this reason finite element solutions to problems are carried out on computers and
there are many shareware and commercial software packages available for the purpose.
To some extent this has led to the current situation where many engineers are put off by
the apparent complexity of the subject and they leave it to the experts who tend to attach a
certain mystique to the subject through the use of computer jargon!
2.9.7 Continuity of Displacements
To improve the analytical model it is necessary to provide continuity of displacements,
and in some cases of displacement derivatives along finite element sides. The techniques
for deriving local stiffness matrices will later be illustrated for beam elements.
2.9.8 Plotting of Results
It is almost essential that plotting of results and input data should be provided in finite
element programs because these provide an instant visual check and errors can readily be
detected which would otherwise become very difficult.
2.10 Applicability to Different Fields
Although the original applications were in the area of solid mechanics, its usage has
spread to many other fields having similar mathematical bases. With such a powerful
technique for automatically solving skeletal structures, it is not surprising that engineers


18
attempted to extend the method to problems of structural continua and later to general
field problems. At first attempts were made to derive local stiffness matrices for sheet
material in terms of forces and displacements at joints and to connect sheets together as
though they were discrete members. Such attempts were not successful, because in an
actual structure displacements are continuous, whereas in the analytical model the sheets,
or finite elements, could have different values of displacements at points along common
edges. Application of finite element has been extended to soil and rock mechanics,
dynamics, earthquake analysis, torsion, head conduction, seepage, consolidation,
thermoelasticity, hydroelasticity, viscoelasticity, fluid mechanics, hydraulics, flow of
compressible fluids, electrical engineering, and many other fields.
2.11 General Steps in Finite Element Method
Since the assumption of displacement functions is the technique most commonly used,
the following steps suffice to describe this approach:
1. Divide the continuum into a finite number of subregions (or elements) of simple
geometry (triangles, rectangles, and so on).
2. Select key points on the elements to serve as nodes, where conditions of equilibrium
and compatibility are to be enforced.
3. Assume displacement functions within each element so that the displacements at each
generic point are dependent upon nodal values.
4. Satisfy strain-displacement and stress-strain relationships within a typical element.
5. Determine stiffness and equivalent nodal loads for a typical element using work or
energy principles.
6. Develop equilibrium equations for the nodes of the discretized continuum in terms of
the element contributions.
7. Solve these equilibrium equations for the nodal displacements.


19
8. Calculate stresses at selected points within the elements.
9. Determine support reactions at restrained node if desired.
2.12 Matrix Operations
The following matrix operations/properties have been used in the solution of beam on
elastic foundation by finite element method:
2.12.1 Transpose of Matrix
If the rows and columns of a matrix are interchanged, a new matrix called the transposed
matrix is obtained. For example, if A is a (32) matrix given by


then its transpose is the (23) matrix

2.12.2 Matrix Multiplication
The definition of matrix multiplication is such that two matrices A and B can only be
multiplied together to form their product AB when the number of columns of A is equal to
the number of rows of B. Such matrices are called conformable matrices. Suppose A is a
matrix of order (m p) with elements a
ik
and B is a matrix of order (p n) with elements
b
ik
. Then their product AB is a matrix C of order (m n) with elements c
ik
defined by

For example, if A and B are (3 2) and (2 2) matrices, respectively, given by
and
(
(
(

=
32 31
22 21
12 11
a a
a a
a a
A
(

=
32 22 12
31 21 11
a a a
a a a
A
T

=
=
p
s
sk is ik
b a c
1
(
(
(

=
32 31
22 21
12 11
a a
a a
a a
A
(

=
22 21
12 11
b b
b b
B


20
then the product C = AB is a (3 2) matrix defined as


2.12.3 Symmetric Matrices
A symmetric matrix A is square and has elements a
ik
such that a
ik
= a
ki
. In other words,
the elements above and below the leading diagonal are mirror images of each other. For
example, the matrix



is symmetric.
2.12.4 Band Matrix
A matrix is called a band matrix if it has all its nonzero entries on the main diagonal and
on sloping lines parallel to it (separated by sloping lines of zeros or not). Such matrices
are obtained by carefully selecting the node points. Matrix A shown below is an example
of a symmetric band matrix with bandwidth = 3.





Because matrix A is symmetric, its half bandwidth can be taken which is 2. Hence matrix
A can be represented as follows to save computer memory.
(
(
(

+ +
+ +
+ +
=
22 32 12 32 21 32 11 31
22 22 12 22 21 22 11 21
22 12 12 12 21 12 11 11
b a b a b a b a
b a b a b a b a
b a b a b a b a
C
(
(
(
(
(
(
(
(
(


=
2 4 0 0 0 0 0
4 5 2 0 0 0 0
0 2 1 9 0 0 0
0 0 9 4 6 0 0
0 0 0 6 3 2 0
0 0 0 0 2 7 3
0 0 0 0 0 3 5
A
(
(
(
(
(
(




=
e v u s z
v d t r y
u t c q x
s r q b w
z y x w a
A


21




Special methods for solution of linear equations defined by banded matrices have been
developed. The Cholesky Method is a popular method of solving with banded matrices.
2.12.5 Identity Matrix
A square matrix is known as the identity matrix if all the entries on its main diagonal are
unity and the remaining entries are zero. Identity matrix is denoted by I.


2.12.6 Inverse Matrix
If AB = I then B is known as inverse of A and denoted by A
-1
.
Several methods are available for matrix inversion such as the determinant method,
forward elimination and backward substitution method, and Gauss Jordan elimination
method, etc. BEAMDEZ uses the Gauss Jordan elimination method, which works quite
satisfactorily, for the solution of beam on elastic foundation.
2.13 Advantages of Finite Element Method
Like all numerical approximations, the finite element method is based on the concept of
discretization. Nevertheless, as either a variational or a residual approach, the technique
recognizes the multidimensional continuity of the body. Not only does the idealization
portray the body as continuous but it also requires no separate interpolation process to
extend the approximate solution to every point within the continuum. Despite the fact
(
(
(
(
(
(
(
(
(

=
0 2
4 5
2 1
9 4
6 3
2 7
3 5
A
(
(
(
(

=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
I


22
that the solution is obtained as a finite number of discrete node points, the formation of
field variable models inherently provide a solution at all other locations in the body.
2.13.1 Better Approximations
In the finite element method, a modified structural system consisting of discrete (finite)
elements is substituted for the actual continuum and thus the approximation is of a
physical nature. There need be no approximation in the mathematical analysis of this
substitute system. By contrast, in the finite difference method the exact equations of the
actual physical system are solved by approximate mathematical procedures.
2.13.2 Trial Solutions
In contrast to other variational and residual approaches, the finite element method does
not require trial solutions which must all apply to the entire multidimensional continuum.
The use of separate sub regions, or finite elements, for the separate trial solutions thus
permits a greater flexibility in considering continua of complex shapes.
2.13.3 Boundary Conditions
Some of the most important advantages of the finite element method derive from the
techniques of introducing boundary conditions. This is another area in which the method
differs from other variational or residual approaches. Rather than requiring every trial
solution to satisfy the boundary conditions, one prescribes the conditions after obtaining
the algebraic equations for the assemblage. Since the boundary conditions do not enter
into the equations for the individual finite elements, one can use the same field variable
models for both internal and boundary elements. Moreover, the field models need not be
changed when the boundary conditions change.
The introduction of boundary conditions into the assembled equations is a relatively easy
process. It is simplified in that only the geometric boundary conditions need be
simplified in a variational approach because the natural conditions are implicitly satisfied.
No special technique or artificial devices are necessary, such as the non-centered
difference equations for fictitious external points often employed in the finite difference
method.


23
2.13.4 Material Properties
The finite element method not only accommodates complex geometry and boundary
conditions, but it also has proven successful in representing various types of complicated
material properties that are difficult to incorporate into other numerical methods. For
example, formulations in solid mechanics have been devised for anisotropic, nonlinear,
hysteretic, time-dependent, or temperature-dependent behavior.
2.13.5 Non Homogenous Continua
One of the most difficult problems encountered in applying numerical procedures of
engineering analysis is the representation of non-homogenous continua. Nevertheless, the
finite element method readily accounts for non-homogeneity by the simple tactic of
assigning different properties to different elements if a refined representation of the
variation of material characteristics is desired, it is even possible to vary the properties
within an element according to a preselected polynomial pattern. For instance, it is
possible to accommodate continuous or discontinuous variations of the constitutive
parameters or of the thickness of a two-dimensional body.
2.13.6 Systematic Generality
The systematic generality of the finite element procedure makes it a powerful and
versatile tool for a wide range of problems. As a result, flexible general-purpose
computer programs can be constructed. Early examples of these programs are the several
structural analysis packages, which include a variety of element configurations and which
can be applied to several categories of structural problems. Among these packages are
STARDYNE, ASKA, STRUDL, SAP, NASTRAN, ETABS, and SAFE. Another
indicator of the generality of the method is that programs developed for one field of
engineering have been applied successfully to problems in a different field with little or
no modification.
Finally, an engineer may develop a concept of the finite element method at different
levels. It is possible to interpret the method in physical terms. On the other hand, the
method may be explained entirely in mathematical terms. The physical or intuitive nature


24
of the procedure is particularly useful to the engineering student and practicing engineer.
Nevertheless, it is significant that the method has mathematical functions.
2.14 Limitations of Finite Element Method
One limitation of the finite element method is that a few complex phenomena are not
accommodated adequately by the method at its current state of development. Some
examples of such phenomena from the realm of solid mechanics are cracking and fracture
behavior, contact problems, and bond failures of composite materials, and non-linear
material behavior with work softening. Another example is transient, unconfined seepage
problems. The numerical solution of propagation or transient problems is not satisfactory
in all respects. Many of these phenomena are presently under research, and refinements
of the method to accommodate these problems better can be expected.
2.14.1 Validity of Results
The finite element method has reached a high level of development as a solution
technique: however, the method yields realistic results only if the coefficients or material
parameters which describe the basic phenomena are available. Material non-linearity in
solid mechanics is a notable example of a field in which our understanding of the material
behavior has lagged behind the development of analytical tool. In order to exploit fully
the power of the finite element method, significant effort must be directed toward the
development of suitable constitutive laws and the evaluation of realistic coefficients in
material parameters.
2.14.2 Computer Requirements
Even the most efficient finite element computer codes require a relatively large amount of
computer memory and computations. Hence, use of the method had been limited to those
who had access to relatively large, high-speed computers. Advancements in computer
technology and easy availability of desktop computers with large memories have
alleviated this restriction to some degree. However, very complex problems, especially
continuous analysis of dynamic systems (like weather systems, virtual wind tunnels, etc)
still require nothing less than supercomputers.


25
2.14.3 Discretizing the Continuum and Data Input
The most tedious aspects of the use of the finite element method are the basic processes of
subdividing the continuum and of generating error-free input data for the computer.
Although these processes may be automated to a degree, they have not been totally
accomplished by computer because some engineering judgment must be employed in the
discretization. Errors in the input data may go undetected and the erroneous results
obtained therefrom may appear acceptable.
2.14.4 Interpretation of Results
Finally, as for any approximate numerical method, the results of a finite element analysis
must be interpreted with care. We must be aware of the assumptions employed in the
formulation, the possibility of numerical difficulties, and the limitations in the material
characterizations used. A large volume of solution information is generated by a finite
element routine, but this data is worthwhile only when its generation and interpretation
are tempered by proper engineering judgment.

26
C H A P T E R T H R E E
COMBINED FOOTINGS
3.1 Combined Footing
A spread footing supporting a line of two or more columns is called a combined footing.
A combined footing may have either rectangular or trapezoidal shape or be a series of
pads connected by narrow rigid beams called a strap footing.
3.2 Purpose of Combined Footings
The necessity of combined footings arises mostly in the following cases:
1. when the column is so close to an adjacent property that it is impossible to center an
isolated footing under the column,
2. when columns are spaced so closely that isolated footings are impracticable or
uneconomical,
3. when the bearing capacity of soil is low, it is advisable to combine the footings of two
or more columns instead of enlarging the isolated footings,
4. and when differential settlements are to be reduced.
3.2.1 Columns Near Property Line
When a column is located near a property line, part of the single footing might extend into
the neighboring property. Also it may not be possible to place columns at the center of a
spread footing if they are near mechanical equipment locations, or irregularly spaced. To
avoid this situation, the column may be placed on side or edge of the footing, causing
eccentric loading. This may not be possible under certain conditions, and sometimes it is
not an economical solution. A better design can be achieved by combining the footing
with the nearest internal column footing, forming a combined footing. The center of


27
gravity of the combined footing coincides with the resultant of the loads on the two
columns.
3.2.2 Closely Spaced Columns
If the columns are spaced so closely that their footings overlap then a combined footing
becomes necessary. Another case is when the footings do not overlap but are so closely
spaced that providing a combined footing may prove to be more economical than isolated
footings. The shape of the combined footing may be rectangular or trapezoidal.
3.2.3 Poor Soil
Another case where combined footings become necessary is when the soil is poor and the
footing of one column overlaps the adjacent footing. If there is a row of columns and the
bearing capacity of the subsoil is low so that large bearing areas become necessary,
individual footings are replaced by continuous strip footings that support more than two
columns and usually all columns in a row. Sometimes such strips are arranged in both
directions, in which case a grid foundation is obtained. Such a foundation can be made to
develop a much larger bearing area much more economically than can be done by single
footings because the individual strips represent continuous beams whose moments are
much smaller than the cantilever moments in large single footings that project far out
from the column in all four directions. Bridge piers are also founded on very rigid
combined rectangular footings.
For still lower bearing capacities, the strips are made to merge, resulting in a mat
foundation. That is, the foundation consists of a solid reinforced concrete slab under the
entire building. In structural action, such a mat is very similar to a flat slab or a flat plate,
upside down, i.e. loaded upward by the bearing pressure and downward by the
concentrated column reactions. The mat foundation evidently develops the maximum
available bearing area under the building. If the soils capacity is so low that even this
large bearing area is insufficient, some form of deep foundation, such as piles or caissons,
must be used.


28
3.2.4 Differential Settlement
When a column load is transmitted to the soil by the footing, the soil becomes
compressed. The amount of settlement depends on many factors, such as the type of soil,
the load intensity, the depth below ground level, and the type of footing. If different
footings of same structure have different settlements, new stresses develop in the
structure. Excessive differential settlement may lead to the damage (cracking and tilting)
of nonstructural members in the buildings, even failure of the affected parts.
Besides developing large bearing areas, another advantage of strip, grid, and mat
foundations is that their continuity and rigidity help in reducing differential settlements of
individual columns relative to each other, which may otherwise be caused by local
variations in the quality of subsoil, or other causes. For this purpose, continuous spread
foundations are frequently used in situations where the superstructure or the type of
occupancy provides unusual sensitivity to differential settlement.
If the bearing soil capacity is too much different under different footings, for example if
the footings of a building are partly on soil and partly on rock, a differential settlement
will occur. In such cases it is advisable to provide a joint between the two parts to
separate them, allowing for independent settlement.
3.3 Shape of Combined Footings
Combined footings are made rectangular, trapezoidal, or T shaped, the details of the
shape being arranged to produce coincidence of centroid of area and resultant of loads.



Figure-3.1 Rectangular Combined Footing


29
3.3.1 Rectangular Combined Footing
A combined footing is usually made rectangular, if the rectangle can extend beyond each
column face to a distance required to make the center of the gravity of the column loads
coincide with the centroid of the footing area. Rectangular combined footings can be
divided into two categories: those that support only two columns (figure-3.1) and those
that support more than two (generally large number of) columns (figure-3.2).
In buildings where the allowable soil pressure is large enough for single footings to be
adequate for most columns, two-column footings are seen to become necessary in two
situations: (1) if columns are so close to the property line that single-column footings
cannot be made without projecting beyond that line, and (2) if some adjacent columns are
so close to each other that their footings would merge. Combined footing for rows of
columns are provided where soil is poor.


Figure-3.2 Combined Footing for row of columns.
If the footing is to support an exterior column at the property line where the projection of
the footing is limited, a rectangular shape can be used provided the interior column caries
greater load or a row of columns is supported by the continuous strip footing which is
rectangular. When the loading of the column is equal, the rectangular shape is used with
advantage.
3.3.2 Trapezoidal Footing
When the load of the external column near the property line is greater than the load of the
interior column, a trapezoidal footing (figure-3.3) is necessary to keep the centroid of the
footing in line with the resultant of the two column loads. In most other cases, a
rectangular footing may be advantageous.



30






Figure-3.3 Trapezoidal and Strap Footings
3.3.3 Strap Footing
Another expedient that is used if a single footing cannot be centered under an exterior
column is to place the exterior column footing eccentrically and to connect it with the
nearest interior column footing by a beam or strap. This strap, being counterweighted by
the interior column load, resists the tilting tendency of the eccentric exterior footings and
equalizes the pressure under it. Such foundations are known as strap, cantilever, or
connected footings (figure-3.3).





Figure-3.4 Continuous Strip, Grid, and Mat Foundations


31
3.3.4 Strip, Grid, And Mat Foundation
In the case of heavily loaded columns, particularly if they are to be supported on
relatively weak or uneven soils, continuous footings are resorted to. They may consist of
a continuous strip footing supporting all columns in a given row, or of two sets of such
strip footings intersecting at right angles so that they form one continuous grid foundation
(figure-3.4). For even larger loads or weaker soils the strips are made to merge, resulting
in a mat foundation (figure-3.4).





Figure-3.5 Resultant R of the applied loads should act at the
centroid of footing for uniform soil pressure.
3.4 Design of Rectangular Combined Footings
Generally, combined footings are constructed of reinforced concrete. The fundamental
assumption for the design of a rectangular combined footing is that the footing is rigid
and rests on a homogeneous soil, so as to give rise to a linear stress distribution on the
bottom of the footing. If the resultant of the soil pressure coincides with the resultant of
the loads (and center of gravity of the footing), the soil pressure is assumed to be
uniformly distributed, which greatly simplifies the calculations. This assumption is
approximately true if the soil is homogeneous and the footing is rigid. The ACI Code,
section 15.40, does not provide a detailed approach for the design of combined footings.
The design, in general, is based on an empirical approach.


32
3.4.1 Footing Dimensions
Therefore, the dimensions of a combined footing are so proportioned that the center of
gravity of the area of the footing in contact with the soil lies on the line of action of the
resultant of the loads applied to the footing (figure-3.5). By doing so, the distribution of
soil pressure is assumed to be fairly uniform. If the resultant of the applied loads does not
coincide with the centroid of the bearing area, a bending moment develops. In this case,
the pressure on one side of the footing will be greater than the pressure on the other side,
causing higher settlement on one side and a possible rotation of the footing. Moreover,
the dimensions of the footing are chosen such that the allowable pressure is not exceeded.
3.4.2 Rounding of Dimensions
The conventional design method requires computing shears and moments at sufficient
locations that shear and moment diagrams can be drawn for critical values. It is also
standard practice to round the computed length and width to the nearest larger multiple of
75-mm or 3 inch. If this is done prior to computing shear and moment diagrams there
will be a closure error which depends on the amount the length is changed; thus, it is
recommended that footing dimensions be rounded as the final design step. Also, this
rounding may cause a small variation in the uniform pressure under the footing, but it can
be tolerated.
3.4.3 Shear and Moment Computations
The column loads are actually distributed over the column width but may be considered
to be concentrated point loads. This greatly simplifies the shear and moment
computations, and the values at the critical locations are the same by either method. Then
the resulting shear force and bending moment diagrams can be plotted. The maximum
bending moment should be adopted as the design value for the reinforced concrete
footing, which should also be checked for maximum shear and bond etc.
3.4.4 Depth of Footing
The depth based on the more critical of two-way action or wide-beam shear is computed.
Critical sections for two-way action and wide-beam are the same as for spread footings,
i.e., at d/2 and d, respectively, from the column face. It is common practice not to use


33
shear reinforcement both for economy and to increase the rigidity. The labor costs to
bend and place the shear reinforcement are likely to far exceed the small savings in
concrete that would result from its use.
3.4.5 Reinforcement Design
With the depth selected, the flexural steel can be designed using the critical moments
from the moment diagram. Alternatively, the depth and the loading can be used in a
finite-element analysis to obtain modified moments for the flexural steel. These beam-
type members usually have both positive and negative moments, resulting in reinforcing
steel in both the top and bottom of the footing. The minimum percentage of steel should
be taken as 200/f
y
since the footing is designed as a beam or flexural member.
3.4.5.1 Main Reinforcement
The main reinforcement in a combined footing is placed in the longitudinal direction.
The computation of the main steel is done on the assumption that the footing acts as one
way slab.
3.4.5.2 Transverse Reinforcement
If we compute the short, or transverse, direction bending moments as for a rectangular
spread footing, they will be in substantial error. This is because the soil pressure is larger
near the columns, from their stiffening effect on the footing, and lesser in the zone
between columns. That zone closest to, and approximately centered on, the column is
most effective and should be analyzed somewhat similar to the ACI Code requirement for
rectangular footings. The Code does not directly specify this effective column zone
width. Bowles suggests that for the effective zone for the transverse direction it should be
assumed that the column load is spread over a width under the column equal to the
column width plus 0.75d on each side (figure-3.6), whenever that is available. In other
words, the column load acts on a beam under the column within the footing which has a
maximum width of (w + 1.5d) and a length equal to the short side of the footing smaller
width, down to (w + 0.75d), may be used. Transverse reinforcement is provided at the
bottom of the footing in these zones (shown in figure-3.6).


34




Figure-3.6 Zones for transverse reinforcement.
3.4.5.3 Shear Reinforcement
It is common practice not to use shear reinforcement both for economy and to increase the
rigidity (depth of concrete required is larger if we do not provide shear reinforcement and
due to this increased depth of concrete, footings becomes more rigid). The labor costs to
bend and place the shear reinforcement are likely to far exceed the small savings in
concrete that would result from its use.
3.5 Design Steps
The procedure of the design of a combined footing may be summarized as follows:
(a) Ascertain the loads on both columns and their distance apart. Convert loads to
ultimate and find ultimate soil pressure q
ult
when allowable soil pressure q
a
is given.
(b) Locate load resultant from center of any column and then find footing dimensions L
and B so that the resultant acts at centroid of the area in order to have uniform soil
pressure that does not exceed the safe bearing capacity of soil.
(c) Calculate the maximum bending moment anywhere in the length of the footing.
(d) Select depth based on analysis for both wide beam and diagonal tension. First, the
depth is obtained by using allowable value of shear stress for wide beam, then the
value of d will be checked on diagonal (also called punching) tension shear.


35
(e) Design main reinforcement steel between columns by using ultimate strength design
method.
(f) Calculate the transverse steel required under each column.
(g) Check dowel requirements of each column to footing. If dowels are not required then
provide at least four dowels of 0.005 A
g
.
(h) Design steel for cantilever portion of footing.
3.6 Demerits of Rigid Design
In actual practice, it is very difficult to make a rigid footing as the depth would have to be
great; nevertheless, the assumption of a rigid member has been successfully used for
many foundation members. Bowles suggests that the success has probably resulted from
a combination of soil creep, concrete stress transfer, and overdesign. However, the design
is not economical because it requires higher amounts of steel than necessary.
3.6.1 Assumptions of Rigid Design
In general, ordinary combined footings are somewhat less rigid but their design by
conventional method is based on the assumption that they are absolutely rigid (no bending
occurs) so that the soil pressure under the footing can be assumed as uniformly
distributed.
If columns are spaced at moderate distances and if the strip, grid, or mat foundation is
very rigid, the settlements in all portions of the foundation will be substantially the same.
But in reality, the foundation is relatively flexible and if the column spacing is large,
settlements will no longer be uniform or linear. For one thing, the more heavily loaded
columns will cause larger settlements, and thereby larger subgrade reactions, than the
lighter ones. Also, since the continuous strip or slab midway between columns will
deflect upward relative to the nearby columns, this means that the soil settlement, and
thereby the subgrade reaction, will be smaller midway between columns than directly at
the columns. This is shown schematically in figure-1.2. In this case, the subgrade


36
reaction can no longer be assumed as uniform. A reasonably accurate but fairly complex
analysis can then be made using the theory of beams on elastic foundations.
3.7 Beam on Elastic Foundation
Because of the overdesign involved in the conventional (or rigid) method, current
practice tends to modify the design by a beam-on-elastic-foundation analysis. The latter
analysis produces smaller design moments than those obtained by the rigid method;
therefore, the design becomes economical. This method of analysis and its finite element
modeling is discussed in the next chapter.


37
C H A P T E R F O U R
BEAM ON ELASTIC FOUNDATION
4.1 Elastic Foundation
A special kind of structural member is one which rests on a spongy material, termed as an
elastic foundation, which offers a resistance proportional to the transverse deflection; a
common example of this is a foundation beam resting on an elastic soil. Thus, there are
unknown transverse forces, equal to the product of the stiffness modulus of the
supporting material and the yet unknown transverse deflection, acting on structural
members on elastic foundation.
Usually, the treatment of structural members is confined to those under the action of
known transverse forces. In the displacement method of analysis, these transverse forces
are transmitted to both ends of each member, in the fixed condition. In case that some
member in a continuous beam or rigid frame is subjected to resistance offered by an
elastic foundation, the displacement method of analysis can still be used, provided that
expressions for the member stiffness matrix and for the fixed-end reactions and moments
due to common types of transverse loads can be found as functions of the stiffness
modulus. These required expressions will be derived in this chapter.
4.2 Winkler Model
Some soil/structure interaction problems may be simplified as a beam (structure) on
springs (soils), where the behavior of the soil is simplified by means of fictitious springs
placed continuously underneath the structure. In 1867, Winkler first studied the beam on
elastic springs. The model he developed is called the Winkler foundation model, which is
a one-dimensional problem. For analysis of beams and slabs resting on a soil medium,
engineers have been using this classical mathematical model. The springs representing


38
subgrade soils may obey Hookes Law or be non-linear or elastic-plastic [Selvadurai,
1979].
The Winkler model has its advantages for obtaining fast solutions, sometimes analytical,
to more complicated soil/structure interaction problems.
4.3 Limitations of Winkler Model
The Winkler foundation model has two major problems: (1) no interaction between the
springs is considered; and (2) the spring constant may depend on a number of parameters,
such as stiffness and geometry of the beam, soil profile, and behavior. Terzaghi
[Terzaghi, 1955], Vesic [Vesic, 1961], and Selvadurai [Selvadurai, 1979], among others,
discussed the validation of the Winkler foundation model and suggested methods for the
estimation of spring constants. Despite the two major limitations, the Winkler foundation
model has found applications in the analysis of soil/structure interaction problems; e.g.,
footings on soils and laterally loaded piles in soils.
It is noted that the beam in the Winkler foundation model is based on the pure bending
beam theory commonly used in structural analysis.
4.4 Other Models
As a different approach, Pasternak [Pasternak, 1954] suggested a pure shearing model for
soil/structure interaction analyses. In the Pasternak model, no bending is considered, and
the settlement is totally controlled by shear deformation of the beam. The Pasternak
model was combined with Winkler model as an attempt to consider the interaction of the
springs. Geosynthetics have recently received wide application for reinforcement of
weak foundation soils or pavement [Koerner, 1990]. The Pasternak model was recently
developed to analyze the geosynthetic-reinforced granular base over soils [Madhav 1988;
Bordeau, 1989; Ghosh, 1994; Shukla, 1994; Yin, 1997 a, b).
Both the Winkler model and the Pasternak model take an extreme point of view (or
approximation) on the deformation behavior of beam. Another beam model that


39
considers both bending and shearing was proposed by Timoshenko [Timoshenko, 1921]
for modeling vibration of beams. The Timoshenko beam still attracts peoples attention
in studying the static and dynamic response of beams [Wang et al., 1997]. However, less
attention is paid to modeling the Timoshenko beam on an elastic foundation.





Figure-4.1 Modulus of subgrade reaction.
4.5 Modulus of Subgrade Reaction
In analysis of foundation members, the resistance offered by the supporting material is
taken as unknown transverse forces, equal to the product of its stiffness modulus (called
modulus of subgrade reaction for soils) and the transverse deflection of the structural
member. It is used for continuous footings, mats, and various types of pilings. This ratio
is defined on figure-4.1 and the basic equation when using plate-load test data is
k
s
=q/o (4.1)
with terms identified on both figure-4.1 and figure-4.2. Plots of q versus o from load tests
give curves of the type qualitatively shown in figure-4.2. If this type of curve is used to
obtain k
s
in the above equation, it is evident that the value depends on whether it is a
tangent or secant modulus and the location of the coordinates of q and o.


P
r
e
s
s
u
r
e
,

o
Deformation, o
ks =
Ao
Ao
Use initial tangent
or
initial secant line
Ao
Ao


40





Figure-4.2 Determination of modulus of subgrade reaction from
plate load test data.
It is difficult to make a plate-load test, except for very small plates because of the reaction
load required. Even with small plates of say 450, 600, and 750 mm diameter it is difficult
to obtain o since the plate tends to be less than rigid so that a constant deflection across
the plate (and definition of k
s
) is difficult to obtain. Stacking the smaller plates concentric
with the larger ones tends to increase the rigidity, but in any case, the plot is of load
divided by plate contact area (nominal P/A) and the average measured deflection.
Figure-4.2 is a representation of k
s
taken as a constant up to a deflection X
max
. Beyond
X
max
the soil pressure is a constant value defined by
Q
con
= k
s
(X
max
) (4.2)
Obviously one could divide the q-o curve into several regions so that k
s
takes on values of
the slope in several regions however, this tends to incorporate too much refinement into
the problem since most analyses proceed on the basis of estimated values or at best an
approximate load test.
Some engineers do not like to use the concept of a modulus of subgrade reaction; rather
the use of E
s
(and ) in finite-element analyses is preferred. Bowles suggests that, until
the state of the art improves so that accurate values of E
s
can be obtained, the modulus of
subgrade reaction method is preferred for its greater ease of use and from the substantial
savings in computer computation time.
k =
q
o
q
o
k depends on curve coordinates
used and is generally nonlinear
q
o
Nonlinear Linear
Xmax


41
There is a direct relationship between k
s
and E
s
but since one does not often have values
of E
s
, other approximations are useful and often quite satisfactory if the computed
deflection (directly dependent on k
s
) can be tolerated for any reasonable value. It has
been found that bending moments and the computed soil pressure are not very sensitive to
what is used for k
s
. This is because the structural member stiffness is usually 10 or more
times as great as the soil stiffness as measured by k
s
. Recognizing this, Bowles suggests
that the following formulae for approximating k
s
from the allowable bearing capacity
furnished by the geotechnical consultant should be used
k
s
= 12 (SF) q
a
(kip/ft
3
) (in fps units) (4.3)
k
s
= 40 (SF) q
a
(kN/m
3
) (in SI units) (4.4)
where q
a
is furnished in ksf or kPa. These formulae are based on q
a
= q
ult
/SF and the
ultimate soil pressure is at a settlement AH = 1 inch or 25.4 mm and k
s
is q
ult
/AH. For
AH=1/4, 1/2, 3/4 inch, etc, the factor 12 (or 40) can be adjusted to 48, 24, 16, etc; 12 is
reasonably conservative but smaller assumed displacements can always be used. Tables
A-3 to A-6 can be referred as guidelines for determining value of k
s
.
4.6 Previous efforts by researchers to evaluate the value of k
Many researchers have worked to develop a technique to evaluate the modulus of
subgrade reaction k. One of the early contributions was that of Terzaghi [Terzaghi,
1955], who proposed that k
s
for full-sized footings could be obtained from plate-load
tests. He made some recommendations where he suggested values of k for a
0.3050.305m (11 ft) rigid slab placed on a soil medium; however, the implementation
of procedure to compute the value of k for use in a larger slab was not specific.
Biot [Biot, 1937] solved the problem for an infinite beam with a concentrated load resting
on a 3D elastic soil continuum. He found a correlation of the continuum elastic theory
and the Winkler model where the maximum moments in the beam are equated. He
developed an empirical equation for k

) 5 . 4 (
) 1 ( 1
95 . 0
108 . 0
2
4
2
(


=
EI
E B E
k
s
s
s
s
v v


42
where, E
s
= modulus of elasticity of the soil; v
s
= Poissons ratio of the soil; B= beam
width; and EI = bending rigidity of the beam.
On similar grounds, Vesic [Vesic, 1961] tried to develop a value for k using the stress-
strain modulus of E
s
, except, instead of matching bending moments, he matched the
maximum displacements of the beam in both models. He obtained the equation for k for
use in the Winkler model as

where all the terms are same as in equation 4.5.
4.7 New research for evaluation of the value of k
It is evident from Boussinesq analysis that the base contact pressure contributes to
settlement at other points, i.e. causing the center of a flexible uniformly loaded base to
settle more than at the edges. Using a constant k
s
on a uniformly loaded base will produce
a constant settlement (AH will be same at every point). This is obviously incorrect and
many persons do not like to use k
s
because of this problem. In other words, the settlement
is coupled but the soil springs from k
s
have not been coupled.
To account for this, fractions of the springs k in the Winkler foundation model should be
coupled or augmented in order to make nonlinear analysis (soil-base separation or
excessive displacements).
4.7.1 Augmentation of k
Many researchers have proved this lack of uniqueness of k in the past. Bowles [Bowles,
1982] and Coduto [Coduto, 1994] have suggested that the value of k has to be augmented
on the edges of the footing and have emphasized the need for more research on this topic.
In other words, the value of k varies in the domain of the foundation for different material
and geometric properties of the soil.
) 6 . 4 (
1
65 . 0
12
4
2
EI
E B E
k
s
s
s
v
=


43
4.7.2 Vallabhans Iterative Procedures
Vallabhan and Daloglu [Vallabhan, 1997, 1999], Vallabhan and Das [Vallabhan, 1988,
1989], Straughan [Straughan, 1990], and Turhan [Turhan, 1992] have proposed some
iterative procedures to get the value of k at different locations. These procedures are still
not very popular among practicing engineers.
4.7.3 Non-Dimensional Parameters For k
Using non-dimensional parameters, Daloglu and Vallabhan [Daloglu, 2000] have
attempted to evaluate the value of k for use in Winkler model for the analysis of slabs
subjected to concentrated and uniformly distributed loads. For convenience, a constant
value of Poissons ratio for the soil, v
s
=0.25, is used. They have provided some graphs
from which values of an equivalent k can be computed from the complete geometry and
properties of the overall system.
4.8 Displacement Method
Analysis of beam-on-elastic-foundation can be done by the displacement method if the
expressions for the member stiffness matrix and for the fixed-end reactions and moments
due to transverse loads can be taken as functions of the stiffness modulus. These
expressions are derived below.
4.9 Basic Differential Equation
From the theory of conjugate beam method, successive differentiation of the deflection
equation gives the following relations:




) 7 . 4 ( deflection EIy =
) 8 . 4 ( u = = slope
dx
dy
EI
) 9 . 4 (
2
2
M moment
dx
y d
EI = =
) 10 . 4 (
3
3
dx
dM
V shear
dx
y d
EI = = =


44






Figure-4.3 Structural member on elastic foundation.

Now consider a structural member AB and its elastic curve A'B' as shown in figure-4.3. It
is subjected to a varying downward load of w per unit distance and to an upward force of
ky per unit distance, wherein k is the stiffness modulus of the elastic foundation, measured
in force per unit area. Sometimes the compression modulus of the medium is given in
force per unit volume, in which case the stiffness modulus is the product of the
compression modulus and the width of the structural member.
From the equilibrium equations of resolution and rotation of an infinitesimal segment of
the structural member,


and

) 11 . 4 (
2
2
4
4
dx
M d
dx
dV
load
dx
y d
EI = = =
) 12 . 4 ( w ky
dx
dV
=
) 13 . 4 ( V
dx
dM
=


45
wherein the positive directions of shear V and bending moment M are as shown in figure-
4.3 above. The change in slope between any two consecutive points at an infinitesimal
distance dx apart is equal to

The negative sign is due to the fact that the slope is decreasing in positive or concave
bending. Combining equations (4.12) and (4.14) gives the basic differential equation of
elastic curve as

The shear and bending moment become

and

4.10 General Solution of the Differential Equation
When there is no transverse load acting on the member, the basic differential equation
(4.15) becomes

Solution:
Let

Then equation (4.18) becomes:

) 14 . 4 ( dx
EI
M
dx
dy
d =
) 15 . 4 (
4
4
EI
w
y
EI
k
dx
y d
= +
) 16 . 4 (
3
3
dx
y d
EI V =
) 17 . 4 (
2
2
dx
y d
EI M =
) 18 . 4 ( 0
4
4
= + y
EI
k
dx
y d
) 19 . 4 (
dx
d
=
) 20 . 4 ( 0
4
= |
.
|

\
|
+ y
EI
k



46
For y = 0,

Add and subtract to equation (4.21)
















) 21 . 4 ( 0
4
= +
EI
k

) 22 . 4 ( 0 2 2
2 2 4
= + +
EI
k
EI
k
EI
k

) 23 . 4 ( 0 2
2
4
1
2
2
=

|
.
|

\
|

|
|
.
|

\
|
+
EI
k
EI
k

) 24 . 4 ( 0 2 2
4
1
2
4
1
2
=

|
.
|

\
|
+
|
|
.
|

\
|
+

|
.
|

\
|

|
|
.
|

\
|
+
EI
k
EI
k
EI
k
EI
k

) 25 . 4 ( 0 2
4
1
2
= +
|
.
|

\
|

EI
k
EI
k

) 26 . 4 (
2
4 2 2
4
1
EI
k
EI
k
EI
k

|
.
|

\
|
=
) 27 . 4 (
2
1
2
1
4
1
4
1
|
.
|

\
|

|
.
|

\
|
=
EI
k
i
EI
k

) 28 . 4 (
2
1
sin
2
1
cos
4
1
2
4
1
1
2
1
1
4
1

|
.
|

\
|
+
|
.
|

\
|
=
|
.
|

\
|
x
EI
k
a x
EI
k
a e y
x
EI
k
) 29 . 4 (
4
4
EI
k
L = |
) 30 . 4 ( sin cos
2 1 1
|
.
|

\
|
+ = x
L
a x
L
a e y
x
L
| |
|
) 31 . 4 ( 0 2
4
1
2
= +
|
.
|

\
|
+
EI
k
EI
k

EI
k
2
2


47








Because,



Let,






) 32 . 4 (
2
4 2 2
4
1
EI
k
EI
k
EI
k

|
.
|

\
|

=
) 33 . 4 (
2
1
2
1
4
1
4
1
|
.
|

\
|

|
.
|

\
|
=
EI
k
i
EI
k

) 34 . 4 (
2
1
sin
2
1
cos
4
1
4
4
1
3
2
1
2
4
1

|
.
|

\
|
+
|
.
|

\
|
=
|
.
|

\
|
x
EI
k
a x
EI
k
a e y
x
EI
k
) 35 . 4 ( sin cos
4 3 2
|
.
|

\
|
+ =

x
L
a x
L
a e y
x
L
| |
|
) 36 . 4 ( sin cos sin cos
4 3 2 1 2 1
|
.
|

\
|
+ + |
.
|

\
|
+ = + =

x
L
a x
L
a e x
L
a x
L
a e y y y
x
L
x
L
| | | |
| |
bx bx e and bx bx e
bx bx
sinh cosh sinh cosh = + =

x
L
x
L
e and x
L
x
L
e
x
L
x
L
| | | |
| |
sinh cosh sinh cosh = + =

) 37 . 4 ( ) )( ' ' ( ) )( ' ' (
4 3 2 1
s a c a s c s a c a s c y + + + + =
) 38 . 4 ( ' ' ' ' ' ' ' '
4 3 4 2 2 1 2 1
s s a s c a s c a c c a s s a s c a s c a c c a y + + + + + =
) 39 . 4 ( ' ) ( ' ) ( ' ) ( ' ) (
4 2 3 1 4 2 3 1
s s a a s c a a s c a a c c a a y + + + + + =
) 40 . 4 ( sinh sin cosh sin
sinh cos cosh cos
x
L
x
L
D x
L
x
L
C
x
L
x
L
B x
L
x
L
A y
| | | |
| | | |
+ +
+ =
x
L
s
|
sin = x
L
c
|
cos = x
L
s
|
sinh ' = x
L
c
|
cosh ' =


48
where,








Figure-4.4 Boundary conditions of a structural member.
4.11 Boundary Conditions of an Unloaded Member
Since the general solution of differential equation for an unloaded member resting on an
elastic foundation includes four arbitrary constants, four boundary conditions are required
for the evaluation of these constants. Two common approaches are (1) specifying the
bending moments M
i
, M
j
, and the shears V
i
, V
j
at the end points i and j; or (2) specifying
the slopes u
i
,u
j
and the transverse deflections A
i
, A
j
. Positive directions for M
i
, M
j
, V
i
,
V
j
and for u
i
,u
j
, A
i
, A
j
are as shown in figure-4.4. In this connection, it must be noted that
the elastic foundation has been assumed to be capable of exerting either pull or push as if
the structural member were securely attached to the medium. If pulling is not permitted
(as in foundation soil) the springs should be set to zero in the finite element program by
iterative process.
4 2 4 2 3 1 3 1
a a D a a C a a B a a A = + = = + =
4
4EI
k
L = |
Mi
Vi
Ai
ui
i
y
0
Mj
Vj
Aj
uj
j
x


49
It will be shown that the use of the first approach will yield a 44 flexibility matrix of a
member on elastic foundation, and the second approach will produce the 44 stiffness
matrix.
4.12 Stiffness Matrix of a Member on Elastic Foundation
The four force quantities M
i
, M
j
, V
i
, and V
j
as defined in figure-4.4 may be expressed in
terms of the four arbitrary constants A, B, C, and D as follows

as

Differentiate y w.r.t. x:


Again differentiate y w.r.t. x:







) 41 . 4 (
2
2
dx
y d
EI M
i
=
) 42 . 4 ( ) ' ' ' ' ( s s D c s C s c B c c A
dx
d
dx
dy
+ + + =
) 43 . 4 ( )] ' ' ( ) ' ' ( ) ' ' ( ) ' ' ( [ c s c s D c c s s C s s c c B s c s c A
L
+ + + + + =
|
) 44 . 4 ( )}] ' ' ( ) ' ' {( )} ' ' ( ) ' ' {(
)} ' ' ( ) ' ' {( )} ' ' ( ) ' ' {( [
2
2
2
2
s s c c s s c c D s c s c s c s c C
s c s c s c s c B s s c c s s c c A
L dx
y d
+ + + + +
+ + + =
|
) 45 . 4 ( )] ' ' ' ' ( ) ' ' ' ' (
) ' ' ' ' ( ) ' ' ' ' ( [
2
2
c c s s c c s s D s c s c s c s c C
s c s c s c s c B s s c c s s c c A
L
+ + + + + +
+ =
|
) 46 . 4 ( ] ' 2 ' 2 ' 2 ' 2 [
2
2
D c c C s c B s c A s s
L
+ + =
|
) 47 . 4 ( )] 1 1 2 ( ) 0 1 2 (
) 1 0 2 ( ) 0 0 2 ( [ ) 0 (
2
2
2
2
+ +
+ = =
D C
B A
L
x at
dx
y d |
) 40 . 4 ( sinh sin cosh sin
sinh cos cosh cos
x
L
x
L
D x
L
x
L
C
x
L
x
L
B x
L
x
L
A y
| | | |
| | | |
+ +
+ =


50



Let,

Now,








Differentiate above equation w.r.t. x:




| sin = s | cos = c | sinh ' = s | cosh ' = c
) 48 . 4 ( ] 2 [
2
2
D
L
|
=
) 49 . 4 (
2
) 0 (
2
2
2
2
D
L
EI
x at
dx
y d
EI M
i
|
= = =
) 50 . 4 ( )] ' 2 ( ) ' 2 ( ) ' 2 ( ) ' 2 ( [ ) (
2
2
cc D cs C s c B ss A L x at
dx
y d
+ + + = =
) 51 . 4 ( ] ' ' ' ' [ 2
2
2
D cc C cs sB c A ss
L
+ =
|
) 52 . 4 ( ] ' ' ' ' [
2
) (
2
2
2
2
D cc C cs sB c A ss
L
EI
L x at
dx
y d
EI M
j
+ = = =
|
) 40 . 4 ( sinh sin cosh sin
sinh cos cosh cos
x
L
x
L
D x
L
x
L
C
x
L
x
L
B x
L
x
L
A y
| | | |
| | | |
+ +
+ =
) 53 . 4 ( ] ' ' ' ' [ 2
2
2
2
2
D c c C s c B s c A s s
L dx
y d
+ =
|
) 54 . 4 ( )] ' ' ( ) ' ' ( ) ' ' ( ) ' ' ( [ 2
3
3
3
3
s c s c D s s c c C c c s s B s c s c A
L dx
y d
+ + + =
|
) 55 . 4 ( )] 0 0 ( ) 0 1 ( ) 1 0 ( ) 0 0 ( [ 2 ) 0 (
3
3
3
3
+ + + = = D C B A
L
x at
dx
y d |
) 56 . 4 ( ) ( 2
3
3
C B
L
=
|


51





The four deformation quantities u
i
,u
j
, A
i
, and A
j
can be expressed in terms of the four
arbitrary constants A, B, C, and D by







As




) 58 . 4 ( )] ' ' ( ) ' ' (
) ' ' ( ) ' ' ( [
2
) (
3
3
3
3
s c cs D ss cc C
cc ss B cs s c A
L
L x at
dx
y d

+ + + = =
|
) 59 . 4 ( )] ' ' ( ) ' ' (
) ' ' ( ) ' ' ( [
2
) (
3
3
3
3
cs s c D cc ss C
cc ss B cs s c A
L
EI
L x at
dx
y d
EI V
j
+ +
+ + + = = =
|
) 61 . 4 ( ) ( ) 0 ( C B
L
x at
dx
dy
i
+ = = =
|
u
) 63 . 4 ( ] ) ' ' ( ) ' ' ( ) ' ' ( ) ' ' [( ) ( D cs sc C cc ss B cc ss A cs s c
L
L x at
dx
dy
j
+ + + = = =
|
u
) 65 . 4 ( ) 0 ( A x at y
i
= = = A
) 57 . 4 ( ) (
2
) 0 (
3
3
3
3
C B
L
EI
x at
dx
y d
EI V
i
= = =
|
) 43 . 4 ( )] ' ' ( ) ' ' ( ) ' ' ( ) ' ' ( [ c s c s D c c s s C s s c c B s c s c A
L dx
dy
+ + + + + =
|
) 60 . 4 ( )] 0 0 ( ) 1 0 ( ) 0 1 ( ) 0 0 ( [ ) 0 ( + + + + + = = D C B A
L
x at
dx
dy |
) 62 . 4 ( ] ) ' ' ( ) ' ' ( ) ' ' ( ) ' ' [( ) ( D cs sc C cc ss B cc ss A cs s c
L
L x at
dx
dy
+ + + = =
|
) 40 . 4 ( sinh sin cosh sin
sinh cos cosh cos
x
L
x
L
D x
L
x
L
C
x
L
x
L
B x
L
x
L
A y
| | | |
| | | |
+ +
+ =
) 64 . 4 ( )] 0 ( ) 0 ( ) 0 ( ) 1 ( [ ) 0 ( D C B A x at y + + + = =
) 66 . 4 ( ] ' ' ' ' [ ) ( D ss sC c B cs A cc L x at y + + + = =


52

The four arbitrary constants A, B, C, and D may be expressed in terms of the four
deformation quantities u
i
,u
j
, A
i
, and A
j
by solving the four simultaneous equations (4.61),
(4.63), (4.65), and (4.67); thus
From equation (4.65),

From equation (4.61),

From equation (4.68) and (4.69), put values of A and B in equation (4.67)




From equation (4.68), (4.69), and (4.72) put values of A, B, and D in equation (4.63),






) 67 . 4 ( ' ' ' ' ) ( D ss sC c B cs A cc L x at y
j
+ + + = = = A
) 68 . 4 (
i
A A =
) 69 . 4 ( C
L
B
i
= u
|
) 70 . 4 ( ' ' ' ' ' D ss sC c C cs cs
L
cc
i i j
+ + + A = A u
|
) 71 . 4 ( ) ' ' ( ' ' ' C s c cs cs
L
cc D ss
i j i
+ A + A = u
|
) 72 . 4 ( )
'
'
(
'
1
'
'
C
s
c
s
c
s
c L
ss ss
cc
D
i j i
+ A + A = u
|
) 73 . 4 ( '
'
'
'
'
'
'
'
' '
'
'
'
' ' ' ' ' ) ' ' (
2 2
2 2 2
(

(
+ +
+ + A A A A
+

+ A =
C cc C
s
s c
C
s
s c
C cc
s
s c L
cc
L
s
c
s
c
s
c c
s
cc
C cc
C ss C cc C ss cc
L
ss
L
cs s c
L
i i j j i i
i i i j
u
|
u
|
u
|
u
|
|
u
) 74 . 4 (
'
'
'
' 2
'
' ' '
'
' '
'
'
' '
2 2
2 2
2
2
C
s
s c
s
s c
ss
s
s c
cc cc ss
L
s
c
s
c
s
c c
s
cc
cs s c
L
i j i j
|
|
.
|

\
|
+ +
|
|
.
|

\
|
+ + + A
|
.
|

\
|
+ A
|
|
.
|

\
|
+ = u
|
u
|


53














From equation (4.81) put value of C in equation (4.69)




) 75 . 4 (
'
' ' ' 2
' '
'
' '
'
' ' ' ' ' '
2 2 2 2 2 2
2 2 2 2 2 2
C
ss
s c s c s s
s
s c s s L
ss
cs s c
ss
s c c s c css s s c L
i j i j
|
|
.
|

\
| +
+
|
|
.
|

\
| +
+ A
|
.
|

\
|
+ A
|
|
.
|

\
| +
= u
|
u
|
) 76 . 4 (
'
' ' ' '
' ) (
'
) ' ' (
'
) ' ' ( ) ( ' '
2 2 2 2 2 2 2 2
2 2 2 2 2 2
C
ss
s c s s s s s c
s
s c s L
ss
cs s c
ss
s c cs c s s c L
i j i j
)
`


+
)
`

+
+ A
)
`

+
A
)
`

+
= u
|
u
|
) 77 . 4 (
'
) ( ' ) ' ' (
'
'
' '
'
' '
2 2 2 2 2 2
C
ss
c s s s c s
s
s L
ss
cs s c
ss
cs s c L
i j i j
)
`

+
+
|
.
|

\
|
+ A
|
.
|

\
| +
A
|
.
|

\
| +
= u
|
u
|
) 78 . 4 (
'
'
'
'
'
' '
'
' '
2 2 2
C
ss
s s
ss
s L
ss
cs s c
ss
cs s c L
i j i j
|
|
.
|

\
|

|
|
.
|

\
|
+ A |
.
|

\
| +
A |
.
|

\
| +
= u
|
u
|
) 79 . 4 ( ) ' ( ) ' ' ( ) ' ' ( ' '
2 2 2
C s s cs s c s c cs s
L
ss
L
j i i j
A + A + = u
|
u
|
) 80 . 4 ( ) ' ' ( ) ' ' ( ' ' ) ' (
2 2 2
j i j i
cs s c s c cs ss
L
s
L
C s s A + A + = u
|
u
|
) 81 . 4 ( ) ' ' ( ) ' ' ( ' '
'
1
2
2 2 (

A + A +

=
j i j i
cs s c s c cs ss
L
s
L
s s
C u
|
u
|
) 82 . 4 ( ) ' ' ( ) ' ' ( ' '
'
1
2
2 2 (

A + A +

=
j i j i i
cs s c s c cs ss
L
s
L
s s
L
B u
|
u
|
u
|
) 83 . 4 ( ) ' ' ( ) ' ' ( ' '
'
1
) ' (
) ' (
2
2 2 2 2
2 2
(

A + A +

=
j i j i i
cs s c s c cs ss
L
s
L
s s s s
s s L
B u
|
u
|
u
|
) 84 . 4 ( ) ' ' ( ) ' ' ( ' ) ' ' (
'
1
2 2 2
2 2 (

A + + A + + + +

=
j i j i
cs s c s c cs ss
L
s s s
L
s s
B u
|
u
|


54

Multiply equation (4.65) by cc on both sides

Multiply and divide equation (4.86) by (s
2
-s
2
) on right hand side

Multiply equation (4.85) by cs' on both sides

Multiply equation (4.81) by c's on both sides

Rewrite equation (4.67)

Multiply and divide A
j
by (s'
2
-s
2
)

From equation (4.86), (4.88), and (4.89) put values of cc'A, cs'B, and c'sC in equation
(4.91),




) 85 . 4 ( ) ' ' ( ) ' ' ( '
'
1
2
2 2 (

A + + A + + +

=
j i j i
cs s c s c cs ss
L
s
L
s s
B u
|
u
|
) 86 . 4 ( ' '
i
cc A cc A =
) 88 . 4 ( ) ' ' ' ( ) ' ' ' ( ' '
'
1
'
2 2 2 2 2 2
2 2 (

A + + A + + +

=
j i j i
s c ss cc s cc ss c css
L
s cs
L
s s
B cs u
|
u
|
) 89 . 4 ( ) ' ' ' ( ) ' ' ' ( ' ' ' '
'
1
'
2 2 2 2 2 2
2 2 (

A + A +

=
j i j i
ss cc s c ss c s cc s s c
L
ss c
L
s s
sC c u
|
u
|
) 90 . 4 ( ' ' ' ' sC c B cs A cc D ss
j
A =
) 92 . 4 ( ] ) ' ' ' ' ' ' ' ' (
) ' ' ' ' ' ' ' ' ' (
) ' ' ' ( ) ' ' ' ( [
'
1
'
2 2 2 2 2 2
2 2 2 2 2 2
2 2 2 2
2 2
j
i
j i
s s ss cc s c s c ss cc
ss c s cc s cc ss c s cc s cc
s s c css
L
ss c s cs
L
s s
D ss
A + + + +
A + + + +
+ +

= u
|
u
|
) 93 . 4 ( )
'
'
'
' '
( ) ' (
) ' ' ( ) ' ' (
'
1
2 2
2 2
2 2
(

(
A + + + A +
+

=
j i
j i
s
s
s
s
s
s c
s
s c
c c
cs s c
L
s c cs
L
s s
D u
|
u
|
) 87 . 4 ( ) ' ' ' (
'
1
'
2 2
2 2
i
s cc s cc
s s
A cc A

=
) 91 . 4 ( ' ' '
'
'
'
2 2
2 2
sC c B cs A cc
s s
s s
D ss
j
A

=


55







If we put value of D from equation (4.97) in equation (4.49), the coefficient of u
i
on right
hand side becomes:


The coefficient of u
j
becomes:


The coefficient of A
i
becomes:

The coefficient of A
j
becomes:



) 94 . 4 ( )
'
' ' '
( ) 1 ' 1 (
) ' ' ( ) ' ' (
'
1
2 2 2 2 2 2
2 2
2 2
(

(
A
+ +
+ A + + +
+

=
j i
j i
ss
s s s c s c
s s
cs s c
L
s c cs
L
s s
D u
|
u
|
) 95 . 4 ( }
'
) 1 ' ( ) 1 ( '
{ ) ' (
) ' ' ( ) ' ' (
'
1
2 2 2 2
2 2
2 2
(

(
A
+
+ A + +
+

=
j i
j i
ss
c s c s
s s
cs s c
L
s c cs
L
s s
D u
|
u
|
) 96 . 4 ( )
'
' '
( ) ' ( ) ' ' ( ) ' ' (
'
1
2 2 2 2
2 2
2 2
(

A
+
+ A + + +

=
j i j i
ss
s s s s
s s cs s c
L
s c cs
L
s s
D u
|
u
|
) 97 . 4 ( ' 2 ) ' ( ) ' ' ( ) ' ' (
'
1
2 2
2 2 (

A + A + + +

=
j i j i
ss s s cs s c
L
s c cs
L
s s
D u
|
u
|
) 98 . 4 ( ) ' ' (
) ' (
2
2 2 2
2
s c cs
L
s s L
EI

|
|
) 100 . 4 ( ) ' ' (
) ' (
2
2 2 2
2
cs s c
L
s s L
EI

|
|
) 101 . 4 (
) ' (
) ' ' ( 2
2 2
s s L
cs s c EI

=
|
) 102 . 4 (
) ' (
) ' ( 2
2 2 2
2 2 2
s s L
s s EI

|
) 103 . 4 (
) ' (
) ' 2 ( 2
2 2 2
2
s s L
ss EI

|
) 104 . 4 (
) ' (
' 4
2 2 2
2
s s L
ss EI

=
|
) 99 . 4 (
) ' (
) ' ' ( 2
2 2
s s L
cs s c EI


=
|


56
Hence, equation (4.49) becomes:


or

If we put value of A, B, C, and D from equation (4.68), (4.85), (4.81), and (4.97) in
equation (4.52), the coefficient of u
i
on right hand side becomes:




The coefficient of u
j
becomes:





The coefficient of A
i
becomes:

) 107 . 4 ( ) ' ' ' ' ' 0 ' (
) ' (
2
2 2 3 3
2 2 2
2
s cc s c c cs s c ss
L
s s L
EI
+
|
|
) 108 . 4 ( )} ' ' ( ' ) ( ' {
) ' (
2
2 2 2 2
2 2
s c cs c s s c
s s L
EI
+ +

=
|
) 109 . 4 (
) ' (
) ' ' ( 2
2 2
s s L
cs s c EI

=
|
) 110 . 4 ( )} ' ' ( ' ) ' ( ' ) ' ( ' 0 ' {
) ' (
2
2 2 2
2
cs s c cc ss cs ss s c ss
L
s s L
EI
+
|
|
) 111 . 4 ( ) ' ' ' ' ' ' (
) ' (
2
2 2 2 2
2 2
s c c s cc css s s c
s s L
EI
+ +

=
|
) 112 . 4 ( )} ' ' ( ) ( ' ' {
) ' (
2
2 2 2 2
2 2
s c cs c s s c
s s L
EI
+

=
|
) 113 . 4 (
) ' (
) ' ' ( 2
2 2
s s L
cs s c EI


=
|
) 114 . 4 ( )} ' ( ' ) ' ' ( ' ) ' ' ( ' ) ' )( 1 ( ' {
) ' (
2
2 2 2 2
2 2 2
2
s s cc s c cs cs s c cs s c s s ss
s s L
EI
+ + + + +

|
) 105 . 4 (
) ' (
' 4
) ' (
) ' ( 2
) ' (
) ' ' ( 2
) ' (
) ' ' ( 2
2 2 2
2
2 2 2
2 2 2
2 2 2 2
j i
j i i
s s L
ss EI
s s L
s s EI
s s L
cs s c EI
s s L
cs s c EI
M
A


=
| |
u
|
u
|
) 106 . 4 (
4 3 2 1 j i j i i
VAR VAR VAR VAR M A A = u u


57





The coefficient of A
j
becomes:







Hence, equation (4.52) becomes:


or

) 115 . 4 ( ) ' ' ' ' ' ' ' ' ' ' ' (
) ' (
2
2 2 2 2 2 2 3 3
2 2 2
2
s cc s cc s cc ss c ss c s cc s s ss
s s L
EI
+ + + + +

=
|
) 116 . 4 ( )} 1 ( ' ) ' 1 ( ' ' ' {
) ' (
2
2 2 3 3
2 2 2
2
s ss s ss s s ss
s s L
EI
+ + + +

=
|
) 117 . 4 ( ) ' ' ' ' ' ' (
) ' (
2
3 3 3 3
2 2 2
2
s s ss ss ss s s ss
s s L
EI
+ + + +

=
|
) 118 . 4 (
) ' (
' 2
2 2 2
2
s s L
ss EI

=
|
) 119 . 4 ( )} ' 2 ( ' ) ' ' ( ' ) ' ' ( ' 0 ' {
) ' (
2
2 2 2
2
ss cc cs s c cs cs s c s c ss
s s L
EI
+ + + +

|
) 120 . 4 ( ) ' ' 2 ' ' ' ' ' ' (
) ' (
2
2 2 2 2
2 2 2
2
ss cc s c ss cc ss cc s c
s s L
EI
+ + +

=
|
) 121 . 4 ( )} 1 ( ' ) ' 1 ( {
) ' (
2
2 2 2 2
2 2 2
2
s s s s
s s L
EI
+ +

=
|
) 122 . 4 ( ) ' ' ' (
) ' (
2
2 2 2 2 2 2
2 2 2
2
s s s s s s
s s L
EI
+ +

=
|
) 123 . 4 (
) ' (
) ' ( 2
2 2 2
2 2 2
s s L
s s EI

+
=
|
) 124 . 4 (
) ' (
) ' ( 2
) ' (
' 2
) ' (
) ' ' ( 2
) ' (
) ' ' ( 2
2 2 2
2 2 2
2 2 2
2
2 2 2 2
j i
j i j
s s L
s s EI
s s L
ss EI
s s L
cs s c EI
s s L
cs s c EI
M
A

+
+ A

=
| |
u
|
u
|
) 125 . 4 (
3 4 1 2 j i j i j
VAR VAR VAR VAR M A + A + + = u u


58
If we put value of B, and C from equation (4.85) and (4.81) in equation (4.57), the
coefficient of u
i
on right hand side becomes:


The coefficient of u
j
becomes:


The coefficient of A
i
becomes:




The coefficient of A
j
becomes:



Hence, equation (4.57) becomes:


) 126 . 4 ( ) ' (
) ' (
2
2 2
2 2 3
3
s s
L
s s L
EI

|
|
) 127 . 4 (
) ' (
) ' ( 2
2 2 2
2 2 2
s s L
s s EI

+
=
|
) 130 . 4 ( ) ' ' ' ' (
) ' (
2
2 2 3
3
s c cs s c cs
s s L
EI
+ + +

|
) 131 . 4 ( ) ' ' 2 2 (
) ' (
2
2 2 3
3
s c cs
s s L
EI
+

=
|
) 132 . 4 (
) ' (
) ' ' ( 4
2 2 3
3
s s L
s c cs EI

+
=
|
) 128 . 4 ( ) ' ' (
) ' (
2
2 2 3
3
ss ss
L
s s L
EI
+
|
|
) 129 . 4 (
) ' (
' 4
2 2 2
2
s s L
ss EI

=
|
) 133 . 4 ( )} ' ' ( ) ' ' {(
) ' (
2
2 2 3
3
cs s c cs s c
s s L
EI
+ + +

|
) 134 . 4 ( ) ' ' ' ' (
) ' (
2
2 2 3
3
cs s c cs s c
s s L
EI
+ + +

=
|
) 135 . 4 (
) ' (
) ' ' ( 4
2 2 3
3
s s L
cs s c EI

+
=
|
) 136 . 4 (
) ' (
) ' ' ( 4
) ' (
) ' ' ( 4
) ' (
' 4
) ' (
) ' ( 2
2 2 3
3
2 2 3
3
2 2 2
2
2 2 2
2 2 2
j i
j i i
s s L
cs s c EI
s s L
s c cs EI
s s L
ss EI
s s L
s s EI
V
A

+
+ A

+
+

+
=
| |
u
|
u
|


59
or

If we put value of A, B, C, and D from equation (4.68), (4.85), (4.81), and (4.97) in
equation (4.59), the coefficient of u
i
on right hand side becomes:








The coefficient of u
j
becomes:






) 138 . 4 ( )} ' ' )( ' ' ( ' ' ' ' ' 0 ) ' ' {(
) ' (
2
2 3 2 3
2 2 3
3
s c cs cs s c s cc ss s cc s s cs s c
L
s s L
EI
+ + +
|
|
) 139 . 4 ( ) ' ' ' ' ' ' ' ' ' ' ' (
) ' (
2
2 2 2 2 2 3 2 3
2 2 2
2
s cc ss c ss c s cc s cc ss s cc s s
s s L
EI
+ + +

=
|
) 140 . 4 ( )} ' ' ( ' ) ( ' {
) ' (
2
2 2 2 2
2 2 2
2
s c ss c s ss
s s L
EI
+

=
|
) 141 . 4 ( ) ' 2 (
) ' (
2
2 2 2
2
ss
s s L
EI

=
|
) 142 . 4 (
) ' (
' 4
2 2 2
2
s s L
ss EI

=
|
) 143 . 4 ( )} ' ' )( ' ' ( ) ' )( ' ' (
' ) ' ' ( 0 ) ' ' {(
) ' (
2
2 2 3
3
cs s c cs s c ss cc ss
ss cc ss cs s c
L
s s L
EI
+ +
+ + +
|
|
) 144 . 4 ( } ) ' ' ( ' ' ' ' ' ' {
) ' (
2
2 2 2 2 2
2 2 2
2
cs s c ss cc s ss cc s s
s s L
EI
+ + +

=
|
) 145 . 4 ( ) ' ' ' 2 ' ' ' 2 (
) ' (
2
2 2 2 2
2 2 2
2
s c ss cc c s ss cc
s s L
EI
+ +

=
|
) 146 . 4 ( )} 1 ( ' ) ' 1 ( {
) ' (
2
2 2 2 2
2 2 2
2
s s s s
s s L
EI
+ +

=
|
) 137 . 4 (
6 5 4 3 j i j i i
VAR VAR VAR VAR V A + A + + = u u


60



The coefficient of A
i
becomes:








The coefficient of A
i
becomes:






) 149 . 4 ( )} ' )( ' ' ( ) ' ' )( ' ' (
) ' ' )( ' ' ( ) 1 )( ' )( ' ' {(
) ' (
2
2 2
2 2
2 2 3
3
s s cs s c s c cs cc ss
s c cs cc ss s s cs s c
s s L
EI
+ + +
+ + + +

|
) 150 . 4 ( ) ' ' ' ' ' ' ' ' '
' ' ' ' ' ' ' ' ' ' ' ' ' (
) ' (
2
3 3 2 2 2 2
2 2 2 2 2 2 2 3 3 2
2 2 3
3
cs s c s cs ss c s cc ss c
s c c s cs s c c s cc ss c s cs s cs s c cs ss c
s s L
EI
+ + +
+ + + + + + +

=
|
) 151 . 4 ( ) ' ' 2 ' 2 ' 2 ' 2 (
) ' (
2
2 2 3 3
2 2 3
3
s cc s c c s c cs
s s L
EI
+ + +

=
|
) 152 . 4 ( )} ( ' ) ' ' ( ' {
) ' (
4
2 2 2 2
2 2 3
3
c s s c s c cs
s s L
EI
+ +

=
|
) 153 . 4 (
) ' (
) ' ' ( 4
2 2 3
3
s s L
cs sc EI

+
=
|
) 147 . 4 ( ) ' ' ' (
) ' (
2
2 2 2 2 2 2
2 2 2
2
s s s s s s
s s L
EI
+ +

=
|
) 148 . 4 (
) ' (
) ' ( 2
2 2 2
2 2 2
s s L
s s EI

+
=
|
) 154 . 4 ( )} ' ' ( ' 2 ) ' ' )( ' ' ( ) ' ' )( ' ' {(
) ' (
2
2 2 3
3
cs s c ss cs s c cc ss cs s c cc ss
s s L
EI
+ + + +

|
) 155 . 4 ( ) ' 2 ' ' 2 ' ' ' '
' ' ' ' ' ' ' ' (
) ' (
2
2 2 2 2 2
2 2 2 2 2
2 2 3
3
css s s c s c c css s cc
s s c s c c css s cc s s c
s s L
EI
+ + +
+ + +

=
|
) 156 . 4 ( ) ' 2 ' ' 2 ' ' 2 ' 2 (
) ' (
2
2 2 2 2
2 2 3
3
css s s c s c c s cc
s s L
EI
+ +

=
|
) 157 . 4 ( ) ' ' ' ' ' ' (
) ' (
4
2 2 2 2
2 2 3
3
s s c s c c css s cc
s s L
EI
+ +

=
|


61



Hence, equation (4.59) becomes:


or

The stiffness matrix [S] of a member on elastic foundation can be formed from equation
(4.106), (4.125), (4.137), and (4.161) as follows:
u
I
u
j
A
i
A
j
M
i
VAR
1
-VAR
2
-VAR
3
-VAR
4
M
j
-VAR
2
VAR
1
VAR
4
VAR
3
V
i
-VAR
3
VAR
4
VAR
5
VAR
6
V
j
-VAR
4
VAR
3
VAR
6
VAR
5
Matrix 4.1
Because we have to superimpose the element stiffness matrices in global stiffness matrix,
we interchange 2
nd
row with 3
rd
row and 2
nd
column with 3
rd
column and get:
) 158 . 4 ( )} ( ' ' ) ' ' ( {
) ' (
4
2 2 2 2
2 2 3
3
s c s c s c cs
s s L
EI
+ +

=
|
) 159 . 4 (
) ' (
) ' ' ( 4
2 2 3
3
s s L
s c cs EI

+
=
|
) 160 . 4 (
) ' (
) ' ' ( 4
) ' (
) ' ' ( 4
) ' (
) ' ( 2
) ' (
' 4
2 2 3
3
2 2 3
3
2 2 2
2 2 2
2 2 2
2
j i
j i j
s s L
s c cs EI
s s L
cs sc EI
s s L
s s EI
s s L
ss EI
V
A

+
+ A

+
+

+
+

=
| |
u
|
u
|
) 161 . 4 (
5 6 3 4 j i j i j
VAR VAR VAR VAR V A + A + + = u u


62
u
I
A
I
u
j
A
j
M
I
VAR
1
VAR
3
VAR
2
-VAR
4
V
I
VAR
3
VAR
5
VAR
4
-VAR
6
M
j
VAR
2
VAR
4
VAR
1
-VAR
3
V
j
-VAR
4
-VAR
6
-VAR
3
VAR
5
Matrix 4.2
Because the elements are not supposed to bend, we take | = 0 and obtain the degenerate
values of VAR
1
to VAR
6
by applying limits and using lHospitals rule:


Applying lHospitals rule:


Again applying lHospitals rule:



Again applying lHospitals rule:


) 162 . 4 (
) ' (
) ' ' ( 2
2 2
1
s s L
cs s c EI
VAR


=
|
) 163 . 4 (
0
0
) ' (
) ' ' (
lim
2
) ' (
) ' ' ( 2
lim
2 2
0
2 2
0
=



s s
cs s c
L
EI
s s L
cs s c EI | |
| |
) 164 . 4 (
0
0
) ' ' ( 2
) ' ' ( ) ' ' (
lim
2
) ' (
) ' ' (
lim
2
2 2 2 2
0
2 2
0
=

+ + +
=


cs s c
cs s c c s c s
L
EI
s s
cs s c
L
EI | |
| |
) 165 . 4 (
0
0
) ' ' ( 2
) ' ' ( ) ' ' ( 4
lim
2
) ' ' ( 2
) ' ' ( ) ' ' (
lim
2
2 2 2 2
2 2 2 2
0
2 2 2 2
0
=
+ +
+ + + +
=

+ + +

s c s c
c s c s cs s c
L
EI
cs s c
cs s c c s c s
L
EI
|
|
|
|
) 166 . 4 (
0
0
) ' ' ( 8
) ' ' ( 8 ) ' ' ( 4
lim
2
) ' ' ( 2
) ' ' ( ) ' ' ( 4
lim
2
2 2 2 2
0
2 2 2 2
2 2 2 2
0
=
+
+ + + +
=
+ +
+ + + +

cs s c
sc c s s c s c
L
EI
s c s c
c s c s cs s c
L
EI
|
|
|
|


63
Again applying lHospitals rule:







Applying lHospitals rule:

Again applying lHospitals rule:

Again applying lHospitals rule:


Again applying lHospitals rule:



) 167 . 4 (
4
) ' ' ( 8
) ' ' ( 12 ) ' ' ( 16
lim
2
) ' ' ( 8
) ' ' ( 8 ) ' ' ( 4
lim
2
2 2 2 2
2 2 2 2
0
2 2 2 2
0
L
EI
c s c s
c s c s cs s c
L
EI
cs s c
sc c s s c s c
L
EI
=
+ +
+ + +
=
+
+ + + +

|
|
|
|
) 168 . 4 ( 0
4
1
= = | at
L
EI
VAR
) 169 . 4 (
) ' (
) ' ' ( 2
2 2
2
s s L
cs s c EI
VAR

=
|
) 170 . 4 (
0
0
) ' (
) ' ' (
lim
2
) ' (
) ' ' ( 2
lim
2 2
0
2 2
0
=


s s
cs s c
L
EI
s s L
cs s c EI | |
| |
) 171 . 4 (
0
0
) ' ' ( 2
) ' ' ( ' 2
lim
2
) ' (
) ' ' (
lim
2
0
2 2
0
=

+
=


cs s c
cs s c ss
L
EI
s s
cs s c
L
EI | |
| |
) 172 . 4 (
0
0
) ' ' ( 2
' 4 ) ' ' ( 2
lim
2
) ' ' ( 2
) ' ' ( ' 2
lim
2
2 2 2 2
0 0
=
+ +
+ +
=

+

s c s c
ss cs s c
L
EI
cs s c
cs s c ss
L
EI | |
| |
) 173 . 4 (
0
0
) ' ' ( 8
) ' ' ( 6 ' 4
lim
2
) ' ' ( 2
' 4 ) ' ' ( 2
lim
2
0
2 2 2 2
0
=
+
+ +
=
+ +
+ +

cs s c
cs s c cc
L
EI
s c s c
ss cs s c
L
EI | |
| |
) 174 . 4 (
2
) ' ' ( 8
' 16 ) ' ' ( 4
lim
2
) ' ' ( 8
) ' ' ( 6 ' 4
lim
2
2 2 2 2
0 0
L
EI
s c s c
cc s c cs
L
EI
cs s c
cs s c cc
L
EI
=
+ +
+
=
+
+ +

| |
| |
) 175 . 4 ( 0
2
2
= = | at
L
EI
VAR


64



Applying lHospitals rule:

Again applying lHospitals rule:


Again applying lHospitals rule:


Again applying lHospitals rule:







) 176 . 4 (
) ' (
) ' ( 2
2 2 2
2 2 2
3
s s L
s s EI
VAR

+
=
|
) 177 . 4 (
0
0
) ' (
) ' (
lim
2
) ' (
) ' ( 2
lim
2 2
2 2 2
0
2 2 2 2
2 2 2
0
=

+
=

+

s s
s s
L
EI
s s L
s s EI | |
| |
) 178 . 4 (
0
0
) ' ' ( 2
) ' ( 2 ) ' ' ( 2
lim
2
) ' (
) ' (
lim
2
2 2 2
0
2 2 2
2 2 2
0
2
=

+ + +
=

+

cs s c
s s cs s c
L
EI
s s
s s
L
EI | | |
| |
) 179 . 4 (
0
0
) ' ' ( 2
) ' ( 2 ) ' ' ( 8 ) ' ' ( 2
lim
2
) ' ' ( 2
) ' ( 2 ) ' ' ( 2
lim
2
2 2 2 2
2 2 2 2 2 2 2
0
2
2 2 2
0
2
=
+ +
+ + + + + +
=

+ + +

c s c s
s s cs s c c s c s
L
EI
cs s c
s s cs s c
L
EI
| |
| |
|
|
) 180 . 4 (
0
0
) ' ' ( 8
) ' ' ( 12 ) ' ' ( 12 ) ' ' ( 8
lim
2
) ' ' ( 2
) ' ( 2 ) ' ' ( 8 ) ' ' ( 2
lim
2
2 2 2 2 2
0
2
2 2 2 2
2 2 2 2 2 2 2
0
2
=
+
+ + + + +
=
+ +
+ + + + + +

cs s c
cs s c c s c s cs s c
L
EI
c s c s
s s cs s c c s c s
L
EI
| |
| |
|
|
) 181 . 4 (
6
) ' ' ( 8
) ' ' ( 24 ) ' ' ( 64 ) ' ' ( 8
lim
2
) ' ' ( 8
) ' ' ( 12 ) ' ' ( 12 ) ' ' ( 8
lim
2
2 2 2 2 2
2 2 2 2 2 2 2 2 2
0
2
2 2 2 2 2
0
2
L
EI
c s c s
c s c s cs s c c s c s
L
EI
cs s c
cs s c c s c s cs s c
L
EI
=
+ +
+ + + + + +
=
+
+ + + + +

| |
| |
|
|
) 182 . 4 ( 0
6
2
3
= = | at
L
EI
VAR
) 183 . 4 (
) ' (
' 4
2 2 2
2
4
s s L
ss EI
VAR

=
|
) 184 . 4 (
0
0
) ' (
'
lim
4
) ' (
' 4
lim
2 2
2
0
2 2 2 2
2
0
=


s s
ss
L
EI
s s L
ss EI | |
| |


65
Applying lHospitals rule:

Again applying lHospitals rule:

Again applying lHospitals rule:


Again applying lHospitals rule:






Applying lHospitals rule:

Again applying lHospitals rule:


) 185 . 4 (
0
0
) ' ' ( 2
' 2 ) ' ' (
lim
4
) ' (
'
lim
4
2
0
2 2 2
2
0
2
=

+ +
=


cs s c
ss cs s c
L
EI
s s
ss
L
EI | | |
| |
) 186 . 4 (
0
0
) ' ' ( 2
' 2 ) ' ' ( 4 ' 2
lim
4
) ' ' ( 2
' 2 ) ' ' (
lim
4
2 2 2 2
2
0
2
2
0
2
=
+ +
+ + +
=

+ +

c s c s
ss cs s c cc
L
EI
cs s c
ss cs s c
L
EI | | | |
| |
) 187 . 4 (
0
0
) ' ' ( 8
) ' ' ( 6 ' 12 ) ' ' ( 2
lim
4
) ' ' ( 2
' 2 ) ' ' ( 4 ' 2
lim
4
2
0
2
2 2 2 2
2
0
2
=
+
+ + +
=
+ +
+ + +

cs s c
cs s c cc s c cs
L
EI
c s c s
ss cs s c cc
L
EI
| |
| |
|
|
) 188 . 4 (
6
) ' ' ( 8
' 24 ) ' ' ( 16 ' 2
lim
4
) ' ' ( 8
) ' ' ( 6 ' 12 ) ' ' ( 2
lim
4
2 2 2 2 2
2
0
2
2
0
2
L
EI
c s c s
cc s c cs ss
L
EI
cs s c
cs s c cc s c cs
L
EI
=
+ +
+ +
=
+
+ + +

| |
| |
|
|
) 189 . 4 ( 0
6
2
4
= = | at
L
EI
VAR
) 190 . 4 (
) ' (
) ' ' ( 4
2 2 3
3
5
s s L
s c cs EI
VAR

+
=
|
) 191 . 4 (
0
0
) ' (
) ' ' (
lim
4
) ' (
) ' ' ( 4
lim
2 2
3
0
3 2 2 3
3
0
=

+
=

+

s s
s c cs
L
EI
s s L
s c cs EI | |
| |
) 192 . 4 (
0
0
) ' ' ( 2
) ' ' ( 3 ) ' ' (
lim
4
) ' (
) ' ' (
lim
4
2 2 2 2 2 3
0
3 2 2
3
0
3
=

+ + + +
=

+

cs s c
s c cs s c s c
L
EI
s s
s c cs
L
EI | | |
| |
) 193 . 4 (
0
0
) ' ' ( 2
) ' ' ( 6 ) ' ' ( 6 ) ' ' ( 4
lim
4
) ' ' ( 2
) ' ' ( 3 ) ' ' (
lim
4
2 2 2 2
2 2 2 2 2 3
0
3
2 2 2 2 2 3
0
3
=
+ +
+ + + + +
=

+ + + +

s c s c
s c cs s c s c cs s c
L
EI
cs s c
s c cs s c s c
L
EI
| | |
| |
|
|


66
Again applying lHospitals rule:


Again applying lHospitals rule:







Applying lHospitals rule:

Again applying lHospitals rule:

Again applying lHospitals rule:



) 194 . 4 (
0
0
) ' ' ( 8
) ' ' ( 6 ) ' ' ( 18 ) ' ' ( 24 ) ' ' ( 4
lim
4
) ' ' ( 2
) ' ' ( 6 ) ' ' ( 6 ) ' ' ( 4
lim
4
2 2 2 2 2 2 2 2 2 3
0
3
2 2 2 2
2 2 2 2 2 3
0
3
=
+
+ + + + + + + +
=
+ +
+ + + + +

cs s c
s c cs s c s c cs s c s c s c
L
EI
s c s c
s c cs s c s c cs s c
L
EI
| | |
| | |
|
|
) 195 . 4 (
12
) ' ' ( 8
) ' ' ( 24 ) ' ' ( 72 ) ' ' ( 36 ) ' ' ( 16
lim
4
) ' ' ( 8
) ' ' ( 6 ) ' ' ( 18 ) ' ' ( 24 ) ' ' ( 4
lim
4
3 2 2 2 2
2 2 2 2 2 2 2 2 2 3
0
3
2 2 2 2 2 2 2 2 2 3
0
3
L
EI
s c s c
s c s c cs s c s c s c cs s c
L
EI
cs s c
s c cs s c s c cs s c s c s c
L
EI
=
+ +
+ + + + + + + +
=
+
+ + + + + + + +

| | |
| | |
|
|
) 196 . 4 ( 0
12
3
5
= = | at
L
EI
VAR
) 197 . 4 (
) ' (
) ' ' ( 4
2 2 3
3
6
s s L
cs sc EI
VAR

+
=
|
) 198 . 4 (
0
0
) ' (
) ' ' (
lim
4
) ' (
) ' ' ( 4
lim
2 2
3
0
3 2 2 3
3
0
=

+
=

+

s s
cs sc
L
EI
s s L
cs sc EI | |
| |
) 199 . 4 (
0
0
) ' ' ( 2
) ' ' ( 3 ' 2
lim
4
) ' (
) ' ' (
lim
4
2 3
0
3 2 2
3
0
3
=

+ +
=

+

cs s c
cs sc cc
L
EI
s s
cs sc
L
EI | | |
| |
) 200 . 4 (
0
0
) ' ' ( 2
) ' ' ( 6 ' 12 ) ' ' ( 2
lim
4
) ' ' ( 2
) ' ' ( 3 ' 2
lim
4
2 2 2 2
2 3
0
3
2 3
0
3
=
+ +
+ + +
=

+ +

s c s c
cs sc cc s c cs
L
EI
cs s c
cs sc cc
L
EI | | | | |
| |
) 201 . 4 (
0
0
) ' ' ( 8
) ' ' ( 6 ' 36 ) ' ' ( 18 ' 4
lim
4
) ' ' ( 2
) ' ' ( 6 ' 12 ) ' ' ( 2
lim
4
2 3
0
3
2 2 2 2
2 3
0
3
=
+
+ + + +
=
+ +
+ + +

cs s c
cs sc cc s c cs ss
L
EI
s c s c
cs sc cc s c cs
L
EI
| | |
| | |
|
|


67
Again applying lHospitals rule:



Hence, the stiffness matrix (4.2) becomes,
u
I
A
i
u
j
A
j
M
i
4EI/L 6EI/L
2

2EI/L

-6EI/L
2

V
i
6EI/L
2
12EI/L
3
6EI/L
2

-12EI/L
3
M
j
2EI/L

6EI/L
2

4EI/L

-6EI/L
2

V
j
-6EI/L
2

-12EI/L
3
-6EI/L
2

12EI/L
3
Matrix 4.3
4.13 Application of the Finite Element Method
The expressions for the 44 stiffness matrix of a member on elastic foundation, as shown
in Matrix (4.3), are required in establishing the local [SA
T
] and [ASA
T
] matrices in any
direct stiffness application of the displacement method.
4.14 General Relations
Consider figure-4.5,



) 202 . 4 (
12
) ' ' ( 8
' 48 ) ' ' ( 72 ' 18 ) ' ' ( 4
lim
4
) ' ' ( 8
) ' ' ( 6 ' 36 ) ' ' ( 18 ' 4
lim
4
3 2 2 2 2
2 3
0
3
2 3
0
3
L
EI
c s c s
cc s c cs ss cs s c
L
EI
cs s c
cs sc cc s c cs ss
L
EI
=
+ +
+ + +
=
+
+ + + +

| | |
| | |
|
|
) 203 . 4 ( 0
12
3
6
= = | at
L
EI
VAR


68






Figure-4.5 External (nodal) and internal (member) finite element
forces.
Here,
P
i
= external node forces (point loads or moments)
F
i
= internal member forces (bending moments and shear forces, in resistance to P
i
)
X
i
= external nodal displacements (rotations in radians or translations)
e
i
= internal member deformations (rotations in radians or translations)
A
i
, B
i
= bridging constants
Now we equate the ith external nodal forces P
i
to the sum of all contributing internal
member forces F
i
using the bridging constants A
i

P
i
= A
i
F
i
(4.204)
For the full set of nodes on any structure and using matrix notation, where P and F are
column vectors and A is a rectangular matrix, this becomes
P = A F (4.205)
F1-e 1
L
Nodal P-X
F2-e 2
e 2
e 1
F1 + F2
L
F1 + F2
L
L
P2 - X2 P4 - X4
P1 - X1 P3 - X3
Element F-e


69
Similarly, the relation between the internal-member deformations e and external nodal
displacements X becomes
e = B X (4.206)
From the principle of virtual work, matrix B is exactly the transpose of matrix A*.
Hence,
e = A
T
X (4.207)
The internal-member forces F are related to the internal-member displacements e and
contributing member stiffnesses S as
F = Se (4.208)
These three equations constitute the fundamental equations in the finite element method
of analysis.
Putting equation (4.207) into (4.208), we get
F = Se = SA
T
X (4.209)
Putting equation (4.209) into (4.205), we get
P = AF = ASA
T
X (4.210)
In this system of equations, the only unknowns are the Xs, therefore the ASA
T
is inverted
to obtain
X = (ASA
T
)
-1
P (4.211)
Thus, the deformation characteristics (rotations and deflections) are obtained. To get the
internal-member forces (bending moments and shear forces) for design purpose, we back-
substitute the values of X in equation (4.209).


70
The ASA
T
matrix is called the global matrix because it represents the system of equations
for each P or X nodal entry for the entire structure. The global matrix ASA
T
can easily be
constructed by superimposing the finite element matrices EASA
T
. All element matrices
are prefixed with E to distinguish them from the global matrices.






Figure-4.6 Structure and structure broken into finite elements
with global P-X, F-e, and K.






Figure-4.7 (a) P-X of first element; (b) Element forces of first
element.
2 4 3 5
F1 - e1 F2 - e2 F3 - e3 F4 - e4 F5 - e5
Nodes
Element numbers
1 2 3 4
P2 - X2
P1 - X1
P4 - X4
P3 - X3
P6 - X6
P5 - X5
P8 - X8
P7 - X7
P10 - X10
P9 - X9
L1 L2 L3 L4
K5 K4 K3 K2 K1
1
a
b
2 2 4 4
P1 - X1 P3 - X3
F1 - e1 F2 - e2
F1 + F2 F1 + F2
L1
L1 L1
1


71






Figure-4.8 Summing of nodal forces.
4.15 Development of the Element A matrix
Consider the single simple beam element shown in figure-4.7(a) labeled with four
subscripted values of P-X and the F-e on the element (figure-4.7(b)). The values of P-X
and F-e on a node common to any two elements must have same subscripting while
considering each element (figure-4.6). The forces on the elements include two internal
bending moments and the shear effect of the bending moments.
Summing moments on node 1 and 2 respectively (figure-4.8), we get
P
1
= F
1
+ 0F
2
(4.212)
P
3
= 0F
1
+ F
2
(4.213)
While summing the forces, we do not include the soil spring forces KX because these are
global quantities and will be included to the global ASA
T
matrix separately. Hence,
summing the forces, we get


) 214 . 4 (
2 1
2
L
F
L
F
P + =
) 215 . 4 (
2 1
4
L
F
L
F
P =
P2
P1
F1
Node 1
F1 + F2
L1
K1X1
P4
P3
F2
Node 2
F1 + F2
L1
K2X2


72
Arranging in the conventional form, we get the element A matrix for element 1





Matrix-4.4
4.16 Development of the Element B (or A
T
) matrix
This matrix is obtained by transposing the EA matrix. It is worth noting that the
constituting equations of EA
T
are in terms of e and X.



Matrix-4.5
4.17 Development of element S matrix
Consider the conjugate beam shown in figure-4.9 (a)
Applying equilibrium conditions:
EF
y
= 0:

F
3
1 1
2 1/L 1/L
0

1

2
1 0
4 -1/L -1/L
P
X
1 1

1
2 0
1/L
e
-1/L
-1/L
1
0
1/L

2

3

4
) 216 . 4 (
2
1
EI
L F
R R
B A
= +


73







Figure-4.9 Conjugate-beam relationships between end moments
and beam rotations.

EM
A
= 0:







Now consider the conjugate beam shown in figure-4.9 (b)
) 217 . 4 (
3 2
1
L R
L
EI
L F
B
=
) 218 . 4 (
6
1
EI
L F
R
B
=
) 219 . 4 (
6 2 2
1 1 1
EI
L F
EI
L F
R
EI
L F
R
B A
= =
) 220 . 4 (
3
1
EI
L F
R
A
=
e1
e2
F1 F2
e1
e2
F1 F2
F1 F2
L L
F1 F2
EI EI
RA RB
RA' RB'
Real beam element
Moment diagram
Cojugate beam
Real beam element
Moment diagram
Cojugate beam
a b


74
Applying equilibrium conditions:
EF
y
= 0:

EM
A
= 0:






Now applying conjugate beam theorem 1, which states that the clockwise slope and the
downward deflection at any point in a real beam are equal to the positive shear and
positive bending moment at that point in the conjugate beam, respectively, we get
slope at point A,

and slope at point B,

Solving equation (4.226) and (4.227) simultaneously, we get


) 221 . 4 (
2
' '
2
EI
L F
R R
B A
= +
) 222 . 4 ( '
3
2
2
2
L R
L
EI
L F
B
=
) 223 . 4 (
3
'
2
EI
L F
R
B
=
) 224 . 4 (
3 2
'
2
'
2 2 2
EI
L F
EI
L F
R
EI
L F
R
B A
= =
) 225 . 4 (
6
'
2
EI
L F
R
A
=
) 226 . 4 (
6 3
'
2 1
1
EI
L F
EI
L F
R R e
A A
= =
) 227 . 4 (
3 6
'
2 1
2
EI
L F
EI
L F
R R e
B B
+ = + =
) 228 . 4 (
2 4
2 1 1
e
L
EI
e
L
EI
F + =
) 229 . 4 (
4 2
2 1 2
e
L
EI
e
L
EI
F + =


75
Arranging in the conventional form, we get the element S matrix for element 1



Matrix-4.6
4.18 Development of the element ESA
T
and EASA
T
matrices
The ESA
T
matrix is obtained by multiplication of the element matrices ES and EA
T
.





Similarly, the EASA
T
matrix is obtained by multiplication of the element matrices EA
and ESA
T
.




Matrix-4.7
e
1 4EI/L 2EI/L

1

2
2 2EI/L 4EI/L
F
) 230 . 4 (
1
1
1
0
1
0
1
1
4 2
2
(
(
(

(
(
(

= =
L L
L L
L
EI
L
EI
L
EI
L
FEI
E E E
T T
A S SA
) 231 . 4 (
6 4 6 2
6 2 6 4
2 2
2 2
(
(
(

=
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
E
T
SA
) 232 . 4 (
12 6 12 6
6 4 6 2
12 6 12 6
6 2 6 4
3 2 3 2
2 2
3 2 3 2
2 2
(
(
(
(
(
(
(
(

=
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
E
T
ASA


76
4.19 Development of the global matrix ASA
T

The global matrix ASA
T
is built by superimposing the element matrices EASA
T
. To
illustrate the procedure, the first two EASA
T
are superimposed on following page:
Let,



and




be the EASA
T
matrices of element 1 and 2 respectively. Then superimposing these two in
the global ASA
T
,we get






Matrix-4.8
) 233 . 4 (
12 6 12 6
6 4 6 2
12 6 12 6
6 2 6 4
3
1
2
1
3
1
2
1
2
1
1
2
1
1
3
1
2
1
3
1
2
1
2
1
1
2
1
1
1
(
(
(
(
(
(
(
(
(
(

=
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
E
T
ASA
) 234 . 4 (
12 6 12 6
6 4 6 2
12 6 12 6
6 2 6 4
3
2
2
2
3
2
2
2
2
2
2
2
2
2
3
2
2
2
3
2
2
2
2
2
2
2
2
2
2
(
(
(
(
(
(
(
(
(
(

=
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
E
T
ASA
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

+ +
+ +

=
3
2
2
2
3
2
2
2
2
2 2
2
2 2
3
2
2
2
3
2
3
1
2
2
2
1
3
1
2
1
2
2 2
2
2
2
1 2 1
2
1 1
3
1
2
1
3
1
2
1
2
1 1
2
1 1
12 6 12 6
0 0
6 4 6 2
0 0
12 6 12 12 6 6 12 6
6 2 6 6 4 4 6 2
0 0
12 6 12 6
0 0
6 2 6 4
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
T
ASA


77
All the element EASA
T
matrices are superimposed in this fashion. If the number of
elements is N then the order of the global ASA
T
will be (2N + 2) (2N + 2).
4.20 Adding the node springs K to ASA
T

The node soil springs are obtained from the modulus of subgrade reaction k
s
and the
contributory node area. For example, the contributory area for 2
nd
node spring will be
(half length of first element + half length of second element) multiplied by the width, or
mathematically

Hence
.
The end springs get the contributory area from only one element. For example,

Because the soil pressure is higher at the edges, Bowles suggests that best results are
obtained by doubling the end springs. Hence, the end springs are multiplied by 2,
therefore

After obtaining the values of the end springs, they are added to the global ASA
T
matrix.
The springs constant K
i
of the i
th
element is added to the (2i)
th
element on the main
diagonal of the ASA
T
matrix as shown on next page



) 235 . 4 (
2 2
2 1
2
B
L L
area ry contributo |
.
|

\
|
+ =
) 236 . 4 (
2
2 1
2 s
Bk
L L
K
+
=
) 237 . 4 (
2
1
1 s
Bk
L
K =
) 238 . 4 (
1 1 s
Bk L K =


78






Matrix-4.9
4.21 Development of P matrix
The P matrix is a column vector of order 2N+2 where N is the number of elements. It
represents all the applied moments and loads on the structure. The moment and load on
i
th
node is put on the (2i-1)-row and 2i-row of the P column vector. On nodes where no
moment or load is applied, they must be considered as zero and put into the P column
vector. Clockwise moments and downward forces are considered +ve.
4.22 Beam weight
If the self-weight of the beam is to be considered, it is computed from the unit weight of
concrete and the contributing volume for each node (only contributory length changes as
for K). Then these values are added to the P matrix as point loads on each node.
4.23 Boundary Conditions
The finite element method allows to put boundary conditions of known rotations and
displacements with ease. The following steps are to be carried out for this purpose:
1. Put a 1 on the diagonal at the point of P-X coding ( j, j),
2. Zero all the horizontal ASA
T
j,k
entries from k=1 to n except k = j.
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

+ + +
+ +
+

=
3 3
2
2
2
3
2
2
2
2
2 2
2
2 2
3
2
2
2
2 3
2
3
1
2
2
2
1
3
1
2
1
2
2 2
2
2
2
1 2 1
2
1 1
3
1
2
1
1 3
1
2
1
2
1 1
2
1 1
12 6 12 6
0 0
6 4 6 2
0 0
12 6 12 12 6 6 12 6
6 2 6 6 4 4 6 2
0 0
12 6 12 6
0 0
6 2 6 4
K
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
K
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
K
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
T
ASA


79
3. Insert the known displacements o in the P matrix (so P
j
= o).
4. Augment all other P matrix entries as
P(I) = P(I ) - ASA
T
i,j
o for i = 1 to (2N + 2) except i= j.
Then set ASA
T
i,j
=0 for i = 1 to (2N + 2) except i= j.
To show the technique, a small example is given here. Suppose that the structure has
only four possible nodal displacements/rotations, as indicated by the following
equilibrium equations:


Now suppose that the displacement X
3
is specified to be of a certain magnitude (zero or
nonzero). Then in terms involving X
3
can be subtracted from both sides of the above
matrix equation, and the equation can be replaced by the trivial expression X
3
= X
3
to
obtain:


Here the first matrix on left-hand side represents the ASA
T
matrix and the column vector
on right hand side represents P.
In the next chapter, based on the equations and matrices of this chapter, the finite element
program BEAMDEZ is developed.
) 239 . 4 (
4
3
2
1
4
3
2
1
44 43 42 41
34 33 32 31
24 23 22 21
14 13 12 11
(
(
(
(

=
(
(
(
(

(
(
(
(

P
P
P
P
X
X
X
X
S S S S
S S S S
S S S S
S S S S
) 240 . 4 (
0
0 1 0 0
0
0
3 43 4
3
3 23 2
3 13 1
4
3
2
1
44 42 41
24 22 21
14 12 11
(
(
(
(

=
(
(
(
(

(
(
(
(

X S P
X
X S P
X S P
X
X
X
X
S S S
S S S
S S S

80
C H A P T E R F I V E
PROGRAM

5.1 CAD
CAD is acronym for computer-aided design (also computer-aided drafting). A CAD
system is a combination of hardware and software that enables engineers and architects to
design everything from furniture to airplanes. In addition to the software, CAD systems
require a high-quality graphics monitor; a mouse, light pen, or digitizing tablet for
drawing; and a special printer or plotter for printing design specifications.
CAD systems allow an engineer to view a design from any angle with the push of a
button and to zoom in or out for close-ups and long-distance views. In addition, the
computer keeps track of design dependencies so that when the engineer changes one
value, all other values that depend on it are automatically changed accordingly.
Until the mid 1980s, all CAD systems were specially constructed computers. Now, one
can buy CAD software that runs on general-purpose personal computers.
5.2 CAE
CAE is abbreviation of computer-aided engineering. CAE are computer systems that
analyze engineering designs. Most CAD systems have a CAE component or provide the
facility to add analysis components by writing programs, but there are also independent
CAE systems that can analyze designs produced by various CAD systems. CAE systems
are able to simulate a design under a variety of conditions to see if it actually works.


81
5.3 AutoCAD 2000
AutoCAD

2000 is a CAD system with a rich and unique history. First released in 1982
under the name MicroCAD, the first AutoCAD ran under the CP/M operating system on
Intel 8080 computers. That first AutoCAD release started a revolution in drafting and
design. Today, AutoCAD is translated into 18 languages and used by millions of users
worldwide on computers a thousand times more powerful than those early 8080
microprocessors.
AutoCAD 2000 continues the AutoCAD heritage and introduces new tools and facilities.
Along with many other tools, AutoCAD 2000 has built-in Visual Basic for Applications
making it easy to rapidly expand the functionality of AutoCAD by writing programs.
5.3.1 AutoCAD ActiveX Technology
AutoCAD ActiveX provides a mechanism to manipulate AutoCAD programmatically
from within or outside AutoCAD. It does this by exposing AutoCAD objects to the
outside world. Once these objects are exposed, they can be accessed by many different
programming languages and environments and by other applications such as Microsoft


Word VBA or Excel VBA.






Figure-5.1 Any language that supports ActiveX technology can
access AutoCAD ActiveX Objects.
There are two advantages to implementing an ActiveX interface for AutoCAD:


82
- Programmatic access to AutoCAD drawings is opened up to many more
programming environments. Before ActiveX Automation, developers were limited to
an AutoLISP or C++ interface.
- Sharing data with other Windows

applications, such as Microsoft Excel

and
Word

, is made dramatically easier.


5.4 Rapid Application Development (RAD)
A programming system that enables programmers to quickly build working programs. In
general, RAD systems provide a number of tools to help build graphical user interfaces
that would normally take a large development effort. Two of the most popular RAD
systems for Windows are Visual Basic and Delphi.
Historically, RAD systems have tended to emphasize reducing development time,
sometimes at the expense of generating efficient executable code. Nowadays, though,
many RAD systems produce extremely fast code. Conversely, many traditional
programming environments now come with a number of visual tools to aid development.
Therefore, the line between RAD systems and other development environments has
become blurred.
5.5 Visual Basic
Visual Basic is a programming language and environment developed by Microsoft.
Based on the BASIC language, Visual Basic was one of the first products to provide a
graphical programming environment and a paint metaphor for developing user interfaces.
Instead of worrying about syntax details, the Visual Basic programmer can add a
substantial amount of code simply by dragging and dropping controls, such as buttons and
dialog boxes, and then defining their appearance and behavior.
Although not a true object-oriented programming language in the strictest sense, Visual
Basic nevertheless has an object-oriented philosophy. It is sometimes called an


83
event-driven language because each object can react to different events such as a mouse
click.
Since its launch in 1990, the Visual Basic approach has become the norm for
programming languages. Now there are visual environments for many programming
languages, including C, C++, Pascal, and Java. Visual Basic is sometimes called a Rapid
Application Development (RAD) system becomes it enables programmers to quickly
build prototype applications.
5.6 VBA
VBA is fundamentally the same language as visual basic, except that VBA is embedded
within individual applications instead of standing alone, like VB, as an independent
programming language. VBA comes built into popular Microsoft applications like word,
excel, and project, etc, as well as in software by other companies like in AutoCAD.
Basic has evolved through DOSs GW-BASIC, BASICA, Obasic, QuickBasic, assorted
macro Basics, Visual Basic, and now VBA. Along the way, BASIC has gained
efficiency, new capabilities, and many new commands. Visual Basic is a standalone
language designed to make it easy to write programs that work under windows. As such,
visual basic is the child of DOSs Basic and QuickBasic and the parent of VBA (Visual
Basic for Applications)
5.7 AutoCAD Visual Basic for Applications (VBA)
Microsoft VBA is an object-oriented programming environment designed to provide rich
development capabilities similar to those of Visual Basic (VB). The main difference
between VBA and VB is that VBA runs in the same process space as AutoCAD,
providing an AutoCAD-intelligent and very fast programming environment.
VBA also provides application integration with other VBA-enabled applications. Which
means AutoCAD, using other application object libraries, can be an Automation
controller for other applications such as Microsoft Word or Excel.


84
The standalone development editions of Visual Basic, which must be purchased
separately, complement AutoCAD VBA with additional components, such as an external
database engine and report-writing capabilities.
There are four advantages to implementing VBA for AutoCAD:
- The Visual Basic programming environment is easy to learn and use.
- VBA runs in-process with AutoCAD. This translates to very fast program execution.
- Dialog construction is quick and effective. This allows developers to prototype
applications and quickly receive feedback on designs.
- Projects can be standalone or imbedded in drawings. This choice allows developers
great flexibility in the distribution of their applications.
5.7.1 VBA implementation in AutoCAD
VBA sends messages to AutoCAD by the AutoCAD ActiveX Automation interface.
AutoCAD VBA permits the VBA environment to run simultaneously with AutoCAD and
provides programmatic control of AutoCAD through the ActiveX Automation interface.
This coupling of AutoCAD, ActiveX Automation, and VBA provides an extremely
powerful interface not only for manipulating AutoCAD objects, but also for sending data
to or retrieving data from other applications.
There are two fundamental elements that define ActiveX and VBA programming in
AutoCAD. The first is AutoCAD itself, which has a rich set of objects that encapsulates
AutoCAD entities, data, and commands. Because AutoCAD was designed as an
open-architecture application with multiple levels of interface, familiarity with AutoCAD
programmability is highly desirable in order to use VBA effectively.
The second element is the AutoCAD ActiveX Automation interface, which establishes
messages (communication) with AutoCAD objects. Programming in VBA requires a
fundamental understanding of ActiveX Automation. A description of the AutoCAD


85
ActiveX Automation interface can be found in the ActiveX and VBA Reference that
comes with AutoCAD package.
5.7.2 Strengths of AutoCAD ActiveX and VBA Together
The AutoCAD ActiveX/VBA interface represents several advantages over other
AutoCAD API environments:
5.7.2.1 Speed
Running in-process with VBA, ActiveX applications are faster than either AutoLISP or
ADS applications.
5.7.2.2 Ease of Use
The programming language and development environment are easy to use and come
installed with AutoCAD.
5.7.2.3 Windows Interoperability
ActiveX and VBA are designed to be used with other Windows applications and provide
an excellent path for communication of information across applications.
5.7.2.4 Rapid Prototyping
The rapid interface development of VBA provides the perfect environment for
prototyping applications, even if those applications will eventually be developed in
another language.
5.7.2.5 Programmer Base
There are millions of Visual Basic programmers around the world. AutoCAD ActiveX
and VBA technology open up AutoCAD customization and application development to
these programmers and the many more who will learn Visual Basic in the future.
5.7.3 Embedded and Global VBA Projects
An AutoCAD VBA project is a collection of code modules, class modules, and forms that
work together to perform a given function. Projects can be stored within an AutoCAD
drawing, or as a separate file.


86
Embedded projects are stored within an AutoCAD drawing. These projects are
automatically loaded whenever the drawing in which they are contained is opened in
AutoCAD, making the distribution of projects very convenient. Embedded projects are
limited and not able to open or close AutoCAD drawings because they function only
within the document where they reside. Users of embedded projects are no longer
required to find and load project files before they run a program. A time log that is
triggered when the drawing is opened is an example of a project embedded in a drawing.
With this macro users can log in and record the length of time they worked on the
drawing. The user does not have to remember to load the project before opening the
drawing; it simply is done automatically.
Global projects are stored in separate files and are more versatile because they can work
in, open, and close any AutoCAD drawing, but are not automatically loaded when a
drawing is opened. Users must know which project file contains the macro they need and
then load that project file before they can run the macro. However, global projects are
easier to share with other users, and they make excellent libraries for common macros.
An example of a project you may store in a project file is a macro that collects a bill of
materials from many drawings. This macro can be run by an administrator at the end of a
work cycle and can collect information from many drawings.
At any given time, users can have both embedded and global projects loaded into their
AutoCAD session.


87
5.8 Flow Chart of the Program


















Get Beam Dimensions,
Ec, Ks, units, No of
elements, no of loads
and moments, and
options, etc.
Get length of elements
Calculate moment of
inertia
Compute spring
constants, double end
springs
Get loads and
moments, put in
P matrix
If self-weight of beam is
to be considered, add its
values in P matrix
Build column vector np
from P matrix
Build element matrix
EA
Build element matrix ES
Build ESA
T
matrix
Build EASA
T
matrix
Superimpose element
matrices in global
matrix ASA
T
All element
matrices
done?
no
yes
Add spring constants to
appropriate locations in
ASA
T
Invert ASA
T
Multiply ASA
T
by P
matrix to get X matrix
Is there any negative
deflection or
deflection beyond
elastic range?
Is number of
iterations
done > max.
iterations
allowed?
yes
no
Set springs to zero at
nodes showing negative
deflection

Set springs to zero and
apply constant soil
pressure in P matrix at
nodes showing
deflection beyond
elastic range
no yes
Compute F matrix
Show Results.


88
5.9 Program Code
Note: If any line of code is longer than page width then it is continued on next line,
starting with symbol .









Figure-5.2 Form-Beamdimensions
Code: Beamdimensions
'Declare user-defined type for file I/O
Private Type Record
units55 As Boolean
conbmwt55 As Boolean
consoilsep As Boolean
numel55 As Integer
numpl55 As Integer
nummom55 As Integer
maxiter55 As Integer
numknowdef55 As Integer
numknowrot55 As Integer


89
beamlen55 As Double
beamwid55 As Double
beamdep55 As Double
beamwt55 As Double
youngs55 As Double
msr55 As Double
maxdef55 As Double
End Type

Private Sub CmdButton3_Click()
'Declare "filerec" to be of type "Record"
Dim filerec As Record
'store present filename
keepfname = FileLoaded
'Get filename for loading from "Filer" form
Filer.Show
If FileLoaded = "" Then
'if user pressed "Cancel" then restore old file name
FileLoaded = keepfname
Else
'Open File with name returned by "Filer"
'for Random input/output
Open FileLoaded For Random As #1 Len = Len(filerec)
'read data from file
Get #1, 1, filerec
'if type of units saved was not SI then
'change all units shown on "Beamdimensions" to fps units
If filerec.units55 = False Then
fpsunits.Value = True
Label10.Caption = "kip/ft"
Label3.Caption = "ft"
Label4.Caption = "ft"
Label6.Caption = "ft"
Label17.Caption = "ksf"
Label23.Caption = "kip/ft"
Label25.Caption = "inch"
'otherwise show all units shown on "Beamdimensions" to SI units
Else


90
siunits.Value = True
Label10.Caption = "kN/m"
Label3.Caption = "m"
Label4.Caption = "m"
Label6.Caption = "m"
Label17.Caption = "kPa"
Label23.Caption = "kN/m"
Label25.Caption = "mm"
End If
considerbeamwt.Value = filerec.conbmwt55 'consider beam weight
'if beam weight was saved as "to be considered" then
'make relevant controls visible
If considerbeamwt.Value = True Then
Label10.Visible = True
Label11.Visible = True
Label15.Visible = True
BeamWeight.Visible = True
'otherwise hide them
Else
Label10.Visible = False
Label11.Visible = False
Label15.Visible = False
BeamWeight.Visible = False
End If
'if soil separation and maximum deflection
'was saved as "to be considered" then
'make relevant controls visible
SoilSeparation.Value = filerec.consoilsep
If SoilSeparation.Value = True Then
Label16.Visible = True
maxiter.Visible = True
Label14.Visible = True
Label25.Visible = True
maxdef.Visible = True
'otherwise hide them
Else
Label16.Visible = False
maxiter.Visible = False


91
Label14.Visible = False
Label25.Visible = False
maxdef.Visible = False
End If
'assign values read from file to relevant controls
numelem.Value = filerec.numel55
numpl.Value = filerec.numpl55
nummom.Value = filerec.nummom55
maxiter = filerec.maxiter55
numdef = filerec.numknowdef55
numrot = filerec.numknowrot55
Beamlength = filerec.beamlen55
Beamwidth = filerec.beamwid55
Beamdepth = filerec.beamdep55
BeamWeight = filerec.beamwt55
youngs = filerec.youngs55
msr = filerec.msr55
maxdef = filerec.maxdef55
'Close the file
Close #1
'set a flag that file has been loaded
filestatus.Value = True
End If
End Sub

Private Sub CommandButton1_Click()
'shift control to "Elements" form
BeamDimensions.Hide
Elements.Show
End Sub

Private Sub CommandButton2_Click()
'Exit the program
End
End Sub

Private Sub considerbeamwt_AfterUpdate()
'if user wants the program consider beam weight and


92
'checks the "considerbeamwt" checkbox then make
'the relevant controls visible
If considerbeamwt.Value = True Then
Label10.Visible = True
Label11.Visible = True
Label15.Visible = True
BeamWeight.Visible = True
End If
'hide these controls when user unchecks
If considerbeamwt.Value = False Then
Label10.Visible = False
Label11.Visible = False
Label15.Visible = False
BeamWeight.Visible = False
End If
End Sub

Private Sub fpsunits_AfterUpdate()
'if user selects fps units, change all units to
'fps units on form "Beamdimensions"
If fpsunits.Value = True Then
Label10.Caption = "kip/ft"
Label3.Caption = "ft"
Label4.Caption = "ft"
Label6.Caption = "ft"
Label17.Caption = "ksf"
Label23.Caption = "kip/ft"
Label25.Caption = "inch"
'convert the written values if checkbox "convertval" is checked
If convertval = True Then
If Beamdepth <> "" Then Beamdepth = Beamdepth / 0.3048
If Beamwidth <> "" Then Beamwidth = Beamwidth / 0.3048
If Beamlength <> "" Then Beamlength = Beamlength / 0.3048
If BeamWeight <> "" Then BeamWeight = BeamWeight / 157.087463846
If msr <> "" Then msr = msr / 157.087463846
If youngs <> "" Then youngs = youngs / 47.8802589803
If maxdef <> "" Then maxdef = maxdef / 25.4
End If


93
End If
End Sub

Private Sub siunits_AfterUpdate()
'if user selects SI units, change all units to
'SI units on form "Beamdimensions"
If siunits.Value = True Then
Label10.Caption = "kN/m"
Label23.Caption = "kN/m"
Label3.Caption = "m"
Label4.Caption = "m"
Label6.Caption = "m"
Label17 = "kPa"
Label25 = "mm"
'convert the written values if checkbox "convertval" is checked
If convertval = True Then
If Beamdepth <> "" Then Beamdepth = Beamdepth * 0.3048
If Beamwidth <> "" Then Beamwidth = Beamwidth * 0.3048
If Beamlength <> "" Then Beamlength = Beamlength * 0.3048
If BeamWeight <> "" Then BeamWeight = BeamWeight * 157.087463846
If msr <> "" Then msr = msr * 157.087463846
If youngs <> "" Then youngs = youngs * 47.8802589803
If maxdef <> "" Then maxdef = maxdef * 25.4
End If
End If
End Sub

Private Sub SoilSeparation_AfterUpdate()
'if user wants the program consider for soil separation and
'max. deflection and checks the "SoilSeparation" checkbox then
'make the relevant controls visible
If SoilSeparation.Value = True Then
Label16.Visible = True
maxiter.Visible = True
Label14.Visible = True
Label25.Visible = True
maxdef.Visible = True
End If


94
'hide these controls when user unchecks
If SoilSeparation.Value = False Then
Label16.Visible = False
maxiter.Visible = False
Label14.Visible = False
Label25.Visible = False
maxdef.Visible = False
End If
End Sub

Private Sub UserForm_Initialize()
'show program name and picture of foundation beam
starter.Show
'Declare "filerec" to be of type "Record"
Dim filerec As Record
'set name of initialization file
FileLoaded.text = "init.bdt"
'Open Initialization File "init.bdt"
'for Random input/output
Open "init.bdt" For Random As #1 Len = Len(filerec)
'read data from file
Get #1, 1, filerec
'if type of units saved was not SI then
'change all units shown on "Beamdimensions" to fps units
If filerec.units55 = False Then
fpsunits.Value = True
Label10.Caption = "kip/ft"
Label3.Caption = "ft"
Label4.Caption = "ft"
Label6.Caption = "ft"
End If
'if beam weight was saved as "to be considered" then
'make relevant controls visible
considerbeamwt.Value = filerec.conbmwt55 'consider beam weight
If considerbeamwt.Value = True Then
Label10.Visible = True
Label11.Visible = True
Label15.Visible = True


95
'otherwise hide them
Else
Label10.Visible = False
Label11.Visible = False
Label15.Visible = False
End If
SoilSeparation.Value = filerec.consoilsep
'if soil separation and maximum deflection
'was saved as "to be considered" then
'make relevant controls visible
If SoilSeparation.Value = True Then
Label14.Visible = True
Label16.Visible = True
Label25.Visible = True
maxdef.Visible = True
maxiter.Visible = True
'otherwise hide them
Else
Label14.Visible = False
Label16.Visible = False
Label25.Visible = False
maxdef.Visible = False
maxiter.Visible = False
End If
'assign values read from file to relevant controls
numelem.Value = filerec.numel55
numpl.Value = filerec.numpl55
nummom.Value = filerec.nummom55
maxiter = filerec.maxiter55
numdef = filerec.numknowdef55
numrot = filerec.numknowrot55
Beamlength = filerec.beamlen55
Beamwidth = filerec.beamwid55
Beamdepth = filerec.beamdep55
BeamWeight = filerec.beamwt55
youngs = filerec.youngs55
msr = filerec.msr55
maxdef = filerec.maxdef55


96
'Close the file
Close #1
'set a flag that file has been loaded
filestatus.Value = True
End Sub
















Figure-5.3 Form-boundary
Code: boundary
'Declare user-defined type for file I/O
Private Type Record
units55 As Boolean
conbmwt55 As Boolean
consoilsep As Boolean
numel55 As Integer
numpl55 As Integer
nummom55 As Integer
maxiter55 As Integer
numknowdef55 As Integer
numknowrot55 As Integer
beamlen55 As Double
beamwid55 As Double
beamdep55 As Double


97
beamwt55 As Double
youngs55 As Double
msr55 As Double
maxdef55 As Double
End Type
'Declare user-defined type for file I/O
Private Type doubler
doub As Double
End Type

Private Sub CommandButton1_Click()
'return control back to the calling routine
boundary.Hide
End Sub

Private Sub CommandButton2_Click()
'exit program
End
End Sub

Private Sub CommandButton3_Click()
If curnode <> "" Then
'if "curnode" is not empty then put "none" as
'known deflection in ListBox1 at current position
ListBox1.List(Val(curnode) - 1, 1) = "none"
'put "none" in "curdef" too
curdef = "none"
'reset numdef and numrot to zero
numdef = 0
numrot = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'count known deflections
If ListBox1.List(i - 1, 1) <> "none" Then numdef = numdef + 1
'count known rotations
If ListBox1.List(i - 1, 2) <> "none" Then numrot = numrot + 1
Next i
Else


98
'if "curnode" is empty then give erro message
beep
feedback = MsgBox("Input node number first", 48, "Error!")
End If
End Sub

Private Sub CommandButton4_Click()
If curnode <> "" Then
'if "curnode" is not empty then put "none" as
'known rotation in ListBox1 at current position
ListBox1.List(Val(curnode) - 1, 2) = "none"
'put "none" in "currot" too
currot = "none"
'reset numdef and numrot to zero
numdef = 0
numrot = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'count known deflections
If ListBox1.List(i - 1, 1) <> "none" Then numdef = numdef + 1
'count known rotations
If ListBox1.List(i - 1, 2) <> "none" Then numrot = numrot + 1
Next i
Else
beep
'if "curnode" is empty then give erro message
feedback = MsgBox("Input node number first", 48, "Error!")
End If
End Sub

Private Sub curdef_AfterUpdate()
If curnode <> "" Then
'if there is any number placed in "curnode" then put
'current value of "curdef" in ListBox1
ListBox1.List(Val(curnode) - 1, 1) = curdef
'reset numdef and numrot to zero
numdef = 0
numrot = 0


99
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'count number of known deflections
If ListBox1.List(i - 1, 1) <> "none" Then numdef = numdef + 1
'count number of known rotations
If ListBox1.List(i - 1, 2) <> "none" Then numrot = numrot + 1
Next i
Else
'if "curnode" is empty then give error message
beep
curdef = ""
feedback = MsgBox("Input node number first", 48, "Error!")
End If
End Sub

Private Sub curnode_AfterUpdate()
If Val(curnode) < (BeamDimensions.numelem + 2) And Val(curnode) > 0 And
Val(curnode) = Int(Val(curnode)) Then
'if current node number is less or equal to total number of nodes,
positive, and integer then
'select corresponding entry in ListBox1 and
'put value of selected known deflection and rotation from ListBox1 in
"curdef" and "currot"
ListBox1.ListIndex = Val(curnode) - 1
curdef = ListBox1.List(Val(curnode) - 1, 1)
currot = ListBox1.List(Val(curnode) - 1, 1)
Else
'otherwise give error beep, and clear the text boxes for re-entry
beep
curnode = ""
curdef = ""
currot = ""
'set flag ctrlbck for getting focus back
ctrlbck.Value = True
End If
End Sub

Private Sub curdef_Enter()


100
If ctrlbck.Value = True Then
'give focus back to "curnode" if it contained an invalid entry
ctrlbck.Value = False
curnode.SetFocus
End If
End Sub

Private Sub currot_AfterUpdate()
If curnode <> "" Then
'if there is any number placed in "curnode" then put
'current value of "currot" in ListBox1
ListBox1.List(Val(curnode) - 1, 2) = currot
'reset numdef and numrot to zero
numdef = 0
numrot = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'count number of known deflections
If ListBox1.List(i - 1, 1) <> "none" Then numdef = numdef + 1
'count number of known rotations
If ListBox1.List(i - 1, 2) <> "none" Then numrot = numrot + 1
Next i
Else
'if "curnode" is empty then give error message
beep
currot = ""
feedback = MsgBox("Input node number first", 48, "Error!")
End If
End Sub

Private Sub ListBox1_AfterUpdate()
'if ListBox1 is clicked, set the values of clicked
'entry in "curnode", "curdef", and "currot"
curnode = ListBox1.Value
curdef = ListBox1.List(Val(curnode) - 1, 1)
currot = ListBox1.List(Val(curnode) - 1, 2)
End Sub



101
Private Sub UserForm_Initialize()
If BeamDimensions.fpsunits = True Then
'set units of "boundary" to fps if set in BeamDimensions
Label2.Caption = "Deflection (ft):"
Label10.Caption = "(ft)"
End If
'read total number of nodes from form-"BeamDimensions"
numnode = 1 + BeamDimensions.numelem
'read total number of elements from form-"BeamDimensions"
numelem = BeamDimensions.numelem
loadflag = True
'dimension an array according to number of nodes
numnode = numnode - 1
ReDim nodedata(numnode, 3)
If BeamDimensions.filestatus = True Then
'if a file has been read in BeamDimensions then
'Declare filerec to be of user-defined type Record
Dim filerec As Record
'open same file for random I/O which was opened in "BeamDimensions"
Open BeamDimensions.FileLoaded For Random As #1 Len = Len(filerec)
'Read record from file.
Get #1, 1, filerec
'Close the file
Close #1
'loop for all nodes
For i = 0 To numnode
'put numbers in first column
nodedata(i, 0) = i + 1
'initialize all entries for known deflections to "none"
nodedata(i, 1) = "none"
'initialize all entries for known rotations to "none"
nodedata(i, 2) = "none"
Next i
'put values of array "nodedata" in "ListBox1"
ListBox1.List() = nodedata
'check if number of elements is same in file as
'on "BeamDimensions"
If filerec.numel55 = BeamDimensions.numelem Then


102
'Declare "nod2" to be of user type "doubler"
Dim nod2 As doubler
'get name of "beam data (bdt) file" from "BeamDimensions"
file1 = BeamDimensions.FileLoaded
'truncate ".bdt" and concatenate ".ndt" (node data)
len1 = Len(file1) - 4
file1 = Left(file1, len1)
file1 = file1 & ".ndt"
'compute location in .ndt file where the entries
'for known deflections written
currec = (filerec.numel55 + 1) * 3 - 1
If filerec.numknowdef55 > 0 Then
'if there are any known deflections in file then
'open the .ndt file
Open file1 For Random As #1 Len = Len(nod2)
'loop for all known deflections
For i = 1 To filerec.numknowdef55
'compute location of next entry in .ndt file
currec = currec + 1
'read node number from file
Get #1, currec, nod2
'convert this number to integer and put it
'in "gotnode"
gotnode = Int(nod2.doub)
'compute location of next entry in .ndt file
currec = currec + 1
'read value of known deflection
Get #1, currec, nod2
'put this value in "gotvalue"
gotvalue = nod2.doub
'insert "gotvalue" at node number "gotnode" in ListBox1
ListBox1.List(gotnode, 1) = gotvalue
Next i
'close the file
Close #1
End If
If filerec.numknowrot55 > 0 Then
'if there are any known deflections in file then


103
'open the .ndt file
Open file1 For Random As #1 Len = Len(nod2)
'loop for all known rotations
For i = 1 To filerec.numknowrot55
'compute location of next entry in .ndt file
currec = currec + 1
'read node number from file
Get #1, currec, nod2
'convert this number to integer and put it
'in "gotnode"
gotnode = Int(nod2.doub)
'compute location of next entry in .ndt file
currec = currec + 1
'read value of known rotation
Get #1, currec, nod2
'put this value in "gotvalue"
gotvalue = nod2.doub
'insert "gotvalue" at node number "gotnode" in ListBox1
ListBox1.List(gotnode, 2) = gotvalue
Next i
'close the file
Close #1
End If
End If
End If
'reset numdef and numrot to zero
numdef = 0
numrot = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'count known deflections
If ListBox1.List(i - 1, 1) <> "none" Then numdef = numdef + 1
'count known rotations
If ListBox1.List(i - 1, 2) <> "none" Then numrot = numrot + 1
Next i
End Sub




104





















Figure-5.4 Form-Elements (main buttons and ListBox9)












Figure-5.5 Form-Elements (Page-1) Figure-5.6 Form-Elements (Page-2)




105












Figure-5.7 Form-Elements (Page-3) Figure-5.8 Form-Elements (Page-4)











Figure-5.9 Form-Elements (Page-5) Figure-5.10 Form-Elements (Page-6)












Figure-5.11 Form-Elements (Page-7) Figure-5.12 Form-Elements (Page-8)


106
Code: Elements
'Declare user-defined type for file I/O
Private Type Record
units55 As Boolean
conbmwt55 As Boolean
consoilsep As Boolean
numel55 As Integer
numpl55 As Integer
nummom55 As Integer
maxiter55 As Integer
numknowdef55 As Integer
numknowrot55 As Integer
beamlen55 As Double
beamwid55 As Double
beamdep55 As Double
beamwt55 As Double
youngs55 As Double
msr55 As Double
maxdef55 As Double
End Type
'Declare user-defined type for file I/O
Private Type doubler
doub As Double
End Type

'declare function Fix2 for converting values to
'2 decimal places
Private Function Fix2(NumArg) As Double
temp1 = NumArg
temp2 = Fix(NumArg)
temp3 = temp1 - temp2
temp3 = Fix(temp3 * 100) / 100
Fix2 = temp2 + temp3
'check for -ve +ve
End Function

Private Sub CommandButton1_Click()
'exit the program


107
End
End Sub

Private Sub CommandButton2_Click()
'give control to form-saver for getting a filename
saver.Show
'read the filename from form-saver
filenamer = saver.filenamer.text
'if user has not pressed cancel
If filenamer <> "" Then
'declare nod2 of user type doubler
Dim nod2 As doubler
'declare filerec to be of user type Record
Dim filerec As Record
'prepare values for saving
filerec.units55 = BeamDimensions.siunits.Value
filerec.conbmwt55 = BeamDimensions.considerbeamwt.Value 'consider beam
weight
filerec.consoilsep = BeamDimensions.SoilSeparation.Value 'consider soil
separation
filerec.numel55 = BeamDimensions.numelem.Value
filerec.numpl55 = loadmom.loadnum.Value
filerec.nummom55 = loadmom.momnum.Value
filerec.maxiter55 = BeamDimensions.maxiter
filerec.numknowdef55 = boundary.numdef
filerec.numknowrot55 = boundary.numrot
filerec.beamlen55 = BeamDimensions.Beamlength
filerec.beamwid55 = BeamDimensions.Beamwidth
filerec.beamdep55 = BeamDimensions.Beamdepth
filerec.beamwt55 = BeamDimensions.BeamWeight
filerec.youngs55 = BeamDimensions.youngs
filerec.msr55 = BeamDimensions.msr
filerec.maxdef55 = BeamDimensions.maxdef
'concatenate ".bdt" to filename
curfile = filenamer & ".bdt"
'open file for random I/O
Open curfile For Random As #1 Len = Len(filerec)
'write data to file


108
Put #1, 1, filerec
'Close the file
Close #1
'concatenate ".ndt" to filename
curfile = filenamer & ".ndt"
'open file for random I/O
Open curfile For Random As #1 Len = Len(nod2)
'read number of elements
currec = BeamDimensions.numelem
'loop for all elements
For i = 1 To currec
'read element lengths
nod2.doub = memberlen.ListBox1.List(i - 1, 1)
'write element lenghts to file
Put #1, i, nod2
Next i
'loop for all nodes
For i = 0 To currec
'read loads on nodes
nod2.doub = loadmom.ListBox1.List(i, 1)
'compute location in file for putting next value
recnum = i + currec + 1
'write load value to file
Put #1, recnum, nod2
Next i
'loop for all nodes
For i = 0 To currec
'read moments on nodes
nod2.doub = loadmom.ListBox1.List(i, 2)
'compute location in file for putting next value
recnum = recnum + 1
'write moment value to file
Put #1, recnum, nod2
Next i
'write boundary condition if any
If boundary.numdef > 0 Then
'if there are any known deflections
'loop for all nodes


109
For i = 0 To currec
If boundary.ListBox1.List(i, 1) <> "none" Then
'if there is a known deflection on current node
'then note the node number
nod2.doub = i
'compute location in file for putting next value
recnum = recnum + 1
'write node number to file
Put #1, recnum, nod2
'read value of known deflection
nod2.doub = boundary.ListBox1.List(i, 1)
'compute location in file for putting next value
recnum = recnum + 1
'write value of known deflection to file
Put #1, recnum, nod2
End If
Next i
End If
If boundary.numrot > 0 Then
'if there are any known rotations
'loop for all nodes
For i = 0 To currec
If boundary.ListBox1.List(i, 2) <> "none" Then
'if there is a known rotation on current node
'then note the node number
nod2.doub = i
'compute location in file for putting next value
recnum = recnum + 1
'write node number to file
Put #1, recnum, nod2
'read value of known rotation
nod2.doub = boundary.ListBox1.List(i, 2)
'compute location in file for putting next value
recnum = recnum + 1
'write value of known rotation to file
Put #1, recnum, nod2
End If
Next i


110
End If
'close the file
Close #1
'concatenate message string and filename
curfile = "File has been saved as " & curfile
'tell user that file has been saved
response = MsgBox(curfile, 64)
End If
End Sub

Private Sub CommandButton3_Click()
'give control to form-Exporter for getting a filename
Exporter.Show
'read the filename from form-Exporter
filenamer = Exporter.filenamer.text
'if user has not pressed cancel
If filenamer <> "" Then
'see if "siunits" is selected on form-BeamDimensions
siunits = BeamDimensions.siunits.Value
If siunits Then
'if siunits are selected then prepare
'appropriate strings for units
ulength = " (m)"
uforce = " (kN)"
umom = " (kN-m)"
uunitwt = " (kN/m^3)"
uyoungs = " (kPa)"
ufpl = " (kN/m)"
umomin = " (m^4)"
umaxdef = " mm"
Else
'if fpsunits are selected then
'prepare appropriate strings for units
ulength = " (ft)"
uforce = " (kip)"
umom = " (kip-ft)"
uunitwt = " (kcf)"
uyoungs = " (ksf)"


111
ufpl = " (kip/ft)"
umomin = " (ft^4)"
umaxdef = " inch"
End If
'concatenate ".txt" to filename
curfile = filenamer & ".txt"
'open file for sequential output
Open curfile For Output As #2
'write descriptions, values, and units to file
'which are self-explanatory
Print #2, "Beam Data:"
Print #2,
Print #2, "beam length = "; Beamlength.Value; ulength
Print #2, "beam width = "; Beamwidth.Value; ulength
Print #2, "beam depth = "; Beamdepth.Value; ulength
Print #2,
Print #2, "number of elements = "; numelem.Value
Print #2,
Print #2, "Element"; Tab; "Length"; ulength
'loop for all elements
For i = 1 To numelem.Value
Print #2, i; Tab; memberlen.ListBox1.List(i - 1, 1)
Next i
Print #2,
Print #2, "modulus of subgrade reaction, ks = ";
BeamDimensions.msr.Value; uunitwt
Print #2,
Print #2, "modulus of elasticity for concrete = ";
BeamDimensions.youngs.Value; uyoungs
Print #2,
Print #2, "moment of inertia of beam = "; mominertia; umomin
Print #2,
'if check for soil separation and max.deflection is selected
If BeamDimensions.SoilSeparation = True Then
Print #2, "maximum allowable deflection= "; BeamDimensions.maxdef;
umaxdef
Print #2,
Print #2, "number of iterations = "; BeamDimensions.maxiter


112
Print #2,
End If
'if beam self weigt was considered
If BeamDimensions.considerbeamwt = True Then
Print #2, "unit weight of beam= "; BeamDimensions.BeamWeight; uunitwt
Print #2,
End If
Print #2, "Applied Loads:"
Print #2,
Print #2, "number of point loads = "; loadmom.loadnum.Value
Print #2, "number of moments = "; loadmom.momnum.Value
Print #2,
Print #2, "node"; Tab; "point load"; uforce; Tab(41); "moment"; umom
'loop for all nodes
For i = 0 To numelem.Value
Print #2, 1 + i; Tab; loadmom.ListBox1.List(i, 1); Tab(40);
loadmom.ListBox1.List(i, 2)
Next i
Print #2,
Print #2, "Rotations and Deflections:"
Print #2,
Print #2, "node"; Tab; "rotation (rads)"; Tab(41); "deflection"; ulength
'loop for all nodes
For i = 0 To numelem.Value
Print #2, 1 + i; Tab; ListBox1.List(i, 1); Tab(40); ListBox1.List(i,
2)
Next i
Print #2,
Print #2, "Moments on Elements:"
Print #2,
Print #2, "element"; Tab; "1st node"; umom; Tab(41); "2nd node"; umom
'loop for all nodes
For i = 1 To numelem.Value
Print #2, i; Tab; ListBox2.List(i - 1, 1); Tab(40); ListBox2.List(i -
1, 2)
Next i
Print #2,
Print #2,


113
Print #2, "Shear at Nodes:"
Print #2,
Print #2, "node"; Tab; "shear on left"; uforce; Tab(41); "shear on
right"; uforce
'loop for all nodes
For i = 0 To numelem.Value
Print #2, 1 + i; Tab; ListBox3.List(i, 1); Tab(40); ListBox3.List(i,
2)
Next i
Print #2,
Print #2, "Moments at Nodes:"
Print #2,
Print #2, "node"; Tab; "moment on left"; umom; Tab(41); "moment on
right"; umom
'loop for all nodes
For i = 0 To numelem.Value
Print #2, 1 + i; Tab; ListBox4.List(i, 1); Tab(40); ListBox4.List(i,
2)
Next i
Print #2,
Print #2, "Spring Forces:"
Print #2,
Print #2, "node"; Tab; "spring ks"; ufpl; Tab(41); "spring force";
uforce
'loop for all nodes
For i = 1 To (numelem.Value + 1)
Print #2, i; Tab; ListBox7.List(i, 1); Tab(40); ListBox7.List(i, 2)
Next i
Print #2,
Print #2, "Soil Pressure:"
Print #2,
Print #2, "node"; Tab; "soil pressure Q"; uyoungs
'loop for all nodes
For i = 1 To (numelem.Value + 1)
Print #2, i; Tab; ListBox8.List(i - 1, 1)
Next i
If boundary.numdef > 0 Or boundary.numrot > 0 Then


114
'if there are any boundary conditions
Print #2, "Boundary Conditions:"
Print #2,
Print #2, "number of known deflections = "; boundary.numdef.Value
Print #2, "number of known rotations = "; boundary.numrot.Value
Print #2,
Print #2, "node"; Tab; "known deflection"; ulength; Tab(41); "known
rotation"; " (rad)"
'loop for all nodes
For i = 0 To numelem.Value
If boundary.ListBox1.List(i, 1) <> "none" Or
boundary.ListBox1.List(i, 2) <> "none" Then
Print #2, 1 + i; Tab; boundary.ListBox1.List(i, 1); Tab(40);
boundary.ListBox1.List(i, 2)
End If
Next i
End If
'close the file
Close #2
'concatenate message string and filename
curfile = "File has been saved as " & curfile
'tell user that file has been saved
response = MsgBox(curfile, 64)
End If
End Sub

Private Sub CommandButton4_Click()
'if user clicks "Print This Screen" then
'print a snapshot of current screen to
'default printer
Elements.PrintForm
End Sub

Private Sub CommandButton5_Click()
'if user clicks "New Problem" then
'unload all forms and give control to BeamDimensions
Unload BeamDimensions
Unload memberlen


115
Unload loadmom
Unload boundary
Unload Filer
Unload saver
Unload Exporter
Unload Elements
BeamDimensions.Show
End Sub

Private Sub CommandButton6_Click()
'if user clicks "Plot Diagrams" then
'declare plineobj to be of type AutoCAD polyline
Dim plineObj As AcadLWPolyline
'declare array for drawing polyline
Dim points(0 To 9) As Double
'get value of original beam depth
beamdepthorg = Val(Beamdepth)
'get value of beam length
beamlengthd = Val(Beamlength)
'set beamdepthd for scaling according
'to length of beam (this doesn't have anything
'to do with original beam length)
beamdepthd = Beamlength / 10
'Compute coordinates for drawing the beam
'Define the 2D polyline points
points(0) = 0: points(1) = 11 * beamdepthd
points(2) = beamlengthd: points(3) = 11 * beamdepthd
points(4) = beamlengthd: points(5) = 11 * beamdepthd + beamdepthorg
points(6) = 0: points(7) = 11 * beamdepthd + beamdepthorg
points(8) = 0: points(9) = 11 * beamdepthd
'draw a beam using light weight Polyline object
'in model space of current drawing
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
'compute coordinates for drawing another beam
'to show as 'beam before deflection'
points(0) = beamlengthd + beamdepthd: points(1) = 11 * beamdepthd
points(2) = beamlengthd * 2 + beamdepthd: points(3) = 11 * beamdepthd


116
points(4) = beamlengthd * 2 + beamdepthd: points(5) = 11 * beamdepthd +
beamdepthorg
points(6) = beamlengthd + beamdepthd: points(7) = 11 * beamdepthd +
beamdepthorg
points(8) = beamlengthd + beamdepthd: points(9) = 11 * beamdepthd
'draw a beam using light weight Polyline object
'in model space of current drawing
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
'set color of this beam as light gray
plineObj.Color = 253
'update beam for color effect
plineObj.Update
'make overall boundary border
points(0) = -beamdepthd: points(1) = 0
points(2) = (beamlengthd + beamdepthd) * 2: points(3) = 0
points(4) = (beamlengthd + beamdepthd) * 2: points(5) = 14 * beamdepthd
points(6) = -beamdepthd: points(7) = 14 * beamdepthd
points(8) = -beamdepthd: points(9) = 0
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
'set color of this beam as cyan
plineObj.Color = acCyan
'update border for color effect
plineObj.Update
'make box for soil pressure
points(0) = beamlengthd + beamdepthd: points(1) = 6 * beamdepthd
points(2) = 2 * beamlengthd + beamdepthd: points(3) = 6 * beamdepthd
points(4) = 2 * beamlengthd + beamdepthd: points(5) = 8 * beamdepthd
points(6) = beamlengthd + beamdepthd: points(7) = 8 * beamdepthd
points(8) = beamlengthd + beamdepthd: points(9) = 6 * beamdepthd
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
'draw shear force diagram
nm = Val(BeamDimensions.numelem)
ReDim ptmatrix(nm, 2)
For i = 0 To nm
ptmatrix(i, 1) = Val(ListBox3.List(i, 1))


117
ptmatrix(i, 2) = Val(ListBox3.List(i, 2))
Next i
drawnodes = (nm + 1) * 4 - 1
ReDim drawpoints(drawnodes + 2) As Double
drawpoints(0) = 0
drawpoints(2) = 0
drawpoints(drawnodes + 1) = 0
runlen = 0
runnum = 0
maxval = ptmatrix(0, 1)
minval = ptmatrix(0, 1)
For i = 0 To nm
If ptmatrix(i, 1) < minval Then minval = ptmatrix(i, 1)
If ptmatrix(i, 1) > maxval Then maxval = ptmatrix(i, 1)
If ptmatrix(i, 2) < minval Then minval = ptmatrix(i, 2)
If ptmatrix(i, 2) > maxval Then maxval = ptmatrix(i, 2)
Next i
scaledepth = maxval - minval
scalefac = (beamdepthd * 3) / scaledepth
For i = 4 To drawnodes Step 4
runlen = runlen + Val(ListBox10.List(runnum, 1)) 'memlen
runnum = runnum + 1
drawpoints(i) = runlen
drawpoints(i + 2) = runlen
Next i
runnum = 0
For i = 1 To drawnodes Step 4
drawpoints(i) = -(ptmatrix(runnum, 1) + minval) * scalefac + beamdepthd
* 7 + (maxval + minval) * scalefac
drawpoints(i + 2) = -(ptmatrix(runnum, 2) + minval) * scalefac +
beamdepthd * 7 + (maxval + minval) * scalefac
runnum = runnum + 1
Next i
drawpoints(drawnodes + 2) = drawpoints(drawnodes)
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
'draw beam elements
runnum = 0


118
j = 0
For i = 1 To drawnodes Step 4
drawpoints(i) = j + beamdepthd * 11
If j = 0 Then
j = beamdepthorg
Else
j = 0
End If
drawpoints(i + 2) = j + beamdepthd * 11
runnum = runnum + 1
Next i
drawpoints(drawnodes + 2) = drawpoints(drawnodes)
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
'draw bending moment diagram
For i = 0 To nm
ptmatrix(i, 1) = Val(ListBox4.List(i, 1))
ptmatrix(i, 2) = Val(ListBox4.List(i, 2))
Next i
drawpoints(0) = 0
drawpoints(2) = 0
runlen = 0
runnum = 0
maxval = ptmatrix(0, 1)
minval = ptmatrix(0, 1)
For i = 0 To nm
If ptmatrix(i, 1) < minval Then minval = ptmatrix(i, 1)
If ptmatrix(i, 1) > maxval Then maxval = ptmatrix(i, 1)
If ptmatrix(i, 2) < minval Then minval = ptmatrix(i, 2)
If ptmatrix(i, 2) > maxval Then maxval = ptmatrix(i, 2)
Next i
Debug.Print "minval: "; minval; " maxval: "; maxval
scaledepth = maxval - minval
If scaledepth = 0 Then scaledepth = 1
scalefac = (beamdepthd * 5) / scaledepth
For i = 4 To drawnodes Step 4
runlen = runlen + Val(ListBox10.List(runnum, 1))
runnum = runnum + 1


119
drawpoints(i) = runlen
drawpoints(i + 2) = runlen
Next i
runnum = 0
For i = 1 To drawnodes Step 4
drawpoints(i) = -(minval + ptmatrix(runnum, 1)) * scalefac + beamdepthd
+ (maxval + minval) * scalefac
drawpoints(i + 2) = -(minval + ptmatrix(runnum, 2)) * scalefac +
beamdepthd + (maxval + minval) * scalefac
runnum = runnum + 1
Next i
drawpoints(drawnodes + 2) = drawpoints(drawnodes)
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
ThisDrawing.Application.ZoomExtents
'make deflection beam and soil pressure diagram
drawnodes = (nm + 1) * 2 - 1
ReDim drawpoints(drawnodes) As Double
For i = 0 To nm
ptmatrix(i, 1) = -Val(ListBox8.List(i, 1))
ptmatrix(i, 2) = Val(ListBox1.List(i, 2))
Next i
drawpoints(0) = beamlengthd + beamdepthd
runlen = 0
runnum = 0
maxval = 0
minval = 0
For i = 0 To nm
If ptmatrix(i, 2) < minval Then minval = ptmatrix(i, 2)
If ptmatrix(i, 2) > maxval Then maxval = ptmatrix(i, 2)
Next i
scaledepth = maxval - minval
If scaledepth = 0 Then scaledepth = 1
scalefac = (beamdepthd * 2) / scaledepth
Debug.Print "scalefactor", scalefac
For i = 2 To drawnodes Step 2
runlen = runlen + Val(ListBox10.List(runnum, 1))
runnum = runnum + 1


120
drawpoints(i) = runlen + beamlengthd + beamdepthd
Next i
'draw top face
runnum = 0
For i = 1 To drawnodes Step 2
drawpoints(i) = -(ptmatrix(runnum, 2)) * scalefac + beamdepthd * 11 +
beamdepthorg
runnum = runnum + 1
Next i
topfacex1 = drawpoints(0)
topfacey1 = drawpoints(1)
topfacex2 = drawpoints(drawnodes - 1)
topfacey2 = drawpoints(drawnodes)
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
'draw center line
runnum = 0
For i = 1 To drawnodes Step 2
drawpoints(i) = drawpoints(i) - beamdepthorg / 2
runnum = runnum + 1
Next i
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
plineObj.Color = acRed
plineObj.Update
'draw bottom face
runnum = 0
For i = 1 To drawnodes Step 2
drawpoints(i) = drawpoints(i) - beamdepthorg / 2
runnum = runnum + 1
Next i
botfacex1 = drawpoints(0)
botfacey1 = drawpoints(1)
botfacex2 = drawpoints(drawnodes - 1)
botfacey2 = drawpoints(drawnodes)
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
Dim startPoint(0 To 2) As Double


121
Dim endPoint(0 To 2) As Double
startPoint(0) = topfacex1: startPoint(1) = topfacey1: startPoint(2) = 0#
endPoint(0) = botfacex1: endPoint(1) = botfacey1: endPoint(2) = 0#
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
startPoint(0) = topfacex2: startPoint(1) = topfacey2: startPoint(2) = 0#
endPoint(0) = botfacex2: endPoint(1) = botfacey2: endPoint(2) = 0#
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
'draw original center line
runnum = 0
For i = 1 To drawnodes Step 2
drawpoints(i) = beamdepthd * 11 + beamdepthorg / 2
runnum = runnum + 1
Next i
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
plineObj.Color = acRed
plineObj.Update
'draw soil pressure diagram
maxval = ptmatrix(0, 1)
minval = ptmatrix(0, 1)
For i = 0 To nm
If ptmatrix(i, 1) < minval Then minval = ptmatrix(i, 1)
If ptmatrix(i, 1) > maxval Then maxval = ptmatrix(i, 1)
Next i
scaledepth = maxval - minval
If scaledepth = 0 Then scaledepth = 1
scalefac = (beamdepthd * 2) / scaledepth
runnum = 0
For i = 1 To drawnodes Step 2
drawpoints(i) = -(minval + ptmatrix(runnum, 1)) * scalefac + beamdepthd
* 6 + (maxval + minval) * scalefac
runnum = runnum + 1
Next i
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
'draw loads and moments
ReDim lpoints(0 To 11) As Double
beamtop = beamdepthd * 11 + Beamdepth


122
lpoints(0) = 0#: lpoints(1) = 1.8 * beamdepthd + beamtop
lpoints(2) = 0#: lpoints(3) = 0.3 * beamdepthd + beamtop
lpoints(4) = -0.08 * beamdepthd: lpoints(5) = 0.3 * beamdepthd + beamtop
lpoints(6) = 0#: lpoints(7) = 0 * beamdepthd + beamtop
lpoints(8) = 0.08 * beamdepthd: lpoints(9) = 0.3 * beamdepthd + beamtop
lpoints(10) = 0#: lpoints(11) = 0.3 * beamdepthd + beamtop
Dim arcObj As AcadArc
Dim centerPoint(0 To 2) As Double
Dim radius As Double
Dim startAngleInDegree As Double
Dim endAngleInDegree As Double
centerPoint(0) = 0#: centerPoint(1) = beamtop + beamdepthd: centerPoint(2)
= 0#
radius = 0.4 * beamdepthd
startAngleInDegree = 0#
endAngleInDegree = 210#
' Convert the angles in degrees to angles in radians
Dim startAngleInRadian As Double
Dim endAngleInRadian As Double
startAngleInRadian = startAngleInDegree * 3.141592 / 180#
endAngleInRadian = endAngleInDegree * 3.141592 / 180#
ReDim mpoints(0 To 7) As Double
mpoints(0) = 0.35 * beamdepthd: mpoints(1) = beamdepthd + beamtop
mpoints(2) = 0.45 * beamdepthd: mpoints(3) = 0.98 * beamdepthd + beamtop
mpoints(4) = 0.36 * beamdepthd: mpoints(5) = 0.8 * beamdepthd + beamtop
mpoints(6) = 0.35 * beamdepthd: mpoints(7) = beamdepthd + beamtop
'loop for all nodes
runnum = 0
runlen = 0
For i = 0 To nm
lpoints(0) = lpoints(0) + runlen
lpoints(2) = lpoints(2) + runlen
lpoints(4) = lpoints(4) + runlen
lpoints(6) = lpoints(6) + runlen
lpoints(8) = lpoints(8) + runlen
lpoints(10) = lpoints(10) + runlen
centerPoint(0) = centerPoint(0) + runlen
mpoints(0) = mpoints(0) + runlen


123
mpoints(2) = mpoints(2) + runlen
mpoints(4) = mpoints(4) + runlen
mpoints(6) = mpoints(6) + runlen
If Val(loadmom.ListBox1.List(runnum, 1)) <> 0 Then
'draw downward arrow if load is applied on current node
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(lpoints)
End If
If Val(loadmom.ListBox1.List(runnum, 2)) <> 0 Then
'draw arc with arrow if moment is applied on current node
Set arcObj = ThisDrawing.ModelSpace.AddArc(centerPoint, radius,
startAngleInRadian, endAngleInRadian)
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(mpoints)
End If
If runnum <> nm Then
runlen = Val(ListBox10.List(runnum, 1))
runnum = runnum + 1
End If
Next i
'zoom to show all diagrams
ZoomExtents
'WRITE CAPTIONS
Dim MTextObj As AcadMText
Dim corner(0 To 2) As Double
Dim width As Double
Dim text As String
width = beamlengthd
'write bending moment caption
corner(0) = 0#: corner(1) = beamdepthd * 0.7: corner(2) = 0#
text = "BENDING MOMENT DIAGRAM"
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
MTextObj.Height = beamdepthd / 4
MTextObj.AttachmentPoint = acAttachmentPointBottomCenter
MTextObj.Update
'write shear force caption
corner(0) = 0#: corner(1) = beamdepthd * 6.7: corner(2) = 0#
text = "SHEAR FORCE DIAGRAM"
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
MTextObj.Height = beamdepthd / 4


124
MTextObj.AttachmentPoint = acAttachmentPointBottomCenter
MTextObj.Update
'write beam elements caption
corner(0) = 0#: corner(1) = beamdepthd * 10.7: corner(2) = 0#
text = "BEAM ELEMENTS AND LOADING"
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
MTextObj.Height = beamdepthd / 4
MTextObj.AttachmentPoint = acAttachmentPointBottomCenter
MTextObj.Update
'write deflected beam caption
corner(0) = beamlengthd + beamdepthd: corner(1) = beamdepthd * 8.7:
corner(2) = 0#
text = "DEFLECTION DIAGRAM"
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
MTextObj.Height = beamdepthd / 4
MTextObj.AttachmentPoint = acAttachmentPointBottomCenter
MTextObj.Update
'write soil pressure caption
corner(0) = beamlengthd + beamdepthd: corner(1) = beamdepthd * 5.7:
corner(2) = 0#
text = "SOIL PRESSURE DIAGRAM"
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
MTextObj.Height = beamdepthd / 4
MTextObj.AttachmentPoint = acAttachmentPointBottomCenter
MTextObj.Update
'write note
corner(0) = beamlengthd + beamdepthd: corner(1) = beamdepthd * 1.7:
corner(2) = 0#
text = "These diagrams have been plotted by the Finite Element Program
BEAMDEZ"
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
MTextObj.Height = beamdepthd / 4
MTextObj.AttachmentPoint = acAttachmentPointBottomCenter
MTextObj.Update
ThisDrawing.Application.ZoomExtents
End Sub

Private Sub CommandButton7_Click()


125
'if user "Show Boundary Conditions"
'change caption of the form-boundary
boundary.Caption = "Boundary Conditions"
'hide controls that were used for data entry
boundary.Label1.Visible = False
boundary.Label2.Visible = False
boundary.Label3.Visible = False
boundary.curdef.Visible = False
boundary.curnode.Visible = False
boundary.currot.Visible = False
boundary.CommandButton2.Visible = False
boundary.CommandButton3.Visible = False
boundary.CommandButton4.Visible = False
'change positions of remaining controls
boundary.ListBox1.Left = 78
boundary.ListBox1.Height = 180
boundary.CommandButton1.Left = 294
boundary.Label5.Left = 144
boundary.numrot.Left = 204
boundary.Label4.top = 222
boundary.Label5.top = 222
boundary.numrot.top = 222
boundary.numdef.top = 222
boundary.Label4.Left = 20
boundary.numdef.Left = 78
boundary.Label6.Left = 83.95
boundary.Label7.Left = 132
boundary.Label8.Left = 209.95
boundary.Label9.Left = 227.95
boundary.Label10.Left = 155.95
'give control to form-boundary for showing boundary conditions
boundary.Show
End Sub

Private Sub OptionButton1_AfterUpdate()
'if user selects "mm" or "inch" depending on
'current system of units
'read number of elements for form-elements


126
nm = Elements.numelem
If BeamDimensions.siunits.Value = True Then
'if units are SI
'loop through all nodes
For i = 0 To nm
'convert all deflections to "mm"
ListBox1.List(i, 2) = ListBox1.List(i, 2) * 1000
Next i
Else
'if system of units is fps
'loop through all nodes
For i = 0 To nm
'convert all deflections to "inch"
ListBox1.List(i, 2) = ListBox1.List(i, 2) * 12
Next i
End If
End Sub

Private Sub OptionButton2_AfterUpdate()
'if user selects "m" or "ft" depending on
'current system of units
'read number of elements for form-elements
nm = Elements.numelem
If BeamDimensions.siunits.Value = True Then
'if units are SI
'loop through all nodes
For i = 0 To nm
'convert all deflections to "m"
ListBox1.List(i, 2) = ListBox1.List(i, 2) / 1000
Next i
Else
'if units are fps
'loop for all nodes
For i = 0 To nm
'convert all deflections to "ft"
ListBox1.List(i, 2) = ListBox1.List(i, 2) / 12
Next i
End If


127
End Sub

Private Sub ToggleButton1_AfterUpdate()
If ToggleButton1.Value = True Then
'hide multipage containing results
MultiPage1.Visible = False
'show bandmatrix
ListBox9.Visible = True
Else
If ToggleButton1.Value = False Then
'show multipage containing results
MultiPage1.Visible = True
'hide bandmatrix
ListBox9.Visible = False
End If
End If
End Sub

Private Sub UserForm_Initialize()
'VARIABLES:
'alomaxdef=value of maximum deflection for elastic range
'asat()= global stiffness matrix ASAT
'asatdim=dimension of ASAT (double of node numbers)
'asatinv()=matrix for inverse of ASAT
'bandm()=bandmatrix
'Beamdepth= depth of beam
'Beamlength=length of beam
'Beamwidth= width of beam
'bounddef()=known boundary deflections
'boundflag=flag for boundary conditions
'boundrot()=known boundary rotations
'checkdef=deflection on current node
'count1=loop counter
'counter=loop counter
'counter2=loop counter
'divider=variable used in matrix inversion
'dupasat()=duplicate copy of asat matrix to be used in matrix inversion
'ea()=element A matrix


128
'easat()=element EASAT matrix
'elcount=loop counter
'es()=element S matrix ES
'esat()=element ESAT matrix
'esats()=array to save ESAT matrices for all elements
'forc=constant soil pressure beyond elastic range
'fourei=4EI
'i=loop variable
'inertia=moment of inertia of the beam x-section
'j=loop counter
'k=loop counter
'lasat=variable used in construction of ASAT matrix
'locdef=location or known deflection
'locrot=location of known rotation
'maxiter=maximum iterations
'memlen(nm)=array to hold the length of each member
'momentmatrix=moment matrix
'mominertia=moment of inertia
'momnt()=moment array
'msr=modulus of subgrade reaction
'multiplier=variable used in matrix multiplication
'negflag=negative deflection flag
'nm= number of members (elements)
'nnload()=array to hold the values of vertical loads
'nnmom()= array to hold the values of moments
'np()= column vector to hold the values of loads and moments
'numbounddef=number of known deflections
'numboundrot=number of known rotations
'numelem= number of elements
'nummaxdef1=variable for checking maximum deflection
'nummom=numnber of concentrated moments acting on the beam
'numnegdef1=variable for checking negative deflections
'numnegdef2=variable for checking negative deflections
'numpload=number of vertical point loads acting on the beam
'Pmatrix()=array to hold the loads and moments acting on the beam
'row=loop counter
'Shearmatrix()=matrix for shear values
'Showmatrix1()=matrix for rotations and deflections


129
'Soilqmatrix()=soil pressure matrix
'spring()=array to hold the spring constants at all nodes
'temper=temporary variable used in calculation of X matrix
'testoler=variable used in matrix inversion
'toler=tolerance value for zero: values less than this will be considered
zero
'twoei=2EI
'unitflag= tells the current system of units, SI or fps
'valdef=value of deflection read from file
'valrot=value of rotation read from file
'Xmatrix()= X matrix
'youngs=young's modulus E for concrete

'read number of elements from textbox "numelem"
'located on userfrom "Beamdimensions"
nm = BeamDimensions.numelem
'read width of beam from textbox "Beamwidth"
'located on userfrom "Beamdimensions"
Beamwidth = BeamDimensions.Beamwidth
'read depth of beam from textbox "Beamdepth"
'located on userfrom "Beamdimensions"
Beamdepth = BeamDimensions.Beamdepth
'check if OptoinButton "siunits"
'located on userform "Beamdimensions" is selected
If BeamDimensions.siunits = True Then
'in case "siunits" OptionButton is selected,
'put "si" in unitflag variable and set the
'labels to SI units
unitflag = "si"
Label24.Caption = "m"
Label25.Caption = "m"
Label27.Caption = "m"
Label29.Caption = "m"
Label30.Caption = "mm"
Label34.Caption = "kPa"
Label37.Caption = "kN/m"
Label33.Caption = "kN/m"
Label39.Caption = "mm"


130
Else
'in case "siunits" OptionButton is not selected,
'i.e. "fpsunits" OptionButton is selected,
'put "fps" in unitflag variable and set the
'labels to fps units
unitflag = "fps"
Label24.Caption = "ft"
Label25.Caption = "ft"
Label27.Caption = "ft"
Label29.Caption = "ft"
Label42.Caption = "ft"
Label30.Caption = "inch"
Label34.Caption = "ksf"
Label37.Caption = "kip/ft"
Label33.Caption = "kip/ft"
Label39.Caption = "inch"
Label4.Caption = "1st Node kip-ft"
Label6.Caption = "2nd Node kip-ft"
Label8.Caption = "Shear on left kip"
Label9.Caption = "Shear on right kip"
Label11.Caption = "Moment on left kip-ft"
Label12.Caption = "Moment on right kip-ft"
Label17.Caption = "Moment kip-ft"
Label18.Caption = "Load kip"
Label20.Caption = "Spring Ks kip/ft"
Label21.Caption = "Spring force kip"
Label31.Caption = "Soil Q ksf"
Label46.Caption = "Length ft"
End If
'dimension the memlen array to number of elements
ReDim memlen(nm)
'give control to form-memberlen for input of length of all elements
memberlen.Show
'loop for all elements
For i = 1 To nm
'read values of element-lengths from "memberlen"
memlen(i) = Val(memberlen.ListBox1.List(i - 1, 1))
Next i


131
'assign the number of members to numelem
numelem = nm
'reset the beamlength to zero
Beamlength = 0
'now calculate the beamlength by adding the length
'of all the members
For i = 1 To nm 'generates: 1,2,3,...,nm
Beamlength = Beamlength + memlen(i)
Next i
'read value of modulus of subgrade reaction from form-BeamDimensions
msr = BeamDimensions.msr
'read value of Young's Modulus of Elasticity for
'concrete from form-Beamdimensions
youngs = BeamDimensions.youngs
'calculate the moment of inertia of the beam
inertia = (Beamwidth * Beamdepth ^ 3) / 12
'put value of inertia to TextBox "mominertia"
mominertia = inertia
'dimension the spring array with rows=number of
'nodes and 3 columns
ReDim spring(nm + 1, 3)
'loop for all nodes
For counter = 1 To (nm + 1) 'generates 1,2,3,...,(nm+1)
'put node numbers in first column
spring(counter, 0) = counter
Next counter
'compute spring constant at first node
spring(1, 1) = msr * memlen(1) * Beamwidth
'compute spring constant at last node
spring(nm + 1, 1) = msr * memlen(nm) * Beamwidth
'loop for all nodes except the first and last ones
For counter = 2 To nm 'generates 2,3,4,...,nm
'calculate spring constants for the remaining nodes
spring(counter, 1) = Val(msr) * Beamwidth * (memlen(counter) +
Val(memlen(counter - 1))) / 2
Next counter
'initialize P-Matrix
'nm+1=number of nodes (1+number of elements)


132
ReDim Pmatrix((nm + 1), 2) '(x,0)=node number, (x,1)=mom,(x,2)=load
(row,col)
'give control to form-loadmom for getting loads and
'moments from user
loadmom.Show
'loop through all nodes
For counter = 1 To (nm + 1) 'generates: 1,2,3...,(nm+1)
'put node numbers in Pmatrix
Pmatrix(counter, 0) = counter
'read moments from form-loadmom
Pmatrix(counter, 1) = Val(loadmom.ListBox1.List(counter - 1, 2))
'read loads from form-loadmom
Pmatrix(counter, 2) = Val(loadmom.ListBox1.List(counter - 1, 1))
Next counter
'read value of maximum iterations limit
maxiter = Val(BeamDimensions.maxiter)
'reset numnegdef1 and nummaxdef1 to zero
numnegdef1 = 0
'loop label for iterations
defloop:
'note number of negative deflections in previous iteration
numnegdef2 = numnegdef1
'reset numnegdef1 and nummaxdef1 to zero
numnegdef1 = 0
nummaxdef1 = 0
'show all the values of Pmatrix in "Listbox6"
'on userform "Elements"
ListBox6.List() = Pmatrix
If BeamDimensions.considerbeamwt = True Then
'if user has checked "consider beam weight" on
'form-BeamDimensions then make relevant controls visible
BeamWeight.Visible = True
Label15.Visible = True
Label32.Visible = True
Label33.Visible = True
'read self weight of beam
BeamWeight.Value = BeamDimensions.BeamWeight
'add beam weight to Pmatrix


133
'first node
Pmatrix(1, 2) = Pmatrix(1, 2) + Beamdepth * Beamwidth * memlen(1) *
BeamDimensions.BeamWeight / 2
'last node
Pmatrix((nm + 1), 2) = Pmatrix((nm + 1), 2) + Beamdepth * Beamwidth *
memlen(nm) * BeamDimensions.BeamWeight / 2
'remaining nodes
For i = 2 To nm
Pmatrix(i, 2) = Pmatrix(i, 2) + Beamdepth * Beamwidth * (memlen(i) +
memlen(i - 1)) * BeamDimensions.BeamWeight / 2
Next i
End If
'initialize np
'dimension np() column vector to double of node numbers
ReDim np(nm * 2 + 2)
For counter = 1 To (nm + 1) 'generates: 1,2,3,...,(nm+1)
'(counter*2-1) generates 1,3,5,...
'to put loads from Pmatrix in np() leaving
'slots for moments
np(counter * 2 - 1) = Pmatrix(counter, 1)
'(counter*2) generates 2,4,6,...
'to put moments from Pmatrix in np()
np(counter * 2) = Pmatrix(counter, 2)
Next counter
'initialize asat
'put double of node numbers in asatdim
asatdim = (nm + 1) * 2
'dimension asat to asatdim rows and asatdim columns
ReDim asat(asatdim, asatdim)
For counter = 1 To asatdim 'generates 1,2,...,asatdim
For counter2 = 1 To asatdim 'generates 1,2,...,asatdim
' zero all the elements of asat
asat(counter, counter2) = 0
Next counter2
Next counter
'develop the element A matrix ea
'dimension the ea matrix
Dim ea(4, 2) '(row, col)


134
'put the values common to all finite elements in ea()
ea(1, 1) = 1
ea(1, 2) = 0
ea(3, 1) = 0
ea(3, 2) = 1
'put value of 2EI in twoei for later use
twoei = 2 * youngs * inertia
'put value of 4EI in fourei for later use
fourei = 4 * youngs * inertia
'dimension the ES matrix
Dim es(2, 2) 'row,col
'dimension the ESAT matrix
Dim esat(2, 4) 'row,col
'dimension the EASAT matrix
Dim easat(4, 4) 'row,col
'dimension the array esats to save ESAT matrices for all elements
ReDim esats(nm, 2, 4) 'element,row,col
'build the global stiffness matrix ASAT
'loop to make element matrices for all members
For elcount = 1 To nm 'generates 1,2,3,...,nm
'calculate values for EA matrix for each element
ea(2, 1) = 1 / memlen(elcount)
ea(2, 2) = 1 / memlen(elcount)
ea(4, 1) = -1 / memlen(elcount)
ea(4, 2) = -1 / memlen(elcount)
'determine the ES matrix for all elements
es(1, 1) = fourei / memlen(elcount)
es(2, 2) = es(1, 1)
es(2, 1) = twoei / memlen(elcount)
es(1, 2) = es(2, 1)
'build the ESAT matrix
For counter = 1 To 2 'generates: 1,2
For counter2 = 1 To 4 ' generates: 1,2,3,4
esat(counter, counter2) = es(counter, 1) * ea(counter2, 1) +
es(counter, 2) * ea(counter2, 2)
Next counter2
Next counter
'save each ESAT in esats()


135
For counter = 1 To 2 'generates: 1,2
For counter2 = 1 To 4 ' generates: 1,2,3,4
esats(elcount, counter, counter2) = esat(counter, counter2)
Next counter2
Next counter
'build the EASAT matrix for each element
For counter = 1 To 4 ' generates: 1,2,3,4
For counter2 = 1 To 4 ' generates: 1,2,3,4
easat(counter, counter2) = ea(counter, 1) * esat(1, counter2) +
ea(counter, 2) * esat(2, counter2)
Next counter2
Next counter
'construct the global matrix ASAT
lasat = elcount * 2 - 2 'generates: 0,2,4,...
For count1 = 1 To 4 ' generates: 1,2,3,4
For count2 = 1 To 4 ' generates: 1,2,3,4
asat(count1 + lasat, count2 + lasat) = asat(count1 + lasat, count2
+ lasat) + easat(count1, count2)
Next count2
Next count1
Next elcount
'add spring constants to appropriate locations in ASAT matrix
For i = 2 To asatdim Step 2 'generates: 2,4,6,...,asatdim
asat(i, i) = asat(i, i) + spring(i / 2, 1)
Next i
'apply boundary conditions
boundflag = False
'check if any boundary conditions are specified
If BeamDimensions.numdef.Value > 0 Then boundflag = True
If BeamDimensions.numrot.Value > 0 Then boundflag = True
If boundflag Then
'if boundary conditions are specified then
'give control to form-boundary for getting values
'of known deflections and rotations
boundary.Show
boundflag = False
'check if user gave any values for boundary conditions
If boundary.numdef.Value > 0 Then boundflag = True


136
If boundary.numrot.Value > 0 Then boundflag = True
End If
If boundflag Then
'if user gave values for boundary conditions
'get number of boundary conditions
numbounddef = boundary.numdef
numboundrot = boundary.numrot
'dimension arrays for holding boundary conditions
ReDim bounddef(numbounddef, 3)
ReDim boundrot(numboundrot, 3)
'get location and value of boundary deflection condition
j = 0
k = 0
'loop through all nodes
For i = 0 To nm
If boundary.ListBox1.List(i, 1) <> "none" Then
'if current node has any known deflection
j = j + 1
'read node number for known deflection
bounddef(j, 0) = Val(boundary.ListBox1.List(i, 0))
'read value of known deflection
bounddef(j, 1) = Val(boundary.ListBox1.List(i, 1))
End If
If boundary.ListBox1.List(i, 2) <> "none" Then
'if current node has any known rotation
k = k + 1
'read node number for known rotation
boundrot(j, 0) = Val(boundary.ListBox1.List(i, 0))
'read value of known rotation
boundrot(j, 1) = Val(boundary.ListBox1.List(i, 2))
End If
Next i
'set asat and np for boundary deflections
If j > 0 Then
For i = 1 To j
locdef = bounddef(i, 0) * 2
valdef = bounddef(i, 1)
'augment np()


137
For l = 1 To asatdim
np(l) = np(l) - valdef * asat(locdef, l)
Next l
'put valdef at np(locdef)
np(locdef) = valdef
'zero out elements in asat
For l = 1 To asatdim
'zero out the row
asat(locdef, l) = 0
'zero out the column
asat(l, locdef) = 0
Next l
'put 1 at crossing
asat(locdef, locdef) = 1
Next i
End If
'set asat and np for boundary rotations
If k > 0 Then
For i = 1 To k
locrot = boundrot(i, 0) * 2 - 1
valrot = boundrot(i, 1)
'augment np()
For l = 1 To asatdim
np(l) = np(l) - valrot * asat(locrot, l)
Next l
'put valrot at np(locrot)
np(locrot) = valrot
'zero out elements in asat
For l = 1 To asatdim
'zero out the row
asat(locrot, l) = 0
'zero out the column
asat(l, locrot) = 0
Next l
'put 1 at crossing
asat(locrot, locrot) = 1
Next i
End If


138
End If
'make band matrix
'currently the solution is obtained by
'inverse matrix (obtained by Gauss-Jordan method)
'but if Cholsky or other band matrix solution is
'to be used then the band matrix is available
'also, band matrix is used to show the contents of
'ASAT matrix along with results
ReDim bandm(asatdim, 4)
For i = 1 To (asatdim - 3)
bandm(i, 0) = Fix2(asat(i, i))
bandm(i, 1) = Fix2(asat(i, i + 1))
bandm(i, 2) = Fix2(asat(i, i + 2))
bandm(i, 3) = Fix2(asat(i, i + 3))
Next i
For i = 1 To 3
bandm((2 * nm), (i - 1)) = Fix2(asat((2 * nm), (asatdim - 3) + i))
Next i
bandm((2 * nm), 3) = 0
For i = 1 To 2
bandm((asatdim - 1), (i - 1)) = Fix2(asat((asatdim - 1), (2 * nm) + i))
Next i
bandm((asatdim - 1), 2) = 0
bandm((asatdim - 1), 3) = 0
bandm(asatdim, 0) = Fix2(asat(asatdim, asatdim))
bandm(asatdim, 1) = 0
bandm(asatdim, 2) = 0
bandm(asatdim, 3) = 0
ListBox9.List() = bandm
'dimension the asatinv matrix
ReDim asatinv(asatdim, asatdim)
'make an identity matrix and save in asatinv()
For i = 1 To asatdim
For j = 1 To asatdim
asatinv(i, j) = 0
Next j
asatinv(i, i) = 1
Next i


139
'dimension dupasat matrix
ReDim dupasat(asatdim, asatdim)
'save asat in dupasat
For i = 1 To asatdim 'generats 1,2,3,...,asatdim
For j = 1 To asatdim 'generats 1,2,3,...,asatdim
dupasat(i, j) = asat(i, j)
Next j
Next i
'set tolerance value to check for zero matrix-elements
toler = 0.000001
'loop through all rows
For row = 1 To asatdim 'generates 1,2,3,...,asatdim
'get value of each diagonal element
testtoler = Abs(dupasat(row, row) - 1)
'check each diagonal element
If testtoler > toler Then 'i.e. if the diagonal element is not 1
'put the value of current diagonal element in divider
divider = dupasat(row, row)
For i = 1 To asatdim 'generates 1,2,3,...,asatdim
'divide all elements of the current row in dupasat
'by the current diagonal element of dupasat
dupasat(row, i) = dupasat(row, i) / divider
'divide all elements of the current row in asatinv
'by the current diagonal element of dupasat
asatinv(row, i) = asatinv(row, i) / divider
Next i
End If
'loop through all rows
For i = 1 To asatdim 'generates 1,2,3,...,asatdim
'do not subtract the current row from itself
If i = row Then GoTo skip1
'set multiplier=current
multiplier = dupasat(i, row)
'multiplier2 = asatinv(i, row)
For j = 1 To asatdim
dupasat(i, j) = dupasat(i, j) - dupasat(row, j) * multiplier
asatinv(i, j) = asatinv(i, j) - asatinv(row, j) * multiplier
Next j


140
skip1:
Next i
Next row
'dimension the Xmatrix
ReDim Xmatrix(asatdim)
'Pmatrix=np()
'multiply asatinv by np() and put result in Xmatrix
For i = 1 To asatdim
temper = 0
For j = 1 To asatdim
temper = temper + asatinv(i, j) * np(j)
Next j
Xmatrix(i) = temper
Next i
'if maximum deflection and soil separation are to be checked
If BeamDimensions.SoilSeparation = True Then
'check for -ve and max deflections
Debug.Print "entered at soil separation"
'make relevant controls visible
maxdef.Visible = True
Label14.Visible = True
Label39.Visible = True
'read value of allowable maximum deflection
maxdef.Value = BeamDimensions.maxdef
If BeamDimensions.siunits Then
'if current units are SI then convert max. deflection to "m"
alomaxdef = Val(BeamDimensions.maxdef) / 1000
Else
'if current units are fps then convert max. deflection to "ft"
alomaxdef = Val(BeamDimensions.maxdef) / 12
End If
'loop for all nodes
For i = 0 To nm
negflag = False
checkdef = Val(Xmatrix(i * 2 + 2)) 'deflection
'check for -ve deflection:
If checkdef < 0 Then
negflag = True


141
numnegdef1 = numnegdef + 1
spring(i + 1, 1) = 0
End If
'check for max deflection
If checkdef > alomaxdef Then
nummaxdef1 = nummaxdef1 + 1
forc = alomaxdef * spring(i + 1, 1)
Pmatrix(i + 1, 2) = Pmatrix(i + 1, 2) - forc
spring(i + 1, 1) = 0
End If
Next i
If maxiter > 0 Then
'if maximum iterations limit is not reached
maxiter = maxiter - 1
'check if number of negative deflections has increased or
'if maximum deflection is exceeded at any node
If numnegdef1 > numnegdef2 Or nummaxdef1 > 0 Then
'go to label "defloop:" for another iteration
GoTo defloop
End If
End If
End If
Elements.Caption = "Results"
'dimension arrays for showing results
ReDim showmatrix1((nm + 1), 3)
ReDim shearmatrix((nm + 1), 3)
ReDim momentmatrix((nm + 1), 3)
ReDim soilqmatrix((nm + 1), 2)
'loop for all nodes
For i = 0 To nm
'put node numbers in all arrays
showmatrix1(i, 0) = i + 1
shearmatrix(i, 0) = i + 1
momentmatrix(i, 0) = i + 1
soilqmatrix(i, 0) = i + 1
Next i
'loop for all nodes
For i = 0 To nm


142
'read values of rotations
showmatrix1(i, 1) = Xmatrix(i * 2 + 1)
'read values of deflections
showmatrix1(i, 2) = Xmatrix(i * 2 + 2)
'calculate spring forces
spring(i + 1, 2) = showmatrix1(i, 2) * spring(i + 1, 1)
If spring(i + 1, 2) <> 0 Then
'if no negative deflection has occurred
'calculate soil pressure
soilqmatrix(i, 1) = Xmatrix(i * 2 + 2) * msr
Else
'if negative deflection has occurred then
'zero the soil pressure
soilqmatrix(i, 1) = 0
End If
Next i
shearmatrix(0, 2) = 0
shearmatrix(0, 1) = 0
For i = 0 To (nm - 1)
shearmatrix(i, 2) = shearmatrix(i, 1) + Pmatrix(i + 1, 2) - spring(i +
1, 2)
shearmatrix(i + 1, 1) = shearmatrix(i, 2)
Next i
shearmatrix(i, 2) = shearmatrix(nm, 1) - spring(i + 1, 2)
'put values of arrays to ListBoxes for showing results
ListBox1.List() = showmatrix1
ListBox3.List() = shearmatrix
ListBox7.List() = spring
ListBox8.List() = soilqmatrix
'dimension the moment array
ReDim momnt(nm, 3)
first = 0
second1 = 0
For i = 1 To nm
momnt((i - 1), 0) = i
'multiply esat matrices with Xmatrix entries
'to get internal moments at nodes
For j = 1 To 2


143
For k = 1 To 4
m = (i - 1) * 2 + k
momnt((i - 1), j) = momnt((i - 1), j) + esats(i, j, k) *
Xmatrix(m)
Next k
Next j
second1 = momnt(i, 2)
first = momnt(i, 1)
Next i
'show moments on elements in ListBox2
ListBox2.List() = momnt
momentmatrix(0, 1) = 0
momentmatrix(nm, 2) = 0
For i = 0 To (nm - 1)
momentmatrix(i, 2) = -momnt(i, 1)
momentmatrix((i + 1), 1) = momnt(i, 2)
Next i
'show moments on nodes and element lengths
ListBox4.List() = momentmatrix
ListBox10.List() = memberlen.ListBox1.List()
ender:
End Sub







Figure-5.13 Form-Exporter
Code: Exporter
Private Sub CommandButton1_Click()
'read name of file from "filenamer"
filefinder = filenamer.text
'if there any name is given then
If filefinder <> "" Then


144
'concatenate ".txt" to name of file
filefinder = filefinder & ".txt"
If Dir(filefinder) = "" Then
'if a file with same name does not exist then return control to
'calling routine
Exporter.Hide
Else
'if file exists, ask for replacing
response = MsgBox("File already exists. Replace?", 36)
'if user clicks "OK" then return control to calling
'routine with given file name
If response = 6 Then
Exporter.Hide
Else
'if user clicks "Cancel" then return control to
'calling routine without any file name
filenamer.text = ""
Exporter.Hide
End If
End If
End If
End Sub

Private Sub CommandButton2_Click()
'if user presses "Cancel" then return control
'to calling routine without any file name
filenamer.text = ""
Exporter.Hide
End Sub

Private Sub filenamer_Change()
'read the latest character typed by user
newchar = Right(filenamer.text, 1)
'set charflag to false
charflag = False
If newchar <> "" Then
'if there is any character, put its ASCII code in charnum
charnum = Asc(newchar)


145
End If
'valid characters are A~Z,a~z,0~9,-, and _; other characters
'are not allowed in file name, therefore check if the input
'character is valid or not
'check if A to Z
If charnum > 64 And charnum < 91 Then charflag = True
'check if a to z
If charnum > 96 And charnum < 123 Then charflag = True
'check if 0 to 9
If charnum > 47 And charnum < 58 Then charflag = True
'check if - or _ and not first char
If Len(filenamer.text) > 1 Then
If charnum = 45 Or charnum = 95 Then charflag = True
End If
'check that 8 character filename limit is not crossed
If Len(filenamer.text) > 8 Then charflag = False
If charflag Then
'if all validity requirements are met then update "checker"
checker.text = filenamer.text
Else
'otherwise give warning beep (for invalid characters
'or exceeding 8 char limit)
beep
'delete the newly entered character from "filenamer"
filenamer.text = checker.text
End If
End Sub






Figure-5.14 Form-Filer
Code: Filer
Private Sub CommandButton1_Click()
'put name of selected file to "FileLoaded" on "BeamDimensions"


146
BeamDimensions.FileLoaded = filelister.Value
'return control to calling routine
Unload Filer
End Sub

Private Sub CommandButton2_Click()
'if user clicks "Cancel" then reset
'the filename on "BeamDimensions"
BeamDimensions.FileLoaded = ""
'return control to calling routine
Unload Filer
End Sub

Private Sub UserForm_Initialize()
If Dir("init.bdt") <> "" Then
'if file "init.bdt" exists, put it as
'default choice
filelister.Value = "init.bdt"
End If
'get name of first file with ".bdt" extension
'in the default directory
file1 = Dir("*.bdt")
loop1:
'add last read filename from directory to choice list
filelister.AddItem (file1)
'read next filename
file1 = Dir
'if any new file was found, go back to "loop1:"
If file1 <> "" Then GoTo loop1
End Sub










147
















Figure-5.15 Form-loadmom
Code: loadmom
'Declare user-defined type for file I/O
Private Type Record
units55 As Boolean
conbmwt55 As Boolean
consoilsep As Boolean
numel55 As Integer
numpl55 As Integer
nummom55 As Integer
maxiter55 As Integer
numknowdef55 As Integer
numknowrot55 As Integer
beamlen55 As Double
beamwid55 As Double
beamdep55 As Double
beamwt55 As Double
youngs55 As Double
msr55 As Double
maxdef55 As Double
End Type


148
'Declare user-defined type for file I/O
Private Type doubler
doub As Double
End Type

Private Sub CommandButton1_Click()
'return control back to the calling routine
loadmom.Hide
End Sub

Private Sub CommandButton2_Click()
'exit program
End
End Sub

Private Sub ListBox1_AfterUpdate()
'if ListBox1 is clicked, set the values of clicked
'entry in "nodecur", "loadcur", and "momcur"
nodecur = ListBox1.Value
loadcur = ListBox1.List(Val(nodecur) - 1, 1)
momcur = ListBox1.List(Val(nodecur) - 1, 2)
End Sub

Private Sub loadcur_AfterUpdate()
If nodecur <> "" Then
'if there is any number placed in "nodecur" then put
'current value of "loadcur" in ListBox1
ListBox1.List(Val(nodecur) - 1, 1) = loadcur
'reset numload and nummom to zero
numload = 0
nummom = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'add 1 to "numload" for each nonzero load in ListBox1 (i.e. count the
number of loads)
If ListBox1.List(i - 1, 1) <> 0 Then numload = numload + 1
'add 1 to "nummom" for each nonzero moment in ListBox1 (i.e. count the
number of moments)


149
If ListBox1.List(i - 1, 2) <> 0 Then nummom = nummom + 1
Next i
'put value of "numload" in textbox "loadnum"
loadnum = numload
'put value of "nummom" in textbox "momnum"
momnum = nummom
Else
'if "nodecur" is empty then give error message
beep
loadcur = ""
feedback = MsgBox("Input node number first", 48, "Error!")
End If
End Sub

Private Sub momcur_AfterUpdate()
If nodecur <> "" Then
'if there is any number placed in "nodecur" then put
'current value of "momcur" in ListBox1
ListBox1.List(Val(nodecur) - 1, 2) = momcur
'reset numload and nummom to zero
numload = 0
nummom = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'add 1 to "numload" for each nonzero load in ListBox1 (i.e. count the
number of loads)
If ListBox1.List(i - 1, 1) <> 0 Then numload = numload + 1
'add 1 to "nummom" for each nonzero moment in ListBox1 (i.e. count the
number of moments)
If ListBox1.List(i - 1, 2) <> 0 Then nummom = nummom + 1
Next i
'put value of "numload" in textbox "loadnum"
loadnum = numload
'put value of "nummom" in textbox "momnum"
momnum = nummom
Else
'if "nodecur" is empty then give error message
beep


150
momcur = ""
feedback = MsgBox("Input node number first", 48, "Error!")
End If
End Sub

Private Sub nodecur_AfterUpdate()
If Val(nodecur) < (BeamDimensions.numelem + 2) And Val(nodecur) > 0 And
Val(nodecur) = Int(Val(nodecur)) Then
'if current node number is less or equal to total number of nodes,
positive, and integer then
'select corresponding entry in ListBox1 and
'put value of selected load and moment from ListBox1 in "loadcur" and
"momcur"
ListBox1.ListIndex = Val(nodecur) - 1
loadcur = ListBox1.List(Val(nodecur) - 1, 1)
momcur = ListBox1.List(Val(nodecur) - 1, 2)
Else
'otherwise give error beep, and clear the text boxes for re-entry
beep
nodecur = ""
loadcur = ""
momcur = ""
'set flag ctrlbck for getting focus back
ctrlbck.Value = True
End If
End Sub

Private Sub loadcur_Enter()
If ctrlbck.Value = True Then
'give focus back to "nodecur" if it contained an invalid entry
ctrlbck.Value = False
nodecur.SetFocus
End If
End Sub

Private Sub UserForm_Initialize()
If BeamDimensions.fpsunits = True Then
'set units of "loadmom" to fps if set in BeamDimensions


151
Label2.Caption = "Load (kip):"
Label3.Caption = "Moment (kip-ft):"
Label7.Caption = "Load kip"
Label8.Caption = "Moment kip-ft"
End If
'read total number of nodes from form-"BeamDimensions"
numnode = 1 + BeamDimensions.numelem
'read total number of elements from form-"BeamDimensions"
numelem = BeamDimensions.numelem
loadflag = True
'dimension an array according to number of nodes
numnode = numnode - 1
ReDim nodedata(numnode, 3)
If BeamDimensions.filestatus = True Then
'if a file has been read in BeamDimensions then
'Declare filerec to be of user-defined type Record
Dim filerec As Record
'open same file for random I/O which was opened in "BeamDimensions"
Open BeamDimensions.FileLoaded For Random As #1 Len = Len(filerec)
' Read record from file
Get #1, 1, filerec
'Close the file
Close #1
numelemfile = filerec.numel55
'check if number of elements is same in file as
'on "BeamDimensions"
If Val(numelem) = Val(numelemfile) Then
'Declare "nod2" to be of user type "doubler"
Dim nod2 As doubler
'get name of "beam data (bdt) file" from "BeamDimensions"
file1 = BeamDimensions.FileLoaded
'truncate ".bdt" and concatenate ".ndt" (node data)
len1 = Len(file1) - 4
file1 = Left(file1, len1)
file1 = file1 & ".ndt"
'open the .ndt file
Open file1 For Random As #1 Len = Len(nod2)
currec = BeamDimensions.numelem


152
'loop for all nodes and read loads
For i = 0 To currec
recnum = i + currec + 1
Get #1, recnum, nod2
'put loads to array "nodedata"
nodedata(i, 1) = nod2.doub
Next i
'loop for all nodes and read node moments
For i = 0 To currec
recnum = recnum + 1
Get #1, recnum, nod2
'put moments to array "nodedata"
nodedata(i, 2) = nod2.doub
Next i
'close .ndt file
Close #1
loadflag = False
End If
End If
'loop through all nodes
For i = 0 To numnode
'put node numbers in array
nodedata(i, 0) = i + 1
'check if file is loaded, otherwise set all loads and moments to zero
If loadflag Then
nodedata(i, 1) = 0
nodedata(i, 2) = 0
End If
Next i
'put values of array "nodedata" in "ListBox1"
ListBox1.List() = nodedata
'reset numload and nummom to zero
numload = 0
nummom = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'count all loads and moments
If ListBox1.List(i - 1, 1) <> 0 Then numload = numload + 1


153
If ListBox1.List(i - 1, 2) <> 0 Then nummom = nummom + 1
Next i
'put number of loads in "loadnum"
loadnum = numload
'put number of moments in "momnum"
momnum = nummom
End Sub















Figure-5.16 Form-memberlen
Code: memberlen
'Declare user-defined type for file I/O
Private Type Record
units55 As Boolean
conbmwt55 As Boolean
consoilsep As Boolean
numel55 As Integer
numpl55 As Integer
nummom55 As Integer
maxiter55 As Integer
numknowdef55 As Integer
numknowrot55 As Integer
beamlen55 As Double
beamwid55 As Double


154
beamdep55 As Double
beamwt55 As Double
youngs55 As Double
msr55 As Double
maxdef55 As Double
End Type
'Declare user-defined type for file I/O
Private Type doubler
doub As Double
End Type

Private Sub CommandButton1_Click()
'exit program
End
End Sub

Private Sub CommandButton2_Click()
'set flag "noerror" to true
noerror = True
If sumlen <> totlen Then
'if summation of length of elements is not equal to total length of beam
then
'give warning beep
beep
'set flag "noerror" to false i.e. error has occured
noerror = False
'prepare error message string
prompter$ = "Summation of element lengths is not equal to total length
of the beam"
'show error message
feedback = MsgBox(prompter$, 48, "Error!")
End If
'set flag "zeroerror" to false
zeroerror = False
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'if any element length is set equal to zero then
'set flag "zeroerror" to true


155
If ListBox1.List(i - 1, 1) = 0 Then zeroerror = True
Next i
'proceed of no error has occured
If noerror Then
If zeroerror Then
'if any element has zero length then set "noerror" to false
noerror = False
'prepare error message string
prompter$ = "No element should have zero length."
'show erro message
feedback = MsgBox(prompter$, 48, "Error!")
End If
End If
If noerror Then
'if no error has occured then give control back to the calling routine
memberlen.Hide
End If
End Sub

Private Sub elemcur_AfterUpdate()
If Val(elemcur) < (BeamDimensions.numelem + 1) And Val(elemcur) > 0 And
Val(elemcur) = Int(Val(elemcur)) Then
'if current element number is less or equal to total number of elements,
not equal to zero, and integer then
'select corresponding entry in ListBox1 and
'put value of selected length from ListBox1 in "lengthcur"
ListBox1.ListIndex = Val(elemcur) - 1
lengthcur = ListBox1.List(Val(elemcur) - 1, 1)
Else
'otherwise give error beep, and clear the text boxes for re-entry
beep
elemcur = ""
lengthcur = ""
'set flag ctrlbck for getting focus back
ctrlbck.Value = True
End If
End Sub



156
Private Sub lengthcur_AfterUpdate()
If elemcur <> "" Then
'if there is any number placed in "elemcur" then put
'current value of "lengthcur" in ListBox1
ListBox1.List(Val(elemcur) - 1, 1) = lengthcur
'reset sumlen to zero
sumlen = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'add lengths of all elements to "sumlen"
sumlen = Val(sumlen) + ListBox1.List(i - 1, 1)
Next i
Else
'if there is no entry in "elemcur" then give warning
beep
feedback = MsgBox("Input element number first", 48, "Error!")
End If
End Sub

Private Sub lengthcur_Enter()
If ctrlbck.Value = True Then
'give focus back to "elemcur" if it contained an invalid entry
ctrlbck.Value = False
elemcur.SetFocus
End If
End Sub

Private Sub ListBox1_AfterUpdate()
'if ListBox1 is clicked, set the values of clicked
'entry in "elemcur" and "lengthcur"
elemcur = ListBox1.Value
lengthcur = ListBox1.List(Val(elemcur) - 1, 1)
End Sub

Private Sub UserForm_Initialize()
If BeamDimensions.fpsunits = True Then
'set units of "memberlen" to fps if set in BeamDimensions
Label6.Caption = "Length ft"


157
Label2.Caption = "Element Length (ft):"
End If
'read total length of beam from form-"BeamDimensions"
totlen = BeamDimensions.Beamlength
'read total number of elements from form-"BeamDimensions"
numelem = BeamDimensions.numelem
loadflag = True
'dimension an array according to number of elements
ReDim lengthList((numelem - 1), 2)
If BeamDimensions.filestatus = True Then
'if a file has been read in BeamDimensions then
'Declare filerec to be of user-defined type Record
Dim filerec As Record
'open same file for random I/O which was opened in "BeamDimensions"
Open BeamDimensions.FileLoaded For Random As #1 Len = Len(filerec)
'read data from file
Get #1, 1, filerec
'Close the file
Close #1
numelemfile = filerec.numel55
'check if number of elements is same in file as
'on "BeamDimensions"
If Val(numelem) = Val(numelemfile) Then
'Declare "nod2" to be of user type "doubler"
Dim nod2 As doubler
'get name of "beam data (bdt) file" from "BeamDimensions"
file1 = BeamDimensions.FileLoaded
'truncate ".bdt" and concatenate ".ndt" (node data)
len1 = Len(file1) - 4
file1 = Left(file1, len1)
file1 = file1 & ".ndt"
'open the .ndt file
Open file1 For Random As #1 Len = Len(nod2)
currec = BeamDimensions.numelem
'loop for all elements
For i = 1 To currec
'read length of elements
Get #1, i, nod2


158
'put lengths to array "lengthList"
lengthList(i - 1, 1) = nod2.doub
Next i
'close .ndt file
Close #1
loadflag = False
End If
End If
'loop through all elements
For i = 0 To (numelem - 1)
'put element numbers in array
lengthList(i, 0) = i + 1
'check if file is loaded, otherwise set all lengths to zero
If loadflag Then
lengthList(i, 1) = 0
End If
Next i
'put values of array "lengthList" in "ListBox1"
ListBox1.List() = lengthList
'reset sumlen to zero
sumlen = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'add lengths of all elements to "sumlen"
sumlen = sumlen + ListBox1.List(i - 1, 1)
Next i
End Sub






Figure-5.17 Form-saver
Code: saver
Private Sub CommandButton1_Click()
'read name of file from "filenamer"


159
filefinder = filenamer.text
'if there any name is given then
If filefinder <> "" Then
'concatenate ".bdt" to name of file
filefinder = filefinder & ".bdt"
If Dir(filefinder) = "" Then
'if a file with same name does not exist then return control to
'calling routine (file name is sent to it)
saver.Hide
Else
'if file exists, ask for replacing
response = MsgBox("File already exists. Replace?", 36)
'if user clicks "OK" then return control to calling
'routine with given file name
If response = 6 Then
saver.Hide
Else
'if user clicks "Cancel" then return control to
'calling routine without any file name
filenamer.text = ""
saver.Hide
End If
End If
End If
End Sub

Private Sub CommandButton2_Click()
'if user presses "Cancel" then return control
'to calling routine without any file name
filenamer.text = ""
saver.Hide
End Sub

Private Sub filenamer_Change()
'read the latest character typed by user
newchar = Right(filenamer.text, 1)
'set charflag to false
charflag = False


160
If newchar <> "" Then
'if there is any character, put its ASCII code in charnum
charnum = Asc(newchar)
End If
'valid characters are A~Z,a~z,0~9,-, and _; other characters
'are not allowed in file name, therefore check if the input
'character is valid or not
'check if A to Z
If charnum > 64 And charnum < 91 Then charflag = True
'check if a to z
If charnum > 96 And charnum < 123 Then charflag = True
'check if 0 to 9
If charnum > 47 And charnum < 58 Then charflag = True
'check if - or _ and not first char
If Len(filenamer.text) > 1 Then
If charnum = 45 Or charnum = 95 Then charflag = True
End If
'check that 8 character filename limit is not crossed
If Len(filenamer.text) > 8 Then charflag = False
If charflag Then
'if all validity requirements are met then update "checker"
checker.text = filenamer.text
Else
'otherwise give warning beep (for invalid characters
'or exceeding 8 char limit)
beep
'delete the newly entered character from "filenamer"
filenamer.text = checker.text
End If
End Sub

Code: starter
Private Sub Label1_Click()
'return control to calling routine
Unload starter
End Sub

Private Sub UserForm_Click()


161
'return control to calling routine
Unload starter
End Sub

162
C H A P T E R S I X
USER GUIDE
6.1 Installation
The program BEAMDEZ is included with this thesis on a floppy put inside the back
cover. Run the INSTALL.EXE file. Its a WinZip SelfExtractor file with C:\Program
Files\ACAD2000\ as default directory. If AutoCAD 2000 directory is different on your
computer then provide its path. This file will install required files in your AutoCAD 2000
directory.




Figure-6.1 Figure-6.2
6.2 Loading the Program
At AutoCAD 2000 command prompt type APPLOAD and press enter, or choose Load
Application from Tools menu as shown in figures 6.1 and 6.2 respectively. Choose
the beam.dvb file and click the load button as shown in figure 6.3





163









Figure-6.3
6.3 Running the Program
Type VBARUN at AutoCAD command prompt (figure-6.4). This will bring the macro
dialog. Choose beam.dvb!beamrun and click the run button (figure-6.5). This will
bring the initialization screen with logo, click anywhere on this screen to continue.




Figure-6.4


164








Figure-6.5
6.4 Entering Beam Data








Figure-6.6


165
Either load data from a file or enter new data. To load a data file, click on button labeled
Load Data File, choose a file name and click OK. To enter new data, select units,
and fill the boxes with suitable data. Holding mouse cursor over anything for a while
shows a help tip, as shown for Concrete E in the figure. After filling the boxes, click
OK to continue, this will bring the form for element lengths.
6.5 Discretizing the Beam
Element lengths should be selected in such a way that nodes should be available at
column centers and edges. Also, the element aspect ratio of 2:1 is recommended, i.e., no
element should be more than double than its adjacent elements. The examples, which are
given in next chapter, may be referred for clarification of discretization.
6.6 Entering Element Lengths
Element lengths are then entered in the form shown below:







Figure-6.7
6.7 Applied Loads and Moments
The loads and moment applied through the columns are entered in the form shown on
next page at the central nodes of columns.


166







Figure-6.8
6.8 Boundary Conditions
If there are any known rotations or deflections, they are entered in the form shown below.
All unknown rotations and deflections are marked as none.







Figure-6.9


167
6.9 Results
After entering all the data, the results are shown on a multipage. Below are shown the
output results on different pages.







Figure-6.10 Figure-6.11







Figure-6.12 Figure-6.13




168








Figure-6.14 Figure-6.15








Figure-6.16 Figure-6.17




169







Figure-6.18 Figure-6.19










Figure-6.20


170
6.10 Cursor Icons
The program shows different cursor icons when mouse is over different objects; they are
described below.
The Pencil: Mouse cursor changes to pencil icon when it is over a box in which the
user can enter values.
The Mouse: Mouse cursor changes to mouse icon when it is over something that
can be clicked only for selection.
The Floppy: Mouse cursor changes to floppy icon when it is over a button that is
for loading or saving files.
The Green Signal: Mouse cursor changes to green signal icon when it is over OK
button, user gives the green signal to proceed to next step.
The Exit Door: Mouse cursor changes to exit door icon when it is over the exit
button.
The Graph: Mouse cursor changes to graph icon when it is over the plot button.
Printing: Mouse cursor changes to printing icon when it is over the print this
screen button.
Text: Mouse cursor changes to text icon when it is over the button for exporting
results in text format.
The Band Matrix: Mouse cursor changes to band matrix icon when it is over the
button for viewing the band matrix.
The MUET Monogram: Mouse cursor changes to Mehran Universitys
monogram when it is over the about button.
U Turn: Mouse cursor changes to U Turn icon when it is over the new problem
button.

171
C H A P T E R S E V E N
EXAMPLE PROBLEMS
Example problem 1:
Design a rectangular combined footing using the conventional method.






Given:


Column Dead load (kN) Live load (kN) Total load (kN)
1 189 277 466
2 157 191 348
Applied loads


kPa q MPa f MPa f
a c y
110 7 . 20 414
'
= = =


172
Column Moment
dead
(kN-m) Moment
live
(kN-m) Total moment
1 16 15 21
2 35 30 65
Applied Moments
Solution:
Step 1 convert loads to ultimate and find ultimate soil pressure:

















This is necessary so that eccentricity is not introduced in finding L using working loads
and then switching to ultimate values.
Step 2 Find footing dimensions L and B; first locate load resultant from center of
column 2.



To make the resultant of 1280 kN (factored loads) fall at L/2 :


kN p
u
5 . 735 ) 277 ( 7 . 1 ) 189 ( 4 . 1
1
= + =
kN P
u
5 . 544 ) 191 ( 7 . 1 ) 157 ( 4 . 1
2
= + =
kN P P P
w
814 348 466
2 1
= + = + = E
kN P P P
u u u
1280 5 . 544 5 . 735
2 1
= + = + = E
814
1280
=
E
E
=
w
u
P
P
UR ratio Ultimate
572 . 1 = UR
) 572 . 1 ( 110 ) ( = = UR q q
a ult
kPa q
ult
973 . 172 =
9 . 47 100 ) 5 . 735 ( 5 1280 = x
m L 775 . 5 2
2
26 .
757 . 2 = |
.
|

\
|
+ =
m x 757 . 2
1280
9 . 47 100 ) 5 . 735 ( 5
=

=


173
Step 3 Find B:


q
ult
= 172.973 1.281 = 221.6475 kN/m
Use B = 1.35 m
Step 4 Draw shear and moment diagrams













u
P BLq E =
m B 281 . 1
) 973 . 172 )( 775 . 5 (
1280
= =


174
Step 5 select depth based on analysis for both wide-beam and diagonal tension.
Obtain critical location for wide beam first (slope of shear diagram = constant) using V
diagram:












Checking diagonal tension at column 2 using d just obtained for a three-side zone and
v
c
=1.29 MPa from table A-1


The net shear is (column load upward soil force) in diagonal tension zone:



) ( 1 29 . 559 . inspection by column at kN V Max =
d d Bv
c
648 . 221 29 . 559 =
) 1 ( 66 . 0 = A table from allowable MPa v
c
d d 648 . 221 29 . 559 ) 1000 66 . 0 ( 35 . 1 =
29 . 559 648 . 221 891 = + d d
m d 503 . 0
648 . 1112
29 . 559
= =
m perimeter 786 . 1 503 . 0 26 . 0 ) 2 )( 2 / 503 . 0 26 . 0 ( = + + + =
2
391 . 0 ) 763 . 0 )( 512 . 0 ( ) 503 . 0 26 . 0 )( 2 / 503 . 0 26 . 0 ( m A = = + + =
kN P P V
soil col
304 . 480
35 . 1
648 . 221
391 . 0 5 . 544 = = =
.
2
2 column of width w where d w
d
w perimeter = + + |
.
|

\
|
+ =
( ) d w
d
w A + |
.
|

\
|
+ =
2


175




At column 1 a four-side zone gives







By inspection a three-side diagonal tension is not critical at column 1.
Step 6 Design main reinforcement steel (between column 1 and 2).
For f
y
=414 MPa and f
c

=20.7 MPa and b = 1.35 m


Obtain a:








. . 1290 647 . 534
) 503 . 0 )( 786 . 1 (
304 . 480
K O kPa kPa v Actual < = =
2 2 2
645 . 0 ) 503 . 0 3 . 0 ( ) ( m d w A = + = + =
kN V 633 . 629
35 . 1
648 . 221
645 . 0 5 . 735 = =
m d w perimeter 212 . 3 ) 503 . 0 3 . 0 ( 4 ) ( 4 = + = + =
. . 1290 712 . 389
503 . 0 212 . 3
633 . 629
K O kPa kPa v < =

=
|
u
n
M
M =
|
u
y s
M
a d f A = ) 2 / (
|
y
u
s
f
M
a d A = ) 2 / (
T C =
y s c
f A ab f =
'
85 . 0
s
s
c
y s
A
A
b f
f A
a 429 . 17
) 35 . 1 )( 20700 ( 85 . 0
414000
85 . 0
'
= = =
) 414000 ( 9 . 0
655 . 646
) 715 . 8 503 . 0 ( =
s s
A A


176

Using quadratic formula:


<
max
= 0.016 from table A-2.
Use 10, 25mm | bars @ 14 cm c/c spacing across top of footing (A
s
= 4909 mm
2
)
Run 1/3 of bars full length of footing (less 7.5 cm end covers)
Development length:




Total length of bar provided = 5 + 0.13/2 + 0.15 =5.215 m
Step 7 Find steel in short direction at column 2 (refer to figure for width):





0 00174 . 0 503 . 0 715 . 8
2
= +
s s
A A
2
4898 mm A
s
=
. .
38 . 1
0072 . 0
) 503 . 0 ( 35 . 1
004898 . 0
min
K O
f bd
A
y
s
= > = = =
m d w B 637 . 0 ) 503 . 0 ( 75 . 0 26 . 0 75 . 0 ' = + = + =
2
1
'
1
9 . 490 019 . 0 / mm A and C where f f A C L
b c y b d
= = =
mm L
d
849 7 . 20 / 414 9 . 490 019 . 0 = =
mm d and C where f d C L
b y b d
25 058 . 0 min
2 2
= = =
mm L
d
600 414 25 058 . 0 min = =


177




Take d = 0.503 - 0.025=0.478 m to allow for longitudinal rebars:





Using quadratic formula:



Use 4, 18 mm | bars (A
s
=1016 mm
2
)
Development length


L
d
furnished = 0.545 0.025 = 0.52 m
m
w B
L 545 . 0
2
26 . 0 35 . 1
2
' =

=
) ( 928 . 632
) 637 . 0 ( 35 . 1
5 . 544
'
2
ve conservati kPa
BB
P
q
u
= = =
m kN
L
q M = = = 998 . 93
2
545 . 0
928 . 632
2
'
2 2
|
y
s
f
M
a d A = ) 2 / (
s s
c
y
A A
B f
f
a 938 . 36
' 85 . 0
'
= =
) 414000 ( 90 . 0
998 . 93
) 469 . 18 478 . 0 ( =
s s
A A
2
538 mm A
s
=
min min
0033 . 0
38 . 1
00177 . 0
) 478 . 0 ( 637 . 0
000538 . 0
use
f
y
= = < = =
2
min
1005 ) 478 . 0 )( 637 . 0 ( 0033 . 0 ' mm d B A
s
= = =
mm f A f L
c b y d
439 7 . 20 / 254 414 019 . 0 / 019 . 0
'
= = =
mm L
d
432 414 18 058 . 0 min = =
0 000252 . 0 478 . 0 469 . 18
2
= +
s s
A A


178
Compute short direction steel at column 1; use d = 0.478 m










Using quadratic formula:




Use 7, 18 mm | bars (A
s
= 1778 mm
2
)

m B 017 . 1 ) 478 . 0 ( 5 . 1 3 . 0 ' = + =
kPa q 708 . 535
) 017 . 1 ( 35 . 1
5 . 735
= =
m kN M = = 827 . 73
2
525 . 0
708 . 535
2
|
y
u
s
f
M
a d A = ) 2 / (
s
c
s y
A
B f
A f
a 138 . 23
' 85 . 0
'
= =
) 414000 ( 9 . 0
827 . 73
) 568 . 11 478 . 0 ( =
s s
A A
0 000198 . 0 47 . 0 568 . 11
2
= +
s s
A A
2
7 . 418 mm A
s
=
0033 . 0 00086 . 0
) 478 . 0 ( 017 . 1
0004187 . 0
min min
= < = = use
2
1620 ) 478 . 0 )( 017 . 1 ( 0033 . 0 mm A
s
= =
mm L
d
439 7 . 20 / 254 414 019 . 0 = =
m L 525 . 0
2
3 . 0 35 . 1
' =

=


179
Step 8 Check dowel requirements of column to footing. At column 2 the supporting area
is not on all sides; therefore, the bearing stress is limited to



Dowels not required for load transfer
Use 4 dowels to provide at least 0.005 A
g
:

Use 4, 12 mm | bars (A
s
= 452 mm
2
). At column 1 with concrete all around



Use four dowels same size as column 2.
Step 9 Provide minimum reinforcement ratio of 0.002 for cantilever portion of footing.

Use 7, 18 mm | bars @ 20.5 cm c/c (A
s
= 1778 mm
2
)
Run 4 bars full length to use as chairs for short direction steel.
Step 10 Final sketch (and using approximate minimum steel = 1.38/f
y
for transverse
zones a of fig below):
When zone a = 3.985,
MPa f f
c c
317 . 12 ) )( 7 . 0 ( 85 . 0
'
= =
OK kN kN P > = = 5 . 544 595 . 832 ) 26 . 0 ( 1000 317 . 12
2
2 2
338 ) 26 . 0 ( 005 . 0 mm A
s
= =
2 2
1
2
use
A
A
> =
MPa f f
c c
633 . 24 ) 2 )( )( 7 . 0 ( 85 . 0
'
= =
kN kN P 5 . 735 97 . 2216 ) 3 . 0 )( 1000 ( 633 . 24
2
> = =
2
1620 ) 6 . 0 )( 35 . 1 ( 002 . 0 mm A
s
= =
7 . 0 85 . 0
'
= = | | where f f
c c


180
A
s
=(1.38 / 414)3.9850.478=6349 mm
2
Use 25- 18 mm | bars
When zone a = 0.136 m, use one 18 mm | bar
As steel in both a zones and b zones (w+0.75d and w+1.5d, from Step 7) is calculated
using
min
therefore they are considered as a single zone for computing bar-spacing.
Use 37- 18mm | bars @ 15.7 cm c/c.






Final design sketch


181

Example problem 2:
Redesign the footing in Example problem 1 by using the finite element method.
Determine rotations, deflections, shear, moment, and soil pressure at every node and draw
the shear force, bending moment, deflection, and soil pressure diagrams.
Solution:
Step 1 Input data to the finite element program: BEAMDEZ.
Beam Data:
beam length = 5.775 (m)
beam width = 1.35 (m)
beam depth = 0.6 (m)

k
s
is calculated as:
k
s
= 40(safety factor)q
a

k
s
= 403110 =13200 kN/m
3

Load factor, LF = EP
u
/EP
w
= 1280/814 = 1.572
Use k
s
= LFk
s
= 1.57213200 = 20757 kN/m
3
modulus of subgrade reaction, ks = 20757 (kN/m^3)

modulus of elasticity for concrete = 22500000 (kPa)

Step 2 Discretize the beam and input element data to the program
number of elements = 17





182








Element Length (m)
1 0.295
2 0.2
3 0.15
4 0.15
5 0.226
6 0.3
7 0.4
8 0.5
9 0.5
10 0.597
11 0.597
12 0.55
13 0.45
14 0.35
15 0.25
16 0.13
17 0.13







183
Step 3 Input the applied loads to the program.
Applied Loads:
number of point loads = 2
number of moments = 2

node point load (kN) moment (kN-m)
1 0 0
2 0 0
3 0 0
4 735.5 100
5 0 0
6 0 0
7 0 0
8 0 0
9 0 0
10 0 0
11 0 0
12 0 0
13 0 0
14 0 0
15 0 0
16 0 0
17 544.5 47.9
18 0 0







Step 4 Get the output from the program
Shear and moment at different nodes is computed as follows by the finite element
program BEAMDEZ.



184






























(a) Finite element nodes, (b) Shear force diagram (c) Bending
moment diagram.







185
Rotations and Deflections:

node rotation (rads) deflection (m)
1 -1.0377734519643E-03 8.8755662258179E-03
2 -1.04361249509537E-03 8.56884888491384E-03
3 -1.05638757642438E-03 8.35901080225222E-03
4 -1.07318810583341E-03 8.19938202401738E-03
5 -1.11015071144748E-03 8.03536039563571E-03
6 -1.12684593522424E-03 7.78172663389098E-03
7 -1.08375114556973E-03 7.4483775443608E-03
8 -9.27498528441175E-04 7.04266946511677E-03
9 -6.06595717569664E-04 6.65408366768268E-03
10 -1.85513876241704E-04 6.45277025262321E-03
11 3.88229918489995E-04 6.51090393322486E-03
12 9.74252507162242E-04 6.91876025529445E-03
13 1.46282862209597E-03 7.59268047671494E-03
14 1.78245567183365E-03 8.32638602463571E-03
15 1.95576683773571E-03 8.98283942851845E-03
16 2.02771044502576E-03 9.48177916983684E-03
17 2.04527493002787E-03 9.74668144612059E-03
18 2.04471122365116E-03 1.00125183324716E-02


Shear at Nodes:

node shear on left (kN) shear on right(kN)
1 0 -73.3696485354595
2 -73.3696485354595 -132.798322650586
3 -132.798322650586 -173.789584631866
4 -173.789584631866 527.246014401947
5 527.246014401947 484.914718561112
6 484.914718561112 427.56516088854
7 427.56516088854 354.51383879332
8 354.51383879332 265.706639565207
9 265.706639565207 172.476439649397
10 172.476439649397 73.2971054981952
11 73.2971054981952 -35.6244845113681
12 -35.6244845113681 -146.813032293577


186
node shear on left (kN) shear on right(kN)
13 -146.813032293577 -253.193888635818
14 -253.193888635818 -346.522517781034
15 -346.522517781034 -422.037520978226
16 -422.037520978226 -472.520129921786
17 -472.520129921786 36.4741374588287
18 36.4741374588287 7.570477578E-09

Moments at Nodes:

node moment on left(kN-m) moment on right(kN-m)
1 0 -1.2805685400E-09
2 -21.6440463167964 -21.6440463183681
3 -48.2037108479999 -48.2037108461373
4 -74.2721485455986 -174.272148543503
5 -95.18524638284 -95.18524638284
6 14.4054800115991 14.4054800113663
7 142.675028279366 142.675028278434
8 284.480563796737 284.480563796329
9 417.333883579675 417.33388357998
10 503.572103404265 503.572103404724
11 547.330475387753 547.330475387891
12 526.062658134899 526.062658134702
13 445.315490374443 445.315490374342
14 331.378240488208 331.378240488732
15 210.09535926531 210.095359265339
16 104.585979021329 104.585979020922
17 43.1583621315658 -4.74163786880672
18 0 0

Soil Pressure:

node soil pressure Q (kPa)
1 184.230128149302
2 177.863596304157
3 173.507987222349
4 170.194572672529
5 166.789975732211


187
node soil pressure Q (kPa)
6 161.525299739675
7 154.605972688297
8 146.184690087429
9 138.118814690089
10 133.9401521337
11 135.146832941948
12 143.612706619147
13 157.601268655172
14 172.830794713363
15 186.456798017757
16 196.813290228303
17 202.311866777125
18 207.829843027112
















Step 5 select depth based on analysis for both wide-beam and diagonal tension.
Obtain critical location for wide beam first (slope of shear diagram = constant) using V
diagram:

) ( 1 25 . 527 . inspection by column at kN V Max =


188












Checking diagonal tension at column 2 using d just obtained for a three-side zone and
v
c
=1.29 MPa from table A-1:


The net shear is (column load upward soil force) in diagonal tension zone:







At column 1 a four-side zone gives



d d Bv
c
648 . 221 25 . 527 =
) 1 ( 66 . 0 = A table from allowable MPa v
c
d d 648 . 221 25 . 527 ) 1000 66 . 0 ( 35 . 1 =
25 . 527 648 . 221 891 = + d d
m d 474 . 0
648 . 1112
25 . 527
= =
m perimeter 728 . 1 474 . 0 26 . 0 ) 2 )( 2 / 474 . 0 26 . 0 ( = + + + =
2
365 . 0 ) 734 . 0 )( 497 . 0 ( ) 474 . 0 26 . 0 )( 2 / 474 . 0 26 . 0 ( m A = = + + =
kN P P V
soil col
606 . 484
35 . 1
648 . 221
365 . 0 5 . 544 = = =
. . 1290 653 . 591
) 474 . 0 )( 728 . 1 (
606 . 484
K O kPa kPa v Actual < = =
2 2 2
599 . 0 ) 474 . 0 3 . 0 ( ) ( m d w A = + = + =
.
2
2 column of width w where d w
d
w perimeter = + + |
.
|

\
|
+ =
( ) d w
d
w A + |
.
|

\
|
+ =
2


189



By inspection a three-side diagonal tension is not critical at column 1.
Step 6 Design main reinforcement steel (between column 1 and 2).
For f
y
=414 MPa and f
c

=20.7 MPa and b = 1.35 m


Obtain a:



Using quadratic formula:


<
max
= 0.016 from table A-2.
Use 9, 22mm | bars @ 15.75 cm c/c spacing across top of footing (A
s
= 3420 mm
2
)
Run 1/3 of bars full length of footing (less 7.5 cm end covers)
Development length:


kN V 142 . 637
35 . 1
648 . 221
599 . 0 5 . 735 = =
m d w perimeter 096 . 3 ) 474 . 0 3 . 0 ( 4 ) ( 4 = + = + =
. . 1290 167 . 434
474 . 0 096 . 3
142 . 637
K O kPa kPa v < =

=
s
s
c
y s
A
A
b f
f A
a 429 . 17
) 35 . 1 )( 20700 ( 85 . 0
414000
85 . 0
'
= = =
) 414000 ( 9 . 0
33 . 547
) 715 . 8 474 . 0 ( =
s s
A A
0 00147 . 0 474 . 0 715 . 8
2
= +
s s
A A
2
3302 mm A
s
=
. .
38 . 1
0052 . 0
) 474 . 0 ( 35 . 1
003302 . 0
min
K O
f bd
A
y
s
= > = = =
2
1
'
1
380 019 . 0 / mm A and C where f f A C L
b c y b d
= = =
mm L
d
657 7 . 20 / 414 380 019 . 0 = =


190


Total length of bar provided = 5 + 0.13/2 + 0.15 =5.215 m
Step 7 Find steel in short direction at column 2 (refer to figure for width):








Take d = 0.474 - 0.025=0.449 m to allow for longitudinal rebars:






m d w B 616 . 0 ) 474 . 0 ( 75 . 0 26 . 0 75 . 0 ' = + = + =
m
w B
L 545 . 0
2
26 . 0 35 . 1
2
' =

=
) ( 762 . 654
) 616 . 0 ( 35 . 1
5 . 544
'
2
ve conservati kPa
BB
P
q
u
= = =
m kN
L
q M = = = 24 . 97
2
545 . 0
762 . 654
2
'
2 2
|
y
s
f
M
a d A = ) 2 / (
s s
c
y
A A
B f
f
a 198 . 38
' 85 . 0
'
= =
) 414000 ( 90 . 0
24 . 97
) 099 . 19 449 . 0 ( =
s s
A A
mm d and C where f d C L
b y b d
22 058 . 0 min
2 2
= = =
mm L
d
528 414 22 058 . 0 min = =
0 00026 . 0 449 . 0 099 . 19
2
= +
s s
A A


191
Using quadratic formula:



Use 6, 14 mm | bars (A
s
=924 mm
2
)
Development length


L
d
furnished = 0.545 0.025 = 0.52 m
Compute short direction steel at column 1; use d = 0.449 m









2
594 mm A
s
=
min min
0033 . 0
38 . 1
0022 . 0
) 449 . 0 ( 616 . 0
000594 . 0
use
f
y
= = < = =
2
min
922 ) 449 . 0 )( 616 . 0 ( 0033 . 0 ' mm d B A
s
= = =
mm f A f L
c b y d
266 7 . 20 / 154 414 019 . 0 / 019 . 0
'
= = =
m B 974 . 0 ) 449 . 0 ( 5 . 1 3 . 0 ' = + =
kPa q 358 . 559
) 974 . 0 ( 35 . 1
5 . 735
= =
m kN M = = 087 . 77
2
525 . 0
358 . 559
2
|
y
u
s
f
M
a d A = ) 2 / (
s
c
s y
A
B f
A f
a 158 . 24
' 85 . 0
'
= =
) 414000 ( 9 . 0
087 . 77
) 079 . 12 449 . 0 ( =
s s
A A
mm L
d
336 414 14 058 . 0 min = =
m L 525 . 0
2
3 . 0 35 . 1
' =

=


192

Using quadratic formula:




Use 6, 18 mm | bars (A
s
= 1524 mm
2
)


Step 8 Check dowel requirements of column to footing.
Dowel requirements for load transfer at column 1 and column 2 are same as in Example
problem 1.
Step 9 Provide minimum reinforcement ratio of 0.002 for cantilever portion of footing:
Same as in Example problem 1.





0 00021 . 0 449 . 0 079 . 12
2
= +
s s
A A
2
7 . 473 mm A
s
=
0033 . 0 0011 . 0
) 449 . 0 ( 974 . 0
0004737 . 0
min min
= < = = use
2
1458 ) 449 . 0 )( 974 . 0 ( 0033 . 0 mm A
s
= =
mm L
d
439 7 . 20 / 254 414 019 . 0 = =


193
COMPARISON
#
Conventional
Method
Finite Element
Method A%
1 Max. Shear at column 1 559.29 kN 527.25 kN -5.73
2 Max. Shear at column 2 486.87 kN 472.52 kN -2.95
3 Max. mid-span Moment 646.66 kN-m 547.33 kN-m -15.36
4
Max. Moment under
col-1 59.72 kN-m 95.19 kN-m 59.39
Area of steel required mm
2

5
Main reinforcement
steel (between col. 1
and 2) 4898 3302 -32.58
6
Transverse steel under
column 1 1620 1458 -10.00
7
Transverse steel under
column 2 1005 922 -8.26
8
Steel in cantilever
portion 1620 1620 0



194
Example problem 3:
Design a rectangular combined footing using the conventional method.





Given:



Column Dead load (kip) Live load (kip) Total load (kip)
1 120 80 200
2 70 60 130
3 150 100 250
Applied loads

Column Moment
dead
(kip-ft) Moment
live
(kip-ft) Total Moment
(kip-ft)
1 40.5 25.5 66
2 28 24 52
3 42 36 78
Applied Moments
ksf q ksi f ksi f
a c y
4 4 40
'
= = =


195
Solution:
Step 1 convert loads to ultimate and find ultimate soil pressure:






M
u1
= 1.4(40.5) + 1.7(25.5) = 100 kip-ft
M
u2
= 1.4(28) + 1.7(24) = 80 kip-ft
M
u3
= 1.4(42) + 1.7(36) = 120 kip-ft












This is necessary so that eccentricity is not introduced in finding L using working loads
and then switching to ultimate values.

Step 2 Find footing dimensions L and B; first locate load resultant from center of
column 2.



To make the resultant of 884 kip (factored loads) fall at L/2 :


kip p
u
304 ) 80 ( 7 . 1 ) 120 ( 4 . 1
1
= + =
kip P
u
200 ) 60 ( 7 . 1 ) 70 ( 4 . 1
2
= + =
kip P P P P
w
580 250 130 200
3 2 1
= + + = + + = E
kip P P P P
u u u u
884 380 200 304
3 2 1
= + + = + + = E
580
884
=
E
E
=
w
u
P
P
UR ratio Ultimate
524 . 1 = UR
) 524 . 1 ( 4 ) ( = = UR q q
a ult
ksf q
ult
097 . 6 =
120 80 100 ) 380 ( 27 ) 200 ( 12 884 + + + = x
ft L 293 . 30 2
12
8
48 . 14 = |
.
|

\
|
+ =
ft x 48 . 14
884
120 80 100 ) 380 ( 27 ) 200 ( 12
=
+ + +
=
kip P
u
380 ) 100 ( 7 . 1 ) 150 ( 4 . 1
3
= + =


196
Step 3 Find B:


q
ult
= 6.097 4.787 = 29.182 kip/ft

Use B = 4.84 ft













u
P BLq E =
ft B 787 . 4
) 097 . 6 )( 293 . 30 (
884
= =


197
Step 4 Draw shear and moment diagrams




















198
Step 5 select depth based on analysis for both wide-beam and diagonal tension.
Obtain critical location for wide beam first (slope of shear diagram = constant) using V
diagram:

















Checking diagonal tension at column 1 using d just obtained for a three-side zone and
v
c
=31.0 ksf from table A-1.


The net shear is (column load upward soil force) in diagonal tension zone:






) ( 3 483 . 281 . inspection by column at kip V Max =
d d Bv
c
182 . 29 483 . 281 =
) 1 ( 5 . 15 = A table from allowable ksf v
c
483 . 281 202 . 104 = d
ft d 7 . 2
202 . 104
483 . 281
= =
ft perimeter 9 . 4 7 . 2 12 / 16 ) 2 )( 2 / 7 . 2 12 / 16 ( = + + + =
2
823 . 10 ) 7 . 2 12 / 16 )( 2 / 7 . 2 12 / 16 ( ft A = + + =
kip P P V
soil col
744 . 238
84 . 4
182 . 29
823 . 10 304 = = =
. . 31 407 . 9
) 7 . 2 )( 4 . 9 (
744 . 238
K O ksf ksf v Actual < = =
.
2
2 column of width w where d w
d
w perimeter = + + |
.
|

\
|
+ =
( ) d w
d
w A + |
.
|

\
|
+ =
2


199
At column 2 a four-side zone gives




At column 3 a four-side zone gives




By inspection a three-side diagonal tension is not critical at column 2 and column 3.
Step 6 Design main reinforcement steel (between column 2 and 3).
For f
y
=40 ksi and f
c

=4 ksi and b = 4.84 ft


Obtain a:






2 2 2
69 . 13 ) 7 . 2 1 ( ) ( ft d w A = + = + =
kip V 458 . 117
84 . 4
182 . 29
69 . 13 200 = =
ft d w perimeter 8 . 14 ) 7 . 2 1 ( 4 ) ( 4 = + = + =
. . 31 939 . 2
7 . 2 8 . 14
458 . 117
K O ksf ksf v << =

=
|
u
n
M
M =
|
y
u
s
f
M
a d A = ) 2 / (
T C =
y s c
f A ab f =
'
85 . 0
s
s
c
y s
A
A
b f
f A
a 203 . 0
) 12 84 . 4 )( 4 ( 85 . 0
40
85 . 0
'
=

= =
2 2 2
64 . 17 ) 7 . 2 5 . 1 ( ) ( ft d w A = + = + =
kip V 642 . 273
84 . 4
182 . 29
64 . 17 380 = =
ft d w perimeter 8 . 16 ) 7 . 2 5 . 1 ( 4 ) ( 4 = + = + =
. . 31 033 . 6
7 . 2 8 . 16
642 . 273
K O ksf ksf v << =

=


200


Using quadratic formula:

<
max
= 0.037 from table A-2
Use 18 #9 bars @ 3 inch c/c spacing across top of footing (A
s
= 18 inch
2
)
Development length:




Design main reinforcement steel (between column 1 and 2).
a = 0.203A
s


Using quadratic formula:


<
max
= 0.037 from table A-1.
) 40 ( 9 . 0
12 267 . 1596
) 1015 . 0 12 7 . 2 (

=
s s
A A
0 1 . 532 4 . 32 1015 . 0
2
= +
s s
A A
2
37 . 17 inch A
s
=
. .
200
0092 . 0
144 ) 7 . 2 ( 84 . 4
37 . 17
min
K O
f bd
A
y
s
= > =

= =
2
1
'
1
0 . 1 04 . 0 / inch A and C where f f A C L
b c y b d
= = =
inch L
d
25 4000 / 40000 0 . 1 04 . 0 = =
inch d and C where f d C L
b y b d
125 . 1 0004 . 0 min
2 2
= = =
inch L
d
18 40000 125 . 1 0004 . 0 min = =
) 40 ( 9 . 0
12 95 . 1286
) 1015 . 0 12 7 . 2 (

=
s s
A A
0 98 . 428 4 . 32 1015 . 0
2
= +
s s
A A
2
84 . 13 inch A
s
=
. .
200
0074 . 0
144 ) 7 . 2 ( 84 . 4
84 . 13
min
K O
f bd
A
y
s
= > =

= =


201
Use 14 #9 bars (A
s
= 14 inch
2
)
Development length:


Step 7 Lengths of bars for main reinforcement
Size of bars required is same for span-1 (col-1 ~ col-2) and span-2 (col-2 ~ col-3)
therefore run 14 bars full length of the footing (less 3 inch end-cover on each side) and
cut off the remaining 4 bars of span-2 at 24 inch beyond col-2 as computed from moment
capacity diagram shown below.
Moment capacity for 14#9 bars in span-1:
M
n
= A
s
f
y
(d-a/2) where A
s
= 14 in
2

a =4000014/(0.8540004.8412) = 2.836
M
n
= 1440000(32.5-2.836/2) = 17405.92 kip-in = 1450.49 kip-ft
|M
n
= 0.91450.49 = 1305.44 kip-ft
Moment capacity for 18#9 bars in span-2:
M
n
= A
s
f
y
(d-a/2) where A
s
= 18 in
2

a =4000018/(0.8540004.8412) = 3.65
M
n
= 1440000(32.5-3.65/2) = 22087.409 kip-in = 1840.62 kip-ft
|M
n
= 0.9140.62 = 1656.56 kip-ft

inch L
d
25 4000 / 40000 0 . 1 04 . 0 = =
inch L
d
18 40000 125 . 1 0004 . 0 min = =


202








Bar cutoff for main reinforcement under col-2
Step 8 Find steel in short direction at column 1 (refer to figure for width):








Take d = 32.4-1=31.4 inch to allow for longitudinal rebars:
ft d w B 358 . 3 ) 7 . 2 ( 75 . 0 12 / 16 75 . 0 ' = + = + =
ft
w B
L 753 . 1
2
12 / 16 84 . 4
2
' =

=
ksf
BB
P
q
u
705 . 18
) 358 . 3 ( 84 . 4
304
'
1
= = =
in kip
L
q M =

= = 884 . 344
2
12 753 . 1
705 . 18
2
'
2 2


203




Using quadratic formula:




Use 5#10 bars @7.8 inch c/c (A
s
= 6.33 inch
2
)
Development length


L
d
furnished = 1.75312 3 = 18.04 inch < min L
d
provide hooks

Compute short direction steel at column 2




s s
c
y
A A
B f
f
a 98 . 0
' 85 . 0
'
= =
) 40 ( 90 . 0
884 . 344
) 49 . 0 4 . 31 ( =
s s
A A
ft inch A
s
/ 307 . 0
2
=
min min
005 . 0
200
0008 . 0
) 12 ( 4 . 31
307 . 0
use
f
y
= = < = =
inch f A f L
c b y d
32 4000 / 40000 266 . 1 04 . 0 / 04 . 0
'
= = =
ft B 05 . 5 ) 7 . 2 ( 5 . 1 1 ' = + =
ksf q 183 . 8
) 84 . 4 ( 05 . 5
200
= =
in kip M =

= 995 . 180
2
12 92 . 1
183 . 8
2
inch L
d
20 4000 25 . 1 0004 . 0 min = =
ft L 92 . 1
2
1 84 . 4
' =

=
0 58 . 9 4 . 31 49 . 0
2
= +
s s
A A
2
min
33 . 6 ) 4 . 31 )( 12 358 . 3 ( 005 . 0 ' inch d B A
s
= = =


204




Using quadratic formula:



Use 8#10 bars (A
s
= 10.12 inch
2
)


L
d
furnished = 1.9212 3 = 20.04 inch < req. L
d
provide hooks

Compute short direction steel at column 3






s
A a 98 . 0 =
) 40 ( 9 . 0
995 . 180
) 49 . 0 4 . 31 ( =
s s
A A
0 323 . 5 4 . 31 49 . 0
2
= +
s s
A A
ft inch A
s
/ 17 . 0
2
=
005 . 0 00045 . 0
) 12 ( 4 . 31
17 . 0
min min
= < = = use
2
5 . 9 ) 4 . 31 )( 12 05 . 5 ( 005 . 0 inch A
s
= =
inch L
d
32 4000 / 266 . 1 40000 04 . 0 = =
ksf q 146 . 14
) 84 . 4 ( 55 . 5
380
= =
in kip M =

= 711 . 236
2
12 67 . 1
146 . 14
2
s
A a 98 . 0 =
ft L 67 . 1
2
5 . 1 84 . 4
' =

=
ft B 55 . 5 ) 7 . 2 ( 5 . 1 5 . 1 ' = + =
inch L
d
20 4000 25 . 1 0004 . 0 min = =


205



Using quadratic formula:



Use 7#11 bars @ 10 inch c/c (A
s
= 10.94 inch
2
)


L
d
furnished = 1.6712 3 = 17.04 inch < min L
d
provide hooks

Step 9 Check dowel requirements of column to footing. At column 1 the supporting area
is not on all sides; therefore, the bearing stress is limited to



Dowels not required for load transfer
Use 4 dowels to provide at least 0.005 A
g
:

ksi f f
c c
38 . 2 ) )( 7 . 0 ( 85 . 0
'
= =
OK kip kip P > = = 304 28 . 609 ) 16 ( 38 . 2
2
2 2
28 . 1 ) 16 ( 005 . 0 inch A
s
= =
7 . 0 85 . 0
'
= = | | where f f
c c
) 40 ( 9 . 0
711 . 236
) 49 . 0 4 . 31 ( =
s s
A A
0 58 . 6 4 . 31 49 . 0
2
= +
s s
A A
ft inch A
s
/ 21 . 0
2
=
005 . 0 00056 . 0
) 12 ( 4 . 31
21 . 0
min min
= < = = use
2
46 . 10 ) 4 . 31 )( 12 55 . 5 ( 005 . 0 inch A
s
= =
inch L
d
35 4000 / 375 . 1 40000 04 . 0 = =
inch L
d
22 4000 375 . 1 0004 . 0 min = =


206
Use 4#6 bars (A
s
= 1.77 inch
2
). At column 2 with concrete all around



Dowels not required
Use four dowels to provide at least .005 A
g
.
A
s
= 0.005 (12)
2
= 0.72 inch
2
.
Use 4#4 bars (A
s
= 0.78 inch
2
). At column 3 with concrete all around



Dowels not required
Use four dowels to provide at least .005 A
g
.
A
s
= 0.005 (18)
2
= 1.62 inch
2
.
Use 4#6 bars (A
s
= 1.77 inch
2
).
Step 10 Provide minimum reinforcement ratio of 0.002 for cantilever portion of footing.

Use 7#7 bars @ 8.6 inch c/c (A
s
= 4.21 inch
2
)
Run 4 bars full length to use as chairs for short direction steel.
2 2 7 . 3
1
) 7 . 2 1 (
2
2
1
2
use
A
A
> =
+
= =
ksi f f
c c
76 . 4 ) 2 )( )( 7 . 0 ( 85 . 0
'
= =
kip kip P 200 44 . 685 ) 12 ( 76 . 4
2
> = =
2
18 . 4 ) 144 )( 3 )( 84 . 4 ( 002 . 0 inch A
s
= =
2 2 8 . 2
5 . 1
) 7 . 2 5 . 1 (
2
2
1
2
use
A
A
> =
+
= =
ksi f f
c c
76 . 4 ) 2 )( )( 7 . 0 ( 85 . 0
'
= =
kip kip P 380 24 . 1542 ) 18 ( 76 . 4
2
> > = =


207
Step 11 Final sketch (and using approximate minimum steel = 200/f
y
for transverse zones
a of fig below):
When zone a = 6.757 ft
A
s
=(.005)6.7571231.5=12.7 inch
2
Use 11#10 bars @ 8 inch c/c.
When zone a = 9.7 ft,
A
s
=(.005)9.71231.5=18.33 inch
2
Use 12#11 bars @ 10 inch c/c.
As steel in a1, b1 and b2 zones (from Step 8) is calculated using
min
therefore
they are considered as a single zone for computing bar-spacing.
Use 23 #10 bars @ 7.8 inch c/c.
As steel in a2 and b3 zones (from Step 8) is calculated using
min
therefore they are
considered as a single zone for computing bar-spacing.
Use 19 #11 bars @ 10 inch c/c.


208













F
i
n
a
l

s
k
e
t
c
h



209
Example problem 4:
Redesign the footing in Example problem 1 by using the finite element method.
Determine rotations, deflections, shear, moment, and soil pressure at every node and draw
the shear force, bending moment, deflection, and soil pressure diagrams.
Solution:
Step 1 Input data to the finite element program: BEAMDEZ.
Beam Data:

beam length = 30.5 (ft)
beam width = 4.84 (ft)
beam depth = 3 (ft)
k
s
is calculated as:
k
s
= 12(safety factor)q
a

k
s
= 1234 =144 kip/ft
3

Load factor, LF = EP
u
/EP
w
= 884/580 = 1.524
Use k
s
= LFk
s
= 1.524144 = 219.5 kip/ft
3
modulus of subgrade reaction, ks = 219.5 (kcf)
modulus of elasticity for concrete = 524160 (ksf)

Step 2 Discretize the beam and input element data to the program
number of elements = 29
Element Length (ft)
1 0.66635
2 0.66635
3 0.45
4 0.45
5 0.5
6 0.68


210
Element Length (ft)
7 0.75
8 0.75
9 1.2
10 1.75
11 1.554
12 1
13 1
14 0.75
15 0.5
16 0.5
17 0.85
18 1.5
19 1.75
20 1.75
21 1.5
22 1.5
23 2.4
24 1.5
25 1
26 0.75
27 0.75
28 0.8833
29 1.2
Step 3 Input the applied loads to the program.
Applied Loads:

number of point loads = 3
number of moments = 3

node point load (kip) moment (kip-ft)
1 0 0
2 304 100
3 0 0
4 0 0
5 0 0
6 0 0


211
node point load (kip) moment (kip-ft)
7 0 0
8 0 0
9 0 0
10 0 0
11 0 0
12 0 0
13 0 0
14 0 0
15 0 0
16 200 -80
17 0 0
18 0 0
19 0 0
20 0 0
21 0 0
22 0 0
23 0 0
24 0 0
25 0 0
26 0 0
27 380 120
28 0 0
29 0 0
30 0 0
Step 4 Get the output from the program
Shear and moment at different nodes is computed as follows by the finite element
program BEAMDEZ.
Rotations and Deflections:

node rotation (rads) deflection (ft)
1 -1.90280274740935E-03 3.85903453911878E-02
2 -1.90386528427405E-03 3.73221767733048E-02
3 -0.001907930483173 3.60511007175639E-02
4 -1.90004257382928E-03 3.51940022873247E-02
5 -1.88433331180187E-03 3.43422356040202E-02


212
node rotation (rads) deflection (ft)
6 -1.85843492036462E-03 3.34061881907532E-02
7 -1.8103746457302E-03 3.21579951775808E-02
8 -1.74224402077236E-03 3.08248432658327E-02
9 -1.66060496688549E-03 2.95480062536544E-02
10 -1.50826266906429E-03 2.76443094327891E-02
11 -1.25512259582533E-03 2.52223668117729E-02
12 -1.01681749887895E-03 2.34567073404221E-02
13 -8.64777269652738E-04 2.25162780742085E-02
14 -7.19249798187343E-04 2.17249818818629E-02
15 -6.16748316896474E-04 2.12244095993594E-02
16 -5.52518258973158E-04 0.020932245194791
17 -4.80798116221413E-04 2.06737236530881E-02
18 -3.49212092742148E-04 2.03201567364419E-02
19 -9.40161559056004E-05 1.99845197423788E-02
20 2.26972720573229E-04 2.00984495585325E-02
21 5.54444103582402E-04 2.07827057265278E-02
22 8.25243986408098E-04 2.18195648321851E-02
23 1.07244660707287E-03 2.32466390546716E-02
24 1.38033607187552E-03 2.62152880906319E-02
25 1.49780016873123E-03 2.83827453268335E-02
26 1.53345217781748E-03 0.029901545484579
27 1.53382649286268E-03 3.10532852062903E-02
28 1.51177448010676E-03 3.21947077592701E-02
29 1.49780169389108E-03 0.033523060844898
30 1.49212269345947E-03 0.035315879677222

Shear at Nodes:

node shear on left(kip) shear on right(kip)
1 0 -27.3187581809334
2 -27.3187581809334 250.260241651268
3 250.260241651268 228.88215680058
4 228.88215680058 212.056924933077
5 212.056924933077 194.726785409102
6 194.726785409102 173.787646345148
7 173.787646345148 149.360378539665
8 149.360378539665 124.799605798099


213
node shear on left(kip) shear on right(kip)
9 124.799605798099 94.1931751864354
10 94.1931751864354 50.8742520400059
11 50.8742520400059 6.60769277563831
12 6.60769277563831 -25.2150664468553
13 -25.2150664468553 -49.1359099473329
14 -49.1359099473329 -69.3310729175297
15 -69.3310729175297 -83.4238155863844
16 -83.4238155863844 105.457185088595
17 105.457185088595 90.6319234777614
18 90.6319234777614 65.2663429442096
19 65.2663429442096 30.7657175578585
20 30.7657175578585 -6.60061641563067
21 -6.60061641563067 -42.4792041439721
22 -42.4792041439721 -77.2502080735972
23 -77.2502080735972 -125.408898651456
24 -125.408898651456 -179.717564286821
25 -179.717564286821 -217.409140512223
26 -217.409140512223 -245.205093917641
27 -245.205093917641 110.052114229265
28 110.052114229265 82.1202231489021
29 82.1202231489021 45.0226611148056
30 45.0226611148056 1.3021065115E-08

Moments at Nodes:

node moment on left(kip-ft) moment on right(kip-ft)
1 0 -1.2107193470E-08
2 -18.2038545012474 -118.203854521271
3 48.5570575180463 48.5570575306192
4 151.554028050974 151.554028066806
5 246.979644292034 246.979644274339
6 344.34303700272 344.343037001789
7 462.51863648463 462.51863648952
8 574.538920404855 574.538920395542
9 668.138624738902 668.1386247396
10 781.170434951549 781.170434952306
11 870.200376009452 870.200376010733


214
node moment on left(kip-ft) moment on right(kip-ft)
12 880.468730568246 880.468730566208
13 855.253664119169 855.253664114513
14 806.117754160659 806.117754162988
15 754.11944946344 754.119449467864
16 712.407541668974 792.40754166944
17 845.136134209111 845.136134207831
18 922.173269153223 922.173269152583
19 1020.07278354996 1020.07278354969
20 1073.91278925267 1073.91278925224
21 1062.36171050317 1062.36171050341
22 998.642904265958 998.642904266599
23 882.767592137272 882.767592137301
24 581.786235341686 581.786235341802
25 312.209888892714 312.209888893529
26 94.8007483665133 94.8007483666297
27 -89.1030720786657 -209.103072080063
28 -126.563986418536 -126.56398641807
29 -54.0271933223121 -54.0271933221957
30 0 0

Soil Pressure:

node soil pressure Q (ksf)
1 8.47058081336571
2 8.1922178017404
3 7.91321660750528
4 7.72508350206777
5 7.53812071508244
6 7.33265830787032
7 7.058679941479
8 6.76605309685028
9 6.48578737267714
10 6.0679259204972
11 5.53630951518414
12 5.14874726122265
13 4.94232303728876
14 4.76863352306891


215
node soil pressure Q (ksf)
15 4.65875790705939
16 4.59462782025663
17 4.53788234185283
18 4.46027440364899
19 4.38660208345215
20 4.41160967809789
21 4.56180390697285
22 4.78939448066462
23 5.10263727250043
24 5.7542557358937
25 6.23001259923996
26 6.5633892338651
27 6.81619610278071
28 7.06673835315978
29 7.35831185545511
30 7.75183558915023








Step 5 select depth based on analysis for both wide-beam and diagonal tension.
Obtain critical location for wide beam first (slope of shear diagram = constant) using V
diagram:


216















Checking diagonal tension at column 1 using d just obtained for a three-side zone and
v
c
=31.0 ksf from table A-1:


The net shear is (column load upward soil force) in diagonal tension zone:






At column 2 a four-side zone gives

) ( 3 26 . 250 . inspection by column at kip V Max =
d d Bv
c
182 . 29 26 . 250 =
) 1 ( 5 . 15 = A table from allowable ksf v
c
d d 182 . 29 26 . 250 ) 5 . 15 ( 84 . 4 =
26 . 250 202 . 104 = d
ft d 4 . 2
202 . 104
26 . 250
= =
ft perimeter 8 . 8 4 . 2 12 / 16 ) 2 )( 2 / 4 . 2 12 / 16 ( = + + + =
2
46 . 9 ) 4 . 2 12 / 16 )( 2 / 4 . 2 12 / 16 ( ft A = + + =
kip P P V
soil col
96 . 246
84 . 4
182 . 29
46 . 9 304 = = =
. . 31 69 . 11
) 4 . 2 )( 8 . 8 (
96 . 246
K O ksf ksf v Actual < = =
ft d w perimeter 6 . 13 ) 4 . 2 1 ( 4 ) ( 4 = + = + =
.
2
2 column of width w where d w
d
w perimeter = + + |
.
|

\
|
+ =
( ) d w
d
w A + |
.
|

\
|
+ =
2


217






At column 3 a four-side zone gives














By inspection a three-side diagonal tension is not critical at column 2 and column 3.
Step 6 Design main reinforcement steel (between column 2 and 3).
For f
y
=40 ksi and f
c

=4 ksi and b = 4.84 ft


Obtain a:







2 2 2
56 . 11 ) 4 . 2 1 ( ) ( ft d w A = + = + =
kip V 3 . 130
84 . 4
182 . 29
56 . 11 200 = =
. . 31 99 . 3
4 . 2 6 . 13
3 . 130
K O ksf ksf v << =

=
|
u
n
M
M =
|
y
u
s
f
M
a d A = ) 2 / (
T C =
y s c
f A ab f =
'
85 . 0
s
s
c
y s
A
A
b f
f A
a 203 . 0
) 12 84 . 4 )( 4 ( 85 . 0
40
85 . 0
'
=

= =
) 40 ( 9 . 0
12 913 . 1073
) 1015 . 0 12 4 . 2 (

=
s s
A A
2 2 2
12 . 15 ) 4 . 2 5 . 1 ( ) ( ft d w A = + = + =
kip V 84 . 288
84 . 4
182 . 29
12 . 15 380 = =
ft d w perimeter 6 . 15 ) 4 . 2 5 . 1 ( 4 ) ( 4 = + = + =
. . 31 715 . 7
4 . 2 6 . 15
84 . 288
K O ksf ksf v << =

=


218

Using quadratic formula:


<
max
= 0.037 from table A-2
Use 9 #11 bars @ 5.2 inch c/c spacing across top of footing (A
s
= 14.06 inch
2
)
Development length:




Design main reinforcement steel (between column 1 and 2).
a = 0.203A
s


Using quadratic formula:


<
max
= 0.037 from table A-2
0 971 . 357 8 . 28 1015 . 0
2
= +
s s
A A
2
03 . 13 inch A
s
=
. .
200
007 . 0
144 ) 4 . 2 ( 84 . 4
03 . 13
min
K O
f bd
A
y
s
= > =

= =
2
1
'
1
56 . 1 04 . 0 / inch A and C where f f A C L
b c y b d
= = =
inch L
d
39 4000 / 40000 56 . 1 04 . 0 = =
inch d and C where f d C L
b y b d
375 . 1 0004 . 0 min
2 2
= = =
inch L
d
22 40000 375 . 1 0004 . 0 min = =
) 40 ( 9 . 0
12 469 . 880
) 1015 . 0 12 4 . 2 (

=
s s
A A
0 49 . 293 8 . 28 1015 . 0
2
= +
s s
A A
2
59 . 10 inch A
s
=
. .
200
0063 . 0
144 ) 4 . 2 ( 84 . 4
59 . 10
min
K O
f bd
A
y
s
= > =

= =


219
Use 7 #11 bars (A
s
= 10.94 inch
2
)
Development length:


Step 7 Find steel in short direction at column 1 (refer to figure for width):








Take d = 28.8-1=27.8 inch to allow for longitudinal rebars:



Using quadratic formula:

inch L
d
39 4000 / 40000 56 . 1 04 . 0 = =
inch L
d
22 40000 375 . 1 0004 . 0 min = =
ft d w B 133 . 3 ) 4 . 2 ( 75 . 0 12 / 16 75 . 0 ' = + = + =
ft
w B
L 753 . 1
2
12 / 16 84 . 4
2
' =

=
ksf
BB
P
q
u
048 . 20
) 133 . 3 ( 84 . 4
304
'
1
= = =
in kip
L
q M =

= = 64 . 369
2
12 753 . 1
048 . 20
2
'
2 2
s s
c
y
A A
B f
f
a 98 . 0
' 85 . 0
'
= =
) 40 ( 90 . 0
64 . 369
) 49 . 0 8 . 27 ( =
s s
A A
ft inch A
s
/ 372 . 0
2
=
0 268 . 10 8 . 27 49 . 0
2
= +
s s
A A


220



Use 7#8 bars @5.25 inch c/c (A
s
= 5.5 inch
2
)
Development length


L
d
furnished = 1.75312 3 = 18.04 inch < L
d
provide hooks

Compute short direction steel at column 2








Using quadratic formula:

min min
005 . 0
200
001 . 0
) 12 ( 8 . 27
372 . 0
use
f
y
= = < = =
inch f A f L
c b y d
20 4000 / 40000 786 . 0 04 . 0 / 04 . 0
'
= = =
ft B 6 . 4 ) 4 . 2 ( 5 . 1 1 ' = + =
ksf q 983 . 8
) 84 . 4 ( 6 . 4
200
= =
in kip M =

= 612 . 198
2
12 92 . 1
983 . 8
2
s
A a 98 . 0 =
) 40 ( 9 . 0
692 . 198
) 49 . 0 8 . 27 ( =
s s
A A
0 519 . 5 8 . 27 49 . 0
2
= +
s s
A A
ft inch A
s
/ 195 . 0
2
=
inch L
d
16 4000 0 . 1 0004 . 0 min = =
ft L 92 . 1
2
1 84 . 4
' =

=
2
min
23 . 5 ) 8 . 27 )( 12 133 . 3 ( 005 . 0 ' inch d B A
s
= = =


221


Use 10#8 bars (A
s
= 7.85 inch
2
)


L
d
furnished = 1.9212 3 = 20.04 inch ~ req. L
d
O.K.

Compute short direction steel at column 3









Using quadratic formula:


005 . 0 0006 . 0
) 12 ( 8 . 27
195 . 0
min min
= < = = use
2
67 . 7 ) 8 . 27 )( 12 6 . 4 ( 005 . 0 inch A
s
= =
inch L
d
20 4000 / 786 . 0 40000 04 . 0 = =
ksf q 395 . 15
) 84 . 4 ( 1 . 5
380
= =
in kip M =

= 6 . 257
2
12 67 . 1
395 . 15
2
s
A a 98 . 0 =
) 40 ( 9 . 0
6 . 257
) 49 . 0 8 . 27 ( =
s s
A A
0 156 . 7 8 . 27 49 . 0
2
= +
s s
A A
ft inch A
s
/ 26 . 0
2
=
005 . 0 00078 . 0
) 12 ( 8 . 27
26 . 0
min min
= < = = use
ft L 67 . 1
2
5 . 1 84 . 4
' =

=
ft B 1 . 5 ) 4 . 2 ( 5 . 1 5 . 1 ' = + =
inch L
d
16 4000 0 . 1 0004 . 0 min = =


222

Use 7#10 bars @ 9.2 inch c/c (A
s
= 8.86 inch
2
)


L
d
furnished = 1.6712 3 = 17.04 inch < min L
d
provide hooks

Step 8 Check dowel requirements of column to footing.
Dowel requirements for load transfer at column 1, 2 and 3 are same as in Example
problem 3.
Step 9 Provide minimum reinforcement ratio of 0.002 for cantilever portion of footing:
Same as in Example problem 3.









2
51 . 8 ) 8 . 27 )( 12 1 . 5 ( 005 . 0 inch A
s
= =
inch L
d
32 4000 / 27 . 1 40000 04 . 0 = =
inch L
d
20 4000 25 . 1 0004 . 0 min = =


223
COMPARISON
#
Conventional
Method
Finite Element
Method A%
1 Max. Shear at column 1 265.09 kip 250.26 kip -5.59
2 Max. Shear at column 2 119.77 kip 105.46 kip -11.95
3 Max. Shear at column 3 281.48 kip 245.21 kip -12.89
4
Max. mid-span Moment
(span-1) 1280.77 kN-m 880.47 kN-m -31.26
5
Max. mid-span Moment
(span-2) 1596.27 kN-m 1073.91 kN-m -32.72
Area of steel required mm
2

6
Main reinforcement steel
(between col. 1 and 2) 4898 3302 -32.58
7
Transverse steel under
column 1 1620 1458 -10.00
8
Transverse steel under
column 2 1005 922 -8.26
9 Steel in cantilever portion 1620 1620 0





224
Example problem 5:
The following combined footing design is made by IntelliConsultants (pvt.) Ltd. for Isra
University Hospital using a program made in MS-Excel.



















225





















226
Their program uses the conventional method. A comparison of bending moment obtained
by the conventional method and the finite element method is given below:



















Comparison of bending moment by finite element method and
conventional method.
It is quite obvious that the top bars, which are required according to the bending moment
obtained by conventional method, are not required according to the bending moment
obtained by the finite element method. Also the gap between the bottom bars, which has
been provided by calculations according to the conventional method, should not be left as
per finite element calculations. Due to these changes, about 30% steel will be saved.


227
APPENDICES
Table-A1
Allowable wide-beam and diagonal tension shear by ACI Code for several strengths of
concrete for | < 2.0 where | = col. length/col. width
|=0.85
f
c

, psi (MPa)
3000 (21) 3500 (24) 4000 (28) 5000 (35)
Wide beam 2|\f
c

Psi (MPa)
Ksf
93.1 (0.66)
13.4
100.6 (0.71)
14.5
107.5 (0.76)
15.5
120.2(0.85)
17.3
Diagonal tension 4|\f
c

Psi (MPa)
Ksf
186.2 (1.29)
26.8
201.1 (1.37)
29.0
214.0 (1.48)
31.0
240.4(1.66)
34.6

Table-A2
Allowable percent of steel (includes 25% reduction for bending using strength design per
ACI)
F
c

, ksi (MPa) |
1

F
y
, ksi (MPa)
40(275) 50(345) 60(415)
3.0 (21) 0.85 0.028 0.021 0.016
3.5 (24) 0.85 0.032 0.024 0.019
4.0 (28) 0.85 0.037 0.028 0.021
5.0 (35) 0.80 0.044 0.023 0.025
6.0 (42) 0.75 0.049 0.036 0.028

Table-A3
Range of values of modulus of subgrade reaction ks.
Use values as guide and for comparison when using approximate equations.

Soil Ks, kcf Ks, kN/m
3

Loose sand 30~100 4800~16000
Medium dense sand 60~500 9300~80000
Dense sand 400~800 64000~128000
Clayey medium dense sand 200~500 32000~80000
Silty medium dense sand 150~300 24000~48000
Clayey soil:
q
u
s 200 kPa (4 ksf)
75~150 12000~24000
200<q
u
s400 kPa (8 ksf)
150~300 24000~48000
q
u
> 800 kPa (16 ksf) >300 >48000


228
Table-A4
Typical range of values for the static stress strain modulus Es for selected soils
Field values depend on stress history, water content, density, etc.

Es
Soil Ksf Mpa
Clay:
Very soft 50~250 2~15
Soft 100~500 5~25
Medium 300~1000 15~50
Hard 1000~2000 50~100
Sandy 500~5000 25~250
Glacial till:
Loose 200~3200 10~150
Dense 3000~15000 150~720
Very dense 10000~30000 500~1440
Loess: 300~1200 15~60
Sand:
Silty 150~450 5~20
Loose 200~500 10~25
Dense 1000~1700 50~81
Sand and gravel
Loose 1000~3000 50~150
Dense 2000~4000 100~200
Shale 3000~300000 150~5000
Silt 40~400 2~20
Table-A5
Values or value ranges for poissons ratio
Type of soil

Clay, saturated 0.4~0.5
Clay, unsaturated 0.1~0.3
Sandy clay 0.2~0.3
Silt 0.3~0.35
Sand, gravely sand 0.1~1.0
Commonly used 0.3~0.4
Rock 0.1~0.4 (depends somewhat on type of rock)
Loess 0.1~0.3
Ice 0.36
Concrete 0.15








229
Table-A6
Equations for stress strain modulus E
s
by several test methods
E
s
in kPa for SPT and units of q
c
for CPT; divide kPa by 50 to obtain ksf. The N values
should be estimated as N
55
and not N
70
. Refer also to Tables A4 and A5.
Soil SPT CPT
Sand (normally
consolidated)
E
s
= 500(N+15) E
s
= (2 to 4)q
u


E
s
= 7000 \N E
s
= 8000 \ q
c

E
s
= 6000 N ---
--- E
s
= 1.2 (3D
r
2
+2)q
c

E
s
= (15000 to 22000)
ln(N)
E
s
= (1+ D
r
2
)q
c

Sand (saturated) E
s
= 250(N+15) E
s
= F.q
c

e = 1.0 F=3.5
e = 0.6 F=7.0
Sands, all (norm.
consolidated)
E
s
= (2600 to 2900)N
Sand (overconsolidated) E
s
= 40000+1050N E
s
= (6 to 30)q
c


E
s(OCR)
~ E
s,nc
\OCR

Gravelly sand E
s
= 1200(N+6)

E
s
= 600(N+6) Ns15

E
s
= 600(N+6)+2000
N>15

Clayey sand E
s
= 320(N+15) E
s
= (3 to 6)q
c

Silts, sandy silt, or clayey
silt
E
s
= 300(N+6) E
s
= (1 to 2)q
c

E
s
= 2.5 q
c
q
c
<2500 kPa
E
s
= 4q
c
+ 5000
2500<q
c
<5000

E
s
= constrained modulus = E
s
(1-)/{(1+)(1-2)} =
1/m
v

Soft clay or clayey silt E
s
= (3 to 8)q
c

Use the undrained shear strength s
u
in units of s
u

Clay and silt I
P
>30 or organic E
s
= (100 to 500)s
u

Silty or sandy clay I
P
<30 or stiff E
s
= (500 to 1500)s
u


Again E
s,OCR
~ E
s,nc
\OCR

Use smaller s
u
-coefficient for highly elastic clay
Of general application in clays is
E
s
= K.s
u
(units of s
u
)
Where K is defined as K = 4200-142.54I
P
+1.73I
P
2
-0.0071I
p
3

And I
P
= plasticity index in percent. Use 20% s I
P
s 100% and round K to the nearest
multiple of 10
Another equation of general application is
E
s
=9400-8900 I
P
+ 11600 I
c
8800S (kPa)
Where I
P
= plasticity index, I
c
= relative consistency, S = degree of saturation.

230
REFERENCE
Argyris, G.H., and Kelsey, S. (1960), Energy Theorems and Structural Analysis,
Butterworth Scientific Publications, London.
AutoCAD 2000, Copyright 1999, Command Reference, AutoDesk Inc.
AutoCAD 2000, Copyright 1999, Users Guide, AutoDesk Inc.
AutoCAD 2000, Copyright 1999, VBA and ActiveX Automation, AutoDesk Inc.
Biot, M.A. (1937), Bending of an Infinite Beam on an Elastic Foundation, J. Appl.
Mech., 59, A1-A7.
Bourdeau, P.L. (1989) Modeling of membrane action in a two-layer reinforced soil
system. Comp. and Geotech. 7(1-2), pp. 19-36.
Bowles, J.E. (1982, 88, 96), Foundation Analysis and Design, 3
rd
, 4
th
, and 5
th
ed.
McGraw-Hill Companies, Inc.
Clough, R.W. (1960), The Finite Element Method in Plane Stress Analysis, J. Struct. Div,
ASCE, Proc. 2
nd
Conf. Electronic Computation, pp. 345-378.
Coats R.C., Coutie M.G., and Kong F.K. Structural Analysis, Nelson.
Coduto, D.C. (1994), Foundation Design, Prentice-Hall, Englewood Cliffs, N.J.
Cope, R.J., Sawko, F., and Tickell, R.G. (1982), Computer Methods for Civil Engineers,
McGraw-Hill Book Company (UK) Limited.
Courant, R. (1943), Variational Methods for the Solution of Problems of Equilibrium and
Vibration, Bull. Am. Math. Soc., vol. 49, pp. 1-43.
Daloglu, A.T., and Vallabhan, C.V.G. (2000), Nondimensional Parameters for Values of
k for Slab on Winkler Foundation, J. Geotech. and Geoenviron. Engrg, 126(5), pp.
463-471.
Ghosh, C., and Madhav, M.R. (1994), Reinforced Granular Fill-soft Soil System:
Confinement Effect, Geotextiles and Geomembranes, 13(5), pp. 727-741.
Hassoun, Nadim. Design of Reinforced Concrete Structures.
Hrenikoff, A. (1941), Solution of Problems in Elasticity by the Framework Method, J.
Appl. Mech., Trans. ASME, vol. 8, pp. 169-175.
Kikuchi, N. (1986), Finite Element Methods in Mechanics, 1
st
ed. Press Syndicate of the
University of Cambridge.
Koerner, R.M. (1990) Designing with Geosynthetics, 2
nd
ed., Prentice Hall, Englewood
Cliffs, N.J.
Madhav, M.R., and Poorooshasb, H.B. (1988), A New Model for Geosynhetic Reinforced
Soil, Comp. and Geotech. 6(4), pp. 277-290.
Mansfield, Richard (1994), The Visual Guide to Visual BASIC for Applications, 1
st
ed.,
Ventana Press.
Morgan, W., Elementary Reinforced Concrete Design, 2
nd
ed. Edward Arnold Publishers
Limited, London.
Nilson, A.H., and Winter, G. (1991), Design of Concrete Structures, 11
th
ed. McGraw-Hill Inc.
Pasternak, P.L. (1954) On a New Method of Analysis of an Elastic Foundation by Means
of two Foundation Constants. Gosudarstvennoe izdatelstro liberaturi po stroitelsvui
arkhitekture, Moscow.
PC Webopaedia Lite 1.6, Copyright 1996,1997, Sandy Bay Software, Inc.


231
Petroutsos, Evangelos (1998). Mastering Visual Basic 6, SYBEX Computer Books
Inc.
Punmia, B.C. (1986), Reinforced Concrete Structures, 3
rd
ed. Standard Publishers
Distributors, Delhi.
Punmia, B.C. (1992) Soil Mechanics and Foundations. 9
th
ed. Standard Book House
Delhi.
Pytel, A, Singer, F.L. (1987), Strength of Materials, 4
th
ed. Harper & Row, Publishers,
Inc.
Reddy, J.N. (1993), An Introduction to the Finite Element Method, 2
nd
ed. McGraw-Hill
Inc.
Rockey K.C., Evans H.R., Griffiths D.W., and Nethercot D.A. (1975) The finite Element
Method, A Basic Introduction, Willium Clowes & Sons, Limited.
Selvadurai, A.P.S. (1979), Elastic analysis of soil-foundation interaction: development in
geotechnical engineering, 17, Elsevier, Amsterdam.
Shukla, S.K., and Chandra, S. (1994), A Study of Settlement Response of a Geosynthetic-
Reinforced Compressible Granular Fill-soft Soil System. Geotextiles and
Geomembranes, 13(9), pp. 627-639.
Straughan, W.T. (1990), Analysis of Plates on Elastic Foundation, PhD dissertation,
Dept. of Civ. Engrg., Texas Tech University, Lubbock, Tex.
Terzaghi, K. (1955), Evaluation of Coefficient of Subgrade Reaction. Geotechnique,
London.
Timoshenko, S.P. (1921), On the Correction for Shear of the Differential Equation for
Transverse Vibration of Prismatic Bars, Philosophical Magazine, 41, 744.
Turhan, A. (1992), A Consistent Vlasov Model for Analysis of Plates on Elastic
Foundations Using the Finite Element Method, Dept. of Civ. Engrg., Texas Tech
University, Lubbock, Tex.
Turner, M., Clough, R., Martin, H., and Topp, L. (1956), Stiffness and Deflection Analysis
of Complex Structures, J. Aero. Sci., vol. 23, pp. 805-823.
Utku, S., Norris, C.H., Wilbur, J.B. (1991), Elementary Structural Analysis, 4
th
ed.
McGraw-Hill Inc.
Vallabhan, C.V.G, and Daloglu, A.T. (1999), Consistent FEM-Vlasov Model for Plates
on Layered Soil, J. Struct. Engrg., ASCE, 125(1), pp. 108-113.
Vallabhan, C.V.G., and Daloglu, A.T. (1997), Consistent FEM-Vlasov Model for Slabs on
Elastic Foundations, Proc., 7
th
Int. Conf. on Computing in Civ. And Build. Engrg.,
vol. 1, pp. 57-92, Seoul.
Vallabhan, C.V.G., and Das, Y.C. (1988), Parametric Study of Beams on Elastic
Foundation, J. Engrg. Mech., ASCE, 114(12), pp. 2072-2082.
Vallabhan, C.V.G., and Das, Y.C. (1989), A Refined Model for Beams on Elastic
Foundation, Int. J. Solids and Struct., 27(5), pp. 629-637.
Vesic, A.S. (1961), Beams on Elastic Subgrade and Winklers Hypothesis. Proc., 5
th

ICSMFE.
Wang, C.K. (1987), Intermediate Structural Analysis, McGraw-Hill Inc.
Wang, C.K., and Salmon, G. (1985) , Reinforced Concrete Design, 4
th
ed. Harper & Row
Publishers, New York.


232
Wang, C.M., Yang, T.Q., and Lam, K.Y. (1997), Viscoelastic Timoshenko Beam
Solutions from Euler-Bernoulli Solution, J. Engrg. Mech., ASCE, 123(7), pp. 746-
748.
Warnock, F.V., Benham, P.P., Crawford, R.J. (1996), Mechanics of Engineering
Materials, Longman Group UK Ltd.
White, R.E. (1985), An Introduction to the Finite Element Method with Applications to
Nonlinear Problems, John Wiley & Sons.
Yin, J.H. (1997a), Modeling Geosynthetic-Reinforced Granular Base Over Soft Soil.
Geosynthetics Int. (J.), 4(2), pp. 168-185.
Yin, J.H. (1997b), A Non-linear Model for Geosynthetic-Reinforced Granular Fill Over
Soft Soil, Geosynthetics Int. (J.), 4(5), 523-537.
Yin, J.H. (2000), Comparative Modeling Study of Reinforced Beam on Elastic
Foundation, J. Geotech. and Geoenviron. Engrg, 126(3), pp. 265-271.
Zienkiewicz, O.C. (1989), The Finite Element Method, McGraw-Hill Publishing
Company Limited.


233
INDEX

t, 9
A
accuracy of the solution, 17
ActiveX Automation interface, 84
ActiveX Technology, 81
aircraft structural analysis, 9
analysis of continua, 9
analytical techniques, 11
application integration, 83
applied loads, 165
applied moments, 165
APPLOAD, 162
Argyris, 9
ASKA, 23
augmentation of k, 42
AutoCAD
command prompt, 162
AutoCAD 2000, 81
AutoCAD objects, 81
AutoCAD VBA, 83
project, 85
AutoLISP, 82
automatic mesh generation, 25
automation controller, 83
B
backward substitution, 21
band matrix, 20
base contact pressure, 42
BASIC, 82
basic differential equation, 43
beam on elastic foundation, 5, 37
beam on springs, 6
beam.dvb, 162
BEAMDEZ
default directory, 162
entering data, 164, 165
installation, 162
loading, 162
results, 167
running, 163
Beamdimensions, 88
Biot, 41
bond failures, 24
Bordeau, 38
boundary, 96
boundary conditions, 7, 22, 78, 166
boundary conditions of an unloaded member, 48
Boussinesq analysis, 42
Bowles, 33, 35, 41, 42
bridge piers, 27
bridging constants, 68
C
C++, 82, 83
CAD, 80
CAE, 80
Cholesky method, 21
class modules, 85
classical analysis of solids, 13
closure error, 32
Clough, 9
code modules, 85
Coduto, 42
columns
closely spaced, 27
eccentric loading, 26
near mechanical equipment, 26
near property line, 26
stiffening effect of, 33
combined footings, 26
design steps, 34
necessity of, 26
rectangular, 29
shape of, 28
compatibility of displacements, 11, 15
complex geometry, 14
composite materials, 24
compression modulus, 44
computer memory, 24
conformable matrices, 19
conjugate beam, 72
conjugate beam method, 43
conjugate beam theorem 1, 74
constitutive laws, 24
contact problems, 24
continuity of displacements, 17
continuum structures
analysis of, 13
Courant, 9
CP/M, 81
cracking behavior, 24
D
Daloglu, 43
Das, 43
data files, 2
data input, 25
deep beams, 13
deflection equation, 43
deflections, 69
deformation characteristics, 69


234
degrees of freedom, 16
Delphi, 82
depth of footing, 32
diagonal tension, 34
difference equations, 7
differential equation
solution of, 45
differential equations of equilibrium, 13
differential settlement, 28
differential settlements, 26
digitizing tablet, 80
discrete mesh points, 7
discretizing the continuum, 25
displacement compatibility, 12
displacement field, 14
displacement method, 43
distribution of projects, 86
dowel requirements, 35
dynamic response of beams, 39
dynamic systems, 24
E
eccentric columns, 4
elastic curve, 44
elastic foundation, 37
elastic soil, 37
Element A matrix, 71
element aspect ratio, 165
Element B matrix, 72
element EASA
T
matrix, 75
element ESA
T
matrix, 75
element S matrix, 72
elements
beam, 16
brick, 16
line, 16
number of, 16
rectangular, 16
spring, 16
tetrahedral, 16
triangular, 16
type of, 16
Elements, 106
Embedded VBA Projects, 85
equilibrium, 16
equilibrium of forces, 11, 15
equivalent system of forces, 16
ETABS, 23
event-driven language, 83
Excel VBA, 81
Exporter, 143
external loads, 16
external nodal displacements, 68
external node forces, 68
F
fictitious external points, 22
fictitious springs, 37
Filer, 145
finite element analysis of solids, 14
finite element concepts, 15
finite element method, 8, 10
advantages of, 21
approximations, 22
background of, 10
computer requirements, 24
general steps of, 18
interpretation of results, 25
limitations of, 24
systematic generality of, 23
validity of results, 24
finite elements, 15
finite-difference approximations, 7
fixed-end moments, 37
fixed-end reactions, 37
flat slab, 27
flexibility matrix, 49
flexibility method, 12
flexibility of foundation, 35
flexural steel, 33
flow chart of program, 87
folded-plate, 13
footing
depth of, 32
strap, 30
footing dimensions, 32
footings, 3
cantilever, 4
cantilever portion of, 35
combined, 4
connected, 30
continuous, 3
continuous strip, 27, 29
conventional (rigid) method of design of, 5
design of, 4
finite element method of design of, 5
isolated, 4
single, 4
strap, 4
trapezoidal, 29
types of, 3
wall, 3
forms, 85
forward elimination, 21
fracture behavior, 24
framework method, 9
G
Galerkin method, 7
Gauss Jordan elimination method, 21
geosynthetics, 38
Ghosh, 38
global ASA
T

order of, 77
global matrix ASA
T
, 76
global stiffness matrix, 13
Global VBA Projects, 85
graphical programming environment, 82
grid foundation, 27, 31
GW-BASIC, 83


235
H
Hardy Cross Moment Distribution Method, 11
historical comments, 9
Hookes Law, 15
Hrenikoff, 9
I
identity matrix, 21
infinite series, 13
INSTALL.EXE, 162
internal member deformations, 68
internal member forces, 68
internal stresses, 14
interpolation theory, 8
inverse matrix, 21
iterative procedures for k, 43
J
Java, 83
joint equilibrium, 12
K
Kelsey, 9
Koerner, 38
L
lHospitals rule, 62
laterally loaded piles, 38
laws of material behavior, 15
light pen, 80
linear elasticity, 15
linear simultaneous equations, 12
linear stress distribution, 31
loadmom, 147
local stiffness matrices, 12
M
Madhav, 38
main reinforcement, 33
Martin, 9
mat foundation, 4, 27, 31
material parameters, 24
material properties, 23
matrix
transpose of, 19
matrix methods, 9, 11
matrix multiplication, 19
matrix operations, 19
matrix properties, 19
maximum soil pressure, 40
member stiffness matrix, 37
memberlen, 153
MicroCAD, 81
mixed method, 12
modified moments, 33
modified structural system, 22
modulus of subgrade reaction, 39
moment computations, 32
mouse cursor icons, 170
multidimensional continuity, 21
multidimensional continuum, 22
N
NASTRAN, 23
neighboring property, 26
nodal equilibrium, 12
node points, 10
node springs K, 77
non-centered difference equations, 22
non-dimensional parameters for k, 43
non-homogenous continua, 23
non-linear material behavior, 24
nonrectangular meshes, 7
non-straight boundaries, 7
non-uniform meshes, 7
numerical solutions, 6
O
object libraries, 83
object-oriented programming language, 82
one way slab, 33
open-architecture application, 84
P
P matrix, 78
Pascal, 83
Pasternak, 38
pavement, 38
plate flexure
classical theory of, 13
plate-load test, 40, 41
plates, 13
plotting of results, 17
poor soil, 27
program code, 88
programmatic control, 84
propagation problems, 24
punching shear, 34
Q
QuickBasic, 83
R
RAD, 82
raft foundation, 4
rectangular combined footings
design of, 31
reinforcement design, 33
restrained points
reactions at, 14
rigid design


236
assumptions of, 35
demerits of, 35
Ritz method, 7
rotations, 69
rounding of dimensions, 32
S
SAFE, 23
SAP, 23
saver, 158
secant modulus, 39
self-weight of beam, 78
Selvadurai, 38
settlement factors, 28
shear computations, 32
shear reinforcement, 34
shell structures, 13
Shukla, 38
simultaneous equations, 11
skeletal structures, 10
slabs, 13
slope-deflection method, 11
soil
elastic range of, 2
soil spring forces KX, 71
soil-structure interaction, 37
pure shearing model, 38
soil-structure separation, 2
spongy material, 37
spring constant, 38
springs
contributory node area, 77
elastic-plastic, 38
interaction between, 38
non-linear, 38
obeying Hooke's Law, 38
St. Venant torsion problem, 9
STARDYNE, 23
starter, 160
static response of beams, 39
statically determinate problems, 15
steel
minimum percentage of, 33
stiffness matrix [S], 61
stiffness matrix of a member on elastic foundation, 49
stiffness method, 12
stiffness modulus, 37, 39
Straughan, 43
stress field, 14
stress-strain relationships, 13
strip foundation, 31
STRUDL, 23
subgrade reaction, 5
supercomputers, 24
symmetric matrix, 20
T
tangent modulus, 39
Terzaghi, 38, 41
Timoshenko beam, 39
Topp, 9
transient problems, 24
transverse deflection, 37
transverse loads, 37
transverse reinforcement, 33
trial solutions, 22
truncation, 14
Turhan, 43
Turner, 9
two-way action, 5, 32
U
ultimate strength design method, 35
unconfined seepage, 24
uneven soils, 31
V
Vallabhan, 43
VBA, 81, 83
VBARUN, 163
Vesic, 38, 42
vibration of beams
modeling of, 39
virtual wind tunnels, 24
virtual work, 69
Visual Basic, 82, 83
visual checks, 17
W
Wang, 39
weak soils, 31
weather systems, 24
weighted-residual method, 8
wide-beam shear, 5, 32
Windows Interoperability, 85
Winkler, 1, 37
Winkler foundation model, 1, 2
limitations, 38
Winkler Foundation Model, 37
WinZip SelfExtractor, 162
Word VBA, 81
work softening, 24
Y
Yin, 38




5
4

Potrebbero piacerti anche