Vous êtes sur la page 1sur 248

FINITE ELEMENT PROGRAM IN AUTOCAD VBA

FOR WINKLER FOUNDATION

by
Name

Roll No.

1.

94 CE 31

Jhaman Lalchandani

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

DEDICATION
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.

ii

CERTIFICATE
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 :________________

iii

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.

iv

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.

TABLE OF CONTENTS

LIST OF SYMBOLS

INTRODUCTION

1.1 BACKGROUND
1.2 AIM
1.3 FOOTINGS
1.4 DESIGN OF FOOTINGS
1.4.1 Design of Combined Footing by Conventional (Rigid) Method
1.4.2 Design of Combined Footing by Finite element method
1.5 NUMERICAL SOLUTIONS
1.6 FINITE ELEMENT METHOD
1.7 HISTORICAL COMMENTS

1
2
3
4
5
5
6
8
9

FINITE ELEMENT METHOD

10

2.1 BACKGROUND OF THE FINITE ELEMENT METHOD


2.2 MATRIX METHODS (STIFFNESS/DISPLACEMENT METHOD)
2.3 STIFFNESS AND FLEXIBILITY METHODS OF MATRIX ANALYSIS
2.4 STIFFNESS METHOD
2.5 ANALYSIS OF CONTINUUM STRUCTURES
2.6 CLASSICAL ANALYSIS OF SOLIDS
2.7 FINITE ELEMENT ANALYSIS OF SOLIDS
2.8 Fundamental requirements
2.9 FINITE ELEMENT CONCEPTS
2.9.1 Elements
2.9.2 Type and Number of Elements
2.9.3 Equilibrium and Degrees of Freedom
2.9.4 External Loads
2.9.5 Accuracy of Solution
2.9.6 Necessity of Computer Application
2.9.7 Continuity of Displacements
2.9.8 Plotting of Results
2.10 APPLICABILITY TO DIFFERENT FIELDS
2.11 GENERAL STEPS IN FINITE ELEMENT METHOD
2.12 MATRIX OPERATIONS
2.12.1 Transpose of Matrix
2.12.2 Matrix Multiplication
2.12.3 Symmetric Matrices
2.12.4 Band Matrix
2.12.5 Identity Matrix
2.12.6 Inverse Matrix

10
11
12
12
13
13
14
15
15
15
16
16
16
17
17
17
17
17
18
19
19
19
20
20
21
21

vi

2.13 ADVANTAGES OF FINITE ELEMENT METHOD


2.13.1 Better Approximations
2.13.2 Trial Solutions
2.13.3 Boundary Conditions
2.13.4 Material Properties
2.13.5 Non Homogenous Continua
2.13.6 Systematic Generality
2.14 LIMITATIONS OF FINITE ELEMENT METHOD
2.14.1 Validity of Results
2.14.2 Computer Requirements
2.14.3 Discretizing the Continuum and Data Input
2.14.4 Interpretation of Results

21
22
22
22
23
23
23
24
24
24
25
25

COMBINED FOOTINGS

26

3.1 COMBINED FOOTING


3.2 PURPOSE OF COMBINED FOOTINGS
3.2.1 Columns Near Property Line
3.2.2 Closely Spaced Columns
3.2.3 Poor Soil
3.2.4 Differential Settlement
3.3 SHAPE OF COMBINED FOOTINGS
3.3.1 Rectangular Combined Footing
3.3.2 Trapezoidal Footing
3.3.3 Strap Footing
3.3.4 Strip, Grid, And Mat Foundation
3.4 DESIGN OF RECTANGULAR COMBINED FOOTINGS
3.4.1 Footing Dimensions
3.4.2 Rounding of Dimensions
3.4.3 Shear and Moment Computations
3.4.4 Depth of Footing
3.4.5 Reinforcement Design
3.4.5.1 Main Reinforcement
3.4.5.2 Transverse Reinforcement
3.4.5.3 Shear Reinforcement
3.5 DESIGN STEPS
3.6 DEMERITS OF RIGID DESIGN
3.6.1 Assumptions of Rigid Design
3.7 BEAM ON ELASTIC FOUNDATION

26
26
26
27
27
28
28
29
29
30
31
31
32
32
32
32
33
33
33
34
34
35
35
36

BEAM ON ELASTIC FOUNDATION

37

4.1
4.2
4.3
4.4
4.5
4.6
4.7

37
37
38
38
39
41
42

ELASTIC FOUNDATION
WINKLER MODEL
LIMITATIONS OF WINKLER MODEL
OTHER MODELS
MODULUS OF SUBGRADE REACTION
PREVIOUS EFFORTS BY RESEARCHERS TO EVALUATE THE VALUE OF K
NEW RESEARCH FOR EVALUATION OF THE VALUE OF K

vii

4.7.1 Augmentation of k
4.7.2 Vallabhans Iterative Procedures
4.7.3 Non-Dimensional Parameters For k
4.8 DISPLACEMENT METHOD
4.9 BASIC DIFFERENTIAL EQUATION
4.10 GENERAL SOLUTION OF THE DIFFERENTIAL EQUATION
4.11 BOUNDARY CONDITIONS OF AN UNLOADED MEMBER
4.12 STIFFNESS MATRIX OF A MEMBER ON ELASTIC FOUNDATION
4.13 APPLICATION OF THE FINITE ELEMENT METHOD
4.14 GENERAL RELATIONS
4.15 DEVELOPMENT OF THE ELEMENT A MATRIX
4.16 DEVELOPMENT OF THE ELEMENT B (OR AT) MATRIX
4.17 DEVELOPMENT OF ELEMENT S MATRIX
4.18 DEVELOPMENT OF THE ELEMENT ESAT AND EASAT MATRICES
4.19 DEVELOPMENT OF THE GLOBAL MATRIX ASAT
4.20 ADDING THE NODE SPRINGS K TO ASAT
4.21 DEVELOPMENT OF P MATRIX
4.22 BEAM WEIGHT
4.23 BOUNDARY CONDITIONS

42
43
43
43
43
45
48
49
67
67
71
72
72
75
76
77
78
78
78

PROGRAM

80

5.1 CAD
5.2 CAE
5.3 AUTOCAD 2000
5.3.1 AutoCAD ActiveX Technology
5.4 RAPID APPLICATION DEVELOPMENT (RAD)
5.5 VISUAL BASIC
5.6 VBA
5.7 AUTOCAD VISUAL BASIC FOR APPLICATIONS (VBA)
5.7.1 VBA implementation in AutoCAD
5.7.2 Strengths of AutoCAD ActiveX and VBA Together
5.7.2.1 Speed
5.7.2.2 Ease of Use
5.7.2.3 Windows Interoperability
5.7.2.4 Rapid Prototyping
5.7.2.5 Programmer Base
5.7.3 Embedded and Global VBA Projects
5.8 FLOW CHART OF THE PROGRAM
5.9 PROGRAM CODE
Code: Beamdimensions
Code: boundary
Code: Elements
Code: Exporter
Code: Filer
Code: loadmom
Code: memberlen
Code: saver
Code: starter

viii

80
80
81
81
82
82
83
83
84
85
85
85
85
85
85
85
87
88
88
96
106
143
145
147
153
158
160

USER GUIDE

162

6.1 INSTALLATION
6.2 LOADING THE PROGRAM
6.3 RUNNING THE PROGRAM
6.4 ENTERING BEAM DATA
6.5 DISCRETIZING THE BEAM
6.6 ENTERING ELEMENT LENGTHS
6.7 APPLIED LOADS AND MOMENTS
6.8 BOUNDARY CONDITIONS
6.9 RESULTS
6.10 CURSOR ICONS

162
162
163
164
165
165
165
166
167
170

EXAMPLE PROBLEMS

171

Example problem 1:
Example problem 2:
Example problem 3:
Example problem 4:
Example problem 5:

171
181
194
209
224

APPENDICES

227

REFERENCE

230

INDEX

233

ix

LIST OF SYMBOLS

= Poissons ratio
= slope, rotation
= multiplier
= deflection
= percentage of steel
= area ratio
= deformation
= pressure
= change in settlement or deformation
= increment of contact pressure
H = settlement of foundation
s = Poissons ratio of soil
a = depth of Whitneys block
A = area
Ab = area of steel bar
Ag = gross cross-sectional area of concrete
As = area of steel
b = width
B = width
C = compression force
d =depth of footing
db = dia. of bar
E = modulus of elasticity
EI = bending rigidity
Es = modulus of elasticity of soil
fc' = characteristic 28-day compressive strength of concrete
fy = characteristic strength of steel
I = identity matrix
ks = modulus of subgrade reaction
L = length
Ld = development length
LF = load factor
M = bending moment
Mn = nominal moment
Mu = ultimate (factored) moment
N = number of elements
P = applied load
Pu = ultimate load
Pw = working load
q = bearing pressure
qa = allowable bearing pressure
Qcon = constant soil pressure
x

qult = 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
vc = shear stress
w = load intensity
w = width of column
y = deflection

xi

CHAPTER ONE

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 (cjj) of given approximation functions j.
determined from the variational form.

The parameters cj are

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 weightedresidual 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 by discretizing the
circumference of a circle in small line segments making a polygon inscribed in the circle.
They computed the value of 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 finiteelement method.

CHAPTER TWO

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.


Typical
nodal
point

Typical individual
member

Typical
individual
member

Typical nodal
point

(a)

(b)

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
10

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 slopedeflection 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.

Typical nodal
point

Typical nodal
point
finite element

Typical triangular
finite element

(a)

(b)

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

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.

Beam (line)

Spring

Tetrahedron

Triangle

Hexahedron (brick)

Quadrilateral

Axisymmetric

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.

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

a11 a12
A a 21 a 22
a31 a32
then its transpose is the (23) matrix

a
AT 11
a12

a 21
a 22

a31
a32

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 aik and B is a matrix of order (p n) with elements
bik. Then their product AB is a matrix C of order (m n) with elements cik defined by
p

cik ais bsk


s 1

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

a11 a12
A a 21 a 22
a31 a32

and

b
b
B 11 12
b21 b22

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

a11b11 a12b21 a12b12 a12b22


C a21b11 a22b21 a22b12 a22b22
a31b11 a32b21 a32b12 a32b22
2.12.3 Symmetric Matrices
A symmetric matrix A is square and has elements aik such that aik = aki. In other words,
the elements above and below the leading diagonal are mirror images of each other. For
example, the matrix

w
x y z
a
w
b q r s

A x q c
t
u

t
d
v
y r
z s u
v
e

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.

0
0
0
5 3 0
3 7
2
0
0
0

0
2 3 6
0
0

A 0
0
6 4 9
0
0
0
0
9
1 2

0
0
0 2 5
0
0
0
0
0
0
4

0
0
0

0
0

4
2

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.

21

5 3
7
2

3 6

A 4 9
1 2

4
5
2
0

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.

1
0
I
0

0 0 0
1 0 0
0 1 0

0 0 1

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

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.

CHAPTER THREE

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
26

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 beamtype 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/fy 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 qult when allowable soil pressure qa 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 Ag.
(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.

CHAPTER FOUR

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
37

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.

Pressure,

ks =

Use initial tangent


or
initial secant line

Deformation,
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
ks=q/

(4.1)

with terms identified on both figure-4.1 and figure-4.2. Plots of q versus from load tests
give curves of the type qualitatively shown in figure-4.2. If this type of curve is used to
obtain ks 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 .

40

k=

q
k depends on curve coordinates
used and is generally nonlinear

Linear

Nonlinear

q
Xmax

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 since the plate tends to be less than rigid so that a constant deflection across
the plate (and definition of ks) 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 ks taken as a constant up to a deflection Xmax. Beyond
Xmax the soil pressure is a constant value defined by
Qcon = ks(Xmax)

(4.2)

Obviously one could divide the q- curve into several regions so that ks 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 Es (and ) in finite-element analyses is preferred. Bowles suggests that, until
the state of the art improves so that accurate values of Es 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.

41
There is a direct relationship between ks and Es but since one does not often have values
of Es, other approximations are useful and often quite satisfactory if the computed
deflection (directly dependent on ks) 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 ks. This is because the structural member stiffness is usually 10 or more
times as great as the soil stiffness as measured by ks. Recognizing this, Bowles suggests
that the following formulae for approximating ks from the allowable bearing capacity
furnished by the geotechnical consultant should be used
ks = 12 (SF) qa (kip/ft3) (in fps units)

(4.3)

ks = 40 (SF) qa (kN/m3) (in SI units)

(4.4)

where qa is furnished in ksf or kPa. These formulae are based on qa = qult/SF and the
ultimate soil pressure is at a settlement H = 1 inch or 25.4 mm and ks is qult/H. For
H=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 ks.
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 ks 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

0.95Es
B 4 Es
k

2
2
1 s (1 s ) EI

0.108

(4.5)

42
where, Es = modulus of elasticity of the soil; 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 stressstrain modulus of Es, 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

0.65Es
k
2
1 s

12

B 4 Es
EI

(4.6)

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 ks on a uniformly loaded base will produce
a constant settlement (H will be same at every point). This is obviously incorrect and
many persons do not like to use ks because of this problem. In other words, the settlement
is coupled but the soil springs from ks 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.

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, 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:

EIy deflection

(4.7)

EI

dy
slope
dx

(4.8)

EI

d2y
moment M
dx 2

(4.9)

EI

d3y
dM
shear V
3
dx
dx

(4.10)

44

EI

d4y
dV d 2 M

load

dx
dx 4
dx 2

(4.11)

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,

dV
ky w
dx

(4.12)

and

dM
V
dx

(4.13)

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

dy
M

dx
(4.14)
dx
EI
The negative sign is due to the fact that the slope is decreasing in positive or concave
d

bending. Combining equations (4.12) and (4.14) gives the basic differential equation of
elastic curve as

d4y k
w

y
4
EI
EI
dx

(4.15)

The shear and bending moment become

V EI

d3y
dx 3

(4.16)

and

M EI

d2y
dx 2

(4.17)

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

d4y k

y0
dx 4 EI

(4.18)

Solution:
Let

d
dx

(4.19)

Then equation (4.18) becomes:

4 k

y 0
EI

(4.20)

46
For y 0,

k
0
EI

(4.21)

Add and subtract

22

k
EI

to equation (4.21)

k
k
k

22
0
EI EI
EI

4 22

(4.22)

1
2

2
4
k
k

2
0

EI
EI

1
1

k
k 4 2
k
k 4
2

2
2 0

EI
EI
EI

EI

(4.23)

(4.24)

k
k 4
2
0
EI
EI
2

(4.25)

k
k
k 4
2 2
4
EI
EI
EI
2
1

1 k 4
1 k 4

i

2 EI
2 EI
1

y1 e

1 k 4

x
2 EI

L4

(4.26)

1
1

1 k 4
1 k 4

x a 2 sin
x
a1 cos
2 EI
2 EI

k
4 EI

(4.27)

(4.28)

(4.29)


y1 e L a1 cos x a 2 sin x
L
L

(4.30)

k
k 4
2 2
0
EI
EI

(4.31)

47

k
k
k 4
2 2
4
EI
EI
EI

2
1

(4.32)

1 k 4
1 k 4

i

2 EI
2 EI
1

y2 e

1 k 4

x
2 EI

(4.33)

1
1

1 k 4
1 k 4

x a 4 sin
x
a3 cos
2 EI
2 EI

(4.34)


y 2 e L a3 cos x a 4 sin x
L
L

(4.35)

x
x


y y1 y 2 e L a1 cos x a 2 sin x e L a3 cos x a 4 sin x
L
L
L
L

(4.36)

Because,
ebx cosh bx sinh bx

cosh

x sinh

e bx cosh bx sinh bx

and

and

x
L

cosh

x sinh

Let,

s sin

s' sinh

c cos

c' cosh

y (c' s' )(a1 c a2 s) (c's' )(a3 c a4 s)

(4.37)

y a1 cc'a2 c' s a1 c s'a2 s s'a2 cc'a4 c' s a3 c s'a4 s s'

(4.38)

y (a1 a3 )cc'(a2 a4 )c' s (a1 a3 )c s'(a2 a4 )s s'

(4.39)

y A cos

x cosh

x B cos

x sinh

C sin

x cosh

x D sin

x sinh

(4.40)

48
where,

L4

k
4EI

A a1 a3

B a1 a3

C a2 a4

D a2 a4

Mi
i

Vi
x

0
Mj
y

j
j
Vj

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 Mi , Mj, and the shears Vi , Vj at the end points i and j; or (2) specifying
the slopes i ,j and the transverse deflections i , j . Positive directions for Mi , Mj, Vi ,
Vj and for i ,j , i , 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.

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 Mi , Mj, Vi , and Vj as defined in figure-4.4 may be expressed in
terms of the four arbitrary constants A, B, C, and D as follows

M i EI
as

y A cos

d2y
dx 2

x cosh

(4.41)

x B cos

C sin
Differentiate y w.r.t. x:

x sinh

x cosh

x D sin

x sinh

dy d
( Acc' Bc s'C sc' D s s' )
dx dx

[ A(c s'c' s) B(cc's' s) C ( s s'c' c) D( sc' s' c)]

(4.40)

(4.42)
(4.43)

Again differentiate y w.r.t. x:

d2y 2
2 [ A{(cc' s s' ) (cc' s s' )} B{(c s'c' s) (c s'c' s)}
dx 2
L
C{(c' s c s' ) (c' s c s' )} D{(cc' s s' ) (cc' s s' )}]

2
L2

2
L2

(4.44)

[ A(cc' s s'cc' s s' ) B(c s'c' s c s'c' s)


C (c' s c s'c' s c s' ) D( s s'cc' s s'cc' )]

(4.45)

[2s s' A 2c' sB 2c s' C 2cc' D]

(4.46)

d2y
2
(
at
x

0
)

[ A(2 0 0) B(2 0 1)
dx 2
L2
C (2 1 0) D(2 1 1)]

(4.47)

50

2
L2

[ 2 D]

(4.48)

d2y
2 EI 2
M i ( EI 2 at x 0)
D
dx
L2

(4.49)

Let,

s' sinh

s sin

c' cosh

c cos

Now,

d2y
(at x L) [ A(2ss' ) B(2c' s) C (2cs ' ) D(2cc ' )]
dx 2
2

2
L2

[ ss' A c' sB cs ' C cc ' D]

M j ( EI

y A cos

(4.51)

d2y
2 EI 2
at
x

L
)

[ ss' A c' sB cs ' C cc ' D]


dx 2
L2

x cosh

x B cos

C sin

x sinh

x cosh

(4.50)

(4.52)

x D sin

x sinh

d2y
2
2 2 [ s s' A c' sB c s' C cc' D]
dx 2
L

(4.40)

(4.53)

Differentiate above equation w.r.t. x:

d3y
3

2
[ A(c' s c s' ) B( s s'cc' ) C (cc's s' ) D(c s'c' s)]
dx 3
L3

(4.54)

d3y
3
(
at
x

0
)

2
[ A(0 0) B(0 1) C (1 0) D(0 0)]
dx 3
L3

(4.55)

3
L3

(B C)

(4.56)

51

Vi ( EI

d3y
2 EI 3
at
x

0
)

(B C)
dx 3
L3

(4.57)

d3y
2 3
(
at
x

L
)

[ A(c' s cs ' ) B( ss'cc ' )


dx 3
L3
C (cc ' ss' ) D(cs 'c' s)]

V j ( EI

d3y
2 EI 3
at
x

L
)

[ A(c' s cs ' ) B( ss'cc ' )


dx 3
L3
C ( ss'cc ' ) D(c' s cs ' )]

(4.58)

(4.59)

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

dy
[ A(c s'c' s) B(cc's' s) C ( s s'c' c) D( sc' s' c)]
dx L
dy

(at x 0) [ A(0 0) B(1 0) C (0 1) D(0 0)]


dx
L
i (

(4.60)

dy

at x 0) ( B C )
dx
L

(4.61)

dy

(at x L) [(c' s cs ' ) A ( ss'cc ' ) B ( ss'cc ' )C ( sc'cs ' ) D]


dx
L

j (

dy

at x L) [(c' s cs ' ) A ( ss'cc ' ) B ( ss'cc ' )C ( sc'cs ' ) D]


dx
L

As

y A cos

x cosh

x B cos
C sin

(4.43)

x sinh

x cosh

(4.62)

(4.63)

x D sin

x sinh

(4.40)

y(at x 0) [ A(1) B(0) C(0) D(0)]

(4.64)

i ( y at x 0) A

(4.65)

y(at x L) [cc' A cs' B c' sC ss' D]

(4.66)

52

j ( y at x L) cc' A cs ' B c' sC ss' D

(4.67)

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

(4.68)

From equation (4.61),

i C

(4.69)

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

j cc ' i

cs ' i cs ' C c' sC ss' D

ss' D cc ' i j
D

(4.70)

cs ' i (cs 'c' s)C

(4.71)

cc '
1
Lc
c c'
i j
i ( )C
ss'
ss'
s
s s'

(4.72)

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

L
L
(c' s cs ' ) i ss' i cc ' i ss' C cc ' C ss' C

cc ' 2
c 2 c'
c'
c
L
L c 2 s'
cc ' C
i
i j j cc ' i
i
s'
s
s'
s

s
cc ' C

c' 2 s
c 2 s'
C
C cc ' C
s'
s

cc ' 2

c 2 c'

c'

(4.73)
L

c 2 s'

i j ss'cc 'cc '


i
j c' s cs ' 2

s
s'
s' s

c' 2 s c 2 s '
C
2ss'

s'
s

(4.74)

53

c' s 2 s'css' 2 c' 2 s c 2 c' s'


L s 2 s'c 2 s'
c' s cs '
i

j
ss
'
ss
'

2 2
2 2
2 2
2s s ' c' s c s '
C

ss'

c' s' ( s 2 c 2 ) cs (c' 2 s' 2 )


L ( s 2 c 2 ) s'
(c' s cs ' )

i
j

i
ss'
ss'

2 2
2 2
2 2
2 2
c ' s s s ' s s ' c s '

C
ss'

(4.76)

L s'
c' s'cs
c' s cs '
i
j i
s
ss'
ss'

s 2 (c ' 2 s ' 2 ) s ' 2 ( s 2 c 2 )

C
ss'

2
s' 2 s 2
L
L s'
c' s'cs
c' s cs '
C
j
i
j i

ss'
ss'
ss'
ss'
L

(4.75)

ss' j

( s' 2 s 2 )C

1
s' s 2
2

s' 2 i (cs c' s' ) i (c' s cs ' ) j ( s' 2 s 2 )C

s' 2 i

ss' j (cs c' s' ) i (c' s cs ' ) j

L 2

L
s' i ss' j (cs c' s' ) i (c' s cs ' ) j

(4.77)
(4.78)

(4.79)

(4.80)

(4.81)

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

1 L 2
L
s' i ss' j (cs c' s' ) i (c' s cs ' ) j
2

s' s

L( s ' 2 s 2 )
1
i 2 2
2
2
( s' s )
s' s

1
s' s 2
2

L 2

L
s' i ss' j (cs c' s' ) i (c' s cs ' ) j

L
2
2
2
( s' s' s ) i ss' j (cs c' s' ) i (c' s cs ' ) j

(4.82)

(4.83)

(4.84)

54

1 L 2
L
s i ss' j (cs c' s' ) i (c' s cs ' ) j
2

s' s

Multiply equation (4.65) by cc on both sides


B

(4.85)

cc' A cc' i

(4.86)

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

cc ' A

1
(cc ' s 2 cc ' s' 2 ) i
2
s' s
2

(4.87)

Multiply equation (4.85) by cs' on both sides

L 2

L
2
2
2
2 2
cs s' i css' j (c ss'cc ' s' ) i (cc ' ss'c s' ) j

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


cs ' B

1
s' s 2
2

1 L
L
c' ss' 2 i c' s' s 2 j (cc ' s 2 c' 2 ss' ) i (c' 2 s 2 cc ' ss' ) j
2

s' s

Rewrite equation (4.67)


c' sC

ss' D j cc' A cs ' B c' sC

(4.88)

(4.89)

(4.90)

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

ss' D

s' 2 s 2
j cc ' A cs ' B c' sC
s' 2 s 2

(4.91)

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

ss' D

1
L
L
[ (cs 2 s'c' ss' 2 ) i (css' 2 c' s 2 s' ) j
2

s' s
2

(cc ' s 2 cc ' s' 2 c 2 ss'cc ' s' 2 cc ' s 2 c' 2 ss' ) i
(cc ' ss'c 2 s' 2 c' 2 s' 2 cc ' ss' s' 2 s 2 ) j ]
D

1
s' s 2
2

L
L
(cs c' s' ) i (c' s cs ' ) j

c 2 s ' c' 2 s s ' s

(c ' 2 c 2 ) i (

) j
s
s'
s s'

(4.92)

(4.93)

55

1
s' s 2
2

L
L
(cs c' s' ) i (c' s cs ' ) j

c 2 s ' 2 c' 2 s 2 s ' 2 s 2


(1 s' 1 s ) i (
) j
ss'

1
s' s 2
2

L
L
(cs c' s' ) i (c' s cs ' ) j

( s ' 2 s 2 ) i {

1
2
s' s 2

(4.94)

s' 2 (1 c 2 ) s 2 (c' 2 1)
} j
ss'

L
s 2 s' 2 s 2 s' 2
2
2
(
cs

c
'
s
'
)

(
c
'
s

cs
'
)

(
s
'

s
)

(
) j
i
j
i

ss'

(4.95)

(4.96)

L
2
2
(4.97)
(cs c' s' ) i (c' s cs ' ) j ( s' s ) i 2ss' j

If we put value of D from equation (4.97) in equation (4.49), the coefficient of i on right
D

1
s' s 2
2

hand side becomes:

2 EI 2 L
(cs c' s' )
L2 ( s' 2 s 2 )

2 EI (c' s'cs )
L( s ' 2 s 2 )

(4.98)

(4.99)

The coefficient of j becomes:

2 EI 2 L
2 2 2
(c' s cs ' )
L ( s' s )

2 EI (c' s cs ' )
L( s ' 2 s 2 )

(4.100)

(4.101)

The coefficient of i becomes:

2 EI 2 ( s' 2 s 2 )

L2 ( s' 2 s 2 )
The coefficient of j becomes:
2 EI 2 (2ss' )
2 2 2
L (s' s )

4 EI 2 ss'
L2 ( s' 2 s 2 )

(4.102)

(4.103)

(4.104)

56
Hence, equation (4.49) becomes:

Mi

2 EI (c' s'cs )
2 EI (c' s cs ' )
i
j
2
2
L( s ' s )
L( s ' 2 s 2 )

2 EI 2 ( s' 2 s 2 )
4 EI 2 ss'

j
i
L2 ( s' 2 s 2 )
L2 ( s' 2 s 2 )

(4.105)

or

M i VAR1 i VAR 2 j VAR3 i VAR 4 j

(4.106)

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 i on right hand side becomes:

2 EI 2 L
( ss'0 c' s 3 cs '3 c 2 c' s cc ' 2 s' )
2
2
2

L ( s' s )

2 EI
{c' s( s 2 c 2 ) cs ' (c' 2 s' 2 )}
2
2
L( s ' s )

2 EI (c' s cs ' )
L( s ' 2 s 2 )

(4.107)

(4.108)

(4.109)

The coefficient of j becomes:


2 EI 2 L
{ss'0 c' s( ss' ) cs ' (ss' ) cc ' (c' s cs ' )}
L2 (s' 2 s 2 )

(4.110)

2 EI
(c' s 2 s'css' 2 cc ' 2 s c 2 c' s' )
2
2
L( s ' s )

(4.111)

2 EI
{c' s' ( s 2 c 2 ) cs (c' 2 s' 2 )}
2
2
L( s ' s )

(4.112)

2 EI (c' s'cs )
L( s ' 2 s 2 )

(4.113)

The coefficient of i becomes:

2 EI 2
{ss' (1)(s' 2 s 2 ) c' s(cs c' s' ) cs ' (cs c' s' ) cc ' ( s' 2 s 2 )}
L2 ( s' 2 s 2 )

(4.114)

57

2 EI 2
( ss'3 s 3 s'cc ' s 2 c' 2 ss'c 2 ss'cc ' s' 2 cc ' s' 2 cc ' s 2 )
2
2
2
L ( s' s )

(4.115)

2 EI 2
{ss'3 s 3 s' ss' (1 s' 2 ) ss' (1 s 2 )}
2
2
2
L ( s' s )

(4.116)

2 EI 2
( ss'3 s 3 s' ss' ss'3 ss' s 3 s' )
L2 ( s' 2 s 2 )

(4.117)

2 EI 2 ss'
2 2 2
L ( s' s )

(4.118)

The coefficient of j becomes:

2 EI 2
{ss'0 c' s(c' s cs ' ) cs ' (c' s cs ' ) cc ' (2ss' )}
L2 ( s' 2 s 2 )

(4.119)

2 EI 2
2 2 2 (c' 2 s 2 cc ' ss'cc ' ss'c 2 s' 2 2cc ' ss' )
L ( s' s )

(4.120)

2 EI 2
{s 2 (1 s' 2 ) s' 2 (1 s 2 )}
2
2
2
L ( s' s )

(4.121)

2 EI 2
( s 2 s 2 s' 2 s' 2 s 2 s' 2 )
2
2
2
L ( s' s )

(4.122)

2 EI 2 ( s' 2 s 2 )
L2 ( s' 2 s 2 )

(4.123)

Hence, equation (4.52) becomes:


Mj

2 EI (c' s cs ' )
2 EI (c' s'cs )
i
j
2
2
L( s ' s )
L( s ' 2 s 2 )
2 EI 2 ss'
2 EI 2 ( s' 2 s 2 )
2 2 2 i
j
L ( s' s )
L2 ( s' 2 s 2 )

(4.124)

or

M j VAR 2 i VAR1 j VAR 4 i VAR3 j

(4.125)

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

2 EI 3 L
( s 2 s' 2 )
3
2
2
L ( s' s )

2 EI 2 ( s' 2 s 2 )
L2 ( s' 2 s 2 )

(4.126)

(4.127)

The coefficient of j becomes:

2 EI 3 L
( ss' ss' )
L3 ( s' 2 s 2 )

(4.128)

4 EI 2 ss'
2 2 2
L ( s' s )

(4.129)

The coefficient of i becomes:

2 EI 3
(cs c' s'cs c' s' )
L3 ( s' 2 s 2 )

(4.130)

2 EI 3
3 2 2 (2cs 2c' s' )
L ( s' s )

(4.131)

4 EI 3 (cs c' s' )


L3 ( s' 2 s 2 )

(4.132)

The coefficient of j becomes:

2 EI 3
{(c' s cs ' ) (c' s cs ' )}
L3 ( s' 2 s 2 )

(4.133)

2 EI 3
(c' s cs 'c' s cs ' )
L3 ( s' 2 s 2 )

(4.134)

4 EI 3 (c' s cs ' )
L3 ( s' 2 s 2 )

(4.135)

Hence, equation (4.57) becomes:

Vi

2 EI 2 ( s' 2 s 2 )
4 EI 2 ss'

j
i
L2 ( s' 2 s 2 )
L2 ( s' 2 s 2 )

4 EI 3 (cs c' s' )


4 EI 3 (c' s cs ' )

j
i
L3 ( s' 2 s 2 )
L3 ( s' 2 s 2 )

(4.136)

59
or

Vi VAR3 i VAR 4 j VAR5 i VAR6 j

(4.137)

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 i on right hand side becomes:

2 EI 3 L
{(c' s cs ' ) 0 s 3 s'cc ' s 2 ss'3 cc ' s' 2 (c' s cs ' )(cs c' s' )}
3
2
2
L ( s' s )

2 EI 2
( s 3 s'cc ' s 2 ss'3 cc ' s' 2 cc ' s 2 c 2 ss'c' 2 ss'cc ' s' 2 )
2
2
2
L ( s' s )

2 EI 2
2 2 2 { ss' ( s 2 c 2 ) ss' (c' 2 s' 2 )}
L ( s' s )

2 EI 2
(2ss' )
L2 ( s' 2 s 2 )

4 EI 2 ss'
2 2 2
L ( s' s )

(4.138)

(4.139)

(4.140)

(4.141)

(4.142)

The coefficient of j becomes:


2 EI 3 L
{(c' s cs ' ) 0 ( ss'cc ' ) ss'
L3 ( s' 2 s 2 )
( ss'cc ' )( ss' ) (c' s cs ' )(c' s cs ' )}

2 EI 2
2 2 2 {s 2 s' 2 cc ' ss' s 2 ' 2 cc ' ss'(c' s cs ' ) 2 }
L ( s' s )

(4.143)

(4.144)

2 EI 2
(2cc ' ss' s 2 c' 2 2cc ' ss'c 2 s' 2 )
L2 ( s' 2 s 2 )

(4.145)

2 EI 2
{s 2 (1 s' 2 ) s' 2 (1 s 2 )}
L2 ( s' 2 s 2 )

(4.146)

60

2 EI 2
2 2 2 ( s 2 s 2 s' 2 s' 2 s 2 s' 2 )
L ( s' s )

2 EI 2 ( s' 2 s 2 )
L2 ( s' 2 s 2 )

(4.147)

(4.148)

The coefficient of i becomes:

2 EI 3
{(c' s cs ' )( s' 2 s 2 )(1) ( ss'cc ' )(cs c' s' )
3
2
2
L ( s' s )
( ss'cc ' )(cs c' s' ) (c' s cs ' )( s' 2 s 2 )}

(4.149)

2 EI 3
(c' ss' 2 cs '3 c' s 3 cs ' s 2 cs ' s 2 c' ss' 2 cc ' 2 s'c 2 c' s cs ' s 2 c 2 c' s
3
2
2
L ( s' s )
c' ss' 2 cc ' 2 s'c' ss' 2 cs ' s 2 c' s 3 cs '3 )

(4.150)

2 EI 3
3 2 2 (2cs '3 2c' s 3 2c 2 c' s 2cc ' 2 s' )
L ( s' s )

(4.151)

4 EI 3
{cs ' (c' 2 s' 2 ) c' s( s 2 c 2 )}
3
2
2
L ( s' s )

(4.152)

4 EI 3 ( sc'cs ' )
L3 ( s' 2 s 2 )

(4.153)

The coefficient of i becomes:

2 EI 3
{(ss'cc ' )(c' s cs ' ) ( ss'cc ' )(c' s cs ' ) 2ss' (c' s cs ' )}
L3 ( s' 2 s 2 )

(4.154)

2 EI 3
(c' s 2 s'cc ' 2 s css' 2 c 2 c' s'c' s 2 s'
3
2
2
L ( s' s )
cc ' 2 s css' 2 c 2 c' s'2c' s 2 s'2css' 2 )

(4.155)

2 EI 3
(2cc ' 2 s 2c 2 c' s'2c' s 2 s'2css' 2 )
3
2
2
L ( s' s )

(4.156)

4 EI 3
(cc ' 2 s css' 2 c 2 c' s'c' s 2 s' )
3
2
2
L ( s' s )

(4.157)

61

4 EI 3
{cs (c' 2 s' 2 ) c' s' (c 2 s 2 )}
L3 ( s' 2 s 2 )

(4.158)

4 EI 3 (cs c' s' )


L3 ( s' 2 s 2 )

(4.159)

Hence, equation (4.59) becomes:

Vj

4 EI 2 ss'
2 EI 2 ( s' 2 s 2 )

j
i
L2 ( s' 2 s 2 )
L2 ( s' 2 s 2 )

4 EI 3 ( sc'cs ' )
4 EI 3 (cs c' s' )

j
i
L3 ( s' 2 s 2 )
L3 ( s' 2 s 2 )

(4.160)

or

V j VAR 4 i VAR3 j VAR6 i VAR5 j

(4.161)

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:

Mi

VAR1

-VAR2

-VAR3

-VAR4

Mj

-VAR2

VAR1

VAR4

VAR3

Vi

-VAR3

VAR4

VAR5

VAR6

Vj

-VAR4

VAR3

VAR6

VAR5

Matrix 4.1

Because we have to superimpose the element stiffness matrices in global stiffness matrix,
we interchange 2nd row with 3rd row and 2nd column with 3rd column and get:

62

MI

VAR1

VAR3

VAR2

-VAR4

VI

VAR3

VAR5

VAR4

-VAR6

Mj

VAR2

VAR4

VAR1

-VAR3

Vj

-VAR4

-VAR6

-VAR3

VAR5

Matrix 4.2

Because the elements are not supposed to bend, we take = 0 and obtain the degenerate
values of VAR1 to VAR6 by applying limits and using lHospitals rule:
2 EI (c' s'cs )
VAR1
L( s ' 2 s 2 )

2 EI (c' s'cs ) 2 EI
(c' s'cs ) 0

lim

2
2
0
L 0 ( s' 2 s 2 )
0
L( s ' s )

lim

(4.162)
(4.163)

Applying lHospitals rule:

2 EI
(c' s'cs ) 2 EI
( s' 2 c' 2 s 2 c 2 ) (c' s'cs ) 0
lim

lim

L 0 ( s ' 2 s 2 )
L 0
2(c' s'cs )
0

(4.164)

Again applying lHospitals rule:

2 EI
( s' 2 c' 2 s 2 c 2 ) (c' s'cs )
lim
L 0
2(c' s'cs )

2 EI
4 (c' s'cs ) ( s' 2 c' 2 s 2 c 2 ) 0
lim

L 0
0
2(c' 2 s' 2 c 2 s 2 )

(4.165)

Again applying lHospitals rule:

2 EI
4 (c' s'cs ) ( s' 2 c' 2 s 2 c 2 )
lim
L 0
2(c' 2 s' 2 c 2 s 2 )
2 EI
4 (c' 2 s' 2 c 2 s 2 ) 8( s' c' sc) 0

lim

L 0
8(c' s'cs )
0

(4.166)

63
Again applying lHospitals rule:

2 EI
4 (c' 2 s' 2 c 2 s 2 ) 8( s' c' sc)
lim
L 0
8(c' s'cs )

2 EI
16 (c' s'cs ) 12( s' 2 c' 2 s 2 c 2 ) 4 EI
lim

L 0
L
8( s' 2 c' 2 s 2 c 2 )

VAR1

4 EI
L

VAR 2

2 EI (c' s cs ' )
L( s ' 2 s 2 )

at 0

2 EI (c' s cs ' ) 2 EI
(c' s cs ' ) 0

lim

2
2
0
L 0 ( s ' 2 s 2 )
0
L( s ' s )

lim

(4.167)

(4.168)

(4.169)

(4.170)

Applying lHospitals rule:

2 EI
(c' s cs ' ) 2 EI
2ss'(c' s cs ' ) 0
lim

lim

2
2
L 0 ( s' s )
L 0 2(c' s'cs )
0

(4.171)

Again applying lHospitals rule:

2 EI
2ss'(c' s cs ' ) 2 EI
2 (c' s cs ' ) 4ss' 0
lim

lim

0
L
2(c' s'cs )
L
2(c' 2 s' 2 c 2 s 2 ) 0
Again applying lHospitals rule:
2 EI
2 (c' s cs ' ) 4ss' 2 EI
4cc '6(c' s cs ' ) 0
lim

lim

2
2
2
2
L 0 2(c' s' c s )
L 0
8(c' s'cs )
0

(4.172)

(4.173)

Again applying lHospitals rule:

2 EI
4cc '6(c' s cs ' ) 2 EI
4 (cs 'c' s) 16cc ' 2 EI
lim

lim

L 0
8(c' s'cs )
L 0 8(c' 2 s' 2 c 2 s 2 )
L

VAR 2

2 EI
L

at 0

(4.174)

(4.175)

64

VAR 3

2 EI 2 ( s' 2 s 2 )
L2 ( s' 2 s 2 )

2 EI 2 ( s' 2 s 2 ) 2 EI
2 ( s' 2 s 2 ) 0
lim
2 lim

0
0
L2 ( s' 2 s 2 )
L 0 ( s' 2 s 2 )

(4.176)

(4.177)

Applying lHospitals rule:

2 EI
2 ( s' 2 s 2 ) 2 EI
2 2 (c' s'cs ) 2 ( s' 2 s 2 ) 0
lim

lim

2(c' s'cs )
0
L2 0 ( s' 2 s 2 )
L2 0

(4.178)

Again applying lHospitals rule:

2 EI
2 2 (c' s'cs ) 2 ( s' 2 s 2 )
lim
2(c' s'cs )
L2 0
2 EI
2 2 ( s' 2 c' 2 s 2 c 2 ) 8 (c' s'cs ) 2( s' 2 s 2 ) 0
2 lim

0
L 0
2( s' 2 c' 2 s 2 c 2 )

(4.179)

Again applying lHospitals rule:

2 EI
2 2 ( s' 2 c' 2 s 2 c 2 ) 8 (c' s'cs ) 2( s' 2 s 2 )
lim
L2 0
2( s ' 2 c' 2 s 2 c 2 )

2 EI
8 2 (c' s'cs ) 12 ( s' 2 c' 2 s 2 c 2 ) 12(c' s'cs ) 0
lim

8(c' s'cs )
0
L2 0

(4.180)

Again applying lHospitals rule:

8 2 (c' s'cs ) 12 ( s' 2 c' 2 s 2 c 2 ) 12(c' s'cs )


2 EI
lim
8(c' s'cs )
L2 0

8 2 ( s' 2 c' 2 s 2 c 2 ) 64 (c' s'cs ) 24( s' 2 c' 2 s 2 c 2 ) 6 EI


2 EI
lim
2
L2 0
8( s' 2 c' 2 s 2 c 2 )
L

VAR3

6 EI
L2

at 0

(4.181)

(4.182)

4 EI 2 ss'
VAR 4 2 2 2
L ( s' s )

(4.183)

4 EI 2 ss'
4 EI
2 ss'
0

lim

2 0
2
2
0 L2 ( s ' 2 s 2 )
L
( s' s ) 0

(4.184)

lim

65
Applying lHospitals rule:

4 EI
2 ss'
4 EI
2 (c' s cs ' ) 2ss' 0
lim

lim

2(c' s'cs )
0
L2 0 ( s' 2 s 2 )
L2 0

(4.185)

Again applying lHospitals rule:

4 EI
2 (c' s cs ' ) 2ss' 4 EI
2 2 cc '4 (c' s cs ' ) 2ss' 0
lim

lim

2(c' s'cs )
0
L2 0
L2 0
2( s' 2 c' 2 s 2 c 2 )

(4.186)

Again applying lHospitals rule:

4 EI
2 2 cc '4 (c' s cs ' ) 2ss'
lim
L2 0
2( s' 2 c' 2 s 2 c 2 )

4 EI
2 2 (cs 'c' s) 12cc '6(c' s cs ' ) 0
lim

8(c' s'cs )
0
L2 0

(4.187)

Again applying lHospitals rule:

4 EI
2 2 (cs 'c' s) 12cc '6(c' s cs ' )
lim
8(c' s 'cs )
L2 0
4 EI
2 2 ss'16 (cs 'c' s) 24cc ' 6 EI
2 lim
2
L 0
8( s' 2 c' 2 s 2 c 2 )
L
VAR 4

6 EI
L2

VAR5

4 EI 3 (cs c' s' )


L3 ( s' 2 s 2 )

at 0

4 EI 3 (cs c' s' ) 4 EI


3 (cs c' s' ) 0

lim

0
0
L3 ( s' 2 s 2 )
L3 0 ( s' 2 s 2 )

lim

(4.188)

(4.189)

(4.190)

(4.191)

Applying lHospitals rule:

4 EI
3 (cs c' s' ) 4 EI
3 (c' 2 s' 2 c 2 s 2 ) 3 2 (cs c' s' ) 0
lim

lim

2(c' s'cs )
0
L3 0 ( s' 2 s 2 )
L3 0

(4.192)

Again applying lHospitals rule:

4 EI
3 (c' 2 s' 2 c 2 s 2 ) 3 2 (cs c' s' )
lim
2(c' s'cs )
L3 0
4 EI
4 3 (c' s 'cs ) 6 2 (c' 2 s' 2 c 2 s 2 ) 6 (cs c' s' ) 0
3 lim

0
L 0
2(c' 2 s' 2 c 2 s 2 )

(4.193)

66
Again applying lHospitals rule:
4 3 (c' s'cs ) 6 2 (c' 2 s' 2 c 2 s 2 ) 6 (cs c' s' )
4 EI
lim
L3 0
2(c' 2 s' 2 c 2 s 2 )

4 3 (c' 2 s' 2 c 2 s 2 ) 24 2 (c' s'cs ) 18 (c' 2 s' 2 c 2 s 2 ) 6(cs c' s' ) 0


4 EI
lim

8(c' s'cs )
0
L3 0

(4.194)

Again applying lHospitals rule:


4 EI
4 3 (c'2 s'2 c 2 s 2 ) 24 2 (c' s'cs ) 18 (c'2 s'2 c 2 s 2 ) 6(cs c' s' )
lim
L3 0
8(c' s'cs )

4 EI
16 3 (c' s'cs ) 36 2 (c'2 s'2 c 2 s 2 ) 72 (c' s'cs ) 24(c'2 s'2 c 2 s 2 ) 12 EI
lim
3
L3 0
8(c'2 s'2 c 2 s 2 )
L

VAR5

12 EI
L3

VAR 6

4 EI 3 ( sc'cs ' )
L3 ( s' 2 s 2 )

at 0

4 EI 3 ( sc'cs ' ) 4 EI
3 ( sc'cs ' ) 0

lim

0
0
L3 ( s' 2 s 2 )
L3 0 ( s' 2 s 2 )

lim

(4.195)

(4.196)

(4.197)

(4.198)

Applying lHospitals rule:

4 EI
3 ( sc'cs ' ) 4 EI
2 3 cc '3 2 ( sc'cs ' ) 0
lim

lim

2(c' s'cs )
0
L3 0 ( s' 2 s 2 )
L3 0

(4.199)

Again applying lHospitals rule:

2 3 cc '3 2 (sc'cs ' ) 4 EI


2 3 (cs 'c' s) 12 2 cc '6 (sc'cs ' ) 0
4 EI
lim

lim

2(c' s'cs )
0
L3 0
L3 0
2(c' 2 s' 2 c 2 s 2 )

(4.200)

Again applying lHospitals rule:

4 EI
2 3 (cs 'c' s) 12 2 cc '6 ( sc'cs ' )
lim
L3 0
2(c' 2 s' 2 c 2 s 2 )
4 EI
4 3 ss'18 2 (cs 'c' s) 36cc '6( sc'cs ' ) 0
3 lim

8(c' s'cs )
0
L 0

(4.201)

67
Again applying lHospitals rule:

4 EI
4 3 ss'18 2 (cs 'c' s) 36cc '6( sc'cs ' )
lim
8(c' s'cs )
L3 0

4 EI
4 3 (c' s cs ' ) 18 2 ss'72 (cs 'c' s) 48cc ' 12 EI
lim
3
L3 0
8( s' 2 c' 2 s 2 c 2 )
L

(4.202)

12 EI
at 0
L3
Hence, the stiffness matrix (4.2) becomes,
VAR 6

(4.203)

Mi

4EI/L

6EI/L2

2EI/L

-6EI/L2

Vi

6EI/L2

12EI/L3

6EI/L2

-12EI/L3

Mj

2EI/L

6EI/L2

4EI/L

-6EI/L2

Vj

-6EI/L2

-12EI/L3

-6EI/L2

12EI/L3

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 [SAT] and [ASAT] matrices in any
direct stiffness application of the displacement method.

4.14 General Relations


Consider figure-4.5,

68
P -X
2

P -X

P -X
1

P -X

Nodal P-X

F -e
1

L
e
F +F
L
1

F -e
2

F +F
L

Element F-e

Figure-4.5 External (nodal) and internal (member) finite element


forces.

Here,
Pi = external node forces (point loads or moments)
Fi = internal member forces (bending moments and shear forces, in resistance to Pi )
Xi = external nodal displacements (rotations in radians or translations)
ei = internal member deformations (rotations in radians or translations)
Ai , Bi = bridging constants
Now we equate the ith external nodal forces Pi to the sum of all contributing internal
member forces Fi using the bridging constants Ai
Pi = Ai Fi

(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=AF

(4.205)

69
Similarly, the relation between the internal-member deformations e and external nodal
displacements X becomes
e=BX

(4.206)

From the principle of virtual work, matrix B is exactly the transpose of matrix A*.
Hence,
e = AT 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 = SATX

(4.209)

Putting equation (4.209) into (4.205), we get


P = AF = ASATX

(4.210)

In this system of equations, the only unknowns are the Xs, therefore the ASAT is inverted
to obtain
X = (ASAT)-1P

(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 backsubstitute the values of X in equation (4.209).

70
The ASAT 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 ASAT can easily be
constructed by superimposing the finite element matrices EASAT. All element matrices
are prefixed with E to distinguish them from the global matrices.

Nodes

P 2 - X2

P 4 - X4

P 1 - X1

P 6 - X6

P 3 - X3

K1

F 2 - e2

K4

F 3 - e3

Figure-4.6 Structure and structure broken into finite elements


with global P-X, F-e, and K.
2

P 1 - X1

P 3 - X3

F 1 - e1

F 1 + F2
L1

L1
1

F 5 - e5
4

Element numbers

K5

F 4 - e4
3

P 9 - X9
L4

K3

P 10 - X10

P 7 - X7
L3

K2

F 1 - e1

P 8 - X8

P 5 - X5
L2

L1

F 2 - e2

F 1 + F2
L1

Figure-4.7 (a) P-X of first element; (b) Element forces of first


element.

71

P2

P4
P1

Node 1

F1

P3
Node 2

F2

F 1 + F2
L1

F 1 + F2
L1

K 1 X1

K 2X2

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
P1 = F1 + 0F2

(4.212)

P3 = 0F1 + F2

(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 ASAT matrix separately. Hence,
summing the forces, we get
P2

F1 F2

L
L

P4

F1 F2

L
L

(4.214)

(4.215)

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

1/L

1/L

-1/L

-1/L

Matrix-4.4

4.16 Development of the Element B (or AT) matrix


This matrix is obtained by transposing the EA matrix.

It is worth noting that the

constituting equations of EA are in terms of e and X.


X

1/L

-1/L

1/L

-1/L

Matrix-4.5

4.17 Development of element S matrix


Consider the conjugate beam shown in figure-4.9 (a)
Applying equilibrium conditions:
Fy = 0:
R A RB

F1 L
2 EI

(4.216)

73
F

L
e

Real beam element

Real beam element

Moment diagram

Moment diagram

R'

R'

F
EI

F
EI

Cojugate beam
a

Cojugate beam
b

Figure-4.9 Conjugate-beam relationships between end moments


and beam rotations.

MA = 0:

F1 L L
RB L
2 EI 3
RB

RA

F1 L
6 EI

F1 L
FL FL
RB 1 1
2 EI
2 EI 6 EI

RA

F1 L
3EI

Now consider the conjugate beam shown in figure-4.9 (b)

(4.217)

(4.218)

(4.219)

(4.220)

74
Applying equilibrium conditions:
Fy = 0:
R A ' RB '

F2 L
2 EI

(4.221)

MA = 0:
F2 L 2 L

RB 'L
2 EI 3
RB '

RA '

(4.222)

F2 L
3EI

(4.223)

F2 L
FL FL
RB ' 2 2
2 EI
2 EI 3EI

RA '

F2 L
6 EI

(4.224)

(4.225)

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,
e1 R A R A '

F1 L F2 L

3EI 6 EI

(4.226)

and slope at point B,


e2 RB RB '

F1 L F2 L

6 EI 3EI

(4.227)

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

4 EI
2 EI
e1
e2
L
L
2 EI
4 EI
F2
e1
e2
L
L
F1

(4.228)
(4.229)

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

4EI/L

2EI/L

2EI/L

4EI/L

Matrix-4.6

4.18 Development of the element ESAT and EASAT matrices


The ESAT matrix is obtained by multiplication of the element matrices ES and EAT.

FEI

ES AT ES EA T L
2 EI

L
4 EI

ES AT L
2 EI

6 EI
L2
6 EI
L2

2 EI
L
4 EI
L

2 EI
1
L
4 EI
0
L

1
L
1
L

1
0
L
1
1
L

6 EI
L2
6 EI
2
L

(4.230)

(4.231)

Similarly, the EASAT matrix is obtained by multiplication of the element matrices EA


and ESAT.
4 EI
L
6 EI
2
T
EAS A L
2 EI
L
6 EI
2
L

6 EI
L2
12 EI
L3
6 EI
L2
12 EI
3
L
Matrix-4.7

2 EI
L
6 EI
L2
4 EI
L
6 EI
2
L

6 EI
L2
12 EI
3
L
6 EI
2
L
12 EI

L3

(4.232)

76
4.19 Development of the global matrix ASAT
The global matrix ASAT is built by superimposing the element matrices EASAT. To
illustrate the procedure, the first two EASAT are superimposed on following page:
Let,

EAS AT 1

4 EI
L
1
6 EI
L2
1
2 EI
L1
6 EI
2
L1

6 EI
2

L1
12 EI
3

L1
12 EI
L1

6 EI
2
L1
12 EI
3
L1
6 EI
2
L1
12 EI

3
L1

(4.233)

6 EI
2
L2
12 EI

3
L2
6 EI
2
L2
12 EI

3
L2

(4.234)

L1
6 EI

2 EI
L1
6 EI
L1
4 EI
L1
6 EI
2
L1

and

EAS A

4 EI
L
2
6 EI
L2
2
2 EI
L2
6 EI
2
L2

6 EI
2

L2
12 EI
3

L2
6 EI
2

L2
12 EI
L2

2 EI
L2
6 EI

L2
4 EI
L2
6 EI
2
L2

be the EASAT matrices of element 1 and 2 respectively. Then superimposing these two in
the global ASAT ,we get

4 EI
L
1
6 EI
L12
2 EI

L
T
AS A 1
6 EI
2
L1

6 EI
2
L1
12 EI
3
L1
6 EI
2
L1
12 EI
3
L1
0
0

2 EI
L1
6 EI
2
L1
4 EI 4 EI

L1
L2
6 EI 6 EI
2 2
L1
L2
2 EI
L2
6 EI
2
L2

6 EI
2
L1
12 EI
3
L1
6 EI 6 EI
2 2
L1
L2
12 EI 12 EI

3
3
L1
L2
6 EI
2
L2
12 EI

3
L2

Matrix-4.8

0
0
2 EI
L2
6 EI
2
L2
4 EI
L2
6 EI
2
L2

6 EI
2
L2
12 EI

3
L2
6 EI
2
L2
12 EI
3
L2
0

77
All the element EASAT matrices are superimposed in this fashion. If the number of
elements is N then the order of the global ASAT will be (2N + 2) (2N + 2).

4.20 Adding the node springs K to ASAT


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

L L
contributo ry area2 1 2 B
2
2

(4.235)

Hence
K2

L1 L2
Bk s .
2

(4.236)

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

L1
Bk s
2

(4.237)

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
K1 L1 Bk s

(4.238)

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

78
4 EI
L
1
6 EI
L12
2 EI

L
T
AS A 1
6 EI
2
L1

6 EI
2
L1
12 EI
K1
3
L1
6 EI
2
L1
12 EI
3
L1
0
0

2 EI
L1
6 EI
2
L1
4 EI 4 EI

L1
L2
6 EI 6 EI
2 2
L1
L2
2 EI
L2
6 EI
2
L2

6 EI
2
L1
12 EI
3
L1
6 EI 6 EI
2 2
L1
L2
12 EI 12 EI

K2
3
3
L1
L2
6 EI
2
L2
12 EI

3
L2

0
0
2 EI
L2
6 EI
2
L2
4 EI
L2
6 EI
2
L2

6 EI
2
L2

12 EI

3
L2

6 EI
2
L2

12 EI
K3
3

L2
0

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
ith 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 ASATj,k entries from k=1 to n except k = j.

79
3. Insert the known displacements in the P matrix (so Pj = ).
4. Augment all other P matrix entries as
P(I) = P(I ) - ASATi,j for i = 1 to (2N + 2) except i= j.
Then set ASATi,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:

S11
S
21
S 31

S 41

S12
S 22

S13
S 23

S 32
S 42

S 33
S 43

S14 X 1 P1
S 24 X 2 P2

S 34 X 3 P3

S 44 X 4 P4

(4.239)

Now suppose that the displacement X3 is specified to be of a certain magnitude (zero or


nonzero). Then in terms involving X3 can be subtracted from both sides of the above
matrix equation, and the equation can be replaced by the trivial expression X3 = X3 to
obtain:

S11
S
21
0

S 41

S12
S 22
0
S 42

0 S14 X 1 P1 S13 X 3
0 S 24 X 2 P2 S 23 X 3

X3
1 0 X3


0 S 44 X 4 P4 S 43 X 3

(4.240)

Here the first matrix on left-hand side represents the ASAT 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.

CHAPTER FIVE

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.

80

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.

Set springs to zero and


apply constant soil
pressure in P matrix at
nodes showing
deflection beyond
elastic range

Add spring constants to


appropriate locations in
ASAT

Get length of elements


Invert ASAT

Calculate moment of
inertia

Compute spring
constants, double end
springs

Set springs to zero at


nodes showing negative
deflection

Multiply ASAT by P
matrix to get X matrix

no

Get loads and


moments, put in
P matrix

Is there any negative


deflection or
deflection beyond
elastic range?

If self-weight of beam is
to be considered, add its
values in P matrix
Build column vector np
from P matrix

yes

Is number of
iterations
done > max.
iterations
allowed?

no

yes

Build element matrix


EA

Compute F matrix

Build element matrix ES


Show Results.
Build ESAT matrix
no
Build

EASAT

matrix

Superimpose element
matrices in global
matrix ASAT

yes
All element
matrices
done?

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


Label17.Caption = "Moment
Label18.Caption = "Load

kip-ft"

kip-ft"
kip"

Label20.Caption = "Spring Ks

kip/ft"

Label21.Caption = "Spring force


Label31.Caption = "Soil Q

ksf"

Label46.Caption = "Length

ft"

kip"

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
For count1 = 1 To 4

'generates: 0,2,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

CHAPTER SIX

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

162

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.

CHAPTER SEVEN

EXAMPLE PROBLEMS
Example problem 1:
Design a rectangular combined footing using the conventional method.

Given:

f y 414 MPa

f c 20.7 MPa

qa 110 kPa

'

Column

Dead load (kN)

Live load (kN)

Total load (kN)

189

277

466

157

191

348

Applied loads

171

172
Column

Momentdead (kN-m)

Momentlive (kN-m)

Total moment

16

15

21

35

30

65

Applied Moments

Solution:
Step 1 convert loads to ultimate and find ultimate soil pressure:
pu1 1.4(189) 1.7(277) 735.5 kN
Pu 2 1.4(157) 1.7(191) 544.5 kN
Pu Pu1 Pu 2 735.5 544.5 1280 kN
Pw P1 P2 466 348 814 kN

Ultimate ratio UR

Pu 1280

Pw
814

UR 1.572

qult qa (UR) 110(1.572)


qult 172.973 kPa

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.

1280 x 5(735.5) 100 47.9


x

5(735.5) 100 47.9


2.757 m
1280

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

.26

L 2.757
2 5.775 m
2

173
Step 3 Find B:
BLq Pu

1280
1.281 m
(5.775)(172.973)

qult = 172.973 1.281 = 221.6475 kN/m


Use B = 1.35 m
Step 4 Draw shear and moment diagrams

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:

Max. V 559.29 kN at column 1 (by inspection )


Bvc d 559.29 221.648d
vc 0.66 MPa (allowable from table A 1)

1.35(0.66 1000)d 559.29 221.648d


891d 221.648d 559.29

559.29
0.503 m
1112.648

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

perimeter 2 w w d
2

where w width of column.

perimeter (0.26 0.503 / 2)(2) 0.26 0.503 1.786 m


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

A w w d
2

A (0.26 0.503 / 2)(0.26 0.503) (0.512)(0.763) 0.391 m2

V Pcol Psoil 544.5 0.391

221.648
480.304 kN
1.35

175

Actual

480.304
534.647 kPa 1290 kPa
(1.786)(0.503)

O.K .

At column 1 a four-side zone gives


A (w d ) 2 (0.3 0.503) 2 0.645 m 2

V 735.5 0.645

221.648
629.633 kN
1.35

perimeter 4(w d ) 4(0.3 0.503) 3.212 m


v

629.633
389.712 kPa 1290 kPa O.K .
3.212 0.503

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 fy=414 MPa and fc=20.7 MPa and b = 1.35 m
Obtain a:

Mn

Mu

As f y (d a / 2)
As (d a / 2)

Mu

Mu
f y

C T

0.85 f c ab As f y
'

As f y
'

0.85 f c b

414000 As
17.429 As
0.85(20700)(1.35)

As (0.503 8.715 As )

646.655
0.9(414000)

176

8.715 As 0.503 As 0.00174 0


2

Using quadratic formula:

As 4898 mm2

As
0.004898
1.38

0.0072 min
bd 1.35(0.503)
fy

O.K .

< max = 0.016 from table A-2.


Use 10, 25mm bars @ 14 cm c/c spacing across top of footing (As = 4909 mm2)
Run 1/3 of bars full length of footing (less 7.5 cm end covers)
Development length:

Ld C1 Ab f y /

fc

'

where C1 0.019 and Ab 490.9 mm2

Ld 0.019 490.9 414 / 20.7 849 mm


min Ld C2 d b f y

where C2 0.058 and d b 25 mm

min Ld 0.058 25 414 600 mm

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):

B' w 0.75d 0.26 0.75(0.503) 0.637 m

177

L'

B w 1.35 0.26

0.545 m
2
2

Pu 2
544.5

632.928 kPa (conservative)


BB ' 1.35(0.637)

M q

L' 2
0.545 2
632.928
93.998 kN m
2
2

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


As (d a / 2)

fy
'

0.85 f c B'

M
f y

As 36.938 As

As (0.478 18.469 As )

93.998
0.90(414000)

18.469 As 0.478 As 0.000252 0


2

Using quadratic formula:

As 538 mm2

0.000538
1.38
0.00177 min
0.0033 use min
0.637(0.478)
fy

As min B' d 0.0033(0.637)(0.478) 1005 mm2


Use 4, 18 mm bars (As=1016 mm2)
Development length

Ld 0.019 f y Ab /

f c 0.019 414 254 / 20.7 439 mm


'

min Ld 0.058 18 414 432 mm

Ld furnished = 0.545 0.025 = 0.52 m

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

B' 0.3 1.5(0.478) 1.017 m


L'

1.35 0.3
0.525 m
2

735.5
535.708 kPa
1.35(1.017)

M 535.708

0.5252
73.827 kN m
2

As (d a / 2)

f y As
'

0.85 f c B'

Mu
f y

23.138 As

As (0.478 11.568 As )

73.827
0.9(414000)

11.568 As 0.47 As 0.000198 0


2

Using quadratic formula:

As 418.7 mm2

0.0004187
0.00086 min use min 0.0033
1.017(0.478)

As 0.0033(1.017)(0.478) 1620 mm2

Use 7, 18 mm bars (As = 1778 mm2)

Ld 0.019 414 254 / 20.7 439 mm

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

f c 0.85 f c

where 0.7

'

f c 0.85(0.7)( f c ) 12.317 MPa


'

P 12.317 1000 (0.26) 2 832.595 kN 544.5 kN

OK

Dowels not required for load transfer


Use 4 dowels to provide at least 0.005 Ag:

As 0.005(0.26) 2 338 mm2


Use 4, 12 mm bars (As= 452 mm2). At column 1 with concrete all around

A2
2 use 2
A1

f c 0.85(0.7)( f c )(2) 24.633 MPa


'

P 24.633(1000)(0.32 ) 2216.97 kN 735.5 kN

Use four dowels same size as column 2.


Step 9 Provide minimum reinforcement ratio of 0.002 for cantilever portion of footing.

As 0.002(1.35)(0.6) 1620 mm2


Use 7, 18 mm bars @ 20.5 cm c/c (As = 1778 mm2)
Run 4 bars full length to use as chairs for short direction steel.
Step 10 Final sketch (and using approximate minimum steel = 1.38/fy for transverse
zones a of fig below):
When zone a = 3.985,

180
As=(1.38 / 414)3.9850.478=6349 mm2
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)

ks is calculated as:
ks = 40(safety factor)qa
ks = 403110 =13200 kN/m3
Load factor, LF = Pu/Pw = 1280/814 = 1.572
Use ks = LFks = 1.57213200 = 20757 kN/m3
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)

0.295

0.2

0.15

0.15

0.226

0.3

0.4

0.5

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)

735.5

100

10

11

12

13

14

15

16

17

544.5

47.9

18

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.0377734519643E-03

8.8755662258179E-03

-1.04361249509537E-03

8.56884888491384E-03

-1.05638757642438E-03

8.35901080225222E-03

-1.07318810583341E-03

8.19938202401738E-03

-1.11015071144748E-03

8.03536039563571E-03

-1.12684593522424E-03

7.78172663389098E-03

-1.08375114556973E-03

7.4483775443608E-03

-9.27498528441175E-04

7.04266946511677E-03

-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
1

shear on left (kN)


0

shear on right(kN)
-73.3696485354595

-73.3696485354595

-132.798322650586

-132.798322650586

-173.789584631866

-173.789584631866

527.246014401947

527.246014401947

484.914718561112

484.914718561112

427.56516088854

427.56516088854

354.51383879332

354.51383879332

265.706639565207

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.2805685400E-09

-21.6440463167964

-21.6440463183681

-48.2037108479999

-48.2037108461373

-74.2721485455986

-174.272148543503

-95.18524638284

-95.18524638284

14.4054800115991

14.4054800113663

142.675028279366

142.675028278434

284.480563796737

284.480563796329

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

Soil Pressure:
node

soil pressure Q (kPa)

184.230128149302

177.863596304157

173.507987222349

170.194572672529

166.789975732211

187
node

soil pressure Q (kPa)

161.525299739675

154.605972688297

146.184690087429

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:

Max. V 527.25 kN at column1 (by inspection )

188
Bv c d 527.25 221.648d
vc 0.66 MPa (allowable from table A 1)

1.35(0.66 1000)d 527.25 221.648d


891d 221.648d 527.25

527.25
0.474 m
1112.648

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

perimeter 2 w w d
2

where w width of column.

perimeter (0.26 0.474 / 2)(2) 0.26 0.474 1.728 m


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

A w w d
2

A (0.26 0.474 / 2)(0.26 0.474) (0.497)(0.734) 0.365 m 2

V Pcol Psoil 544.5 0.365


Actual v

221.648
484.606 kN
1.35

484.606
591.653 kPa 1290 kPa
(1.728)(0.474)

At column 1 a four-side zone gives


A (w d ) 2 (0.3 0.474) 2 0.599 m 2

O.K .

189

V 735.5 0.599

221.648
637.142 kN
1.35

perimeter 4(w d ) 4(0.3 0.474) 3.096 m


v

637.142
434.167 kPa 1290 kPa O.K .
3.096 0.474

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 fy=414 MPa and fc=20.7 MPa and b = 1.35 m
Obtain a:

As f y
'

0.85 f c b

414000 As
17.429 As
0.85(20700)(1.35)

As (0.474 8.715 As )

547.33
0.9(414000)

8.715 As 0.474 As 0.00147 0


2

Using quadratic formula:

As 3302 mm2

As
0.003302
1.38

0.0052 min
bd 1.35(0.474)
fy

O.K .

< max = 0.016 from table A-2.


Use 9, 22mm bars @ 15.75 cm c/c spacing across top of footing (As = 3420 mm2)
Run 1/3 of bars full length of footing (less 7.5 cm end covers)
Development length:

Ld C1 Ab f y /

fc

'

where C1 0.019 and Ab 380 mm2

Ld 0.019 380 414 / 20.7 657 mm

190

min Ld C2 d b f y

where C2 0.058 and d b 22 mm

min Ld 0.058 22 414 528 mm

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):

B' w 0.75d 0.26 0.75(0.474) 0.616 m


L'

B w 1.35 0.26

0.545 m
2
2

Pu 2
544.5

654.762 kPa (conservative)


BB ' 1.35(0.616)

M q

L' 2
0.545 2
654.762
97.24 kN m
2
2

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


As (d a / 2)

fy
'

0.85 f c B'

M
f y

As 38.198 As

As (0.449 19.099 As )

97.24
0.90(414000)

19.099 As 0.449 As 0.00026 0


2

191
Using quadratic formula:

As 594 mm2

0.000594
1.38
0.0022 min
0.0033 use min
0.616(0.449)
fy

As min B' d 0.0033(0.616)(0.449) 922 mm2


Use 6, 14 mm bars (As=924 mm2)
Development length

Ld 0.019 f y Ab /

f c 0.019 414 154 / 20.7 266 mm


'

min Ld 0.058 14 414 336 mm

Ld furnished = 0.545 0.025 = 0.52 m


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

B' 0.3 1.5(0.449) 0.974 m


L'

1.35 0.3
0.525 m
2

735.5
559.358 kPa
1.35(0.974)

M 559.358

0.525 2
77.087 kN m
2

As (d a / 2)

f y As
'

0.85 f c B'

Mu
f y

24.158 As

As (0.449 12.079 As )

77.087
0.9(414000)

192

12.079 As 0.449 As 0.00021 0


2

Using quadratic formula:

As 473.7 mm2

0.0004737
0.0011 min use min 0.0033
0.974(0.449)

As 0.0033(0.974)(0.449) 1458 mm2

Use 6, 18 mm bars (As = 1524 mm2)

Ld 0.019 414 254 / 20.7 439 mm

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.

193
COMPARISON

Conventional

Finite Element

Method

Method

Max. Shear at column 1

559.29 kN

527.25 kN

-5.73

Max. Shear at column 2

486.87 kN

472.52 kN

-2.95

Max. mid-span Moment 646.66 kN-m

547.33 kN-m

-15.36

95.19 kN-m

59.39

Max. Moment under


4

col-1

59.72

kN-m

Area of steel required mm2


Main reinforcement
steel (between col. 1
5

and 2)

4898

3302

-32.58

1620

1458

-10.00

1005

922

-8.26

1620

1620

Transverse steel under


6

column 1
Transverse steel under

column 2
Steel in cantilever

portion

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

Given:

f y 40 ksi
Column

f c 4 ksi

qa 4 ksf

'

Dead load (kip)

Live load (kip)

Total load (kip)

120

80

200

70

60

130

150

100

250

Momentdead (kip-ft)

Momentlive (kip-ft)

Total Moment
(kip-ft)

40.5

25.5

66

28

24

52

42

36

78

Applied loads

Column

Applied Moments

195
Solution:
Step 1 convert loads to ultimate and find ultimate soil pressure:
pu1 1.4(120) 1.7(80) 304 kip
Pu 2 1.4(70) 1.7(60) 200 kip
Pu 3 1.4(150) 1.7(100) 380 kip

Mu1 = 1.4(40.5) + 1.7(25.5) = 100 kip-ft


Mu2 = 1.4(28) + 1.7(24) = 80 kip-ft
Mu3 = 1.4(42) + 1.7(36) = 120 kip-ft
Pu Pu1 Pu 2 Pu 3 304 200 380 884 kip
Pw P1 P2 P3 200 130 250 580 kip

Ultimate ratio UR

Pu 884

Pw 580

UR 1.524

qult qa (UR) 4(1.524)

qult 6.097 ksf


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.

884 x 12(200) 27(380) 100 80 120


x

12(200) 27(380) 100 80 120


14.48 ft
884

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

L 14.48 2 30.293 ft
12

196
Step 3 Find B:
BLq Pu

884
4.787 ft
(30.293)(6.097)

qult = 6.097 4.787 = 29.182 kip/ft

Use B = 4.84 ft

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:

Max. V 281.483 kip at column 3 (by inspection )


Bv c d 281.483 29.182d
vc 15.5 ksf (allowable from table A 1)
104.202d 281.483

281.483
2.7 ft
104.202

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

perimeter 2 w w d
2

where w width of column.

perimeter (16 / 12 2.7 / 2)(2) 16 / 12 2.7 4.9 ft


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

A w w d
2

A (16 / 12 2.7 / 2)(16 / 12 2.7) 10.823 ft 2

V Pcol Psoil 304 10.823


Actual v

29.182
238.744 kip
4.84

238.744
9.407 ksf 31 ksf
(9.4)(2.7)

O.K .

199
At column 2 a four-side zone gives
A (w d ) 2 (1 2.7) 2 13.69 ft 2

V 200 13.69

29.182
117.458 kip
4.84

perimeter 4(w d ) 4(1 2.7) 14.8 ft


v

117.458
2.939 ksf 31 ksf O.K .
14.8 2.7

At column 3 a four-side zone gives


A (w d ) 2 (1.5 2.7) 2 17.64 ft 2

V 380 17.64

29.182
273.642 kip
4.84

perimeter 4(w d ) 4(1.5 2.7) 16.8 ft


v

273.642
6.033 ksf 31 ksf O.K .
16.8 2.7

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 fy=40 ksi and fc=4 ksi and b = 4.84 ft
Obtain a:

Mn

Mu

As (d a / 2)

Mu
f y

C T

0.85 f c ab As f y
'

As f y
'

0.85 f c b

40 As
0.203 As
0.85(4)(4.84 12)

200

As (2.7 12 0.1015 As )

1596.267 12
0.9(40)

0.1015 As 32.4 As 532.1 0


2

Using quadratic formula:

As 17.37 inch 2

As
17.37
200

0.0092 min
bd 4.84(2.7) 144
fy

O.K .

< max = 0.037 from table A-2


Use 18 #9 bars @ 3 inch c/c spacing across top of footing (As = 18 inch2)
Development length:

Ld C1 Ab f y /

fc

'

where C1 0.04 and Ab 1.0 inch 2

Ld 0.04 1.0 40000 / 4000 25 inch


min Ld C2 db f y

where C2 0.0004 and db 1.125 inch

min Ld 0.0004 1.125 40000 18 inch

Design main reinforcement steel (between column 1 and 2).


a = 0.203As

As (2.7 12 0.1015 As )

1286.95 12
0.9(40)

0.1015 As 32.4 As 428.98 0


2

Using quadratic formula:

As 13.84 inch 2

As
13.84
200

0.0074 min
bd 4.84(2.7) 144
fy

O.K .

< max = 0.037 from table A-1.

201
Use 14 #9 bars (As = 14 inch2)
Development length:

Ld 0.04 1.0 40000 / 4000 25 inch


min Ld 0.0004 1.125 40000 18 inch

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:
Mn = Asfy(d-a/2)

where As = 14 in2

a =4000014/(0.8540004.8412) = 2.836
Mn = 1440000(32.5-2.836/2) = 17405.92 kip-in = 1450.49 kip-ft

Mn = 0.91450.49 = 1305.44 kip-ft


Moment capacity for 18#9 bars in span-2:
Mn = Asfy(d-a/2)

where As = 18 in2

a =4000018/(0.8540004.8412) = 3.65
Mn = 1440000(32.5-3.65/2) = 22087.409 kip-in = 1840.62 kip-ft

Mn = 0.9140.62 = 1656.56 kip-ft

202

Bar cutoff for main reinforcement under col-2


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

B' w 0.75d 16 / 12 0.75(2.7) 3.358 ft

L'

B w 4.84 16 / 12

1.753 ft
2
2

Pu1
304

18.705 ksf
BB ' 4.84(3.358)

M q

L' 2
1.7532 12
18.705
344.884 kip in
2
2

Take d = 32.4-1=31.4 inch to allow for longitudinal rebars:

203

fy
'

0.85 f c B'

As 0.98 As
344.884
0.90(40)

As (31.4 0.49 As )

0.49 As 31.4 As 9.58 0


2

Using quadratic formula:

As 0.307 inch 2 / ft

0.307
200
0.0008 min
0.005 use min
31.4(12)
fy

As min B' d 0.005(3.358 12)(31.4) 6.33 inch 2

Use 5#10 bars @7.8 inch c/c (As= 6.33 inch2)


Development length

Ld 0.04 f y Ab /

f c 0.04 1.266 40000 / 4000 32 inch


'

min Ld 0.0004 1.25 4000 20 inch

Ld furnished = 1.75312 3 = 18.04 inch < min Ld provide hooks


Compute short direction steel at column 2
B' 1 1.5(2.7) 5.05 ft

L'

4.84 1
1.92 ft
2

200
8.183 ksf
5.05(4.84)

M 8.183

1.92 2 12
180.995 kip in
2

204
a 0.98 As

As (31.4 0.49 As )

180.995
0.9(40)

0.49 As 31.4 As 5.323 0


2

Using quadratic formula:

As 0.17 inch 2 / ft

0.17
0.00045 min use min 0.005
31.4(12)

As 0.005(5.05 12)(31.4) 9.5 inch 2


Use 8#10 bars (As = 10.12 inch2)

Ld 0.04 40000 1.266 / 4000 32 inch


min Ld 0.0004 1.25 4000 20 inch

Ld furnished = 1.9212 3 = 20.04 inch < req. Ld provide hooks


Compute short direction steel at column 3

B' 1.5 1.5(2.7) 5.55 ft


L'

4.84 1.5
1.67 ft
2

380
14.146 ksf
5.55(4.84)

M 14.146

a 0.98 As

1.67 2 12
236.711 kip in
2

205

As (31.4 0.49 As )

236.711
0.9(40)

0.49 As 31.4 As 6.58 0


2

Using quadratic formula:

As 0.21 inch 2 / ft

0.21
0.00056 min use min 0.005
31.4(12)

As 0.005(5.55 12)(31.4) 10.46 inch 2


Use 7#11 bars @ 10 inch c/c (As = 10.94 inch2)

Ld 0.04 40000 1.375 / 4000 35 inch


min Ld 0.0004 1.375 4000 22 inch

Ld furnished = 1.6712 3 = 17.04 inch < min Ld 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

f c 0.85 f c

where 0.7

'

f c 0.85(0.7)( f c ) 2.38 ksi


'

P 2.38 (16) 2 609.28 kip 304 kip

Dowels not required for load transfer


Use 4 dowels to provide at least 0.005 Ag:

As 0.005(16) 2 1.28 inch 2

OK

206
Use 4#6 bars (As= 1.77 inch2). At column 2 with concrete all around

A2
(1 2.7) 2

3.7 2 use 2
A1
12

f c 0.85(0.7)( f c )(2) 4.76 ksi


'

P 4.76(12) 2 685.44 kip 200 kip

Dowels not required


Use four dowels to provide at least .005 Ag.
As = 0.005 (12)2 = 0.72 inch2.
Use 4#4 bars (As = 0.78 inch2). At column 3 with concrete all around

A2
(1.5 2.7) 2

2.8 2 use 2
A1
1.5 2

f c 0.85(0.7)( f c )(2) 4.76 ksi


'

P 4.76(18) 2 1542.24 kip 380 kip

Dowels not required


Use four dowels to provide at least .005 Ag.
As = 0.005 (18)2 = 1.62 inch2.
Use 4#6 bars (As = 1.77 inch2).
Step 10 Provide minimum reinforcement ratio of 0.002 for cantilever portion of footing.

As 0.002(4.84)(3)(144) 4.18 inch 2


Use 7#7 bars @ 8.6 inch c/c (As = 4.21 inch2)
Run 4 bars full length to use as chairs for short direction steel.

207
Step 11 Final sketch (and using approximate minimum steel = 200/fy for transverse zones
a of fig below):
When zone a = 6.757 ft
As=(.005)6.7571231.5=12.7 inch2
Use 11#10 bars @ 8 inch c/c.
When zone a = 9.7 ft,
As=(.005)9.71231.5=18.33 inch2
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.

Final sketch

208

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)

ks is calculated as:
ks = 12(safety factor)qa
ks = 1234 =144 kip/ft3
Load factor, LF = Pu/Pw = 884/580 = 1.524
Use ks = LFks = 1.524144 = 219.5 kip/ft3
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)

0.66635

0.66635

0.45

0.45

0.5

0.68

210
Element

Length (ft)

0.75

0.75

1.2

10

1.75

11

1.554

12

13

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

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)

304

100

211
node

point load (kip)

moment (kip-ft)

10

11

12

13

14

15

16

200

17

18

19

20

21

22

23

24

25

26

27

380

120

28

29

30

-80

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.90280274740935E-03

3.85903453911878E-02

-1.90386528427405E-03

3.73221767733048E-02

-0.001907930483173

3.60511007175639E-02

-1.90004257382928E-03

3.51940022873247E-02

-1.88433331180187E-03

3.43422356040202E-02

212
node

rotation (rads)

deflection (ft)

-1.85843492036462E-03

3.34061881907532E-02

-1.8103746457302E-03

3.21579951775808E-02

-1.74224402077236E-03

3.08248432658327E-02

-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
1

shear on left(kip)
0

shear on right(kip)
-27.3187581809334

-27.3187581809334

250.260241651268

250.260241651268

228.88215680058

228.88215680058

212.056924933077

212.056924933077

194.726785409102

194.726785409102

173.787646345148

173.787646345148

149.360378539665

149.360378539665

124.799605798099

213
node

shear on left(kip)

shear on right(kip)

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
1

moment on left(kip-ft)
0

moment on right(kip-ft)
-1.2107193470E-08

-18.2038545012474

-118.203854521271

48.5570575180463

48.5570575306192

151.554028050974

151.554028066806

246.979644292034

246.979644274339

344.34303700272

344.343037001789

462.51863648463

462.51863648952

574.538920404855

574.538920395542

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

Soil Pressure:
node

soil pressure Q (ksf)

8.47058081336571

8.1922178017404

7.91321660750528

7.72508350206777

7.53812071508244

7.33265830787032

7.058679941479

6.76605309685028

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

Max. V 250.26 kip at column 3 (by inspection )


Bv c d 250.26 29.182d
vc 15.5 ksf (allowable from table A 1)

4.84(15.5)d 250.26 29.182d


104.202d 250.26

250.26
2.4 ft
104.202

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

perimeter 2 w w d
2

where w width of column.

perimeter (16 / 12 2.4 / 2)(2) 16 / 12 2.4 8.8 ft


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

A w w d
2

A (16 / 12 2.4 / 2)(16 / 12 2.4) 9.46 ft 2

V Pcol Psoil 304 9.46


Actual v

29.182
246.96 kip
4.84

246.96
11.69 ksf 31 ksf
(8.8)(2.4)

At column 2 a four-side zone gives

perimeter 4(w d ) 4(1 2.4) 13.6 ft

O.K .

217
A (w d ) 2 (1 2.4) 2 11.56 ft 2

V 200 11.56
v

29.182
130.3 kip
4.84

130.3
3.99 ksf 31 ksf O.K .
13.6 2.4

At column 3 a four-side zone gives

perimeter 4(w d ) 4(1.5 2.4) 15.6 ft


A (w d ) 2 (1.5 2.4) 2 15.12 ft 2

V 380 15.12
v

29.182
288.84 kip
4.84

288.84
7.715 ksf 31 ksf O.K .
15.6 2.4

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 fy=40 ksi and fc=4 ksi and b = 4.84 ft
Obtain a:

Mn

Mu

As (d a / 2)

Mu
f y

C T

0.85 f c ab As f y
'

As f y
'

0.85 f c b

40 As
0.203 As
0.85(4)(4.84 12)

As (2.4 12 0.1015 As )

1073.913 12
0.9(40)

218

0.1015 As 28.8 As 357.971 0


2

Using quadratic formula:

As 13.03 inch 2

As
13.03
200

0.007 min
bd 4.84(2.4) 144
fy

O.K .

< max = 0.037 from table A-2


Use 9 #11 bars @ 5.2 inch c/c spacing across top of footing (As = 14.06 inch2)
Development length:

Ld C1 Ab f y /

fc

'

where C1 0.04 and Ab 1.56 inch 2

Ld 0.04 1.56 40000 / 4000 39 inch


min Ld C2 d b f y

where C2 0.0004 and d b 1.375 inch

min Ld 0.0004 1.375 40000 22 inch

Design main reinforcement steel (between column 1 and 2).


a = 0.203As

As (2.4 12 0.1015 As )

880.469 12
0.9(40)

0.1015 As 28.8 As 293.49 0


2

Using quadratic formula:

As 10.59 inch 2

As
10.59
200

0.0063 min
bd 4.84(2.4) 144
fy

O.K .

< max = 0.037 from table A-2

219
Use 7 #11 bars (As = 10.94 inch2)
Development length:

Ld 0.04 1.56 40000 / 4000 39 inch


min Ld 0.0004 1.375 40000 22 inch

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

B' w 0.75d 16 / 12 0.75(2.4) 3.133 ft

L'

B w 4.84 16 / 12

1.753 ft
2
2

Pu1
304

20.048 ksf
BB ' 4.84(3.133)

M q

L' 2
1.7532 12
20.048
369.64 kip in
2
2

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

fy
'

0.85 f c B'

As 0.98 As

As (27.8 0.49 As )

369.64
0.90(40)

0.49 As 27.8 As 10.268 0


2

Using quadratic formula:

As 0.372 inch 2 / ft

220

0.372
200
0.001 min
0.005 use min
27.8(12)
fy

As min B' d 0.005(3.133 12)(27.8) 5.23 inch 2


Use 7#8 bars @5.25 inch c/c (As= 5.5 inch2)
Development length

Ld 0.04 f y Ab /

f c 0.04 0.786 40000 / 4000 20 inch


'

min Ld 0.0004 1.0 4000 16 inch

Ld furnished = 1.75312 3 = 18.04 inch < Ld provide hooks


Compute short direction steel at column 2

B' 1 1.5(2.4) 4.6 ft


L'

4.84 1
1.92 ft
2

200
8.983 ksf
4.6(4.84)

1.92 2 12
M 8.983
198.612 kip in
2
a 0.98 As

As (27.8 0.49 As )

198.692
0.9(40)

0.49 As 27.8 As 5.519 0


2

Using quadratic formula:

As 0.195 inch 2 / ft

221

0.195
0.0006 min use min 0.005
27.8(12)

As 0.005(4.6 12)(27.8) 7.67 inch 2


Use 10#8 bars (As = 7.85 inch2)

Ld 0.04 40000 0.786 / 4000 20 inch


min Ld 0.0004 1.0 4000 16 inch

Ld furnished = 1.9212 3 = 20.04 inch req. Ld O.K.


Compute short direction steel at column 3

B' 1.5 1.5(2.4) 5.1 ft


L'

4.84 1.5
1.67 ft
2

380
15.395 ksf
5.1(4.84)

M 15.395

1.67 2 12
257.6 kip in
2

a 0.98 As

As (27.8 0.49 As )

257.6
0.9(40)

0.49 As 27.8 As 7.156 0


2

Using quadratic formula:

As 0.26 inch 2 / ft

0.26
0.00078 min use min 0.005
27.8(12)

222

As 0.005(5.1 12)(27.8) 8.51 inch 2


Use 7#10 bars @ 9.2 inch c/c (As = 8.86 inch2)

Ld 0.04 40000 1.27 / 4000 32 inch


min Ld 0.0004 1.25 4000 20 inch

Ld furnished = 1.6712 3 = 17.04 inch < min Ld 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.

223
COMPARISON

Conventional

Finite Element

Method

Method

Max. Shear at column 1

265.09 kip

250.26 kip

-5.59

Max. Shear at column 2

119.77 kip

105.46 kip

-11.95

Max. Shear at column 3

281.48 kip

245.21 kip

-12.89

1280.77 kN-m

880.47 kN-m

-31.26

1596.27 kN-m

1073.91 kN-m

-32.72

Max.
4

Moment

(span-1)
Max.

mid-span

mid-span

Moment

(span-2)

Area of steel required mm2


Main reinforcement steel
6

(between col. 1 and 2)

4898

3302

-32.58

1620

1458

-10.00

Transverse steel under


7

column 1
Transverse steel under

column 2

1005

922

-8.26

Steel in cantilever portion

1620

1620

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.

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
fc, psi (MPa)
=0.85
3000 (21)
3500 (24)
4000 (28)
5000 (35)

Wide beam 2fc


Psi (MPa)
93.1 (0.66)
100.6 (0.71) 107.5 (0.76) 120.2(0.85)
Ksf
13.4
14.5
15.5
17.3

Diagonal tension 4fc


Psi (MPa)
186.2 (1.29) 201.1 (1.37) 214.0 (1.48) 240.4(1.66)
Ksf
26.8
29.0
31.0
34.6
Table-A2
Allowable percent of steel (includes 25% reduction for bending using strength design per
ACI)
Fy, ksi (MPa)
Fc, ksi (MPa)
1
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
Loose sand
Medium dense sand
Dense sand
Clayey medium dense sand
Silty medium dense sand
Clayey soil:
qu 200 kPa (4 ksf)
200<qu 400 kPa (8 ksf)
qu> 800 kPa (16 ksf)
227

Ks, kcf
30~100
60~500
400~800
200~500
150~300

Ks, kN/m3
4800~16000
9300~80000
64000~128000
32000~80000
24000~48000

75~150
150~300
>300

12000~24000
24000~48000
>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
Clay:
Very soft
Soft
Medium
Hard
Sandy
Glacial till:
Loose
Dense
Very dense
Loess:
Sand:
Silty
Loose
Dense
Sand and gravel
Loose
Dense
Shale
Silt
Table-A5

Ksf

Mpa

50~250
100~500
300~1000
1000~2000
500~5000

2~15
5~25
15~50
50~100
25~250

200~3200
3000~15000
10000~30000
300~1200

10~150
150~720
500~1440
15~60

150~450
200~500
1000~1700

5~20
10~25
50~81

1000~3000
2000~4000
3000~300000
40~400

50~150
100~200
150~5000
2~20

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 Es by several test methods
Es in kPa for SPT and units of qc for CPT; divide kPa by 50 to obtain ksf. The N values
should be estimated as N55 and not N70. Refer also to Tables A4 and A5.
Soil
SPT
CPT
Sand
(normally Es = 500(N+15)
Es = (2 to 4)qu
consolidated)
Es = 7000 N
Es = 8000 qc
Es = 6000 N
----Es = 1.2 (3Dr2+2)qc
Es = (15000 to 22000) Es = (1+ Dr2)qc
ln(N)
Sand (saturated)
Es = 250(N+15)
Es = F.qc
e = 1.0
F=3.5
e = 0.6
F=7.0
Sands,
all
(norm. Es = (2600 to 2900)N
consolidated)
Sand (overconsolidated)
Es = 40000+1050N
Es = (6 to 30)qc
Es(OCR) Es,nc OCR
Gravelly sand
Es = 1200(N+6)
Es = 600(N+6) N15
Es = 600(N+6)+2000
N>15
Clayey sand
Es = 320(N+15)
Es = (3 to 6)qc
Silts, sandy silt, or clayey Es = 300(N+6)
Es = (1 to 2)qc
silt
Es = 2.5 qc qc<2500 kPa
Es = 4qc + 5000
2500<qc<5000
Es = constrained modulus = Es(1-)/{(1+)(1-2)} =
1/m
Soft clay or clayey silt
Es = (3 to 8)qc
Use the undrained shear strength su in units of su
Clay and silt
IP >30 or organic
Es = (100 to 500)su
Silty or sandy clay
IP <30 or stiff
Es = (500 to 1500)su
Again Es,OCR Es,nc OCR
Use smaller su-coefficient for highly elastic clay
Of general application in clays is
Es = K.su (units of su)
Where K is defined as
K = 4200-142.54IP+1.73IP2-0.0071Ip3
And IP = plasticity index in percent. Use 20% IP 100% and round K to the nearest
multiple of 10
Another equation of general application is
Es =9400-8900 IP + 11600 Ic 8800S (kPa)
Where IP = plasticity index, Ic = relative consistency, S = degree of saturation.

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, 3rd, 4th, and 5th ed.
McGraw-Hill Companies, Inc.
Clough, R.W. (1960), The Finite Element Method in Plane Stress Analysis, J. Struct. Div,
ASCE, Proc. 2nd 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, 1st ed. Press Syndicate of the
University of Cambridge.
Koerner, R.M. (1990) Designing with Geosynthetics, 2nd 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, 1st ed.,
Ventana Press.
Morgan, W., Elementary Reinforced Concrete Design, 2nd ed. Edward Arnold Publishers
Limited, London.
Nilson, A.H., and Winter, G. (1991), Design of Concrete Structures, 11th 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.
230

231
Petroutsos, Evangelos (1998). Mastering Visual Basic 6, SYBEX Computer Books
Inc.
Punmia, B.C. (1986), Reinforced Concrete Structures, 3rd ed. Standard Publishers
Distributors, Delhi.
Punmia, B.C. (1992) Soil Mechanics and Foundations. 9th ed. Standard Book House
Delhi.
Pytel, A, Singer, F.L. (1987), Strength of Materials, 4th ed. Harper & Row, Publishers,
Inc.
Reddy, J.N. (1993), An Introduction to the Finite Element Method, 2nd 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 GeosyntheticReinforced 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, 4th 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., 7th 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., 5th
ICSMFE.
Wang, C.K. (1987), Intermediate Structural Analysis, McGraw-Hill Inc.
Wang, C.K., and Salmon, G. (1985) , Reinforced Concrete Design, 4th 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. 746748.
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.

INDEX

Bowles, 33, 35, 41, 42


bridge piers, 27
bridging constants, 68
, 9

C
A

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

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

D
Daloglu, 43
Das, 43
data files, 2
data input, 25
deep beams, 13
deflection equation, 43
deflections, 69
deformation characteristics, 69

233

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 EASAT matrix, 75
element ESAT 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 ASAT
order of, 77
global matrix ASAT, 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

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
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

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

Vous aimerez peut-être aussi