Upload
ngohanh
View
244
Download
4
Embed Size (px)
Citation preview
FINITE ELEMENT PROGRAM IN AUTOCAD VBA FOR WINKLER FOUNDATION
by
Name Roll No.
1. Jhaman Lalchandani 94 CE 31
Supervised by
Prof. Mumtaz Ali Memon
Mr. Rasool Bux Mahar
Department of Civil Engineering
Mehran University of Engineering and Technology, Jamshoro
Submitted in partial fulfillment of the requirements for the degree of
Bachelor of Civil Engineering
July, 2000
ii
DDEEDDIICCAATTIIOONN
This work is dedicated to Leibniz, Gottfried Wilhelm, (1646-1716), German philosopher,
mathematician, and statesman, regarded as one of the supreme intellects of the 17th
century.
Leibniz was considered a universal genius by his contemporaries. His work encompasses
not only mathematics and philosophy but also theology, law, diplomacy, politics, history,
philology, and physics.
iii
CCEERRTTIIFFIICCAATTEE
This is to certify that the work presented in this thesis titled ‘FINITE
ELEMENT PROGRAM IN AUTOCAD VBA FOR WINKLER FOUNDATION’ is
entirely written by the following students themselves under the supervision of Prof.
Mumtaz Ali Memon and Mr. Rasool Bux Mahar.
Name Roll No.
1. Haibat Khan Abro 94 CE 60
2. Jhaman Lalchandani 94 CE 31
Thesis Supervisors External Examiner
Chairman
Department of Civil Engineering
Date :________________
iv
ACKNOWLEDGEMENTS
The authors wish to express their gratitude to Mr. M. Soomar Khatri, Chairman, Dept. of
Civil Engineering, for the help and cooperation he rendered at every stage of the project.
The authors are indebted to Prof. Mumtaz Ali Memon and Mr. Rasool Bux Mahar, the
thesis supervisors, for the advice and help in preparing the thesis.
The authors acknowledge, with thanks, the time spared and the help and expert advice
given by Dr. Ghulam Hussain Sidiqui.
In the last, but not the least, the authors are extremely grateful to Mr. Parvaiz Ahmed
Shaikh, Mr. Fazlullah Solangi, and Mr. Mohammad Muhajir for lending their books for a
considerable length of time.
v
Abstract
In conventional method for design of combined footings, the soil-structure interaction is usually neglected because it requires a lot of calculations. Instead, the footings are designed by assuming that they are rigid. However, the demerit of this assumption is that the computed bending moments are higher than actual, which means that larger amounts of reinforcement steel are to be provided than required. This soil-structure interaction phenomena, was first studied by Winkler (1867) by assuming it as a beam (structure) on elastic springs (soil) placed continuously underneath it. Even though, this ‘Winkler Foundation Model’ gives much better approximation of soil pressure, it did not gain much popularity because the problem becomes statically indeterminate and requires lots of calculations.
The authors have developed a finite element program BEAMDEZ in AutoCAD VBA, which is based on Winkler Foundation Model and computes design parameters (bending moment, shear, soil pressure, deflection, rotation, etc at all node points in the discretized footing) and draws shear, bending moment, soil pressure, and deflection diagrams in AutoCAD. The program also considers soil-structure separation and elastic range of soil. It is illustrated through examples that bending moments obtained by this method are smaller than those obtained by conventional method and therefore the reinforcement design requires about 30% less steel than by conventional method.
vi
TABLE OF CONTENTS
LIST OF SYMBOLS X
INTRODUCTION 1
1.1 BACKGROUND 1
1.2 AIM 2
1.3 FOOTINGS 3
1.4 DESIGN OF FOOTINGS 4
1.4.1 Design of Combined Footing by Conventional (Rigid) Method 5
1.4.2 Design of Combined Footing by Finite element method 5
1.5 NUMERICAL SOLUTIONS 6
1.6 FINITE ELEMENT METHOD 8
1.7 HISTORICAL COMMENTS 9
FINITE ELEMENT METHOD 10
2.1 BACKGROUND OF THE FINITE ELEMENT METHOD 10
2.2 MATRIX METHODS (STIFFNESS/DISPLACEMENT METHOD) 11
2.3 STIFFNESS AND FLEXIBILITY METHODS OF MATRIX ANALYSIS 12
2.4 STIFFNESS METHOD 12
2.5 ANALYSIS OF CONTINUUM STRUCTURES 13
2.6 CLASSICAL ANALYSIS OF SOLIDS 13
2.7 FINITE ELEMENT ANALYSIS OF SOLIDS 14
2.8 Fundamental requirements 15
2.9 FINITE ELEMENT CONCEPTS 15
2.9.1 Elements 15
2.9.2 Type and Number of Elements 16
2.9.3 Equilibrium and Degrees of Freedom 16
2.9.4 External Loads 16
2.9.5 Accuracy of Solution 17
2.9.6 Necessity of Computer Application 17
2.9.7 Continuity of Displacements 17
2.9.8 Plotting of Results 17
2.10 APPLICABILITY TO DIFFERENT FIELDS 17
2.11 GENERAL STEPS IN FINITE ELEMENT METHOD 18
2.12 MATRIX OPERATIONS 19
2.12.1 Transpose of Matrix 19
2.12.2 Matrix Multiplication 19
2.12.3 Symmetric Matrices 20
2.12.4 Band Matrix 20
2.12.5 Identity Matrix 21
2.12.6 Inverse Matrix 21
vii
2.13 ADVANTAGES OF FINITE ELEMENT METHOD 21
2.13.1 Better Approximations 22
2.13.2 Trial Solutions 22
2.13.3 Boundary Conditions 22
2.13.4 Material Properties 23
2.13.5 Non Homogenous Continua 23
2.13.6 Systematic Generality 23
2.14 LIMITATIONS OF FINITE ELEMENT METHOD 24
2.14.1 Validity of Results 24
2.14.2 Computer Requirements 24
2.14.3 Discretizing the Continuum and Data Input 25
2.14.4 Interpretation of Results 25
COMBINED FOOTINGS 26
3.1 COMBINED FOOTING 26
3.2 PURPOSE OF COMBINED FOOTINGS 26
3.2.1 Columns Near Property Line 26
3.2.2 Closely Spaced Columns 27
3.2.3 Poor Soil 27
3.2.4 Differential Settlement 28
3.3 SHAPE OF COMBINED FOOTINGS 28
3.3.1 Rectangular Combined Footing 29
3.3.2 Trapezoidal Footing 29
3.3.3 Strap Footing 30
3.3.4 Strip, Grid, And Mat Foundation 31
3.4 DESIGN OF RECTANGULAR COMBINED FOOTINGS 31
3.4.1 Footing Dimensions 32
3.4.2 Rounding of Dimensions 32
3.4.3 Shear and Moment Computations 32
3.4.4 Depth of Footing 32
3.4.5 Reinforcement Design 33
3.4.5.1 Main Reinforcement 33
3.4.5.2 Transverse Reinforcement 33
3.4.5.3 Shear Reinforcement 34
3.5 DESIGN STEPS 34
3.6 DEMERITS OF RIGID DESIGN 35
3.6.1 Assumptions of Rigid Design 35
3.7 BEAM ON ELASTIC FOUNDATION 36
BEAM ON ELASTIC FOUNDATION 37
4.1 ELASTIC FOUNDATION 37
4.2 WINKLER MODEL 37
4.3 LIMITATIONS OF WINKLER MODEL 38
4.4 OTHER MODELS 38
4.5 MODULUS OF SUBGRADE REACTION 39
4.6 PREVIOUS EFFORTS BY RESEARCHERS TO EVALUATE THE VALUE OF K 41
4.7 NEW RESEARCH FOR EVALUATION OF THE VALUE OF K 42
viii
4.7.1 Augmentation of k 42
4.7.2 Vallabhan’s Iterative Procedures 43
4.7.3 Non-Dimensional Parameters For k 43
4.8 DISPLACEMENT METHOD 43
4.9 BASIC DIFFERENTIAL EQUATION 43
4.10 GENERAL SOLUTION OF THE DIFFERENTIAL EQUATION 45
4.11 BOUNDARY CONDITIONS OF AN UNLOADED MEMBER 48
4.12 STIFFNESS MATRIX OF A MEMBER ON ELASTIC FOUNDATION 49
4.13 APPLICATION OF THE FINITE ELEMENT METHOD 67
4.14 GENERAL RELATIONS 67
4.15 DEVELOPMENT OF THE ELEMENT A MATRIX 71
4.16 DEVELOPMENT OF THE ELEMENT B (OR AT) MATRIX 72
4.17 DEVELOPMENT OF ELEMENT S MATRIX 72
4.18 DEVELOPMENT OF THE ELEMENT ESAT AND EASA
T MATRICES 75
4.19 DEVELOPMENT OF THE GLOBAL MATRIX ASAT 76
4.20 ADDING THE NODE “SPRINGS” K TO ASAT 77
4.21 DEVELOPMENT OF P MATRIX 78
4.22 BEAM WEIGHT 78
4.23 BOUNDARY CONDITIONS 78
PROGRAM 80
5.1 CAD 80
5.2 CAE 80
5.3 AUTOCAD 2000 81
5.3.1 AutoCAD ActiveX Technology 81
5.4 RAPID APPLICATION DEVELOPMENT (RAD) 82
5.5 VISUAL BASIC 82
5.6 VBA 83
5.7 AUTOCAD VISUAL BASIC FOR APPLICATIONS (VBA) 83
5.7.1 VBA implementation in AutoCAD 84
5.7.2 Strengths of AutoCAD ActiveX and VBA Together 85
5.7.2.1 Speed 85
5.7.2.2 Ease of Use 85
5.7.2.3 Windows Interoperability 85
5.7.2.4 Rapid Prototyping 85
5.7.2.5 Programmer Base 85
5.7.3 Embedded and Global VBA Projects 85
5.8 FLOW CHART OF THE PROGRAM 87
5.9 PROGRAM CODE 88
Code: Beamdimensions 88
Code: boundary 96
Code: Elements 106
Code: Exporter 143
Code: Filer 145
Code: loadmom 147
Code: memberlen 153
Code: saver 158
Code: starter 160
ix
USER GUIDE 162
6.1 INSTALLATION 162
6.2 LOADING THE PROGRAM 162
6.3 RUNNING THE PROGRAM 163
6.4 ENTERING BEAM DATA 164
6.5 DISCRETIZING THE BEAM 165
6.6 ENTERING ELEMENT LENGTHS 165
6.7 APPLIED LOADS AND MOMENTS 165
6.8 BOUNDARY CONDITIONS 166
6.9 RESULTS 167
6.10 CURSOR ICONS 170
EXAMPLE PROBLEMS 171
Example problem 1: 171
Example problem 2: 181
Example problem 3: 194
Example problem 4: 209
Example problem 5: 224
APPENDICES 227
REFERENCE 230
INDEX 233
x
LIST OF SYMBOLS
= Poisson’s 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 = Poisson’s ratio of soil a = depth of Whitney’s 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
xi
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
1
C H A P T E R O N E
INTRODUCTION
1.1 Background
Conventionally the combined footings are designed by assuming that they are rigid. This
assumption allows the engineer to consider the soil pressure as linear. Then the footing
dimensions are set in such a way that the centroid of area (in plan) of footing coincides
with the resultant of column loads. This gives rise to uniformly distributed soil pressure
on the entire footing area, thus the combined footing for any number of columns can be
considered as an inverted uniformly loaded continuous beam with all reactions (column
loads) known. These assumptions render the problem as statically determinate, thus
simplifying the design process. However, the demerit of these assumptions is that higher
than actual bending moments are obtained, which implies that larger than required
amounts of steel are to be provided. This becomes uneconomical because steel is an
expensive item.
In practice, a footing cannot be made so much rigid that its bending becomes negligible
because this would require a great depth of concrete, which will again render it
uneconomical. Due to this bending, deflection is not same at all points; for example,
deflection will usually be more under the columns than at midspan between them. Since
soil pressure will be higher for greater deflections, these non-uniform deflections will
give rise to non-uniform soil pressure under the footing. This phenomena, known as
soil-structure interaction, was first studied by Winkler in 1867 by assuming it as a beam
(structure) on elastic springs (soil) placed continuously underneath it. Even though this
model (called Winkler Foundation Model) gave much better approximation of soil
pressure, it did not gain much popularity because the problem became statically
indeterminate and required a lot of calculations.
2
In present age, when tools like matrix displacement method (which does not distinguish
between determinate and indeterminate structures) and finite element method has been
developed and high-speed digital computers are commonly available, the Winkler
Foundation Model can be solved easily and quickly. Still many engineers design the
combined footings by conventional method because the commercial software packages of
finite element analysis are rather too expensive.
1.2 Aim
Authors have developed a finite element program BEAMDEZ in AutoCAD VBA with
the aim that it should be easily available to anyone who requires it. This program
computes design parameters (bending moment, shear, soil pressure, deflection, rotation,
etc at all node points of the discretized footing) based on the theory of
beam-on-elastic-foundation and draws the shear, bending moment, soil pressure, and
deflection diagrams in AutoCAD. Soil reaction is modeled as springs under the footing
(Winkler Foundation Model). The program also considers soil-structure separation (soil
pressure is zeroed out at such nodes to prevent tension in soil) and elastic range of soil (a
certain deflection after which soil pressure becomes constant). Deflections and rotations
are obtained using the stiffness matrix. As the stiffness of the footing is considered, the
bending moment obtained is more realistic and lower in magnitude than the one
computed by the conventional (rigid) method. This results in economical design of the
footing because lesser amount of reinforcement steel is required.
Every effort has been taken to make the program user friendly. Data entry and editing
have been made very easy. Data files can be saved by the program in binary format and
results can be exported to text format. The shear force, bending moment, deflection,
rotation, and soil pressure diagrams can be obtained readily in AutoCAD and can be
manipulated using AutoCAD’s 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. The parameters cj are
determined from the variational form. The variational methods suffer from the
disadvantage that the approximation functions for problems with arbitrary domains are
difficult to construct.
The finite element method overcomes the difficulty of the variational methods because it
provides a systematic procedure for the derivation of the approximation functions. The
method is endowed with two basic features, which account for its superiority over other
competing methods. First, a geometrically complex domain of the problem is represented
8
as a collection of geometrically simple subdomains called finite elements. Second, over
each finite element the approximation functions are derived using the basic idea that any
continuous function can be represented by a linear combination of algebraic polynomials.
The approximation functions are derived using concepts from interpolation theory, and
are therefore called interpolation functions. Thus, the finite element method can be
interpreted as a piecewise application of the variational methods (e.g., Ritz and weighted-
residual methods), in which the approximation functions are algebraic polynomials and
the undetermined parameters represent the values of the solution at a finite number of
preselected points called nodes, on the boundary and in the interior of the element.
1.6 Finite Element Method
Availability of high-speed computers with large memories has enabled engineers to
employ various numerical discretization techniques for approximate solution of complex
problems. One such technique is the finite element method.
It was originally developed as a tool for structural analysis, but the theory and formulation
have been progressively so refined and generalized that the method has been applied
successfully to such other fields as heat flow, seepage, hydrodynamics, and rock
mechanics. Since the method has a broad applicability to different fields of science and
the computer code for its solution can be applied to different problems with little or no
change, the method has gained wide acceptance by designers and research engineers.
Even though the finite element method has been around for more than 40 years and is
recognized as an extremely valuable tool, many engineers still do not know how to go
about using it and very few engineers understand it. One of the main reasons for this is
that the subject has generally been surrounded by a high level of research activity.
Coupled with this is a fact that because of the amount of calculations, which the method
involves, it tended to go directly from its embryonic stage to an advanced computing
stage. There never seemed to be an intermediate stage at which it could have been
conveniently slotted into curricula of various engineering subjects, even though the basic
principles on which the method is based are taught. The three basic conditions involved
9
in the finite element method are the equilibrium of forces, compatibility of displacements,
and stress-strain relationships and it essentially relies on the matrix methods and computer
programming for the solution of problems. The method is quite versatile and can be
applied to very complex problems.
The finite element method is the best approach available for the numerical analysis of
continua. The theory requires discretization of a given structure into a network of finite
elements and implementation of the analysis on a digital computer.
1.7 Historical comments
Finite element is not a novel idea to represent given domains as collections of discrete
elements. Ancient mathematicians had estimated the value of 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 finite-
element method.
10
C H A P T E R T W O
FINITE ELEMENT METHOD
The finite element method has gained wide acceptance by the engineering professions for
being an extremely valuable method of analysis. Its employment has allowed satisfactory
solution to be achieved for many problems, which had formerly been considered as
insoluble. Within a relatively short period, application of the method has been extended
to many fields. Many shareware and commercial software packages are available
nowadays for general and specific application.
Figure-2.1 Typical skeletal structures. (a) Continuous beam. (b) Multistory frame.
2.1 Background of the Finite Element Method
Many engineering structures are composed of a series of individual members, which are
connected together at a number of points. Such structures are called ‘skeletal’ structures,
the points at which the individual members are connected being referred to as ‘node
points’. Examples of such structures are the continuous beams, trusses, and the
multistory frames. Engineers have long appreciated that the analysis of these skeletal
Typical nodal
point
Typical individual
member
Typical
individual
member
Typical
nodal
point
(a) (b)
11
structures can be carried out by first considering the behavior of each individual element
independently and by then assembling the elements together in such a way that
equilibrium of forces and compatibility of displacements are satisfied at each nodal point.
An example of such a process is the analysis of a continuous beam by the slope-deflection
method where the relationship between the moments and the rotations within each
individual span of the beam is first established, the spans then being combined together
such that equilibrium of moments and compatibility of rotations are satisfied at the points
of interconnection.
However, when a structure comprised of many members, such as a continuous beam
containing many spans or a multistory frame containing many bays, is being analyzed,
this type of approach can become very laborious and can involve the solution of a large
number of simultaneous equations. Because of this, in the past much research effort has
been devoted to developing analytical techniques, based on a physical appreciation of the
structural behavior, which would reduce the amount of work required to complete an
analysis, and would not require the direct solution of many simultaneous equations. A
prime example of such a technique is the Hardy Cross Moment Distribution Method, in
which, instead of setting up the simultaneous equations explicitly as in the slope-
deflection method, the solution is accomplished in a series of convenient steps.
With the advent of the electronic digital computer, however, engineers realized that the
solution of a large number of simultaneous equations no longer posed an insurmountable
problem and this prompted a return to fundamental methods of analysis, such as the
slope-deflection method. These methods, since they involve a number of repetitive steps,
are particularly suitable for automatic computation, and they have been formulated to take
maximum advantage of the capabilities of a digital computer. These so-called ‘matrix
methods’ for analyzing skeletal structures have been firmly established for a number of
years.
2.2 Matrix Methods (Stiffness/Displacement Method)
The finite element method was first introduced to civil engineering through attempts to
generalize the stiffness method to deal with structural continua, such as the covering
12
sheeting on aircraft wings. As a result, many of the concepts and much of the
terminology of the stiffness method has been incorporated into the finite element method.
To understand the principles of the finite element method, it is helpful first to consider
briefly the basis of the stiffness method of structural analysis.
2.3 Stiffness and Flexibility Methods of Matrix Analysis
The matrix methods of structural analysis may be formulated in three different ways.
i. Stiffness (displacement) method.
ii. Flexibility (force) method.
iii. Mixed method
The stiffness and flexibility methods differ in the order in which the two basic conditions
of joint (or nodal) equilibrium and compatibility are treated. In the stiffness method, the
displacement compatibility conditions are satisfied and the equations of equilibrium set
up and solved to yield the unknown nodal displacements. In the flexibility method, the
conditions of joint equilibrium are first satisfied and the equations arising from the need
for compatibility of nodal displacements solved to yield the unknown forces in the
members. In addition to these two basic approaches, in recent years a mixed formulation
involving both approaches has been also used.
2.4 Stiffness Method
The stiffness method was derived for skeletal structures. Analysis of behavior under
imposed loading is performed in stages. First, member connections are prevented from
displacement and the loading on the fixed joints is determined from separate analyses of
each member. Second, sets of linear simultaneous equations relating forces and
displacements at the end of each member are derived. These are called ‘local stiffness
matrices’. All of the calculations described so far are performed on isolated members, but
in the third stage the stiffness matrix of the entire structure is compiled using equilibrium
of forces on each joint and compatibility of displacements of member ends at each joint.
13
Displacement boundary conditions are imposed at appropriate joints and these render the
overall stiffness matrix non-singular. Solution of the equations gives the joint
displacements and from these and the local stiffness matrices the load effects on each
member are determined. The method has a number of features that facilitate automatic
handling. Local stiffness matrices of members and joint loading from members can be
determined by procedures that need take no account of the overall structural
configuration. The overall stiffness matrix, called the global stiffness matrix, of a
structure can be assembled automatically from the local stiffness matrices of members
using only a specification of the members connected to each joint. Standard solution to
linear simultaneous equations can be used to determine joint displacements. A single
computer program can be derived to solve all skeletal structures from a description of
member loading, member properties, structural topology, and the displacement boundary
conditions.
2.5 Analysis of Continuum Structures
In addition to skeletal structures, engineers are often also concerned with the analysis of
continuum structures, such as deep beams, plates and slabs subjected to bending, dam
walls, folded-plate and shell structures, where the structural surface is continuous instead
of being composed of a number of individual components. Classical methods, such as the
classical theory of plate flexure, can be applied to the analysis of these continua, but such
methods have very limited fields of application because of the great difficulties that are
experienced when dealing with any irregularities in structural geometry or applied loading
conditions.
2.6 Classical Analysis of Solids
The classical approach for analyzing a solid requires finding a stress or displacement
function that satisfies the differential equations of equilibrium, the stress-strain
relationships, and the compatibility conditions at every point in the continuum, including
the boundaries. Because these requirements are so restrictive, very few classical solutions
have been found. Among those, the solutions are often infinite series that is practical
14
calculations require truncation, leading to approximate results. Furthermore,
discretization of differential equations by the method of finite differences has the primary
disadvantage that boundary conditions are difficult to satisfy. A secondary disadvantage
is that accuracy of the results is usually poor.
Figure-2.2 Typical finite element idealizations of continua. (a) Dam wall (b) Folded plate
2.7 Finite Element Analysis of Solids
On the other hand, the finite element approach yields an appropriate analysis based upon
an assumed displacement field, a stress field, or a mixture of these within each element.
The finite element method represents the extension of matrix methods for skeletal
structures to the analysis of continuum structures. In the finite element method, the
continuum is idealized as a structure consisting of a number of fictitious individual
elements connected only at nodal points, as shown in figure-2.2. It is only in this
idealization that the method differs from the standard matrix method. The loads or other
influences cause deformations (or strains) throughout the continuum, accompanied by
internal stresses and reactions at restrained points. The primary objectives of analysis by
finite elements are to calculate approximately the stresses and deflections in a structure.
The finite element method is extremely powerful since it enables continua with complex
geometrical properties and loading conditions to be accurately analyzed. The method
Typical nodal
point
finite element
Typical nodal
point
Typical triangular
finite element
(a) (b)
15
involves extensive computations but, because of the repetitive nature of these
computations, it is ideally suited for programming for a solution using a computer.
2.8 Fundamental requirements
Whatever the cause of the internal forces and deformations in a structure, three basic
conditions must be observed. These are:
i. the equilibrium of forces;
ii. the compatibility of displacements; and
iii. the laws of material behavior.
The first condition merely requires that the internal forces balance the external applied
loads. Although the use of this condition alone is sometimes sufficient to enable a
statically determinate problem to be solved, the conditions of compatibility and material
behavior then being automatically satisfied, for redundant structures it yields insufficient
information to enable a complete analysis to be conducted. In these circumstance the
conditions of compatibility must be invoked separately. Compatibility requires that the
deformed structure fits together, i.e. that the deformations of the members are compatible.
Before this condition can be used, it is necessary to know the relationship between load
and deformation for each component of the structure. This relationship, which in
problems of linear elasticity reduces to the use of Hooke’s Law, is the third condition.
The use of these three conditions is a fundamental requirement of any method of
structural analysis.
2.9 Finite Element Concepts
In order to work with the finite element method, some knowledge of matrix methods,
mechanics, variational methods, and computer skills is necessary.
2.9.1 Elements
A finite element is a subregion of a discretized continuum. It is of finite size (not
infinitesimal or infinite) and usually has a simpler geometry than that of the continuum.
16
The shape of elements can be line elements (spring and beam elements), triangular,
rectangular, tetrahedral, or brick elements, etc (figure-2.3). The vertices of the elements
are known as node points or simply nodes.
Figure-2.3 Types of finite elements
2.9.2 Type and Number of Elements
The type and number of elements used can be decided by the analyst depending on the
accuracy required and the number of critical locations.
2.9.3 Equilibrium and Degrees of Freedom
The number of ‘equilibrium’ equations for each node is set by specifying the number of
degrees of freedom, as is done for skeletal structures. A problem with infinite degrees of
freedom can be converted to one with a finite number by the finite element method in
order to simplify the solution process.
2.9.4 External Loads
The system of external loads acting on the actual solids must be replaced by an equivalent
system of forces acting at the node points.
AxisymmetricHexahedron (brick)Tetrahedron
QuadrilateralTriangleSpring
Beam (line)
17
2.9.5 Accuracy of Solution
In general, the accuracy of the solution will be greater if the number of elements is large.
However, computer time (and cost) also increases with number of elements chosen so it is
generally wise only to use a dense concentration of elements in the critical areas of the
solid which are likely to be of particular interest.
2.9.6 Necessity of Computer Application
In any case, finite element method is a computer-oriented method that must be
implemented with appropriate digital computer programs.
Although the analysis of each individual element in the finite element method is
straightforward, the analysis of a large number of elements becomes extremely tedious.
For this reason’ finite element solutions to problems are carried out on computers and
there are many shareware and commercial software packages available for the purpose.
To some extent this has led to the current situation where many engineers are put off by
the apparent complexity of the subject and they leave it to the experts who tend to attach a
certain mystique to the subject through the use of computer jargon!
2.9.7 Continuity of Displacements
To improve the analytical model it is necessary to provide continuity of displacements,
and in some cases of displacement derivatives along finite element sides. The techniques
for deriving local stiffness matrices will later be illustrated for beam elements.
2.9.8 Plotting of Results
It is almost essential that plotting of results and input data should be provided in finite
element programs because these provide an instant visual check and errors can readily be
detected which would otherwise become very difficult.
2.10 Applicability to Different Fields
Although the original applications were in the area of solid mechanics, its usage has
spread to many other fields having similar mathematical bases. With such a powerful
technique for automatically solving skeletal structures, it is not surprising that engineers
18
attempted to extend the method to problems of structural continua and later to general
field problems. At first attempts were made to derive local stiffness matrices for sheet
material in terms of forces and displacements at joints and to ‘connect’ sheets together as
though they were discrete members. Such attempts were not successful, because in an
actual structure displacements are continuous, whereas in the analytical model the sheets,
or finite elements, could have different values of displacements at points along common
edges. Application of finite element has been extended to soil and rock mechanics,
dynamics, earthquake analysis, torsion, head conduction, seepage, consolidation,
thermoelasticity, hydroelasticity, viscoelasticity, fluid mechanics, hydraulics, flow of
compressible fluids, electrical engineering, and many other fields.
2.11 General Steps in Finite Element Method
Since the assumption of displacement functions is the technique most commonly used,
the following steps suffice to describe this approach:
1. Divide the continuum into a finite number of subregions (or elements) of simple
geometry (triangles, rectangles, and so on).
2. Select key points on the elements to serve as nodes, where conditions of equilibrium
and compatibility are to be enforced.
3. Assume displacement functions within each element so that the displacements at each
generic point are dependent upon nodal values.
4. Satisfy strain-displacement and stress-strain relationships within a typical element.
5. Determine stiffness and equivalent nodal loads for a typical element using work or
energy principles.
6. Develop equilibrium equations for the nodes of the discretized continuum in terms of
the element contributions.
7. Solve these equilibrium equations for the nodal displacements.
19
8. Calculate stresses at selected points within the elements.
9. Determine support reactions at restrained node if desired.
2.12 Matrix Operations
The following matrix operations/properties have been used in the solution of beam on
elastic foundation by finite element method:
2.12.1 Transpose of Matrix
If the rows and columns of a matrix are interchanged, a new matrix called the transposed
matrix is obtained. For example, if A is a (32) matrix given by
then its transpose is the (23) matrix
2.12.2 Matrix Multiplication
The definition of matrix multiplication is such that two matrices A and B can only be
multiplied together to form their product AB when the number of columns of A is equal to
the number of rows of B. Such matrices are called conformable matrices. Suppose A is a
matrix of order (m p) with elements 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
For example, if A and B are (3 2) and (2 2) matrices, respectively, given by
and
3231
2221
1211
aa
aa
aa
A
322212
312111
aaa
aaaAT
p
s
skisik bac1
3231
2221
1211
aa
aa
aa
A
2221
1211
bb
bbB
20
then the product C = AB is a (3 2) matrix defined as
2.12.3 Symmetric Matrices
A symmetric matrix A is square and has elements 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
is symmetric.
2.12.4 Band Matrix
A matrix is called a band matrix if it has all its nonzero entries on the main diagonal and
on sloping lines parallel to it (separated by sloping lines of zeros or not). Such matrices
are obtained by carefully selecting the node points. Matrix A shown below is an example
of a symmetric band matrix with bandwidth = 3.
Because matrix A is symmetric, its half bandwidth can be taken which is 2. Hence matrix
A can be represented as follows to save computer memory.
2232123221321131
2222122221221121
2212121221121111
babababa
babababa
babababa
C
2400000
4520000
0219000
0094600
0006320
0000273
0000035
A
evusz
vdtry
utcqx
srqbw
zyxwa
A
21
Special methods for solution of linear equations defined by banded matrices have been
developed. The Cholesky Method is a popular method of solving with banded matrices.
2.12.5 Identity Matrix
A square matrix is known as the identity matrix if all the entries on its main diagonal are
unity and the remaining entries are zero. Identity matrix is denoted by I.
2.12.6 Inverse Matrix
If AB = I then B is known as inverse of A and denoted by A-1
.
Several methods are available for matrix inversion such as the determinant method,
forward elimination and backward substitution method, and Gauss Jordan elimination
method, etc. BEAMDEZ uses the Gauss Jordan elimination method, which works quite
satisfactorily, for the solution of beam on elastic foundation.
2.13 Advantages of Finite Element Method
Like all numerical approximations, the finite element method is based on the concept of
discretization. Nevertheless, as either a variational or a residual approach, the technique
recognizes the multidimensional continuity of the body. Not only does the idealization
portray the body as continuous but it also requires no separate interpolation process to
extend the approximate solution to every point within the continuum. Despite the fact
02
45
21
94
63
27
35
A
1000
0100
0010
0001
I
22
that the solution is obtained as a finite number of discrete node points, the formation of
field variable models inherently provide a solution at all other locations in the body.
2.13.1 Better Approximations
In the finite element method, a modified structural system consisting of discrete (finite)
elements is substituted for the actual continuum and thus the approximation is of a
physical nature. There need be no approximation in the mathematical analysis of this
substitute system. By contrast, in the finite difference method the exact equations of the
actual physical system are solved by approximate mathematical procedures.
2.13.2 Trial Solutions
In contrast to other variational and residual approaches, the finite element method does
not require trial solutions which must all apply to the entire multidimensional continuum.
The use of separate sub regions, or finite elements, for the separate trial solutions thus
permits a greater flexibility in considering continua of complex shapes.
2.13.3 Boundary Conditions
Some of the most important advantages of the finite element method derive from the
techniques of introducing boundary conditions. This is another area in which the method
differs from other variational or residual approaches. Rather than requiring every trial
solution to satisfy the boundary conditions, one prescribes the conditions after obtaining
the algebraic equations for the assemblage. Since the boundary conditions do not enter
into the equations for the individual finite elements, one can use the same field variable
models for both internal and boundary elements. Moreover, the field models need not be
changed when the boundary conditions change.
The introduction of boundary conditions into the assembled equations is a relatively easy
process. It is simplified in that only the geometric boundary conditions need be
simplified in a variational approach because the natural conditions are implicitly satisfied.
No special technique or artificial devices are necessary, such as the non-centered
difference equations for fictitious external points often employed in the finite difference
method.
23
2.13.4 Material Properties
The finite element method not only accommodates complex geometry and boundary
conditions, but it also has proven successful in representing various types of complicated
material properties that are difficult to incorporate into other numerical methods. For
example, formulations in solid mechanics have been devised for anisotropic, nonlinear,
hysteretic, time-dependent, or temperature-dependent behavior.
2.13.5 Non Homogenous Continua
One of the most difficult problems encountered in applying numerical procedures of
engineering analysis is the representation of non-homogenous continua. Nevertheless, the
finite element method readily accounts for non-homogeneity by the simple tactic of
assigning different properties to different elements if a refined representation of the
variation of material characteristics is desired, it is even possible to vary the properties
within an element according to a preselected polynomial pattern. For instance, it is
possible to accommodate continuous or discontinuous variations of the constitutive
parameters or of the thickness of a two-dimensional body.
2.13.6 Systematic Generality
The systematic generality of the finite element procedure makes it a powerful and
versatile tool for a wide range of problems. As a result, flexible general-purpose
computer programs can be constructed. Early examples of these programs are the several
structural analysis packages, which include a variety of element configurations and which
can be applied to several categories of structural problems. Among these packages are
STARDYNE, ASKA, STRUDL, SAP, NASTRAN, ETABS, and SAFE. Another
indicator of the generality of the method is that programs developed for one field of
engineering have been applied successfully to problems in a different field with little or
no modification.
Finally, an engineer may develop a concept of the finite element method at different
levels. It is possible to interpret the method in physical terms. On the other hand, the
method may be explained entirely in mathematical terms. The physical or intuitive nature
24
of the procedure is particularly useful to the engineering student and practicing engineer.
Nevertheless, it is significant that the method has mathematical functions.
2.14 Limitations of Finite Element Method
One limitation of the finite element method is that a few complex phenomena are not
accommodated adequately by the method at its current state of development. Some
examples of such phenomena from the realm of solid mechanics are cracking and fracture
behavior, contact problems, and bond failures of composite materials, and non-linear
material behavior with work softening. Another example is transient, unconfined seepage
problems. The numerical solution of propagation or transient problems is not satisfactory
in all respects. Many of these phenomena are presently under research, and refinements
of the method to accommodate these problems better can be expected.
2.14.1 Validity of Results
The finite element method has reached a high level of development as a solution
technique: however, the method yields realistic results only if the coefficients or material
parameters which describe the basic phenomena are available. Material non-linearity in
solid mechanics is a notable example of a field in which our understanding of the material
behavior has lagged behind the development of analytical tool. In order to exploit fully
the power of the finite element method, significant effort must be directed toward the
development of suitable constitutive laws and the evaluation of realistic coefficients in
material parameters.
2.14.2 Computer Requirements
Even the most efficient finite element computer codes require a relatively large amount of
computer memory and computations. Hence, use of the method had been limited to those
who had access to relatively large, high-speed computers. Advancements in computer
technology and easy availability of desktop computers with large memories have
alleviated this restriction to some degree. However, very complex problems, especially
continuous analysis of dynamic systems (like weather systems, virtual wind tunnels, etc)
still require nothing less than supercomputers.
25
2.14.3 Discretizing the Continuum and Data Input
The most tedious aspects of the use of the finite element method are the basic processes of
subdividing the continuum and of generating error-free input data for the computer.
Although these processes may be automated to a degree, they have not been totally
accomplished by computer because some engineering judgment must be employed in the
discretization. Errors in the input data may go undetected and the erroneous results
obtained therefrom may appear acceptable.
2.14.4 Interpretation of Results
Finally, as for any approximate numerical method, the results of a finite element analysis
must be interpreted with care. We must be aware of the assumptions employed in the
formulation, the possibility of numerical difficulties, and the limitations in the material
characterizations used. A large volume of solution information is generated by a finite
element routine, but this data is worthwhile only when its generation and interpretation
are tempered by proper engineering judgment.
26
C H A P T E R T H R E E
COMBINED FOOTINGS
3.1 Combined Footing
A spread footing supporting a line of two or more columns is called a combined footing.
A combined footing may have either rectangular or trapezoidal shape or be a series of
pads connected by narrow rigid beams called a strap footing.
3.2 Purpose of Combined Footings
The necessity of combined footings arises mostly in the following cases:
1. when the column is so close to an adjacent property that it is impossible to center an
isolated footing under the column,
2. when columns are spaced so closely that isolated footings are impracticable or
uneconomical,
3. when the bearing capacity of soil is low, it is advisable to combine the footings of two
or more columns instead of enlarging the isolated footings,
4. and when differential settlements are to be reduced.
3.2.1 Columns Near Property Line
When a column is located near a property line, part of the single footing might extend into
the neighboring property. Also it may not be possible to place columns at the center of a
spread footing if they are near mechanical equipment locations, or irregularly spaced. To
avoid this situation, the column may be placed on side or edge of the footing, causing
eccentric loading. This may not be possible under certain conditions, and sometimes it is
not an economical solution. A better design can be achieved by combining the footing
with the nearest internal column footing, forming a combined footing. The center of
27
gravity of the combined footing coincides with the resultant of the loads on the two
columns.
3.2.2 Closely Spaced Columns
If the columns are spaced so closely that their footings overlap then a combined footing
becomes necessary. Another case is when the footings do not overlap but are so closely
spaced that providing a combined footing may prove to be more economical than isolated
footings. The shape of the combined footing may be rectangular or trapezoidal.
3.2.3 Poor Soil
Another case where combined footings become necessary is when the soil is poor and the
footing of one column overlaps the adjacent footing. If there is a row of columns and the
bearing capacity of the subsoil is low so that large bearing areas become necessary,
individual footings are replaced by continuous strip footings that support more than two
columns and usually all columns in a row. Sometimes such strips are arranged in both
directions, in which case a grid foundation is obtained. Such a foundation can be made to
develop a much larger bearing area much more economically than can be done by single
footings because the individual strips represent continuous beams whose moments are
much smaller than the cantilever moments in large single footings that project far out
from the column in all four directions. Bridge piers are also founded on very rigid
combined rectangular footings.
For still lower bearing capacities, the strips are made to merge, resulting in a mat
foundation. That is, the foundation consists of a solid reinforced concrete slab under the
entire building. In structural action, such a mat is very similar to a flat slab or a flat plate,
upside down, i.e. loaded upward by the bearing pressure and downward by the
concentrated column reactions. The mat foundation evidently develops the maximum
available bearing area under the building. If the soil’s capacity is so low that even this
large bearing area is insufficient, some form of deep foundation, such as piles or caissons,
must be used.
28
3.2.4 Differential Settlement
When a column load is transmitted to the soil by the footing, the soil becomes
compressed. The amount of settlement depends on many factors, such as the type of soil,
the load intensity, the depth below ground level, and the type of footing. If different
footings of same structure have different settlements, new stresses develop in the
structure. Excessive differential settlement may lead to the damage (cracking and tilting)
of nonstructural members in the buildings, even failure of the affected parts.
Besides developing large bearing areas, another advantage of strip, grid, and mat
foundations is that their continuity and rigidity help in reducing differential settlements of
individual columns relative to each other, which may otherwise be caused by local
variations in the quality of subsoil, or other causes. For this purpose, continuous spread
foundations are frequently used in situations where the superstructure or the type of
occupancy provides unusual sensitivity to differential settlement.
If the bearing soil capacity is too much different under different footings, for example if
the footings of a building are partly on soil and partly on rock, a differential settlement
will occur. In such cases it is advisable to provide a joint between the two parts to
separate them, allowing for independent settlement.
3.3 Shape of Combined Footings
Combined footings are made rectangular, trapezoidal, or T shaped, the details of the
shape being arranged to produce coincidence of centroid of area and resultant of loads.
Figure-3.1 Rectangular Combined Footing
29
3.3.1 Rectangular Combined Footing
A combined footing is usually made rectangular, if the rectangle can extend beyond each
column face to a distance required to make the center of the gravity of the column loads
coincide with the centroid of the footing area. Rectangular combined footings can be
divided into two categories: those that support only two columns (figure-3.1) and those
that support more than two (generally large number of) columns (figure-3.2).
In buildings where the allowable soil pressure is large enough for single footings to be
adequate for most columns, two-column footings are seen to become necessary in two
situations: (1) if columns are so close to the property line that single-column footings
cannot be made without projecting beyond that line, and (2) if some adjacent columns are
so close to each other that their footings would merge. Combined footing for rows of
columns are provided where soil is poor.
Figure-3.2 Combined Footing for row of columns.
If the footing is to support an exterior column at the property line where the projection of
the footing is limited, a rectangular shape can be used provided the interior column caries
greater load or a row of columns is supported by the continuous strip footing which is
rectangular. When the loading of the column is equal, the rectangular shape is used with
advantage.
3.3.2 Trapezoidal Footing
When the load of the external column near the property line is greater than the load of the
interior column, a trapezoidal footing (figure-3.3) is necessary to keep the centroid of the
footing in line with the resultant of the two column loads. In most other cases, a
rectangular footing may be advantageous.
30
Figure-3.3 Trapezoidal and Strap Footings
3.3.3 Strap Footing
Another expedient that is used if a single footing cannot be centered under an exterior
column is to place the exterior column footing eccentrically and to connect it with the
nearest interior column footing by a beam or strap. This strap, being counterweighted by
the interior column load, resists the tilting tendency of the eccentric exterior footings and
equalizes the pressure under it. Such foundations are known as strap, cantilever, or
connected footings (figure-3.3).
Figure-3.4 Continuous Strip, Grid, and Mat Foundations
31
3.3.4 Strip, Grid, And Mat Foundation
In the case of heavily loaded columns, particularly if they are to be supported on
relatively weak or uneven soils, continuous footings are resorted to. They may consist of
a continuous strip footing supporting all columns in a given row, or of two sets of such
strip footings intersecting at right angles so that they form one continuous grid foundation
(figure-3.4). For even larger loads or weaker soils the strips are made to merge, resulting
in a mat foundation (figure-3.4).
Figure-3.5 Resultant R of the applied loads should act at the centroid of footing for uniform soil pressure.
3.4 Design of Rectangular Combined Footings
Generally, combined footings are constructed of reinforced concrete. The fundamental
assumption for the design of a rectangular combined footing is that the footing is rigid
and rests on a homogeneous soil, so as to give rise to a linear stress distribution on the
bottom of the footing. If the resultant of the soil pressure coincides with the resultant of
the loads (and center of gravity of the footing), the soil pressure is assumed to be
uniformly distributed, which greatly simplifies the calculations. This assumption is
approximately true if the soil is homogeneous and the footing is rigid. The ACI Code,
section 15.40, does not provide a detailed approach for the design of combined footings.
The design, in general, is based on an empirical approach.
32
3.4.1 Footing Dimensions
Therefore, the dimensions of a combined footing are so proportioned that the center of
gravity of the area of the footing in contact with the soil lies on the line of action of the
resultant of the loads applied to the footing (figure-3.5). By doing so, the distribution of
soil pressure is assumed to be fairly uniform. If the resultant of the applied loads does not
coincide with the centroid of the bearing area, a bending moment develops. In this case,
the pressure on one side of the footing will be greater than the pressure on the other side,
causing higher settlement on one side and a possible rotation of the footing. Moreover,
the dimensions of the footing are chosen such that the allowable pressure is not exceeded.
3.4.2 Rounding of Dimensions
The conventional design method requires computing shears and moments at sufficient
locations that shear and moment diagrams can be drawn for critical values. It is also
standard practice to round the computed length and width to the nearest larger multiple of
75-mm or 3 inch. If this is done prior to computing shear and moment diagrams there
will be a closure error which depends on the amount the length is changed; thus, it is
recommended that footing dimensions be rounded as the final design step. Also, this
rounding may cause a small variation in the uniform pressure under the footing, but it can
be tolerated.
3.4.3 Shear and Moment Computations
The column loads are actually distributed over the column width but may be considered
to be concentrated point loads. This greatly simplifies the shear and moment
computations, and the values at the critical locations are the same by either method. Then
the resulting shear force and bending moment diagrams can be plotted. The maximum
bending moment should be adopted as the design value for the reinforced concrete
footing, which should also be checked for maximum shear and bond etc.
3.4.4 Depth of Footing
The depth based on the more critical of two-way action or wide-beam shear is computed.
Critical sections for two-way action and wide-beam are the same as for spread footings,
i.e., at d/2 and d, respectively, from the column face. It is common practice not to use
33
shear reinforcement both for economy and to increase the rigidity. The labor costs to
bend and place the shear reinforcement are likely to far exceed the small savings in
concrete that would result from its use.
3.4.5 Reinforcement Design
With the depth selected, the flexural steel can be designed using the critical moments
from the moment diagram. Alternatively, the depth and the loading can be used in a
finite-element analysis to obtain modified moments for the flexural steel. These beam-
type members usually have both positive and negative moments, resulting in reinforcing
steel in both the top and bottom of the footing. The minimum percentage of steel should
be taken as 200/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.
37
C H A P T E R F O U R
BEAM ON ELASTIC FOUNDATION
4.1 Elastic Foundation
A special kind of structural member is one which rests on a spongy material, termed as an
elastic foundation, which offers a resistance proportional to the transverse deflection; a
common example of this is a foundation beam resting on an elastic soil. Thus, there are
unknown transverse forces, equal to the product of the “stiffness modulus” of the
supporting material and the yet unknown transverse deflection, acting on structural
members on elastic foundation.
Usually, the treatment of structural members is confined to those under the action of
known transverse forces. In the displacement method of analysis, these transverse forces
are transmitted to both ends of each member, in the fixed condition. In case that some
member in a continuous beam or rigid frame is subjected to resistance offered by an
elastic foundation, the displacement method of analysis can still be used, provided that
expressions for the member stiffness matrix and for the fixed-end reactions and moments
due to common types of transverse loads can be found as functions of the stiffness
modulus. These required expressions will be derived in this chapter.
4.2 Winkler Model
Some soil/structure interaction problems may be simplified as a beam (structure) on
springs (soils), where the behavior of the soil is simplified by means of fictitious springs
placed continuously underneath the structure. In 1867, Winkler first studied the beam on
elastic springs. The model he developed is called the Winkler foundation model, which is
a one-dimensional problem. For analysis of beams and slabs resting on a soil medium,
engineers have been using this classical mathematical model. The springs representing
38
subgrade soils may obey Hooke’s 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 people’s attention
in studying the static and dynamic response of beams [Wang et al., 1997]. However, less
attention is paid to modeling the Timoshenko beam on an elastic foundation.
Figure-4.1 Modulus of subgrade reaction.
4.5 Modulus of Subgrade Reaction
In analysis of foundation members, the resistance offered by the supporting material is
taken as unknown transverse forces, equal to the product of its “stiffness modulus” (called
modulus of subgrade reaction for soils) and the transverse deflection of the structural
member. It is used for continuous footings, mats, and various types of pilings. This ratio
is defined on figure-4.1 and the basic equation when using plate-load test data is
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 .
Pre
ssure
,
Deformation,
ks =
Use initial tangent or
initial secant line
40
Figure-4.2 Determination of modulus of subgrade reaction from plate load test data.
It is difficult to make a plate-load test, except for very small plates because of the reaction
load required. Even with small plates of say 450, 600, and 750 mm diameter it is difficult
to obtain 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.
k =q
q
k depends on curve coordinates
used and is generally nonlinear q
NonlinearLinear
Xmax
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
)5.4()1(1
95.0108.0
2
4
2
EI
EBEk
s
s
s
s
42
where, Es = modulus of elasticity of the soil; s = Poisson’s ratio of the soil; B= beam
width; and EI = bending rigidity of the beam.
On similar grounds, Vesic [Vesic, 1961] tried to develop a value for k using the stress-
strain modulus of 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
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.
)6.4(1
65.012
4
2 EI
EBEk s
s
s
43
4.7.2 Vallabhan’s 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 Poisson’s 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:
)7.4(deflectionEIy
)8.4( slopedx
dyEI
)9.4(2
2
Mmomentdx
ydEI
)10.4(3
3
dx
dMVshear
dx
ydEI
44
Figure-4.3 Structural member on elastic foundation.
Now consider a structural member AB and its elastic curve A'B' as shown in figure-4.3. It
is subjected to a varying downward load of w per unit distance and to an upward force of
ky per unit distance, wherein k is the stiffness modulus of the elastic foundation, measured
in force per unit area. Sometimes the compression modulus of the medium is given in
force per unit volume, in which case the stiffness modulus is the product of the
compression modulus and the width of the structural member.
From the equilibrium equations of resolution and rotation of an infinitesimal segment of
the structural member,
and
)11.4(2
2
4
4
dx
Md
dx
dVload
dx
ydEI
)12.4(wkydx
dV
)13.4(Vdx
dM
45
wherein the positive directions of shear V and bending moment M are as shown in figure-
4.3 above. The change in slope between any two consecutive points at an infinitesimal
distance dx apart is equal to
The negative sign is due to the fact that the slope is decreasing in positive or concave
bending. Combining equations (4.12) and (4.14) gives the basic differential equation of
elastic curve as
The shear and bending moment become
and
4.10 General Solution of the Differential Equation
When there is no transverse load acting on the member, the basic differential equation
(4.15) becomes
Solution:
Let
Then equation (4.18) becomes:
)14.4(dxEI
M
dx
dyd
)15.4(4
4
EI
wy
EI
k
dx
yd
)16.4(3
3
dx
ydEIV
)17.4(2
2
dx
ydEIM
)18.4(04
4
yEI
k
dx
yd
)19.4(dx
d
)20.4(04
y
EI
k
46
For y 0,
Add and subtract to equation (4.21)
)21.4(04 EI
k
)22.4(022 224 EI
k
EI
k
EI
k
)23.4(02
2
4
12
2
EI
k
EI
k
)24.4(0224
1
24
1
2
EI
k
EI
k
EI
k
EI
k
)25.4(024
1
2
EI
k
EI
k
)26.4(2
4224
1
EI
k
EI
k
EI
k
)27.4(2
1
2
1 4
1
4
1
EI
ki
EI
k
)28.4(2
1sin
2
1cos
4
1
2
4
1
12
1
1
4
1
xEI
kax
EI
kaey
xEI
k
)29.4(4
4
EI
kL
)30.4(sincos 211
x
Lax
Laey
xL
)31.4(024
1
2
EI
k
EI
k
EI
k22
47
Because,
Let,
)32.4(2
4224
1
EI
k
EI
k
EI
k
)33.4(2
1
2
1 4
1
4
1
EI
ki
EI
k
)34.4(2
1sin
2
1cos
4
1
4
4
1
32
1
2
4
1
xEI
kax
EI
kaey
xEI
k
)35.4(sincos 432
xL
axL
aeyx
L
)36.4(sincossincos 432121
xL
axL
aexL
axL
aeyyyx
Lx
L
bxbxeandbxbxe bxbx sinhcoshsinhcosh
xL
xL
eandxL
xL
ex
Lx
L
sinhcoshsinhcosh
)37.4())(''())(''( 4321 sacascsacascy
)38.4('''''''' 43422121 ssascascaccassascascaccay
)39.4(')(')(')(')( 42314231 ssaascaascaaccaay
)40.4(sinhsincoshsin
sinhcoscoshcos
xL
xL
DxL
xL
C
xL
xL
BxL
xL
Ay
xL
s
sin xL
c
cosxL
s
sinh' xL
c
cosh'
48
where,
Figure-4.4 Boundary conditions of a structural member.
4.11 Boundary Conditions of an Unloaded Member
Since the general solution of differential equation for an unloaded member resting on an
elastic foundation includes four arbitrary constants, four boundary conditions are required
for the evaluation of these constants. Two common approaches are (1) specifying the
bending moments 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.
42423131 aaDaaCaaBaaA
4
4EI
kL
Mi
Vi
i
i
i
y
0
Mj
Vj
j
j
j
x
49
It will be shown that the use of the first approach will yield a 44 flexibility matrix of a
member on elastic foundation, and the second approach will produce the 44 stiffness
matrix.
4.12 Stiffness Matrix of a Member on Elastic Foundation
The four force quantities 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
as
Differentiate y w.r.t. x:
Again differentiate y w.r.t. x:
)41.4(2
2
dx
ydEIM i
)42.4()''''( ssDcsCscBccAdx
d
dx
dy
)43.4()]''()''()''()''([ cscsDccssCssccBscscAL
)44.4()}]''()''{()}''()''{(
)}''()''{()}''()''{([2
2
2
2
ssccssccDscscscscC
scscscscBssccssccALdx
yd
)45.4()]''''()''''(
)''''()''''([2
2
ccssccssDscscscscC
scscscscBssccssccAL
)46.4(]'2'2'2'2[2
2
DccCscBscAssL
)47.4()]112()012(
)102()002([)0(2
2
2
2
DC
BAL
xatdx
yd
)40.4(sinhsincoshsin
sinhcoscoshcos
xL
xL
DxL
xL
C
xL
xL
BxL
xL
Ay
50
Let,
Now,
Differentiate above equation w.r.t. x:
sins coscsinh's cosh'c
)48.4(]2[2
2
DL
)49.4(2
)0(2
2
2
2
DL
EIxat
dx
ydEIM i
)50.4()]'2()'2()'2()'2([)(2
2
ccDcsCscBssALxatdx
yd
)51.4(]''''[22
2
DccCcssBcAssL
)52.4(]''''[2
)(2
2
2
2
DccCcssBcAssL
EILxat
dx
ydEIM j
)40.4(sinhsincoshsin
sinhcoscoshcos
xL
xL
DxL
xL
C
xL
xL
BxL
xL
Ay
)53.4(]''''[22
2
2
2
DccCscBscAssLdx
yd
)54.4()]''()''()''()''([23
3
3
3
scscDssccCccssBscscALdx
yd
)55.4()]00()01()10()00([2)0(3
3
3
3
DCBAL
xatdx
yd
)56.4()(23
3
CBL
51
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
As
)58.4()]''()''(
)''()''([2
)(3
3
3
3
sccsDssccC
ccssBcsscAL
Lxatdx
yd
)59.4()]''()''(
)''()''([2
)(3
3
3
3
csscDccssC
ccssBcsscAL
EILxat
dx
ydEIV j
)61.4()()0( CBL
xatdx
dyi
)63.4(])''()''()''()''[()( DcsscCccssBccssAcsscL
Lxatdx
dyj
)65.4()0( Axatyi
)57.4()(2
)0(3
3
3
3
CBL
EIxat
dx
ydEIVi
)43.4()]''()''()''()''([ cscsDccssCssccBscscALdx
dy
)60.4()]00()10()01()00([)0( DCBAL
xatdx
dy
)62.4(])''()''()''()''[()( DcsscCccssBccssAcsscL
Lxatdx
dy
)40.4(sinhsincoshsin
sinhcoscoshcos
xL
xL
DxL
xL
C
xL
xL
BxL
xL
Ay
)64.4()]0()0()0()1([)0( DCBAxaty
)66.4(]''''[)( DsssCcBcsAccLxaty
52
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),
From equation (4.61),
From equation (4.68) and (4.69), put values of A and B in equation (4.67)
From equation (4.68), (4.69), and (4.72) put values of A, B, and D in equation (4.63),
)67.4('''')( DsssCcBcsAccLxatyj
)68.4(iA
)69.4(CL
B i
)70.4(''''' DsssCcCcscsL
cc iij
)71.4()''(''' CsccscsL
ccDss iji
)72.4()'
'(
'
1
'
'C
s
c
s
c
s
cL
ssss
ccD iji
)73.4(''
'
''
''
'
''
'
''
''''')''(
22
222
CccCs
scC
s
scCcc
s
scLcc
L
s
c
s
c
s
cc
s
ccCcc
CssCccCssccL
ssL
csscL
iijjii
iiij
)74.4('
'
''2
''''
'
''
'
'''
22
22
2
2
Cs
sc
s
scss
s
scccccss
L
s
c
s
c
s
cc
s
cccssc
Lijij
53
From equation (4.81) put value of C in equation (4.69)
)75.4('
'''2
''
'
''
'
''''''
222222
222222
Css
scscss
s
scssL
ss
cssc
ss
sccsccsssscLijij
)76.4('
''''
')(
'
)''(
'
)''()(''
22222222
222222
Css
scsssssc
s
scsL
ss
cssc
ss
sccscsscLijij
)77.4('
)(')''(
'
'
''
'
''
222222
Css
cssscs
s
sL
ss
cssc
ss
csscLijij
)78.4('
'
'
'
'
''
'
'' 222
Css
ss
ss
sL
ss
cssc
ss
csscLijij
)79.4()'()''()''('' 222 CsscsscsccssL
ssL
jiij
)80.4()''()''('')'( 222
jiji csscsccsssL
sL
Css
)81.4()''()''('''
1 2
22
jiji csscsccsss
Ls
L
ssC
)82.4()''()''('''
1 2
22
jijii csscsccsss
Ls
L
ss
LB
)83.4()''()''('''
1
)'(
)'( 2
2222
22
jijii csscsccsss
Ls
L
ssss
ssLB
)84.4()''()''(')''('
1 222
22
jiji csscsccsss
Lsss
L
ssB
54
Multiply equation (4.65) by cc’ on both sides
Multiply and divide equation (4.86) by (s’2-s
2) on right hand side
Multiply equation (4.85) by cs' on both sides
Multiply equation (4.81) by c's on both sides
Rewrite equation (4.67)
Multiply and divide j by (s' 2-s
2)
From equation (4.86), (4.88), and (4.89) put values of cc'A, cs'B, and c'sC in equation
(4.91),
)85.4()''()''(''
1 2
22
jiji csscsccsss
Ls
L
ssB
)86.4('' iccAcc
)88.4()'''()'''('''
1' 222222
22
jiji scssccsccssccss
Lscs
L
ssBcs
)89.4()'''()'''('''''
1' 222222
22
jiji ssccscsscsccssc
Lssc
L
sssCc
)90.4('''' sCcBcsAccDss j
)92.4(])''''''''(
)'''''''''(
)'''()'''(['
1'
222222
222222
2222
22
j
i
ji
ssssccscscsscc
sscsccsccsscsccscc
ssccssL
sscscsL
ssDss
)93.4()'
'
'
''()'(
)''()''('
1
2222
22
ji
ji
s
s
s
s
s
sc
s
sccc
csscL
sccsL
ssD
)87.4()'''('
1' 22
22 isccsccss
Acc
)91.4(''''
''
22
22
sCcBcsAccss
ssDss j
55
If we put value of D from equation (4.97) in equation (4.49), the coefficient of i on right
hand side becomes:
The coefficient of j becomes:
The coefficient of i becomes:
The coefficient of j becomes:
)94.4()'
'''()1'1(
)''()''('
1
22222222
22
ji
ji
ss
ssscscss
csscL
sccsL
ssD
)95.4(}'
)1'()1('{)'(
)''()''('
1
222222
22
ji
ji
ss
cscsss
csscL
sccsL
ssD
)96.4()'
''()'()''()''(
'
1 222222
22
jiji
ss
sssssscssc
Lsccs
L
ssD
)97.4('2)'()''()''('
1 22
22
jiji sssscssc
Lsccs
L
ssD
)98.4()''()'(
2222
2
sccsL
ssL
EI
)100.4()''()'(
2222
2
csscL
ssL
EI
)101.4()'(
)''(222 ssL
csscEI
)102.4()'(
)'(2222
222
ssL
ssEI
)103.4()'(
)'2(2222
2
ssL
ssEI
)104.4()'(
'4222
2
ssL
ssEI
)99.4()'(
)''(222 ssL
csscEI
56
Hence, equation (4.49) becomes:
or
If we put value of A, B, C, and D from equation (4.68), (4.85), (4.81), and (4.97) in
equation (4.52), the coefficient of i on right hand side becomes:
The coefficient of j becomes:
The coefficient of i becomes:
)107.4()'''''0'()'(
2 2233
222
2
sccscccsscssL
ssL
EI
)108.4()}''(')('{)'(
2 2222
22sccscssc
ssL
EI
)109.4()'(
)''(222 ssL
csscEI
)110.4()}''(')'(')'('0'{)'(
2222
2
csscccsscsssscssL
ssL
EI
)111.4()''''''()'(
2 2222
22sccscccssssc
ssL
EI
)112.4()}''()(''{)'(
2 2222
22sccscssc
ssL
EI
)113.4()'(
)''(222 ssL
csscEI
)114.4()}'(')''(')''(')')(1('{)'(
2 2222
222
2
ssccsccscssccsscssssssL
EI
)105.4()'(
'4
)'(
)'(2
)'(
)''(2
)'(
)''(2
222
2
222
222
2222
ji
jii
ssL
ssEI
ssL
ssEI
ssL
csscEI
ssL
csscEIM
)106.4(4321 jijii VARVARVARVARM
57
The coefficient of j becomes:
Hence, equation (4.52) becomes:
or
)115.4()'''''''''''()'(
2 22222233
222
2
sccsccsccsscsscsccssssssL
EI
)116.4()}1(')'1('''{)'(
2 2233
222
2
ssssssssssssL
EI
)117.4()''''''()'(
2 3333
222
2
ssssssssssssssL
EI
)118.4()'(
'2222
2
ssL
ssEI
)119.4()}'2(')''(')''('0'{)'(
2222
2
sscccssccscsscscssssL
EI
)120.4()''2''''''()'(
2 2222
222
2
ssccscssccssccscssL
EI
)121.4()}1(')'1({)'(
2 2222
222
2
ssssssL
EI
)122.4()'''()'(
2 222222
222
2
ssssssssL
EI
)123.4()'(
)'(2222
222
ssL
ssEI
)124.4()'(
)'(2
)'(
'2
)'(
)''(2
)'(
)''(2
222
222
222
2
2222
ji
jij
ssL
ssEI
ssL
ssEI
ssL
csscEI
ssL
csscEIM
)125.4(3412 jijij VARVARVARVARM
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:
The coefficient of j becomes:
The coefficient of i becomes:
The coefficient of j becomes:
Hence, equation (4.57) becomes:
)126.4()'()'(
2 22
223
3
ssL
ssL
EI
)127.4()'(
)'(2222
222
ssL
ssEI
)130.4()''''()'(
2223
3
sccssccsssL
EI
)131.4()''22()'(
2223
3
sccsssL
EI
)132.4()'(
)''(4223
3
ssL
sccsEI
)128.4()''()'(
2223
3
ssssL
ssL
EI
)129.4()'(
'4222
2
ssL
ssEI
)133.4()}''()''{()'(
2223
3
cssccsscssL
EI
)134.4()''''()'(
2223
3
cssccsscssL
EI
)135.4()'(
)''(4223
3
ssL
csscEI
)136.4()'(
)''(4
)'(
)''(4
)'(
'4
)'(
)'(2
223
3
223
3
222
2
222
222
ji
jii
ssL
csscEI
ssL
sccsEI
ssL
ssEI
ssL
ssEIV
59
or
If we put value of A, B, C, and D from equation (4.68), (4.85), (4.81), and (4.97) in
equation (4.59), the coefficient of i on right hand side becomes:
The coefficient of j becomes:
)138.4()}'')(''('''''0)''{()'(
2 2323
223
3
sccscsscsccsssccsscsscL
ssL
EI
)139.4()'''''''''''()'(
2 22222323
222
2
sccsscsscsccsccsssccssssL
EI
)140.4()}''(')('{)'(
2 2222
222
2
scsscsssssL
EI
)141.4()'2()'(
2222
2
ssssL
EI
)142.4()'(
'4222
2
ssL
ssEI
)143.4()}'')(''()')(''(
')''(0)''{()'(
2223
3
cssccsscssccss
ssccsscsscL
ssL
EI
)144.4(})''(''''''{)'(
2 22222
222
2
csscssccsssccssssL
EI
)145.4()'''2'''2()'(
2 2222
222
2
scsscccsssccssL
EI
)146.4()}1(')'1({)'(
2 2222
222
2
ssssssL
EI
)137.4(6543 jijii VARVARVARVARV
60
The coefficient of i becomes:
The coefficient of i becomes:
)149.4()}')(''()'')(''(
)'')(''()1)(')(''{()'(
2
22
22
223
3
sscsscsccsccss
sccsccsssscsscssL
EI
)150.4()'''''''''
'''''''''''''()'(
2
332222
2222222332
223
3
csscscssscsccssc
sccscssccsccsscscsscssccssscssL
EI
)151.4()''2'2'2'2()'(
2 2233
223
3
sccsccsccsssL
EI
)152.4()}(')''('{)'(
4 2222
223
3
csscsccsssL
EI
)153.4()'(
)''(4223
3
ssL
csscEI
)147.4()'''()'(
2 222222
222
2
ssssssssL
EI
)148.4()'(
)'(2222
222
ssL
ssEI
)154.4()}''('2)'')(''()'')(''{()'(
2223
3
csscsscsscccsscsscccssssL
EI
)155.4()'2''2''''
''''''''()'(
2
22222
22222
223
3
csssscscccssscc
sscscccsssccsscssL
EI
)156.4()'2''2''2'2()'(
2 2222
223
3
csssscsccsccssL
EI
)157.4()''''''()'(
4 2222
223
3
sscscccsssccssL
EI
61
Hence, equation (4.59) becomes:
or
The stiffness matrix [S] of a member on elastic foundation can be formed from equation
(4.106), (4.125), (4.137), and (4.161) as follows:
I j i j
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:
)158.4()}('')''({)'(
4 2222
223
3
scscsccsssL
EI
)159.4()'(
)''(4223
3
ssL
sccsEI
)160.4()'(
)''(4
)'(
)''(4
)'(
)'(2
)'(
'4
223
3
223
3
222
222
222
2
ji
jij
ssL
sccsEI
ssL
csscEI
ssL
ssEI
ssL
ssEIV
)161.4(5634 jijij VARVARVARVARV
62
I I j j
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 l’Hospital’s rule:
Applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
)162.4()'(
)''(2221
ssL
csscEIVAR
)163.4(0
0
)'(
)''(lim
2
)'(
)''(2lim
220220
ss
cssc
L
EI
ssL
csscEI
)164.4(0
0
)''(2
)''()''(lim
2
)'(
)''(lim
2 2222
0220
cssc
cssccscs
L
EI
ss
cssc
L
EI
)165.4(0
0
)''(2
)''()''(4lim
2
)''(2
)''()''(lim
2
2222
2222
0
2222
0
scsc
cscscssc
L
EI
cssc
cssccscs
L
EI
)166.4(0
0
)''(8
)''(8)''(4lim
2
)''(2
)''()''(4lim
2
2222
0
2222
2222
0
cssc
sccsscsc
L
EI
scsc
cscscssc
L
EI
63
Again applying l’Hospital’s rule:
Applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
)167.4(4
)''(8
)''(12)''(16lim
2
)''(8
)''(8)''(4lim
2
2222
2222
0
2222
0
L
EI
cscs
cscscssc
L
EI
cssc
sccsscsc
L
EI
)168.4(04
1 atL
EIVAR
)169.4()'(
)''(2222
ssL
csscEIVAR
)170.4(0
0
)'(
)''(lim
2
)'(
)''(2lim
220220
ss
cssc
L
EI
ssL
csscEI
)171.4(0
0
)''(2
)''('2lim
2
)'(
)''(lim
2
0220
cssc
csscss
L
EI
ss
cssc
L
EI
)172.4(0
0
)''(2
'4)''(2lim
2
)''(2
)''('2lim
2222200
scsc
sscssc
L
EI
cssc
csscss
L
EI
)173.4(0
0
)''(8
)''(6'4lim
2
)''(2
'4)''(2lim
2
022220
cssc
cssccc
L
EI
scsc
sscssc
L
EI
)174.4(2
)''(8
'16)''(4lim
2
)''(8
)''(6'4lim
2222200 L
EI
scsc
ccsccs
L
EI
cssc
cssccc
L
EI
)175.4(02
2 atL
EIVAR
64
Applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
)176.4()'(
)'(2222
222
3ssL
ssEIVAR
)177.4(0
0
)'(
)'(lim
2
)'(
)'(2lim
22
222
02222
222
0
ss
ss
L
EI
ssL
ssEI
)178.4(0
0
)''(2
)'(2)''(2lim
2
)'(
)'(lim
2 222
0222
222
02
cssc
sscssc
L
EI
ss
ss
L
EI
)179.4(0
0
)''(2
)'(2)''(8)''(2lim
2
)''(2
)'(2)''(2lim
2
2222
2222222
02
222
02
cscs
sscssccscs
L
EI
cssc
sscssc
L
EI
)180.4(0
0
)''(8
)''(12)''(12)''(8lim
2
)''(2
)'(2)''(8)''(2lim
2
22222
02
2222
2222222
02
cssc
cssccscscssc
L
EI
cscs
sscssccscs
L
EI
)181.4(6
)''(8
)''(24)''(64)''(8lim
2
)''(8
)''(12)''(12)''(8lim
2
22222
222222222
02
22222
02
L
EI
cscs
cscscssccscs
L
EI
cssc
cssccscscssc
L
EI
)182.4(06
23 atL
EIVAR
)183.4()'(
'4222
2
4ssL
ssEIVAR
)184.4(0
0
)'(
'lim
4
)'(
'4lim
22
2
02222
2
0
ss
ss
L
EI
ssL
ssEI
65
Applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
Applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
)185.4(0
0
)''(2
'2)''(lim
4
)'(
'lim
4 2
0222
2
02
cssc
sscssc
L
EI
ss
ss
L
EI
)186.4(0
0
)''(2
'2)''(4'2lim
4
)''(2
'2)''(lim
42222
2
02
2
02
cscs
sscssccc
L
EI
cssc
sscssc
L
EI
)187.4(0
0
)''(8
)''(6'12)''(2lim
4
)''(2
'2)''(4'2lim
4
2
02
2222
2
02
cssc
csscccsccs
L
EI
cscs
sscssccc
L
EI
)188.4(6
)''(8
'24)''(16'2lim
4
)''(8
)''(6'12)''(2lim
4
22222
2
02
2
02
L
EI
cscs
ccsccsss
L
EI
cssc
csscccsccs
L
EI
)189.4(06
24 atL
EIVAR
)190.4()'(
)''(4223
3
5ssL
sccsEIVAR
)191.4(0
0
)'(
)''(lim
4
)'(
)''(4lim
22
3
03223
3
0
ss
sccs
L
EI
ssL
sccsEI
)192.4(0
0
)''(2
)''(3)''(lim
4
)'(
)''(lim
4 222223
0322
3
03
cssc
sccsscsc
L
EI
ss
sccs
L
EI
)193.4(0
0
)''(2
)''(6)''(6)''(4lim
4
)''(2
)''(3)''(lim
4
2222
222223
03
222223
03
scsc
sccsscsccssc
L
EI
cssc
sccsscsc
L
EI
66
Again applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
Applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
Again applying l’Hospital’s rule:
)194.4(0
0
)''(8
)''(6)''(18)''(24)''(4lim
4
)''(2
)''(6)''(6)''(4lim
4
2222222223
03
2222
222223
03
cssc
sccsscsccsscscsc
L
EI
scsc
sccsscsccssc
L
EI
)195.4(12
)''(8
)''(24)''(72)''(36)''(16lim
4
)''(8
)''(6)''(18)''(24)''(4lim
4
32222
2222222223
03
2222222223
03
L
EI
scsc
scsccsscscsccssc
L
EI
cssc
sccsscsccsscscsc
L
EI
)196.4(012
35 atL
EIVAR
)197.4()'(
)''(4223
3
6ssL
csscEIVAR
)198.4(0
0
)'(
)''(lim
4
)'(
)''(4lim
22
3
03223
3
0
ss
cssc
L
EI
ssL
csscEI
)199.4(0
0
)''(2
)''(3'2lim
4
)'(
)''(lim
4 23
0322
3
03
cssc
cssccc
L
EI
ss
cssc
L
EI
)200.4(0
0
)''(2
)''(6'12)''(2lim
4
)''(2
)''(3'2lim
42222
23
03
23
03
scsc
csscccsccs
L
EI
cssc
cssccc
L
EI
)201.4(0
0
)''(8
)''(6'36)''(18'4lim
4
)''(2
)''(6'12)''(2lim
4
23
03
2222
23
03
cssc
csscccsccsss
L
EI
scsc
csscccsccs
L
EI
67
Again applying l’Hospital’s rule:
Hence, the stiffness matrix (4.2) becomes,
I i j j
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 [ASA
T] matrices in any
direct stiffness application of the displacement method.
4.14 General Relations
Consider figure-4.5,
)202.4(12
)''(8
'48)''(72'18)''(4lim
4
)''(8
)''(6'36)''(18'4lim
4
32222
23
03
23
03
L
EI
cscs
ccsccssscssc
L
EI
cssc
csscccsccsss
L
EI
)203.4(012
36 atL
EIVAR
68
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 = A F (4.205)
F 1-e 1
L
Nodal P-X
F 2-e 2
e 2
e 1
F 1 + F 2
L
F 1 + F 2
L
L
P2 - X2 P4 - X4
P1 - X1 P3 - X3
Element F-e
69
Similarly, the relation between the internal-member deformations e and external nodal
displacements X becomes
e = B X (4.206)
From the principle of virtual work, matrix B is exactly the transpose of matrix A*.
Hence,
e = 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 X’s, therefore the ASAT is inverted
to obtain
X = (ASAT)-1
P (4.211)
Thus, the deformation characteristics (rotations and deflections) are obtained. To get the
internal-member forces (bending moments and shear forces) for design purpose, we back-
substitute the values of X in equation (4.209).
70
The 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.
Figure-4.6 Structure and structure broken into finite elements with global P-X, F-e, and K.
Figure-4.7 (a) P-X of first element; (b) Element forces of first element.
2 43 5
F 1 - e1 F 2 - e2 F 3 - e3 F 4 - e4 F 5 - e5
Nodes
Element numbers
1 2 3 4
P2 - X2
P1 - X1
P4 - X4
P3 - X3
P6 - X6
P5 - X5
P8 - X8
P7 - X7
P10 - X10
P9 - X9
L1 L2 L3 L4
K 5K 4K 3K 2K 1
1
a
b
2 2 4 4
P1 - X1 P3 - X3
F 1 - e1 F 2 - e2
F 1 + F2 F 1 + F2
L1
L1 L1
1
71
Figure-4.8 Summing of nodal forces.
4.15 Development of the Element A matrix
Consider the single simple beam element shown in figure-4.7(a) labeled with four
subscripted values of P-X and the F-e on the element (figure-4.7(b)). The values of P-X
and F-e on a node common to any two elements must have same subscripting while
considering each element (figure-4.6). The forces on the elements include two internal
bending moments and the shear effect of the bending moments.
Summing moments on node 1 and 2 respectively (figure-4.8), we get
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
)214.4(212
L
F
L
FP
)215.4(214
L
F
L
FP
P2
P1
F 1
Node 1
F 1 + F2
L1
K 1X1
P4
P3
F 2
Node 2
F 1 + F2
L1
K 2X2
72
Arranging in the conventional form, we get the element A matrix for element 1
Matrix-4.4
4.16 Development of the Element B (or AT) matrix
This matrix is obtained by transposing the EA matrix. It is worth noting that the
constituting equations of EAT are in terms of e and X.
Matrix-4.5
4.17 Development of element S matrix
Consider the conjugate beam shown in figure-4.9 (a)
Applying equilibrium conditions:
Fy = 0:
F
3
1 1
2 1/L 1/L
0
1
2
1 0
4 -1/L -1/L
P
X
1 1
1
2 0
1/L
e
-1/L
-1/L
1
0
1/L
2
3
4
)216.4(2
1
EI
LFRR BA
73
Figure-4.9 Conjugate-beam relationships between end moments and beam rotations.
MA = 0:
Now consider the conjugate beam shown in figure-4.9 (b)
)217.4(32
1 LRL
EI
LFB
)218.4(6
1
EI
LFRB
)219.4(622
111
EI
LF
EI
LFR
EI
LFR BA
)220.4(3
1
EI
LFRA
e1
e2
F 1 F 2
e1
e2
F 1 F 2
F 1 F 2
L L
F 1 F 2
EI EI
RA RB
RA' RB'
Real beam element
Moment diagram
Cojugate beam
Real beam element
Moment diagram
Cojugate beam
a b
74
Applying equilibrium conditions:
Fy = 0:
MA = 0:
Now applying conjugate beam theorem 1, which states that the clockwise slope and the
downward deflection at any point in a real beam are equal to the positive shear and
positive bending moment at that point in the conjugate beam, respectively, we get
slope at point A,
and slope at point B,
Solving equation (4.226) and (4.227) simultaneously, we get
)221.4(2
'' 2
EI
LFRR BA
)222.4('3
2
2
2 LRL
EI
LFB
)223.4(3
' 2
EI
LFRB
)224.4(32
'2
' 222
EI
LF
EI
LFR
EI
LFR BA
)225.4(6
' 2
EI
LFRA
)226.4(63
' 211
EI
LF
EI
LFRRe AA
)227.4(36
' 212
EI
LF
EI
LFRRe BB
)228.4(24
211 eL
EIe
L
EIF
)229.4(42
212 eL
EIe
L
EIF
75
Arranging in the conventional form, we get the element S matrix for element 1
Matrix-4.6
4.18 Development of the element ESAT and EASA
T matrices
The ESAT matrix is obtained by multiplication of the element matrices ES and EA
T.
Similarly, the EASAT matrix is obtained by multiplication of the element matrices EA
and ESAT.
Matrix-4.7
e
1 4EI/L 2EI/L
1
2
2 2EI/L 4EI/L
F
)230.4(1
11
0
10
11
42
2
LL
LL
L
EI
L
EIL
EI
L
FEI
EEE TTASSA
)231.4(6462
6264
22
22
L
EI
L
EI
L
EI
L
EIL
EI
L
EI
L
EI
L
EI
E TSA
)232.4(
126126
6462
126126
6264
3232
22
3232
22
L
EI
L
EI
L
EI
L
EIL
EI
L
EI
L
EI
L
EIL
EI
L
EI
L
EI
L
EIL
EI
L
EI
L
EI
L
EI
E TASA
76
4.19 Development of the global matrix ASAT
The global matrix ASAT is built by superimposing the element matrices EASA
T. To
illustrate the procedure, the first two EASAT are superimposed on following page:
Let,
and
be the EASAT matrices of element 1 and 2 respectively. Then superimposing these two in
the global ASAT ,we get
Matrix-4.8
)233.4(
126126
6462
126126
6264
3
1
2
1
3
1
2
1
2
11
2
11
3
1
2
1
3
1
2
1
2
11
2
11
1
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
E TASA
)234.4(
126126
6462
126126
6264
3
2
2
2
3
2
2
2
2
22
2
22
3
2
2
2
3
2
2
2
2
22
2
22
2
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
E TASA
3
2
2
2
3
2
2
2
2
22
2
22
3
2
2
2
3
2
3
1
2
2
2
1
3
1
2
1
2
22
2
2
2
121
2
11
3
1
2
1
3
1
2
1
2
11
2
11
12612600
646200
126121266126
62664462
00126126
006264
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
TASA
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
Hence
.
The end springs get the contributory area from only one element. For example,
Because the soil pressure is higher at the edges, Bowles suggests that best results are
obtained by doubling the end springs. Hence, the end springs are multiplied by 2,
therefore
After obtaining the values of the end springs, they are added to the global 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
)235.4(22
212 B
LLarearycontributo
)236.4(2
212 sBk
LLK
)237.4(2
11 sBk
LK
)238.4(11 sBkLK
78
Matrix-4.9
4.21 Development of P matrix
The P matrix is a column vector of order 2N+2 where N is the number of elements. It
represents all the applied moments and loads on the structure. The moment and load on
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 ASAT
j,k entries from k=1 to n except k = j.
33
2
2
2
3
2
2
2
2
22
2
22
3
2
2
2
23
2
3
1
2
2
2
1
3
1
2
1
2
22
2
2
2
121
2
11
3
1
2
1
13
1
2
1
2
11
2
11
12612600
646200
126121266126
62664462
00126126
006264
KL
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EIK
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
L
EIK
L
EI
L
EI
L
EI
L
EI
L
EI
L
EI
TASA
79
3. Insert the known displacements in the P matrix (so Pj = ).
4. Augment all other P matrix entries as
P(I) = P(I ) - ASAT
i,j for i = 1 to (2N + 2) except i= j.
Then set ASAT
i,j=0 for i = 1 to (2N + 2) except i= j.
To show the technique, a small example is given here. Suppose that the structure has
only four possible nodal displacements/rotations, as indicated by the following
equilibrium equations:
Now suppose that the displacement 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:
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.
)239.4(
4
3
2
1
4
3
2
1
44434241
34333231
24232221
14131211
P
P
P
P
X
X
X
X
SSSS
SSSS
SSSS
SSSS
)240.4(
0
0100
0
0
3434
3
3232
3131
4
3
2
1
444241
242221
141211
XSP
X
XSP
XSP
X
X
X
X
SSS
SSS
SSS
80
C H A P T E R F I V E
PROGRAM
5.1 CAD
CAD is acronym for computer-aided design (also computer-aided drafting). A CAD
system is a combination of hardware and software that enables engineers and architects to
design everything from furniture to airplanes. In addition to the software, CAD systems
require a high-quality graphics monitor; a mouse, light pen, or digitizing tablet for
drawing; and a special printer or plotter for printing design specifications.
CAD systems allow an engineer to view a design from any angle with the push of a
button and to zoom in or out for close-ups and long-distance views. In addition, the
computer keeps track of design dependencies so that when the engineer changes one
value, all other values that depend on it are automatically changed accordingly.
Until the mid 1980s, all CAD systems were specially constructed computers. Now, one
can buy CAD software that runs on general-purpose personal computers.
5.2 CAE
CAE is abbreviation of computer-aided engineering. CAE are computer systems that
analyze engineering designs. Most CAD systems have a CAE component or provide the
facility to add analysis components by writing programs, but there are also independent
CAE systems that can analyze designs produced by various CAD systems. CAE systems
are able to simulate a design under a variety of conditions to see if it actually works.
81
5.3 AutoCAD 2000
AutoCAD® 2000 is a CAD system with a rich and unique history. First released in 1982
under the name MicroCAD, the first AutoCAD ran under the CP/M operating system on
Intel 8080 computers. That first AutoCAD release started a revolution in drafting and
design. Today, AutoCAD is translated into 18 languages and used by millions of users
worldwide on computers a thousand times more powerful than those early 8080
microprocessors.
AutoCAD 2000 continues the AutoCAD heritage and introduces new tools and facilities.
Along with many other tools, AutoCAD 2000 has built-in Visual Basic for Applications
making it easy to rapidly expand the functionality of AutoCAD by writing programs.
5.3.1 AutoCAD ActiveX Technology
AutoCAD ActiveX provides a mechanism to manipulate AutoCAD programmatically
from within or outside AutoCAD. It does this by exposing AutoCAD objects to the
“outside world.” Once these objects are exposed, they can be accessed by many different
programming languages and environments and by other applications such as Microsoft®
Word VBA or Excel VBA.
Figure-5.1 Any language that supports ActiveX technology can access AutoCAD ActiveX Objects.
There are two advantages to implementing an ActiveX interface for AutoCAD:
82
Programmatic access to AutoCAD drawings is opened up to many more
programming environments. Before ActiveX Automation, developers were limited to
an AutoLISP or C++ interface.
Sharing data with other Windows® applications, such as Microsoft Excel
® and
Word®, is made dramatically easier.
5.4 Rapid Application Development (RAD)
A programming system that enables programmers to quickly build working programs. In
general, RAD systems provide a number of tools to help build graphical user interfaces
that would normally take a large development effort. Two of the most popular RAD
systems for Windows are Visual Basic and Delphi.
Historically, RAD systems have tended to emphasize reducing development time,
sometimes at the expense of generating efficient executable code. Nowadays, though,
many RAD systems produce extremely fast code. Conversely, many traditional
programming environments now come with a number of visual tools to aid development.
Therefore, the line between RAD systems and other development environments has
become blurred.
5.5 Visual Basic
Visual Basic is a programming language and environment developed by Microsoft.
Based on the BASIC language, Visual Basic was one of the first products to provide a
graphical programming environment and a paint metaphor for developing user interfaces.
Instead of worrying about syntax details, the Visual Basic programmer can add a
substantial amount of code simply by dragging and dropping controls, such as buttons and
dialog boxes, and then defining their appearance and behavior.
Although not a true object-oriented programming language in the strictest sense, Visual
Basic nevertheless has an object-oriented philosophy. It is sometimes called an
83
event-driven language because each object can react to different events such as a mouse
click.
Since its launch in 1990, the Visual Basic approach has become the norm for
programming languages. Now there are visual environments for many programming
languages, including C, C++, Pascal, and Java. Visual Basic is sometimes called a Rapid
Application Development (RAD) system becomes it enables programmers to quickly
build prototype applications.
5.6 VBA
VBA is fundamentally the same language as visual basic, except that VBA is embedded
within individual applications instead of standing alone, like VB, as an independent
programming language. VBA comes built into popular Microsoft applications like word,
excel, and project, etc, as well as in software by other companies like in AutoCAD.
Basic has evolved through DOS’s 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 DOS’s Basic and QuickBasic and the parent of VBA (Visual
Basic for Applications)
5.7 AutoCAD Visual Basic for Applications (VBA)
Microsoft VBA is an object-oriented programming environment designed to provide rich
development capabilities similar to those of Visual Basic (VB). The main difference
between VBA and VB is that VBA runs in the same process space as AutoCAD,
providing an AutoCAD-intelligent and very fast programming environment.
VBA also provides application integration with other VBA-enabled applications. Which
means AutoCAD, using other application object libraries, can be an Automation
controller for other applications such as Microsoft Word or Excel.
84
The standalone development editions of Visual Basic, which must be purchased
separately, complement AutoCAD VBA with additional components, such as an external
database engine and report-writing capabilities.
There are four advantages to implementing VBA for AutoCAD:
The Visual Basic programming environment is easy to learn and use.
VBA runs in-process with AutoCAD. This translates to very fast program execution.
Dialog construction is quick and effective. This allows developers to prototype
applications and quickly receive feedback on designs.
Projects can be standalone or imbedded in drawings. This choice allows developers
great flexibility in the distribution of their applications.
5.7.1 VBA implementation in AutoCAD
VBA sends messages to AutoCAD by the AutoCAD ActiveX Automation interface.
AutoCAD VBA permits the VBA environment to run simultaneously with AutoCAD and
provides programmatic control of AutoCAD through the ActiveX Automation interface.
This coupling of AutoCAD, ActiveX Automation, and VBA provides an extremely
powerful interface not only for manipulating AutoCAD objects, but also for sending data
to or retrieving data from other applications.
There are two fundamental elements that define ActiveX and VBA programming in
AutoCAD. The first is AutoCAD itself, which has a rich set of objects that encapsulates
AutoCAD entities, data, and commands. Because AutoCAD was designed as an
open-architecture application with multiple levels of interface, familiarity with AutoCAD
programmability is highly desirable in order to use VBA effectively.
The second element is the AutoCAD ActiveX Automation interface, which establishes
messages (communication) with AutoCAD objects. Programming in VBA requires a
fundamental understanding of ActiveX Automation. A description of the AutoCAD
85
ActiveX Automation interface can be found in the ActiveX and VBA Reference that
comes with AutoCAD package.
5.7.2 Strengths of AutoCAD ActiveX and VBA Together
The AutoCAD ActiveX/VBA interface represents several advantages over other
AutoCAD API environments:
5.7.2.1 Speed
Running in-process with VBA, ActiveX applications are faster than either AutoLISP or
ADS applications.
5.7.2.2 Ease of Use
The programming language and development environment are easy to use and come
installed with AutoCAD.
5.7.2.3 Windows Interoperability
ActiveX and VBA are designed to be used with other Windows applications and provide
an excellent path for communication of information across applications.
5.7.2.4 Rapid Prototyping
The rapid interface development of VBA provides the perfect environment for
prototyping applications, even if those applications will eventually be developed in
another language.
5.7.2.5 Programmer Base
There are millions of Visual Basic programmers around the world. AutoCAD ActiveX
and VBA technology open up AutoCAD customization and application development to
these programmers and the many more who will learn Visual Basic in the future.
5.7.3 Embedded and Global VBA Projects
An AutoCAD VBA project is a collection of code modules, class modules, and forms that
work together to perform a given function. Projects can be stored within an AutoCAD
drawing, or as a separate file.
86
Embedded projects are stored within an AutoCAD drawing. These projects are
automatically loaded whenever the drawing in which they are contained is opened in
AutoCAD, making the distribution of projects very convenient. Embedded projects are
limited and not able to open or close AutoCAD drawings because they function only
within the document where they reside. Users of embedded projects are no longer
required to find and load project files before they run a program. A time log that is
triggered when the drawing is opened is an example of a project embedded in a drawing.
With this macro users can log in and record the length of time they worked on the
drawing. The user does not have to remember to load the project before opening the
drawing; it simply is done automatically.
Global projects are stored in separate files and are more versatile because they can work
in, open, and close any AutoCAD drawing, but are not automatically loaded when a
drawing is opened. Users must know which project file contains the macro they need and
then load that project file before they can run the macro. However, global projects are
easier to share with other users, and they make excellent libraries for common macros.
An example of a project you may store in a project file is a macro that collects a bill of
materials from many drawings. This macro can be run by an administrator at the end of a
work cycle and can collect information from many drawings.
At any given time, users can have both embedded and global projects loaded into their
AutoCAD session.
87
5.8 Flow Chart of the Program
Get Beam Dimensions, Ec, Ks, units, No of elements, no of loads and moments, and options, etc.
Get length of elements
Calculate moment of inertia
Compute spring constants, double end springs
Get loads and moments, put in P matrix
If self-weight of beam is to be considered, add its values in P matrix
Build column vector np from P matrix
Build element matrix EA
Build element matrix ES
Build ESAT matrix
Build EASAT matrix
Superimpose element matrices in global matrix ASAT
All element matrices done?
no
yes
Add spring constants to appropriate locations in ASAT
Invert ASAT
Multiply ASAT by P matrix to get X matrix
Is there any negative deflection or deflection beyond elastic range?
Is number of iterations done > max. iterations allowed?
yes
no
Set springs to zero at nodes showing negative deflection
Set springs to zero and apply constant soil pressure in P matrix at nodes showing deflection beyond elastic range
no yes
Compute F matrix
Show Results.
88
5.9 Program Code
Note: If any line of code is longer than page width then it is continued on next line,
starting with symbol .
Figure-5.2 Form-Beamdimensions
Code: Beamdimensions
'Declare user-defined type for file I/O
Private Type Record
units55 As Boolean
conbmwt55 As Boolean
consoilsep As Boolean
numel55 As Integer
numpl55 As Integer
nummom55 As Integer
maxiter55 As Integer
numknowdef55 As Integer
numknowrot55 As Integer
89
beamlen55 As Double
beamwid55 As Double
beamdep55 As Double
beamwt55 As Double
youngs55 As Double
msr55 As Double
maxdef55 As Double
End Type
Private Sub CmdButton3_Click()
'Declare "filerec" to be of type "Record"
Dim filerec As Record
'store present filename
keepfname = FileLoaded
'Get filename for loading from "Filer" form
Filer.Show
If FileLoaded = "" Then
'if user pressed "Cancel" then restore old file name
FileLoaded = keepfname
Else
'Open File with name returned by "Filer"
'for Random input/output
Open FileLoaded For Random As #1 Len = Len(filerec)
'read data from file
Get #1, 1, filerec
'if type of units saved was not SI then
'change all units shown on "Beamdimensions" to fps units
If filerec.units55 = False Then
fpsunits.Value = True
Label10.Caption = "kip/ft"
Label3.Caption = "ft"
Label4.Caption = "ft"
Label6.Caption = "ft"
Label17.Caption = "ksf"
Label23.Caption = "kip/ft"
Label25.Caption = "inch"
'otherwise show all units shown on "Beamdimensions" to SI units
Else
90
siunits.Value = True
Label10.Caption = "kN/m"
Label3.Caption = "m"
Label4.Caption = "m"
Label6.Caption = "m"
Label17.Caption = "kPa"
Label23.Caption = "kN/m"
Label25.Caption = "mm"
End If
considerbeamwt.Value = filerec.conbmwt55 'consider beam weight
'if beam weight was saved as "to be considered" then
'make relevant controls visible
If considerbeamwt.Value = True Then
Label10.Visible = True
Label11.Visible = True
Label15.Visible = True
BeamWeight.Visible = True
'otherwise hide them
Else
Label10.Visible = False
Label11.Visible = False
Label15.Visible = False
BeamWeight.Visible = False
End If
'if soil separation and maximum deflection
'was saved as "to be considered" then
'make relevant controls visible
SoilSeparation.Value = filerec.consoilsep
If SoilSeparation.Value = True Then
Label16.Visible = True
maxiter.Visible = True
Label14.Visible = True
Label25.Visible = True
maxdef.Visible = True
'otherwise hide them
Else
Label16.Visible = False
maxiter.Visible = False
91
Label14.Visible = False
Label25.Visible = False
maxdef.Visible = False
End If
'assign values read from file to relevant controls
numelem.Value = filerec.numel55
numpl.Value = filerec.numpl55
nummom.Value = filerec.nummom55
maxiter = filerec.maxiter55
numdef = filerec.numknowdef55
numrot = filerec.numknowrot55
Beamlength = filerec.beamlen55
Beamwidth = filerec.beamwid55
Beamdepth = filerec.beamdep55
BeamWeight = filerec.beamwt55
youngs = filerec.youngs55
msr = filerec.msr55
maxdef = filerec.maxdef55
'Close the file
Close #1
'set a flag that file has been loaded
filestatus.Value = True
End If
End Sub
Private Sub CommandButton1_Click()
'shift control to "Elements" form
BeamDimensions.Hide
Elements.Show
End Sub
Private Sub CommandButton2_Click()
'Exit the program
End
End Sub
Private Sub considerbeamwt_AfterUpdate()
'if user wants the program consider beam weight and
92
'checks the "considerbeamwt" checkbox then make
'the relevant controls visible
If considerbeamwt.Value = True Then
Label10.Visible = True
Label11.Visible = True
Label15.Visible = True
BeamWeight.Visible = True
End If
'hide these controls when user unchecks
If considerbeamwt.Value = False Then
Label10.Visible = False
Label11.Visible = False
Label15.Visible = False
BeamWeight.Visible = False
End If
End Sub
Private Sub fpsunits_AfterUpdate()
'if user selects fps units, change all units to
'fps units on form "Beamdimensions"
If fpsunits.Value = True Then
Label10.Caption = "kip/ft"
Label3.Caption = "ft"
Label4.Caption = "ft"
Label6.Caption = "ft"
Label17.Caption = "ksf"
Label23.Caption = "kip/ft"
Label25.Caption = "inch"
'convert the written values if checkbox "convertval" is checked
If convertval = True Then
If Beamdepth <> "" Then Beamdepth = Beamdepth / 0.3048
If Beamwidth <> "" Then Beamwidth = Beamwidth / 0.3048
If Beamlength <> "" Then Beamlength = Beamlength / 0.3048
If BeamWeight <> "" Then BeamWeight = BeamWeight / 157.087463846
If msr <> "" Then msr = msr / 157.087463846
If youngs <> "" Then youngs = youngs / 47.8802589803
If maxdef <> "" Then maxdef = maxdef / 25.4
End If
93
End If
End Sub
Private Sub siunits_AfterUpdate()
'if user selects SI units, change all units to
'SI units on form "Beamdimensions"
If siunits.Value = True Then
Label10.Caption = "kN/m"
Label23.Caption = "kN/m"
Label3.Caption = "m"
Label4.Caption = "m"
Label6.Caption = "m"
Label17 = "kPa"
Label25 = "mm"
'convert the written values if checkbox "convertval" is checked
If convertval = True Then
If Beamdepth <> "" Then Beamdepth = Beamdepth * 0.3048
If Beamwidth <> "" Then Beamwidth = Beamwidth * 0.3048
If Beamlength <> "" Then Beamlength = Beamlength * 0.3048
If BeamWeight <> "" Then BeamWeight = BeamWeight * 157.087463846
If msr <> "" Then msr = msr * 157.087463846
If youngs <> "" Then youngs = youngs * 47.8802589803
If maxdef <> "" Then maxdef = maxdef * 25.4
End If
End If
End Sub
Private Sub SoilSeparation_AfterUpdate()
'if user wants the program consider for soil separation and
'max. deflection and checks the "SoilSeparation" checkbox then
'make the relevant controls visible
If SoilSeparation.Value = True Then
Label16.Visible = True
maxiter.Visible = True
Label14.Visible = True
Label25.Visible = True
maxdef.Visible = True
End If
94
'hide these controls when user unchecks
If SoilSeparation.Value = False Then
Label16.Visible = False
maxiter.Visible = False
Label14.Visible = False
Label25.Visible = False
maxdef.Visible = False
End If
End Sub
Private Sub UserForm_Initialize()
'show program name and picture of foundation beam
starter.Show
'Declare "filerec" to be of type "Record"
Dim filerec As Record
'set name of initialization file
FileLoaded.text = "init.bdt"
'Open Initialization File "init.bdt"
'for Random input/output
Open "init.bdt" For Random As #1 Len = Len(filerec)
'read data from file
Get #1, 1, filerec
'if type of units saved was not SI then
'change all units shown on "Beamdimensions" to fps units
If filerec.units55 = False Then
fpsunits.Value = True
Label10.Caption = "kip/ft"
Label3.Caption = "ft"
Label4.Caption = "ft"
Label6.Caption = "ft"
End If
'if beam weight was saved as "to be considered" then
'make relevant controls visible
considerbeamwt.Value = filerec.conbmwt55 'consider beam weight
If considerbeamwt.Value = True Then
Label10.Visible = True
Label11.Visible = True
Label15.Visible = True
95
'otherwise hide them
Else
Label10.Visible = False
Label11.Visible = False
Label15.Visible = False
End If
SoilSeparation.Value = filerec.consoilsep
'if soil separation and maximum deflection
'was saved as "to be considered" then
'make relevant controls visible
If SoilSeparation.Value = True Then
Label14.Visible = True
Label16.Visible = True
Label25.Visible = True
maxdef.Visible = True
maxiter.Visible = True
'otherwise hide them
Else
Label14.Visible = False
Label16.Visible = False
Label25.Visible = False
maxdef.Visible = False
maxiter.Visible = False
End If
'assign values read from file to relevant controls
numelem.Value = filerec.numel55
numpl.Value = filerec.numpl55
nummom.Value = filerec.nummom55
maxiter = filerec.maxiter55
numdef = filerec.numknowdef55
numrot = filerec.numknowrot55
Beamlength = filerec.beamlen55
Beamwidth = filerec.beamwid55
Beamdepth = filerec.beamdep55
BeamWeight = filerec.beamwt55
youngs = filerec.youngs55
msr = filerec.msr55
maxdef = filerec.maxdef55
96
'Close the file
Close #1
'set a flag that file has been loaded
filestatus.Value = True
End Sub
Figure-5.3 Form-boundary
Code: boundary
'Declare user-defined type for file I/O
Private Type Record
units55 As Boolean
conbmwt55 As Boolean
consoilsep As Boolean
numel55 As Integer
numpl55 As Integer
nummom55 As Integer
maxiter55 As Integer
numknowdef55 As Integer
numknowrot55 As Integer
beamlen55 As Double
beamwid55 As Double
beamdep55 As Double
97
beamwt55 As Double
youngs55 As Double
msr55 As Double
maxdef55 As Double
End Type
'Declare user-defined type for file I/O
Private Type doubler
doub As Double
End Type
Private Sub CommandButton1_Click()
'return control back to the calling routine
boundary.Hide
End Sub
Private Sub CommandButton2_Click()
'exit program
End
End Sub
Private Sub CommandButton3_Click()
If curnode <> "" Then
'if "curnode" is not empty then put "none" as
'known deflection in ListBox1 at current position
ListBox1.List(Val(curnode) - 1, 1) = "none"
'put "none" in "curdef" too
curdef = "none"
'reset numdef and numrot to zero
numdef = 0
numrot = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'count known deflections
If ListBox1.List(i - 1, 1) <> "none" Then numdef = numdef + 1
'count known rotations
If ListBox1.List(i - 1, 2) <> "none" Then numrot = numrot + 1
Next i
Else
98
'if "curnode" is empty then give erro message
beep
feedback = MsgBox("Input node number first", 48, "Error!")
End If
End Sub
Private Sub CommandButton4_Click()
If curnode <> "" Then
'if "curnode" is not empty then put "none" as
'known rotation in ListBox1 at current position
ListBox1.List(Val(curnode) - 1, 2) = "none"
'put "none" in "currot" too
currot = "none"
'reset numdef and numrot to zero
numdef = 0
numrot = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'count known deflections
If ListBox1.List(i - 1, 1) <> "none" Then numdef = numdef + 1
'count known rotations
If ListBox1.List(i - 1, 2) <> "none" Then numrot = numrot + 1
Next i
Else
beep
'if "curnode" is empty then give erro message
feedback = MsgBox("Input node number first", 48, "Error!")
End If
End Sub
Private Sub curdef_AfterUpdate()
If curnode <> "" Then
'if there is any number placed in "curnode" then put
'current value of "curdef" in ListBox1
ListBox1.List(Val(curnode) - 1, 1) = curdef
'reset numdef and numrot to zero
numdef = 0
numrot = 0
99
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'count number of known deflections
If ListBox1.List(i - 1, 1) <> "none" Then numdef = numdef + 1
'count number of known rotations
If ListBox1.List(i - 1, 2) <> "none" Then numrot = numrot + 1
Next i
Else
'if "curnode" is empty then give error message
beep
curdef = ""
feedback = MsgBox("Input node number first", 48, "Error!")
End If
End Sub
Private Sub curnode_AfterUpdate()
If Val(curnode) < (BeamDimensions.numelem + 2) And Val(curnode) > 0 And
Val(curnode) = Int(Val(curnode)) Then
'if current node number is less or equal to total number of nodes,
positive, and integer then
'select corresponding entry in ListBox1 and
'put value of selected known deflection and rotation from ListBox1 in
"curdef" and "currot"
ListBox1.ListIndex = Val(curnode) - 1
curdef = ListBox1.List(Val(curnode) - 1, 1)
currot = ListBox1.List(Val(curnode) - 1, 1)
Else
'otherwise give error beep, and clear the text boxes for re-entry
beep
curnode = ""
curdef = ""
currot = ""
'set flag ctrlbck for getting focus back
ctrlbck.Value = True
End If
End Sub
Private Sub curdef_Enter()
100
If ctrlbck.Value = True Then
'give focus back to "curnode" if it contained an invalid entry
ctrlbck.Value = False
curnode.SetFocus
End If
End Sub
Private Sub currot_AfterUpdate()
If curnode <> "" Then
'if there is any number placed in "curnode" then put
'current value of "currot" in ListBox1
ListBox1.List(Val(curnode) - 1, 2) = currot
'reset numdef and numrot to zero
numdef = 0
numrot = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'count number of known deflections
If ListBox1.List(i - 1, 1) <> "none" Then numdef = numdef + 1
'count number of known rotations
If ListBox1.List(i - 1, 2) <> "none" Then numrot = numrot + 1
Next i
Else
'if "curnode" is empty then give error message
beep
currot = ""
feedback = MsgBox("Input node number first", 48, "Error!")
End If
End Sub
Private Sub ListBox1_AfterUpdate()
'if ListBox1 is clicked, set the values of clicked
'entry in "curnode", "curdef", and "currot"
curnode = ListBox1.Value
curdef = ListBox1.List(Val(curnode) - 1, 1)
currot = ListBox1.List(Val(curnode) - 1, 2)
End Sub
101
Private Sub UserForm_Initialize()
If BeamDimensions.fpsunits = True Then
'set units of "boundary" to fps if set in BeamDimensions
Label2.Caption = "Deflection (ft):"
Label10.Caption = "(ft)"
End If
'read total number of nodes from form-"BeamDimensions"
numnode = 1 + BeamDimensions.numelem
'read total number of elements from form-"BeamDimensions"
numelem = BeamDimensions.numelem
loadflag = True
'dimension an array according to number of nodes
numnode = numnode - 1
ReDim nodedata(numnode, 3)
If BeamDimensions.filestatus = True Then
'if a file has been read in BeamDimensions then
'Declare filerec to be of user-defined type Record
Dim filerec As Record
'open same file for random I/O which was opened in "BeamDimensions"
Open BeamDimensions.FileLoaded For Random As #1 Len = Len(filerec)
'Read record from file.
Get #1, 1, filerec
'Close the file
Close #1
'loop for all nodes
For i = 0 To numnode
'put numbers in first column
nodedata(i, 0) = i + 1
'initialize all entries for known deflections to "none"
nodedata(i, 1) = "none"
'initialize all entries for known rotations to "none"
nodedata(i, 2) = "none"
Next i
'put values of array "nodedata" in "ListBox1"
ListBox1.List() = nodedata
'check if number of elements is same in file as
'on "BeamDimensions"
If filerec.numel55 = BeamDimensions.numelem Then
102
'Declare "nod2" to be of user type "doubler"
Dim nod2 As doubler
'get name of "beam data (bdt) file" from "BeamDimensions"
file1 = BeamDimensions.FileLoaded
'truncate ".bdt" and concatenate ".ndt" (node data)
len1 = Len(file1) - 4
file1 = Left(file1, len1)
file1 = file1 & ".ndt"
'compute location in .ndt file where the entries
'for known deflections written
currec = (filerec.numel55 + 1) * 3 - 1
If filerec.numknowdef55 > 0 Then
'if there are any known deflections in file then
'open the .ndt file
Open file1 For Random As #1 Len = Len(nod2)
'loop for all known deflections
For i = 1 To filerec.numknowdef55
'compute location of next entry in .ndt file
currec = currec + 1
'read node number from file
Get #1, currec, nod2
'convert this number to integer and put it
'in "gotnode"
gotnode = Int(nod2.doub)
'compute location of next entry in .ndt file
currec = currec + 1
'read value of known deflection
Get #1, currec, nod2
'put this value in "gotvalue"
gotvalue = nod2.doub
'insert "gotvalue" at node number "gotnode" in ListBox1
ListBox1.List(gotnode, 1) = gotvalue
Next i
'close the file
Close #1
End If
If filerec.numknowrot55 > 0 Then
'if there are any known deflections in file then
103
'open the .ndt file
Open file1 For Random As #1 Len = Len(nod2)
'loop for all known rotations
For i = 1 To filerec.numknowrot55
'compute location of next entry in .ndt file
currec = currec + 1
'read node number from file
Get #1, currec, nod2
'convert this number to integer and put it
'in "gotnode"
gotnode = Int(nod2.doub)
'compute location of next entry in .ndt file
currec = currec + 1
'read value of known rotation
Get #1, currec, nod2
'put this value in "gotvalue"
gotvalue = nod2.doub
'insert "gotvalue" at node number "gotnode" in ListBox1
ListBox1.List(gotnode, 2) = gotvalue
Next i
'close the file
Close #1
End If
End If
End If
'reset numdef and numrot to zero
numdef = 0
numrot = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'count known deflections
If ListBox1.List(i - 1, 1) <> "none" Then numdef = numdef + 1
'count known rotations
If ListBox1.List(i - 1, 2) <> "none" Then numrot = numrot + 1
Next i
End Sub
104
Figure-5.4 Form-Elements (main buttons and ListBox9)
Figure-5.5 Form-Elements (Page-1) Figure-5.6 Form-Elements (Page-2)
105
Figure-5.7 Form-Elements (Page-3) Figure-5.8 Form-Elements (Page-4)
Figure-5.9 Form-Elements (Page-5) Figure-5.10 Form-Elements (Page-6)
Figure-5.11 Form-Elements (Page-7) Figure-5.12 Form-Elements (Page-8)
106
Code: Elements
'Declare user-defined type for file I/O
Private Type Record
units55 As Boolean
conbmwt55 As Boolean
consoilsep As Boolean
numel55 As Integer
numpl55 As Integer
nummom55 As Integer
maxiter55 As Integer
numknowdef55 As Integer
numknowrot55 As Integer
beamlen55 As Double
beamwid55 As Double
beamdep55 As Double
beamwt55 As Double
youngs55 As Double
msr55 As Double
maxdef55 As Double
End Type
'Declare user-defined type for file I/O
Private Type doubler
doub As Double
End Type
'declare function Fix2 for converting values to
'2 decimal places
Private Function Fix2(NumArg) As Double
temp1 = NumArg
temp2 = Fix(NumArg)
temp3 = temp1 - temp2
temp3 = Fix(temp3 * 100) / 100
Fix2 = temp2 + temp3
'check for -ve +ve
End Function
Private Sub CommandButton1_Click()
'exit the program
107
End
End Sub
Private Sub CommandButton2_Click()
'give control to form-saver for getting a filename
saver.Show
'read the filename from form-saver
filenamer = saver.filenamer.text
'if user has not pressed cancel
If filenamer <> "" Then
'declare nod2 of user type doubler
Dim nod2 As doubler
'declare filerec to be of user type Record
Dim filerec As Record
'prepare values for saving
filerec.units55 = BeamDimensions.siunits.Value
filerec.conbmwt55 = BeamDimensions.considerbeamwt.Value 'consider beam
weight
filerec.consoilsep = BeamDimensions.SoilSeparation.Value 'consider soil
separation
filerec.numel55 = BeamDimensions.numelem.Value
filerec.numpl55 = loadmom.loadnum.Value
filerec.nummom55 = loadmom.momnum.Value
filerec.maxiter55 = BeamDimensions.maxiter
filerec.numknowdef55 = boundary.numdef
filerec.numknowrot55 = boundary.numrot
filerec.beamlen55 = BeamDimensions.Beamlength
filerec.beamwid55 = BeamDimensions.Beamwidth
filerec.beamdep55 = BeamDimensions.Beamdepth
filerec.beamwt55 = BeamDimensions.BeamWeight
filerec.youngs55 = BeamDimensions.youngs
filerec.msr55 = BeamDimensions.msr
filerec.maxdef55 = BeamDimensions.maxdef
'concatenate ".bdt" to filename
curfile = filenamer & ".bdt"
'open file for random I/O
Open curfile For Random As #1 Len = Len(filerec)
'write data to file
108
Put #1, 1, filerec
'Close the file
Close #1
'concatenate ".ndt" to filename
curfile = filenamer & ".ndt"
'open file for random I/O
Open curfile For Random As #1 Len = Len(nod2)
'read number of elements
currec = BeamDimensions.numelem
'loop for all elements
For i = 1 To currec
'read element lengths
nod2.doub = memberlen.ListBox1.List(i - 1, 1)
'write element lenghts to file
Put #1, i, nod2
Next i
'loop for all nodes
For i = 0 To currec
'read loads on nodes
nod2.doub = loadmom.ListBox1.List(i, 1)
'compute location in file for putting next value
recnum = i + currec + 1
'write load value to file
Put #1, recnum, nod2
Next i
'loop for all nodes
For i = 0 To currec
'read moments on nodes
nod2.doub = loadmom.ListBox1.List(i, 2)
'compute location in file for putting next value
recnum = recnum + 1
'write moment value to file
Put #1, recnum, nod2
Next i
'write boundary condition if any
If boundary.numdef > 0 Then
'if there are any known deflections
'loop for all nodes
109
For i = 0 To currec
If boundary.ListBox1.List(i, 1) <> "none" Then
'if there is a known deflection on current node
'then note the node number
nod2.doub = i
'compute location in file for putting next value
recnum = recnum + 1
'write node number to file
Put #1, recnum, nod2
'read value of known deflection
nod2.doub = boundary.ListBox1.List(i, 1)
'compute location in file for putting next value
recnum = recnum + 1
'write value of known deflection to file
Put #1, recnum, nod2
End If
Next i
End If
If boundary.numrot > 0 Then
'if there are any known rotations
'loop for all nodes
For i = 0 To currec
If boundary.ListBox1.List(i, 2) <> "none" Then
'if there is a known rotation on current node
'then note the node number
nod2.doub = i
'compute location in file for putting next value
recnum = recnum + 1
'write node number to file
Put #1, recnum, nod2
'read value of known rotation
nod2.doub = boundary.ListBox1.List(i, 2)
'compute location in file for putting next value
recnum = recnum + 1
'write value of known rotation to file
Put #1, recnum, nod2
End If
Next i
110
End If
'close the file
Close #1
'concatenate message string and filename
curfile = "File has been saved as " & curfile
'tell user that file has been saved
response = MsgBox(curfile, 64)
End If
End Sub
Private Sub CommandButton3_Click()
'give control to form-Exporter for getting a filename
Exporter.Show
'read the filename from form-Exporter
filenamer = Exporter.filenamer.text
'if user has not pressed cancel
If filenamer <> "" Then
'see if "siunits" is selected on form-BeamDimensions
siunits = BeamDimensions.siunits.Value
If siunits Then
'if siunits are selected then prepare
'appropriate strings for units
ulength = " (m)"
uforce = " (kN)"
umom = " (kN-m)"
uunitwt = " (kN/m^3)"
uyoungs = " (kPa)"
ufpl = " (kN/m)"
umomin = " (m^4)"
umaxdef = " mm"
Else
'if fpsunits are selected then
'prepare appropriate strings for units
ulength = " (ft)"
uforce = " (kip)"
umom = " (kip-ft)"
uunitwt = " (kcf)"
uyoungs = " (ksf)"
111
ufpl = " (kip/ft)"
umomin = " (ft^4)"
umaxdef = " inch"
End If
'concatenate ".txt" to filename
curfile = filenamer & ".txt"
'open file for sequential output
Open curfile For Output As #2
'write descriptions, values, and units to file
'which are self-explanatory
Print #2, "Beam Data:"
Print #2,
Print #2, "beam length = "; Beamlength.Value; ulength
Print #2, "beam width = "; Beamwidth.Value; ulength
Print #2, "beam depth = "; Beamdepth.Value; ulength
Print #2,
Print #2, "number of elements = "; numelem.Value
Print #2,
Print #2, "Element"; Tab; "Length"; ulength
'loop for all elements
For i = 1 To numelem.Value
Print #2, i; Tab; memberlen.ListBox1.List(i - 1, 1)
Next i
Print #2,
Print #2, "modulus of subgrade reaction, ks = ";
BeamDimensions.msr.Value; uunitwt
Print #2,
Print #2, "modulus of elasticity for concrete = ";
BeamDimensions.youngs.Value; uyoungs
Print #2,
Print #2, "moment of inertia of beam = "; mominertia; umomin
Print #2,
'if check for soil separation and max.deflection is selected
If BeamDimensions.SoilSeparation = True Then
Print #2, "maximum allowable deflection= "; BeamDimensions.maxdef;
umaxdef
Print #2,
Print #2, "number of iterations = "; BeamDimensions.maxiter
112
Print #2,
End If
'if beam self weigt was considered
If BeamDimensions.considerbeamwt = True Then
Print #2, "unit weight of beam= "; BeamDimensions.BeamWeight; uunitwt
Print #2,
End If
Print #2, "Applied Loads:"
Print #2,
Print #2, "number of point loads = "; loadmom.loadnum.Value
Print #2, "number of moments = "; loadmom.momnum.Value
Print #2,
Print #2, "node"; Tab; "point load"; uforce; Tab(41); "moment"; umom
'loop for all nodes
For i = 0 To numelem.Value
Print #2, 1 + i; Tab; loadmom.ListBox1.List(i, 1); Tab(40);
loadmom.ListBox1.List(i, 2)
Next i
Print #2,
Print #2, "Rotations and Deflections:"
Print #2,
Print #2, "node"; Tab; "rotation (rads)"; Tab(41); "deflection"; ulength
'loop for all nodes
For i = 0 To numelem.Value
Print #2, 1 + i; Tab; ListBox1.List(i, 1); Tab(40); ListBox1.List(i,
2)
Next i
Print #2,
Print #2, "Moments on Elements:"
Print #2,
Print #2, "element"; Tab; "1st node"; umom; Tab(41); "2nd node"; umom
'loop for all nodes
For i = 1 To numelem.Value
Print #2, i; Tab; ListBox2.List(i - 1, 1); Tab(40); ListBox2.List(i -
1, 2)
Next i
Print #2,
Print #2,
113
Print #2, "Shear at Nodes:"
Print #2,
Print #2, "node"; Tab; "shear on left"; uforce; Tab(41); "shear on
right"; uforce
'loop for all nodes
For i = 0 To numelem.Value
Print #2, 1 + i; Tab; ListBox3.List(i, 1); Tab(40); ListBox3.List(i,
2)
Next i
Print #2,
Print #2, "Moments at Nodes:"
Print #2,
Print #2, "node"; Tab; "moment on left"; umom; Tab(41); "moment on
right"; umom
'loop for all nodes
For i = 0 To numelem.Value
Print #2, 1 + i; Tab; ListBox4.List(i, 1); Tab(40); ListBox4.List(i,
2)
Next i
Print #2,
Print #2, "Spring Forces:"
Print #2,
Print #2, "node"; Tab; "spring ks"; ufpl; Tab(41); "spring force";
uforce
'loop for all nodes
For i = 1 To (numelem.Value + 1)
Print #2, i; Tab; ListBox7.List(i, 1); Tab(40); ListBox7.List(i, 2)
Next i
Print #2,
Print #2, "Soil Pressure:"
Print #2,
Print #2, "node"; Tab; "soil pressure Q"; uyoungs
'loop for all nodes
For i = 1 To (numelem.Value + 1)
Print #2, i; Tab; ListBox8.List(i - 1, 1)
Next i
If boundary.numdef > 0 Or boundary.numrot > 0 Then
114
'if there are any boundary conditions
Print #2, "Boundary Conditions:"
Print #2,
Print #2, "number of known deflections = "; boundary.numdef.Value
Print #2, "number of known rotations = "; boundary.numrot.Value
Print #2,
Print #2, "node"; Tab; "known deflection"; ulength; Tab(41); "known
rotation"; " (rad)"
'loop for all nodes
For i = 0 To numelem.Value
If boundary.ListBox1.List(i, 1) <> "none" Or
boundary.ListBox1.List(i, 2) <> "none" Then
Print #2, 1 + i; Tab; boundary.ListBox1.List(i, 1); Tab(40);
boundary.ListBox1.List(i, 2)
End If
Next i
End If
'close the file
Close #2
'concatenate message string and filename
curfile = "File has been saved as " & curfile
'tell user that file has been saved
response = MsgBox(curfile, 64)
End If
End Sub
Private Sub CommandButton4_Click()
'if user clicks "Print This Screen" then
'print a snapshot of current screen to
'default printer
Elements.PrintForm
End Sub
Private Sub CommandButton5_Click()
'if user clicks "New Problem" then
'unload all forms and give control to BeamDimensions
Unload BeamDimensions
Unload memberlen
115
Unload loadmom
Unload boundary
Unload Filer
Unload saver
Unload Exporter
Unload Elements
BeamDimensions.Show
End Sub
Private Sub CommandButton6_Click()
'if user clicks "Plot Diagrams" then
'declare plineobj to be of type AutoCAD polyline
Dim plineObj As AcadLWPolyline
'declare array for drawing polyline
Dim points(0 To 9) As Double
'get value of original beam depth
beamdepthorg = Val(Beamdepth)
'get value of beam length
beamlengthd = Val(Beamlength)
'set beamdepthd for scaling according
'to length of beam (this doesn't have anything
'to do with original beam length)
beamdepthd = Beamlength / 10
'Compute coordinates for drawing the beam
'Define the 2D polyline points
points(0) = 0: points(1) = 11 * beamdepthd
points(2) = beamlengthd: points(3) = 11 * beamdepthd
points(4) = beamlengthd: points(5) = 11 * beamdepthd + beamdepthorg
points(6) = 0: points(7) = 11 * beamdepthd + beamdepthorg
points(8) = 0: points(9) = 11 * beamdepthd
'draw a beam using light weight Polyline object
'in model space of current drawing
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
'compute coordinates for drawing another beam
'to show as 'beam before deflection'
points(0) = beamlengthd + beamdepthd: points(1) = 11 * beamdepthd
points(2) = beamlengthd * 2 + beamdepthd: points(3) = 11 * beamdepthd
116
points(4) = beamlengthd * 2 + beamdepthd: points(5) = 11 * beamdepthd +
beamdepthorg
points(6) = beamlengthd + beamdepthd: points(7) = 11 * beamdepthd +
beamdepthorg
points(8) = beamlengthd + beamdepthd: points(9) = 11 * beamdepthd
'draw a beam using light weight Polyline object
'in model space of current drawing
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
'set color of this beam as light gray
plineObj.Color = 253
'update beam for color effect
plineObj.Update
'make overall boundary border
points(0) = -beamdepthd: points(1) = 0
points(2) = (beamlengthd + beamdepthd) * 2: points(3) = 0
points(4) = (beamlengthd + beamdepthd) * 2: points(5) = 14 * beamdepthd
points(6) = -beamdepthd: points(7) = 14 * beamdepthd
points(8) = -beamdepthd: points(9) = 0
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
'set color of this beam as cyan
plineObj.Color = acCyan
'update border for color effect
plineObj.Update
'make box for soil pressure
points(0) = beamlengthd + beamdepthd: points(1) = 6 * beamdepthd
points(2) = 2 * beamlengthd + beamdepthd: points(3) = 6 * beamdepthd
points(4) = 2 * beamlengthd + beamdepthd: points(5) = 8 * beamdepthd
points(6) = beamlengthd + beamdepthd: points(7) = 8 * beamdepthd
points(8) = beamlengthd + beamdepthd: points(9) = 6 * beamdepthd
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
'draw shear force diagram
nm = Val(BeamDimensions.numelem)
ReDim ptmatrix(nm, 2)
For i = 0 To nm
ptmatrix(i, 1) = Val(ListBox3.List(i, 1))
117
ptmatrix(i, 2) = Val(ListBox3.List(i, 2))
Next i
drawnodes = (nm + 1) * 4 - 1
ReDim drawpoints(drawnodes + 2) As Double
drawpoints(0) = 0
drawpoints(2) = 0
drawpoints(drawnodes + 1) = 0
runlen = 0
runnum = 0
maxval = ptmatrix(0, 1)
minval = ptmatrix(0, 1)
For i = 0 To nm
If ptmatrix(i, 1) < minval Then minval = ptmatrix(i, 1)
If ptmatrix(i, 1) > maxval Then maxval = ptmatrix(i, 1)
If ptmatrix(i, 2) < minval Then minval = ptmatrix(i, 2)
If ptmatrix(i, 2) > maxval Then maxval = ptmatrix(i, 2)
Next i
scaledepth = maxval - minval
scalefac = (beamdepthd * 3) / scaledepth
For i = 4 To drawnodes Step 4
runlen = runlen + Val(ListBox10.List(runnum, 1)) 'memlen
runnum = runnum + 1
drawpoints(i) = runlen
drawpoints(i + 2) = runlen
Next i
runnum = 0
For i = 1 To drawnodes Step 4
drawpoints(i) = -(ptmatrix(runnum, 1) + minval) * scalefac + beamdepthd
* 7 + (maxval + minval) * scalefac
drawpoints(i + 2) = -(ptmatrix(runnum, 2) + minval) * scalefac +
beamdepthd * 7 + (maxval + minval) * scalefac
runnum = runnum + 1
Next i
drawpoints(drawnodes + 2) = drawpoints(drawnodes)
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
'draw beam elements
runnum = 0
118
j = 0
For i = 1 To drawnodes Step 4
drawpoints(i) = j + beamdepthd * 11
If j = 0 Then
j = beamdepthorg
Else
j = 0
End If
drawpoints(i + 2) = j + beamdepthd * 11
runnum = runnum + 1
Next i
drawpoints(drawnodes + 2) = drawpoints(drawnodes)
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
'draw bending moment diagram
For i = 0 To nm
ptmatrix(i, 1) = Val(ListBox4.List(i, 1))
ptmatrix(i, 2) = Val(ListBox4.List(i, 2))
Next i
drawpoints(0) = 0
drawpoints(2) = 0
runlen = 0
runnum = 0
maxval = ptmatrix(0, 1)
minval = ptmatrix(0, 1)
For i = 0 To nm
If ptmatrix(i, 1) < minval Then minval = ptmatrix(i, 1)
If ptmatrix(i, 1) > maxval Then maxval = ptmatrix(i, 1)
If ptmatrix(i, 2) < minval Then minval = ptmatrix(i, 2)
If ptmatrix(i, 2) > maxval Then maxval = ptmatrix(i, 2)
Next i
Debug.Print "minval: "; minval; " maxval: "; maxval
scaledepth = maxval - minval
If scaledepth = 0 Then scaledepth = 1
scalefac = (beamdepthd * 5) / scaledepth
For i = 4 To drawnodes Step 4
runlen = runlen + Val(ListBox10.List(runnum, 1))
runnum = runnum + 1
119
drawpoints(i) = runlen
drawpoints(i + 2) = runlen
Next i
runnum = 0
For i = 1 To drawnodes Step 4
drawpoints(i) = -(minval + ptmatrix(runnum, 1)) * scalefac + beamdepthd
+ (maxval + minval) * scalefac
drawpoints(i + 2) = -(minval + ptmatrix(runnum, 2)) * scalefac +
beamdepthd + (maxval + minval) * scalefac
runnum = runnum + 1
Next i
drawpoints(drawnodes + 2) = drawpoints(drawnodes)
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
ThisDrawing.Application.ZoomExtents
'make deflection beam and soil pressure diagram
drawnodes = (nm + 1) * 2 - 1
ReDim drawpoints(drawnodes) As Double
For i = 0 To nm
ptmatrix(i, 1) = -Val(ListBox8.List(i, 1))
ptmatrix(i, 2) = Val(ListBox1.List(i, 2))
Next i
drawpoints(0) = beamlengthd + beamdepthd
runlen = 0
runnum = 0
maxval = 0
minval = 0
For i = 0 To nm
If ptmatrix(i, 2) < minval Then minval = ptmatrix(i, 2)
If ptmatrix(i, 2) > maxval Then maxval = ptmatrix(i, 2)
Next i
scaledepth = maxval - minval
If scaledepth = 0 Then scaledepth = 1
scalefac = (beamdepthd * 2) / scaledepth
Debug.Print "scalefactor", scalefac
For i = 2 To drawnodes Step 2
runlen = runlen + Val(ListBox10.List(runnum, 1))
runnum = runnum + 1
120
drawpoints(i) = runlen + beamlengthd + beamdepthd
Next i
'draw top face
runnum = 0
For i = 1 To drawnodes Step 2
drawpoints(i) = -(ptmatrix(runnum, 2)) * scalefac + beamdepthd * 11 +
beamdepthorg
runnum = runnum + 1
Next i
topfacex1 = drawpoints(0)
topfacey1 = drawpoints(1)
topfacex2 = drawpoints(drawnodes - 1)
topfacey2 = drawpoints(drawnodes)
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
'draw center line
runnum = 0
For i = 1 To drawnodes Step 2
drawpoints(i) = drawpoints(i) - beamdepthorg / 2
runnum = runnum + 1
Next i
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
plineObj.Color = acRed
plineObj.Update
'draw bottom face
runnum = 0
For i = 1 To drawnodes Step 2
drawpoints(i) = drawpoints(i) - beamdepthorg / 2
runnum = runnum + 1
Next i
botfacex1 = drawpoints(0)
botfacey1 = drawpoints(1)
botfacex2 = drawpoints(drawnodes - 1)
botfacey2 = drawpoints(drawnodes)
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
Dim startPoint(0 To 2) As Double
121
Dim endPoint(0 To 2) As Double
startPoint(0) = topfacex1: startPoint(1) = topfacey1: startPoint(2) = 0#
endPoint(0) = botfacex1: endPoint(1) = botfacey1: endPoint(2) = 0#
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
startPoint(0) = topfacex2: startPoint(1) = topfacey2: startPoint(2) = 0#
endPoint(0) = botfacex2: endPoint(1) = botfacey2: endPoint(2) = 0#
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
'draw original center line
runnum = 0
For i = 1 To drawnodes Step 2
drawpoints(i) = beamdepthd * 11 + beamdepthorg / 2
runnum = runnum + 1
Next i
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
plineObj.Color = acRed
plineObj.Update
'draw soil pressure diagram
maxval = ptmatrix(0, 1)
minval = ptmatrix(0, 1)
For i = 0 To nm
If ptmatrix(i, 1) < minval Then minval = ptmatrix(i, 1)
If ptmatrix(i, 1) > maxval Then maxval = ptmatrix(i, 1)
Next i
scaledepth = maxval - minval
If scaledepth = 0 Then scaledepth = 1
scalefac = (beamdepthd * 2) / scaledepth
runnum = 0
For i = 1 To drawnodes Step 2
drawpoints(i) = -(minval + ptmatrix(runnum, 1)) * scalefac + beamdepthd
* 6 + (maxval + minval) * scalefac
runnum = runnum + 1
Next i
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(drawpoints)
'draw loads and moments
ReDim lpoints(0 To 11) As Double
beamtop = beamdepthd * 11 + Beamdepth
122
lpoints(0) = 0#: lpoints(1) = 1.8 * beamdepthd + beamtop
lpoints(2) = 0#: lpoints(3) = 0.3 * beamdepthd + beamtop
lpoints(4) = -0.08 * beamdepthd: lpoints(5) = 0.3 * beamdepthd + beamtop
lpoints(6) = 0#: lpoints(7) = 0 * beamdepthd + beamtop
lpoints(8) = 0.08 * beamdepthd: lpoints(9) = 0.3 * beamdepthd + beamtop
lpoints(10) = 0#: lpoints(11) = 0.3 * beamdepthd + beamtop
Dim arcObj As AcadArc
Dim centerPoint(0 To 2) As Double
Dim radius As Double
Dim startAngleInDegree As Double
Dim endAngleInDegree As Double
centerPoint(0) = 0#: centerPoint(1) = beamtop + beamdepthd: centerPoint(2)
= 0#
radius = 0.4 * beamdepthd
startAngleInDegree = 0#
endAngleInDegree = 210#
' Convert the angles in degrees to angles in radians
Dim startAngleInRadian As Double
Dim endAngleInRadian As Double
startAngleInRadian = startAngleInDegree * 3.141592 / 180#
endAngleInRadian = endAngleInDegree * 3.141592 / 180#
ReDim mpoints(0 To 7) As Double
mpoints(0) = 0.35 * beamdepthd: mpoints(1) = beamdepthd + beamtop
mpoints(2) = 0.45 * beamdepthd: mpoints(3) = 0.98 * beamdepthd + beamtop
mpoints(4) = 0.36 * beamdepthd: mpoints(5) = 0.8 * beamdepthd + beamtop
mpoints(6) = 0.35 * beamdepthd: mpoints(7) = beamdepthd + beamtop
'loop for all nodes
runnum = 0
runlen = 0
For i = 0 To nm
lpoints(0) = lpoints(0) + runlen
lpoints(2) = lpoints(2) + runlen
lpoints(4) = lpoints(4) + runlen
lpoints(6) = lpoints(6) + runlen
lpoints(8) = lpoints(8) + runlen
lpoints(10) = lpoints(10) + runlen
centerPoint(0) = centerPoint(0) + runlen
mpoints(0) = mpoints(0) + runlen
123
mpoints(2) = mpoints(2) + runlen
mpoints(4) = mpoints(4) + runlen
mpoints(6) = mpoints(6) + runlen
If Val(loadmom.ListBox1.List(runnum, 1)) <> 0 Then
'draw downward arrow if load is applied on current node
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(lpoints)
End If
If Val(loadmom.ListBox1.List(runnum, 2)) <> 0 Then
'draw arc with arrow if moment is applied on current node
Set arcObj = ThisDrawing.ModelSpace.AddArc(centerPoint, radius,
startAngleInRadian, endAngleInRadian)
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(mpoints)
End If
If runnum <> nm Then
runlen = Val(ListBox10.List(runnum, 1))
runnum = runnum + 1
End If
Next i
'zoom to show all diagrams
ZoomExtents
'WRITE CAPTIONS
Dim MTextObj As AcadMText
Dim corner(0 To 2) As Double
Dim width As Double
Dim text As String
width = beamlengthd
'write bending moment caption
corner(0) = 0#: corner(1) = beamdepthd * 0.7: corner(2) = 0#
text = "BENDING MOMENT DIAGRAM"
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
MTextObj.Height = beamdepthd / 4
MTextObj.AttachmentPoint = acAttachmentPointBottomCenter
MTextObj.Update
'write shear force caption
corner(0) = 0#: corner(1) = beamdepthd * 6.7: corner(2) = 0#
text = "SHEAR FORCE DIAGRAM"
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
MTextObj.Height = beamdepthd / 4
124
MTextObj.AttachmentPoint = acAttachmentPointBottomCenter
MTextObj.Update
'write beam elements caption
corner(0) = 0#: corner(1) = beamdepthd * 10.7: corner(2) = 0#
text = "BEAM ELEMENTS AND LOADING"
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
MTextObj.Height = beamdepthd / 4
MTextObj.AttachmentPoint = acAttachmentPointBottomCenter
MTextObj.Update
'write deflected beam caption
corner(0) = beamlengthd + beamdepthd: corner(1) = beamdepthd * 8.7:
corner(2) = 0#
text = "DEFLECTION DIAGRAM"
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
MTextObj.Height = beamdepthd / 4
MTextObj.AttachmentPoint = acAttachmentPointBottomCenter
MTextObj.Update
'write soil pressure caption
corner(0) = beamlengthd + beamdepthd: corner(1) = beamdepthd * 5.7:
corner(2) = 0#
text = "SOIL PRESSURE DIAGRAM"
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
MTextObj.Height = beamdepthd / 4
MTextObj.AttachmentPoint = acAttachmentPointBottomCenter
MTextObj.Update
'write note
corner(0) = beamlengthd + beamdepthd: corner(1) = beamdepthd * 1.7:
corner(2) = 0#
text = "These diagrams have been plotted by the Finite Element Program
BEAMDEZ"
Set MTextObj = ThisDrawing.ModelSpace.AddMText(corner, width, text)
MTextObj.Height = beamdepthd / 4
MTextObj.AttachmentPoint = acAttachmentPointBottomCenter
MTextObj.Update
ThisDrawing.Application.ZoomExtents
End Sub
Private Sub CommandButton7_Click()
125
'if user "Show Boundary Conditions"
'change caption of the form-boundary
boundary.Caption = "Boundary Conditions"
'hide controls that were used for data entry
boundary.Label1.Visible = False
boundary.Label2.Visible = False
boundary.Label3.Visible = False
boundary.curdef.Visible = False
boundary.curnode.Visible = False
boundary.currot.Visible = False
boundary.CommandButton2.Visible = False
boundary.CommandButton3.Visible = False
boundary.CommandButton4.Visible = False
'change positions of remaining controls
boundary.ListBox1.Left = 78
boundary.ListBox1.Height = 180
boundary.CommandButton1.Left = 294
boundary.Label5.Left = 144
boundary.numrot.Left = 204
boundary.Label4.top = 222
boundary.Label5.top = 222
boundary.numrot.top = 222
boundary.numdef.top = 222
boundary.Label4.Left = 20
boundary.numdef.Left = 78
boundary.Label6.Left = 83.95
boundary.Label7.Left = 132
boundary.Label8.Left = 209.95
boundary.Label9.Left = 227.95
boundary.Label10.Left = 155.95
'give control to form-boundary for showing boundary conditions
boundary.Show
End Sub
Private Sub OptionButton1_AfterUpdate()
'if user selects "mm" or "inch" depending on
'current system of units
'read number of elements for form-elements
126
nm = Elements.numelem
If BeamDimensions.siunits.Value = True Then
'if units are SI
'loop through all nodes
For i = 0 To nm
'convert all deflections to "mm"
ListBox1.List(i, 2) = ListBox1.List(i, 2) * 1000
Next i
Else
'if system of units is fps
'loop through all nodes
For i = 0 To nm
'convert all deflections to "inch"
ListBox1.List(i, 2) = ListBox1.List(i, 2) * 12
Next i
End If
End Sub
Private Sub OptionButton2_AfterUpdate()
'if user selects "m" or "ft" depending on
'current system of units
'read number of elements for form-elements
nm = Elements.numelem
If BeamDimensions.siunits.Value = True Then
'if units are SI
'loop through all nodes
For i = 0 To nm
'convert all deflections to "m"
ListBox1.List(i, 2) = ListBox1.List(i, 2) / 1000
Next i
Else
'if units are fps
'loop for all nodes
For i = 0 To nm
'convert all deflections to "ft"
ListBox1.List(i, 2) = ListBox1.List(i, 2) / 12
Next i
End If
127
End Sub
Private Sub ToggleButton1_AfterUpdate()
If ToggleButton1.Value = True Then
'hide multipage containing results
MultiPage1.Visible = False
'show bandmatrix
ListBox9.Visible = True
Else
If ToggleButton1.Value = False Then
'show multipage containing results
MultiPage1.Visible = True
'hide bandmatrix
ListBox9.Visible = False
End If
End If
End Sub
Private Sub UserForm_Initialize()
'VARIABLES:
'alomaxdef=value of maximum deflection for elastic range
'asat()= global stiffness matrix ASAT
'asatdim=dimension of ASAT (double of node numbers)
'asatinv()=matrix for inverse of ASAT
'bandm()=bandmatrix
'Beamdepth= depth of beam
'Beamlength=length of beam
'Beamwidth= width of beam
'bounddef()=known boundary deflections
'boundflag=flag for boundary conditions
'boundrot()=known boundary rotations
'checkdef=deflection on current node
'count1=loop counter
'counter=loop counter
'counter2=loop counter
'divider=variable used in matrix inversion
'dupasat()=duplicate copy of asat matrix to be used in matrix inversion
'ea()=element A matrix
128
'easat()=element EASAT matrix
'elcount=loop counter
'es()=element S matrix ES
'esat()=element ESAT matrix
'esats()=array to save ESAT matrices for all elements
'forc=constant soil pressure beyond elastic range
'fourei=4EI
'i=loop variable
'inertia=moment of inertia of the beam x-section
'j=loop counter
'k=loop counter
'lasat=variable used in construction of ASAT matrix
'locdef=location or known deflection
'locrot=location of known rotation
'maxiter=maximum iterations
'memlen(nm)=array to hold the length of each member
'momentmatrix=moment matrix
'mominertia=moment of inertia
'momnt()=moment array
'msr=modulus of subgrade reaction
'multiplier=variable used in matrix multiplication
'negflag=negative deflection flag
'nm= number of members (elements)
'nnload()=array to hold the values of vertical loads
'nnmom()= array to hold the values of moments
'np()= column vector to hold the values of loads and moments
'numbounddef=number of known deflections
'numboundrot=number of known rotations
'numelem= number of elements
'nummaxdef1=variable for checking maximum deflection
'nummom=numnber of concentrated moments acting on the beam
'numnegdef1=variable for checking negative deflections
'numnegdef2=variable for checking negative deflections
'numpload=number of vertical point loads acting on the beam
'Pmatrix()=array to hold the loads and moments acting on the beam
'row=loop counter
'Shearmatrix()=matrix for shear values
'Showmatrix1()=matrix for rotations and deflections
129
'Soilqmatrix()=soil pressure matrix
'spring()=array to hold the spring constants at all nodes
'temper=temporary variable used in calculation of X matrix
'testoler=variable used in matrix inversion
'toler=tolerance value for zero: values less than this will be considered
zero
'twoei=2EI
'unitflag= tells the current system of units, SI or fps
'valdef=value of deflection read from file
'valrot=value of rotation read from file
'Xmatrix()= X matrix
'youngs=young's modulus E for concrete
'read number of elements from textbox "numelem"
'located on userfrom "Beamdimensions"
nm = BeamDimensions.numelem
'read width of beam from textbox "Beamwidth"
'located on userfrom "Beamdimensions"
Beamwidth = BeamDimensions.Beamwidth
'read depth of beam from textbox "Beamdepth"
'located on userfrom "Beamdimensions"
Beamdepth = BeamDimensions.Beamdepth
'check if OptoinButton "siunits"
'located on userform "Beamdimensions" is selected
If BeamDimensions.siunits = True Then
'in case "siunits" OptionButton is selected,
'put "si" in unitflag variable and set the
'labels to SI units
unitflag = "si"
Label24.Caption = "m"
Label25.Caption = "m"
Label27.Caption = "m"
Label29.Caption = "m"
Label30.Caption = "mm"
Label34.Caption = "kPa"
Label37.Caption = "kN/m"
Label33.Caption = "kN/m"
Label39.Caption = "mm"
130
Else
'in case "siunits" OptionButton is not selected,
'i.e. "fpsunits" OptionButton is selected,
'put "fps" in unitflag variable and set the
'labels to fps units
unitflag = "fps"
Label24.Caption = "ft"
Label25.Caption = "ft"
Label27.Caption = "ft"
Label29.Caption = "ft"
Label42.Caption = "ft"
Label30.Caption = "inch"
Label34.Caption = "ksf"
Label37.Caption = "kip/ft"
Label33.Caption = "kip/ft"
Label39.Caption = "inch"
Label4.Caption = "1st Node kip-ft"
Label6.Caption = "2nd Node kip-ft"
Label8.Caption = "Shear on left kip"
Label9.Caption = "Shear on right kip"
Label11.Caption = "Moment on left kip-ft"
Label12.Caption = "Moment on right kip-ft"
Label17.Caption = "Moment kip-ft"
Label18.Caption = "Load kip"
Label20.Caption = "Spring Ks kip/ft"
Label21.Caption = "Spring force kip"
Label31.Caption = "Soil Q ksf"
Label46.Caption = "Length ft"
End If
'dimension the memlen array to number of elements
ReDim memlen(nm)
'give control to form-memberlen for input of length of all elements
memberlen.Show
'loop for all elements
For i = 1 To nm
'read values of element-lengths from "memberlen"
memlen(i) = Val(memberlen.ListBox1.List(i - 1, 1))
Next i
131
'assign the number of members to numelem
numelem = nm
'reset the beamlength to zero
Beamlength = 0
'now calculate the beamlength by adding the length
'of all the members
For i = 1 To nm 'generates: 1,2,3,...,nm
Beamlength = Beamlength + memlen(i)
Next i
'read value of modulus of subgrade reaction from form-BeamDimensions
msr = BeamDimensions.msr
'read value of Young's Modulus of Elasticity for
'concrete from form-Beamdimensions
youngs = BeamDimensions.youngs
'calculate the moment of inertia of the beam
inertia = (Beamwidth * Beamdepth ^ 3) / 12
'put value of inertia to TextBox "mominertia"
mominertia = inertia
'dimension the spring array with rows=number of
'nodes and 3 columns
ReDim spring(nm + 1, 3)
'loop for all nodes
For counter = 1 To (nm + 1) 'generates 1,2,3,...,(nm+1)
'put node numbers in first column
spring(counter, 0) = counter
Next counter
'compute spring constant at first node
spring(1, 1) = msr * memlen(1) * Beamwidth
'compute spring constant at last node
spring(nm + 1, 1) = msr * memlen(nm) * Beamwidth
'loop for all nodes except the first and last ones
For counter = 2 To nm 'generates 2,3,4,...,nm
'calculate spring constants for the remaining nodes
spring(counter, 1) = Val(msr) * Beamwidth * (memlen(counter) +
Val(memlen(counter - 1))) / 2
Next counter
'initialize P-Matrix
'nm+1=number of nodes (1+number of elements)
132
ReDim Pmatrix((nm + 1), 2) '(x,0)=node number, (x,1)=mom,(x,2)=load
(row,col)
'give control to form-loadmom for getting loads and
'moments from user
loadmom.Show
'loop through all nodes
For counter = 1 To (nm + 1) 'generates: 1,2,3...,(nm+1)
'put node numbers in Pmatrix
Pmatrix(counter, 0) = counter
'read moments from form-loadmom
Pmatrix(counter, 1) = Val(loadmom.ListBox1.List(counter - 1, 2))
'read loads from form-loadmom
Pmatrix(counter, 2) = Val(loadmom.ListBox1.List(counter - 1, 1))
Next counter
'read value of maximum iterations limit
maxiter = Val(BeamDimensions.maxiter)
'reset numnegdef1 and nummaxdef1 to zero
numnegdef1 = 0
'loop label for iterations
defloop:
'note number of negative deflections in previous iteration
numnegdef2 = numnegdef1
'reset numnegdef1 and nummaxdef1 to zero
numnegdef1 = 0
nummaxdef1 = 0
'show all the values of Pmatrix in "Listbox6"
'on userform "Elements"
ListBox6.List() = Pmatrix
If BeamDimensions.considerbeamwt = True Then
'if user has checked "consider beam weight" on
'form-BeamDimensions then make relevant controls visible
BeamWeight.Visible = True
Label15.Visible = True
Label32.Visible = True
Label33.Visible = True
'read self weight of beam
BeamWeight.Value = BeamDimensions.BeamWeight
'add beam weight to Pmatrix
133
'first node
Pmatrix(1, 2) = Pmatrix(1, 2) + Beamdepth * Beamwidth * memlen(1) *
BeamDimensions.BeamWeight / 2
'last node
Pmatrix((nm + 1), 2) = Pmatrix((nm + 1), 2) + Beamdepth * Beamwidth *
memlen(nm) * BeamDimensions.BeamWeight / 2
'remaining nodes
For i = 2 To nm
Pmatrix(i, 2) = Pmatrix(i, 2) + Beamdepth * Beamwidth * (memlen(i) +
memlen(i - 1)) * BeamDimensions.BeamWeight / 2
Next i
End If
'initialize np
'dimension np() column vector to double of node numbers
ReDim np(nm * 2 + 2)
For counter = 1 To (nm + 1) 'generates: 1,2,3,...,(nm+1)
'(counter*2-1) generates 1,3,5,...
'to put loads from Pmatrix in np() leaving
'slots for moments
np(counter * 2 - 1) = Pmatrix(counter, 1)
'(counter*2) generates 2,4,6,...
'to put moments from Pmatrix in np()
np(counter * 2) = Pmatrix(counter, 2)
Next counter
'initialize asat
'put double of node numbers in asatdim
asatdim = (nm + 1) * 2
'dimension asat to asatdim rows and asatdim columns
ReDim asat(asatdim, asatdim)
For counter = 1 To asatdim 'generates 1,2,...,asatdim
For counter2 = 1 To asatdim 'generates 1,2,...,asatdim
' zero all the elements of asat
asat(counter, counter2) = 0
Next counter2
Next counter
'develop the element A matrix ea
'dimension the ea matrix
Dim ea(4, 2) '(row, col)
134
'put the values common to all finite elements in ea()
ea(1, 1) = 1
ea(1, 2) = 0
ea(3, 1) = 0
ea(3, 2) = 1
'put value of 2EI in twoei for later use
twoei = 2 * youngs * inertia
'put value of 4EI in fourei for later use
fourei = 4 * youngs * inertia
'dimension the ES matrix
Dim es(2, 2) 'row,col
'dimension the ESAT matrix
Dim esat(2, 4) 'row,col
'dimension the EASAT matrix
Dim easat(4, 4) 'row,col
'dimension the array esats to save ESAT matrices for all elements
ReDim esats(nm, 2, 4) 'element,row,col
'build the global stiffness matrix ASAT
'loop to make element matrices for all members
For elcount = 1 To nm 'generates 1,2,3,...,nm
'calculate values for EA matrix for each element
ea(2, 1) = 1 / memlen(elcount)
ea(2, 2) = 1 / memlen(elcount)
ea(4, 1) = -1 / memlen(elcount)
ea(4, 2) = -1 / memlen(elcount)
'determine the ES matrix for all elements
es(1, 1) = fourei / memlen(elcount)
es(2, 2) = es(1, 1)
es(2, 1) = twoei / memlen(elcount)
es(1, 2) = es(2, 1)
'build the ESAT matrix
For counter = 1 To 2 'generates: 1,2
For counter2 = 1 To 4 ' generates: 1,2,3,4
esat(counter, counter2) = es(counter, 1) * ea(counter2, 1) +
es(counter, 2) * ea(counter2, 2)
Next counter2
Next counter
'save each ESAT in esats()
135
For counter = 1 To 2 'generates: 1,2
For counter2 = 1 To 4 ' generates: 1,2,3,4
esats(elcount, counter, counter2) = esat(counter, counter2)
Next counter2
Next counter
'build the EASAT matrix for each element
For counter = 1 To 4 ' generates: 1,2,3,4
For counter2 = 1 To 4 ' generates: 1,2,3,4
easat(counter, counter2) = ea(counter, 1) * esat(1, counter2) +
ea(counter, 2) * esat(2, counter2)
Next counter2
Next counter
'construct the global matrix ASAT
lasat = elcount * 2 - 2 'generates: 0,2,4,...
For count1 = 1 To 4 ' generates: 1,2,3,4
For count2 = 1 To 4 ' generates: 1,2,3,4
asat(count1 + lasat, count2 + lasat) = asat(count1 + lasat, count2
+ lasat) + easat(count1, count2)
Next count2
Next count1
Next elcount
'add spring constants to appropriate locations in ASAT matrix
For i = 2 To asatdim Step 2 'generates: 2,4,6,...,asatdim
asat(i, i) = asat(i, i) + spring(i / 2, 1)
Next i
'apply boundary conditions
boundflag = False
'check if any boundary conditions are specified
If BeamDimensions.numdef.Value > 0 Then boundflag = True
If BeamDimensions.numrot.Value > 0 Then boundflag = True
If boundflag Then
'if boundary conditions are specified then
'give control to form-boundary for getting values
'of known deflections and rotations
boundary.Show
boundflag = False
'check if user gave any values for boundary conditions
If boundary.numdef.Value > 0 Then boundflag = True
136
If boundary.numrot.Value > 0 Then boundflag = True
End If
If boundflag Then
'if user gave values for boundary conditions
'get number of boundary conditions
numbounddef = boundary.numdef
numboundrot = boundary.numrot
'dimension arrays for holding boundary conditions
ReDim bounddef(numbounddef, 3)
ReDim boundrot(numboundrot, 3)
'get location and value of boundary deflection condition
j = 0
k = 0
'loop through all nodes
For i = 0 To nm
If boundary.ListBox1.List(i, 1) <> "none" Then
'if current node has any known deflection
j = j + 1
'read node number for known deflection
bounddef(j, 0) = Val(boundary.ListBox1.List(i, 0))
'read value of known deflection
bounddef(j, 1) = Val(boundary.ListBox1.List(i, 1))
End If
If boundary.ListBox1.List(i, 2) <> "none" Then
'if current node has any known rotation
k = k + 1
'read node number for known rotation
boundrot(j, 0) = Val(boundary.ListBox1.List(i, 0))
'read value of known rotation
boundrot(j, 1) = Val(boundary.ListBox1.List(i, 2))
End If
Next i
'set asat and np for boundary deflections
If j > 0 Then
For i = 1 To j
locdef = bounddef(i, 0) * 2
valdef = bounddef(i, 1)
'augment np()
137
For l = 1 To asatdim
np(l) = np(l) - valdef * asat(locdef, l)
Next l
'put valdef at np(locdef)
np(locdef) = valdef
'zero out elements in asat
For l = 1 To asatdim
'zero out the row
asat(locdef, l) = 0
'zero out the column
asat(l, locdef) = 0
Next l
'put 1 at crossing
asat(locdef, locdef) = 1
Next i
End If
'set asat and np for boundary rotations
If k > 0 Then
For i = 1 To k
locrot = boundrot(i, 0) * 2 - 1
valrot = boundrot(i, 1)
'augment np()
For l = 1 To asatdim
np(l) = np(l) - valrot * asat(locrot, l)
Next l
'put valrot at np(locrot)
np(locrot) = valrot
'zero out elements in asat
For l = 1 To asatdim
'zero out the row
asat(locrot, l) = 0
'zero out the column
asat(l, locrot) = 0
Next l
'put 1 at crossing
asat(locrot, locrot) = 1
Next i
End If
138
End If
'make band matrix
'currently the solution is obtained by
'inverse matrix (obtained by Gauss-Jordan method)
'but if Cholsky or other band matrix solution is
'to be used then the band matrix is available
'also, band matrix is used to show the contents of
'ASAT matrix along with results
ReDim bandm(asatdim, 4)
For i = 1 To (asatdim - 3)
bandm(i, 0) = Fix2(asat(i, i))
bandm(i, 1) = Fix2(asat(i, i + 1))
bandm(i, 2) = Fix2(asat(i, i + 2))
bandm(i, 3) = Fix2(asat(i, i + 3))
Next i
For i = 1 To 3
bandm((2 * nm), (i - 1)) = Fix2(asat((2 * nm), (asatdim - 3) + i))
Next i
bandm((2 * nm), 3) = 0
For i = 1 To 2
bandm((asatdim - 1), (i - 1)) = Fix2(asat((asatdim - 1), (2 * nm) + i))
Next i
bandm((asatdim - 1), 2) = 0
bandm((asatdim - 1), 3) = 0
bandm(asatdim, 0) = Fix2(asat(asatdim, asatdim))
bandm(asatdim, 1) = 0
bandm(asatdim, 2) = 0
bandm(asatdim, 3) = 0
ListBox9.List() = bandm
'dimension the asatinv matrix
ReDim asatinv(asatdim, asatdim)
'make an identity matrix and save in asatinv()
For i = 1 To asatdim
For j = 1 To asatdim
asatinv(i, j) = 0
Next j
asatinv(i, i) = 1
Next i
139
'dimension dupasat matrix
ReDim dupasat(asatdim, asatdim)
'save asat in dupasat
For i = 1 To asatdim 'generats 1,2,3,...,asatdim
For j = 1 To asatdim 'generats 1,2,3,...,asatdim
dupasat(i, j) = asat(i, j)
Next j
Next i
'set tolerance value to check for zero matrix-elements
toler = 0.000001
'loop through all rows
For row = 1 To asatdim 'generates 1,2,3,...,asatdim
'get value of each diagonal element
testtoler = Abs(dupasat(row, row) - 1)
'check each diagonal element
If testtoler > toler Then 'i.e. if the diagonal element is not 1
'put the value of current diagonal element in divider
divider = dupasat(row, row)
For i = 1 To asatdim 'generates 1,2,3,...,asatdim
'divide all elements of the current row in dupasat
'by the current diagonal element of dupasat
dupasat(row, i) = dupasat(row, i) / divider
'divide all elements of the current row in asatinv
'by the current diagonal element of dupasat
asatinv(row, i) = asatinv(row, i) / divider
Next i
End If
'loop through all rows
For i = 1 To asatdim 'generates 1,2,3,...,asatdim
'do not subtract the current row from itself
If i = row Then GoTo skip1
'set multiplier=current
multiplier = dupasat(i, row)
'multiplier2 = asatinv(i, row)
For j = 1 To asatdim
dupasat(i, j) = dupasat(i, j) - dupasat(row, j) * multiplier
asatinv(i, j) = asatinv(i, j) - asatinv(row, j) * multiplier
Next j
140
skip1:
Next i
Next row
'dimension the Xmatrix
ReDim Xmatrix(asatdim)
'Pmatrix=np()
'multiply asatinv by np() and put result in Xmatrix
For i = 1 To asatdim
temper = 0
For j = 1 To asatdim
temper = temper + asatinv(i, j) * np(j)
Next j
Xmatrix(i) = temper
Next i
'if maximum deflection and soil separation are to be checked
If BeamDimensions.SoilSeparation = True Then
'check for -ve and max deflections
Debug.Print "entered at soil separation"
'make relevant controls visible
maxdef.Visible = True
Label14.Visible = True
Label39.Visible = True
'read value of allowable maximum deflection
maxdef.Value = BeamDimensions.maxdef
If BeamDimensions.siunits Then
'if current units are SI then convert max. deflection to "m"
alomaxdef = Val(BeamDimensions.maxdef) / 1000
Else
'if current units are fps then convert max. deflection to "ft"
alomaxdef = Val(BeamDimensions.maxdef) / 12
End If
'loop for all nodes
For i = 0 To nm
negflag = False
checkdef = Val(Xmatrix(i * 2 + 2)) 'deflection
'check for -ve deflection:
If checkdef < 0 Then
negflag = True
141
numnegdef1 = numnegdef + 1
spring(i + 1, 1) = 0
End If
'check for max deflection
If checkdef > alomaxdef Then
nummaxdef1 = nummaxdef1 + 1
forc = alomaxdef * spring(i + 1, 1)
Pmatrix(i + 1, 2) = Pmatrix(i + 1, 2) - forc
spring(i + 1, 1) = 0
End If
Next i
If maxiter > 0 Then
'if maximum iterations limit is not reached
maxiter = maxiter - 1
'check if number of negative deflections has increased or
'if maximum deflection is exceeded at any node
If numnegdef1 > numnegdef2 Or nummaxdef1 > 0 Then
'go to label "defloop:" for another iteration
GoTo defloop
End If
End If
End If
Elements.Caption = "Results"
'dimension arrays for showing results
ReDim showmatrix1((nm + 1), 3)
ReDim shearmatrix((nm + 1), 3)
ReDim momentmatrix((nm + 1), 3)
ReDim soilqmatrix((nm + 1), 2)
'loop for all nodes
For i = 0 To nm
'put node numbers in all arrays
showmatrix1(i, 0) = i + 1
shearmatrix(i, 0) = i + 1
momentmatrix(i, 0) = i + 1
soilqmatrix(i, 0) = i + 1
Next i
'loop for all nodes
For i = 0 To nm
142
'read values of rotations
showmatrix1(i, 1) = Xmatrix(i * 2 + 1)
'read values of deflections
showmatrix1(i, 2) = Xmatrix(i * 2 + 2)
'calculate spring forces
spring(i + 1, 2) = showmatrix1(i, 2) * spring(i + 1, 1)
If spring(i + 1, 2) <> 0 Then
'if no negative deflection has occurred
'calculate soil pressure
soilqmatrix(i, 1) = Xmatrix(i * 2 + 2) * msr
Else
'if negative deflection has occurred then
'zero the soil pressure
soilqmatrix(i, 1) = 0
End If
Next i
shearmatrix(0, 2) = 0
shearmatrix(0, 1) = 0
For i = 0 To (nm - 1)
shearmatrix(i, 2) = shearmatrix(i, 1) + Pmatrix(i + 1, 2) - spring(i +
1, 2)
shearmatrix(i + 1, 1) = shearmatrix(i, 2)
Next i
shearmatrix(i, 2) = shearmatrix(nm, 1) - spring(i + 1, 2)
'put values of arrays to ListBoxes for showing results
ListBox1.List() = showmatrix1
ListBox3.List() = shearmatrix
ListBox7.List() = spring
ListBox8.List() = soilqmatrix
'dimension the moment array
ReDim momnt(nm, 3)
first = 0
second1 = 0
For i = 1 To nm
momnt((i - 1), 0) = i
'multiply esat matrices with Xmatrix entries
'to get internal moments at nodes
For j = 1 To 2
143
For k = 1 To 4
m = (i - 1) * 2 + k
momnt((i - 1), j) = momnt((i - 1), j) + esats(i, j, k) *
Xmatrix(m)
Next k
Next j
second1 = momnt(i, 2)
first = momnt(i, 1)
Next i
'show moments on elements in ListBox2
ListBox2.List() = momnt
momentmatrix(0, 1) = 0
momentmatrix(nm, 2) = 0
For i = 0 To (nm - 1)
momentmatrix(i, 2) = -momnt(i, 1)
momentmatrix((i + 1), 1) = momnt(i, 2)
Next i
'show moments on nodes and element lengths
ListBox4.List() = momentmatrix
ListBox10.List() = memberlen.ListBox1.List()
ender:
End Sub
Figure-5.13 Form-Exporter
Code: Exporter
Private Sub CommandButton1_Click()
'read name of file from "filenamer"
filefinder = filenamer.text
'if there any name is given then
If filefinder <> "" Then
144
'concatenate ".txt" to name of file
filefinder = filefinder & ".txt"
If Dir(filefinder) = "" Then
'if a file with same name does not exist then return control to
'calling routine
Exporter.Hide
Else
'if file exists, ask for replacing
response = MsgBox("File already exists. Replace?", 36)
'if user clicks "OK" then return control to calling
'routine with given file name
If response = 6 Then
Exporter.Hide
Else
'if user clicks "Cancel" then return control to
'calling routine without any file name
filenamer.text = ""
Exporter.Hide
End If
End If
End If
End Sub
Private Sub CommandButton2_Click()
'if user presses "Cancel" then return control
'to calling routine without any file name
filenamer.text = ""
Exporter.Hide
End Sub
Private Sub filenamer_Change()
'read the latest character typed by user
newchar = Right(filenamer.text, 1)
'set charflag to false
charflag = False
If newchar <> "" Then
'if there is any character, put its ASCII code in charnum
charnum = Asc(newchar)
145
End If
'valid characters are A~Z,a~z,0~9,-, and _; other characters
'are not allowed in file name, therefore check if the input
'character is valid or not
'check if A to Z
If charnum > 64 And charnum < 91 Then charflag = True
'check if a to z
If charnum > 96 And charnum < 123 Then charflag = True
'check if 0 to 9
If charnum > 47 And charnum < 58 Then charflag = True
'check if - or _ and not first char
If Len(filenamer.text) > 1 Then
If charnum = 45 Or charnum = 95 Then charflag = True
End If
'check that 8 character filename limit is not crossed
If Len(filenamer.text) > 8 Then charflag = False
If charflag Then
'if all validity requirements are met then update "checker"
checker.text = filenamer.text
Else
'otherwise give warning beep (for invalid characters
'or exceeding 8 char limit)
beep
'delete the newly entered character from "filenamer"
filenamer.text = checker.text
End If
End Sub
Figure-5.14 Form-Filer
Code: Filer
Private Sub CommandButton1_Click()
'put name of selected file to "FileLoaded" on "BeamDimensions"
146
BeamDimensions.FileLoaded = filelister.Value
'return control to calling routine
Unload Filer
End Sub
Private Sub CommandButton2_Click()
'if user clicks "Cancel" then reset
'the filename on "BeamDimensions"
BeamDimensions.FileLoaded = ""
'return control to calling routine
Unload Filer
End Sub
Private Sub UserForm_Initialize()
If Dir("init.bdt") <> "" Then
'if file "init.bdt" exists, put it as
'default choice
filelister.Value = "init.bdt"
End If
'get name of first file with ".bdt" extension
'in the default directory
file1 = Dir("*.bdt")
loop1:
'add last read filename from directory to choice list
filelister.AddItem (file1)
'read next filename
file1 = Dir
'if any new file was found, go back to "loop1:"
If file1 <> "" Then GoTo loop1
End Sub
147
Figure-5.15 Form-loadmom
Code: loadmom
'Declare user-defined type for file I/O
Private Type Record
units55 As Boolean
conbmwt55 As Boolean
consoilsep As Boolean
numel55 As Integer
numpl55 As Integer
nummom55 As Integer
maxiter55 As Integer
numknowdef55 As Integer
numknowrot55 As Integer
beamlen55 As Double
beamwid55 As Double
beamdep55 As Double
beamwt55 As Double
youngs55 As Double
msr55 As Double
maxdef55 As Double
End Type
148
'Declare user-defined type for file I/O
Private Type doubler
doub As Double
End Type
Private Sub CommandButton1_Click()
'return control back to the calling routine
loadmom.Hide
End Sub
Private Sub CommandButton2_Click()
'exit program
End
End Sub
Private Sub ListBox1_AfterUpdate()
'if ListBox1 is clicked, set the values of clicked
'entry in "nodecur", "loadcur", and "momcur"
nodecur = ListBox1.Value
loadcur = ListBox1.List(Val(nodecur) - 1, 1)
momcur = ListBox1.List(Val(nodecur) - 1, 2)
End Sub
Private Sub loadcur_AfterUpdate()
If nodecur <> "" Then
'if there is any number placed in "nodecur" then put
'current value of "loadcur" in ListBox1
ListBox1.List(Val(nodecur) - 1, 1) = loadcur
'reset numload and nummom to zero
numload = 0
nummom = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'add 1 to "numload" for each nonzero load in ListBox1 (i.e. count the
number of loads)
If ListBox1.List(i - 1, 1) <> 0 Then numload = numload + 1
'add 1 to "nummom" for each nonzero moment in ListBox1 (i.e. count the
number of moments)
149
If ListBox1.List(i - 1, 2) <> 0 Then nummom = nummom + 1
Next i
'put value of "numload" in textbox "loadnum"
loadnum = numload
'put value of "nummom" in textbox "momnum"
momnum = nummom
Else
'if "nodecur" is empty then give error message
beep
loadcur = ""
feedback = MsgBox("Input node number first", 48, "Error!")
End If
End Sub
Private Sub momcur_AfterUpdate()
If nodecur <> "" Then
'if there is any number placed in "nodecur" then put
'current value of "momcur" in ListBox1
ListBox1.List(Val(nodecur) - 1, 2) = momcur
'reset numload and nummom to zero
numload = 0
nummom = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'add 1 to "numload" for each nonzero load in ListBox1 (i.e. count the
number of loads)
If ListBox1.List(i - 1, 1) <> 0 Then numload = numload + 1
'add 1 to "nummom" for each nonzero moment in ListBox1 (i.e. count the
number of moments)
If ListBox1.List(i - 1, 2) <> 0 Then nummom = nummom + 1
Next i
'put value of "numload" in textbox "loadnum"
loadnum = numload
'put value of "nummom" in textbox "momnum"
momnum = nummom
Else
'if "nodecur" is empty then give error message
beep
150
momcur = ""
feedback = MsgBox("Input node number first", 48, "Error!")
End If
End Sub
Private Sub nodecur_AfterUpdate()
If Val(nodecur) < (BeamDimensions.numelem + 2) And Val(nodecur) > 0 And
Val(nodecur) = Int(Val(nodecur)) Then
'if current node number is less or equal to total number of nodes,
positive, and integer then
'select corresponding entry in ListBox1 and
'put value of selected load and moment from ListBox1 in "loadcur" and
"momcur"
ListBox1.ListIndex = Val(nodecur) - 1
loadcur = ListBox1.List(Val(nodecur) - 1, 1)
momcur = ListBox1.List(Val(nodecur) - 1, 2)
Else
'otherwise give error beep, and clear the text boxes for re-entry
beep
nodecur = ""
loadcur = ""
momcur = ""
'set flag ctrlbck for getting focus back
ctrlbck.Value = True
End If
End Sub
Private Sub loadcur_Enter()
If ctrlbck.Value = True Then
'give focus back to "nodecur" if it contained an invalid entry
ctrlbck.Value = False
nodecur.SetFocus
End If
End Sub
Private Sub UserForm_Initialize()
If BeamDimensions.fpsunits = True Then
'set units of "loadmom" to fps if set in BeamDimensions
151
Label2.Caption = "Load (kip):"
Label3.Caption = "Moment (kip-ft):"
Label7.Caption = "Load kip"
Label8.Caption = "Moment kip-ft"
End If
'read total number of nodes from form-"BeamDimensions"
numnode = 1 + BeamDimensions.numelem
'read total number of elements from form-"BeamDimensions"
numelem = BeamDimensions.numelem
loadflag = True
'dimension an array according to number of nodes
numnode = numnode - 1
ReDim nodedata(numnode, 3)
If BeamDimensions.filestatus = True Then
'if a file has been read in BeamDimensions then
'Declare filerec to be of user-defined type Record
Dim filerec As Record
'open same file for random I/O which was opened in "BeamDimensions"
Open BeamDimensions.FileLoaded For Random As #1 Len = Len(filerec)
' Read record from file
Get #1, 1, filerec
'Close the file
Close #1
numelemfile = filerec.numel55
'check if number of elements is same in file as
'on "BeamDimensions"
If Val(numelem) = Val(numelemfile) Then
'Declare "nod2" to be of user type "doubler"
Dim nod2 As doubler
'get name of "beam data (bdt) file" from "BeamDimensions"
file1 = BeamDimensions.FileLoaded
'truncate ".bdt" and concatenate ".ndt" (node data)
len1 = Len(file1) - 4
file1 = Left(file1, len1)
file1 = file1 & ".ndt"
'open the .ndt file
Open file1 For Random As #1 Len = Len(nod2)
currec = BeamDimensions.numelem
152
'loop for all nodes and read loads
For i = 0 To currec
recnum = i + currec + 1
Get #1, recnum, nod2
'put loads to array "nodedata"
nodedata(i, 1) = nod2.doub
Next i
'loop for all nodes and read node moments
For i = 0 To currec
recnum = recnum + 1
Get #1, recnum, nod2
'put moments to array "nodedata"
nodedata(i, 2) = nod2.doub
Next i
'close .ndt file
Close #1
loadflag = False
End If
End If
'loop through all nodes
For i = 0 To numnode
'put node numbers in array
nodedata(i, 0) = i + 1
'check if file is loaded, otherwise set all loads and moments to zero
If loadflag Then
nodedata(i, 1) = 0
nodedata(i, 2) = 0
End If
Next i
'put values of array "nodedata" in "ListBox1"
ListBox1.List() = nodedata
'reset numload and nummom to zero
numload = 0
nummom = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'count all loads and moments
If ListBox1.List(i - 1, 1) <> 0 Then numload = numload + 1
153
If ListBox1.List(i - 1, 2) <> 0 Then nummom = nummom + 1
Next i
'put number of loads in "loadnum"
loadnum = numload
'put number of moments in "momnum"
momnum = nummom
End Sub
Figure-5.16 Form-memberlen
Code: memberlen
'Declare user-defined type for file I/O
Private Type Record
units55 As Boolean
conbmwt55 As Boolean
consoilsep As Boolean
numel55 As Integer
numpl55 As Integer
nummom55 As Integer
maxiter55 As Integer
numknowdef55 As Integer
numknowrot55 As Integer
beamlen55 As Double
beamwid55 As Double
154
beamdep55 As Double
beamwt55 As Double
youngs55 As Double
msr55 As Double
maxdef55 As Double
End Type
'Declare user-defined type for file I/O
Private Type doubler
doub As Double
End Type
Private Sub CommandButton1_Click()
'exit program
End
End Sub
Private Sub CommandButton2_Click()
'set flag "noerror" to true
noerror = True
If sumlen <> totlen Then
'if summation of length of elements is not equal to total length of beam
then
'give warning beep
beep
'set flag "noerror" to false i.e. error has occured
noerror = False
'prepare error message string
prompter$ = "Summation of element lengths is not equal to total length
of the beam"
'show error message
feedback = MsgBox(prompter$, 48, "Error!")
End If
'set flag "zeroerror" to false
zeroerror = False
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'if any element length is set equal to zero then
'set flag "zeroerror" to true
155
If ListBox1.List(i - 1, 1) = 0 Then zeroerror = True
Next i
'proceed of no error has occured
If noerror Then
If zeroerror Then
'if any element has zero length then set "noerror" to false
noerror = False
'prepare error message string
prompter$ = "No element should have zero length."
'show erro message
feedback = MsgBox(prompter$, 48, "Error!")
End If
End If
If noerror Then
'if no error has occured then give control back to the calling routine
memberlen.Hide
End If
End Sub
Private Sub elemcur_AfterUpdate()
If Val(elemcur) < (BeamDimensions.numelem + 1) And Val(elemcur) > 0 And
Val(elemcur) = Int(Val(elemcur)) Then
'if current element number is less or equal to total number of elements,
not equal to zero, and integer then
'select corresponding entry in ListBox1 and
'put value of selected length from ListBox1 in "lengthcur"
ListBox1.ListIndex = Val(elemcur) - 1
lengthcur = ListBox1.List(Val(elemcur) - 1, 1)
Else
'otherwise give error beep, and clear the text boxes for re-entry
beep
elemcur = ""
lengthcur = ""
'set flag ctrlbck for getting focus back
ctrlbck.Value = True
End If
End Sub
156
Private Sub lengthcur_AfterUpdate()
If elemcur <> "" Then
'if there is any number placed in "elemcur" then put
'current value of "lengthcur" in ListBox1
ListBox1.List(Val(elemcur) - 1, 1) = lengthcur
'reset sumlen to zero
sumlen = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'add lengths of all elements to "sumlen"
sumlen = Val(sumlen) + ListBox1.List(i - 1, 1)
Next i
Else
'if there is no entry in "elemcur" then give warning
beep
feedback = MsgBox("Input element number first", 48, "Error!")
End If
End Sub
Private Sub lengthcur_Enter()
If ctrlbck.Value = True Then
'give focus back to "elemcur" if it contained an invalid entry
ctrlbck.Value = False
elemcur.SetFocus
End If
End Sub
Private Sub ListBox1_AfterUpdate()
'if ListBox1 is clicked, set the values of clicked
'entry in "elemcur" and "lengthcur"
elemcur = ListBox1.Value
lengthcur = ListBox1.List(Val(elemcur) - 1, 1)
End Sub
Private Sub UserForm_Initialize()
If BeamDimensions.fpsunits = True Then
'set units of "memberlen" to fps if set in BeamDimensions
Label6.Caption = "Length ft"
157
Label2.Caption = "Element Length (ft):"
End If
'read total length of beam from form-"BeamDimensions"
totlen = BeamDimensions.Beamlength
'read total number of elements from form-"BeamDimensions"
numelem = BeamDimensions.numelem
loadflag = True
'dimension an array according to number of elements
ReDim lengthList((numelem - 1), 2)
If BeamDimensions.filestatus = True Then
'if a file has been read in BeamDimensions then
'Declare filerec to be of user-defined type Record
Dim filerec As Record
'open same file for random I/O which was opened in "BeamDimensions"
Open BeamDimensions.FileLoaded For Random As #1 Len = Len(filerec)
'read data from file
Get #1, 1, filerec
'Close the file
Close #1
numelemfile = filerec.numel55
'check if number of elements is same in file as
'on "BeamDimensions"
If Val(numelem) = Val(numelemfile) Then
'Declare "nod2" to be of user type "doubler"
Dim nod2 As doubler
'get name of "beam data (bdt) file" from "BeamDimensions"
file1 = BeamDimensions.FileLoaded
'truncate ".bdt" and concatenate ".ndt" (node data)
len1 = Len(file1) - 4
file1 = Left(file1, len1)
file1 = file1 & ".ndt"
'open the .ndt file
Open file1 For Random As #1 Len = Len(nod2)
currec = BeamDimensions.numelem
'loop for all elements
For i = 1 To currec
'read length of elements
Get #1, i, nod2
158
'put lengths to array "lengthList"
lengthList(i - 1, 1) = nod2.doub
Next i
'close .ndt file
Close #1
loadflag = False
End If
End If
'loop through all elements
For i = 0 To (numelem - 1)
'put element numbers in array
lengthList(i, 0) = i + 1
'check if file is loaded, otherwise set all lengths to zero
If loadflag Then
lengthList(i, 1) = 0
End If
Next i
'put values of array "lengthList" in "ListBox1"
ListBox1.List() = lengthList
'reset sumlen to zero
sumlen = 0
'loop through all entries of ListBox1
For i = 1 To ListBox1.ListCount
'add lengths of all elements to "sumlen"
sumlen = sumlen + ListBox1.List(i - 1, 1)
Next i
End Sub
Figure-5.17 Form-saver
Code: saver
Private Sub CommandButton1_Click()
'read name of file from "filenamer"
159
filefinder = filenamer.text
'if there any name is given then
If filefinder <> "" Then
'concatenate ".bdt" to name of file
filefinder = filefinder & ".bdt"
If Dir(filefinder) = "" Then
'if a file with same name does not exist then return control to
'calling routine (file name is sent to it)
saver.Hide
Else
'if file exists, ask for replacing
response = MsgBox("File already exists. Replace?", 36)
'if user clicks "OK" then return control to calling
'routine with given file name
If response = 6 Then
saver.Hide
Else
'if user clicks "Cancel" then return control to
'calling routine without any file name
filenamer.text = ""
saver.Hide
End If
End If
End If
End Sub
Private Sub CommandButton2_Click()
'if user presses "Cancel" then return control
'to calling routine without any file name
filenamer.text = ""
saver.Hide
End Sub
Private Sub filenamer_Change()
'read the latest character typed by user
newchar = Right(filenamer.text, 1)
'set charflag to false
charflag = False
160
If newchar <> "" Then
'if there is any character, put its ASCII code in charnum
charnum = Asc(newchar)
End If
'valid characters are A~Z,a~z,0~9,-, and _; other characters
'are not allowed in file name, therefore check if the input
'character is valid or not
'check if A to Z
If charnum > 64 And charnum < 91 Then charflag = True
'check if a to z
If charnum > 96 And charnum < 123 Then charflag = True
'check if 0 to 9
If charnum > 47 And charnum < 58 Then charflag = True
'check if - or _ and not first char
If Len(filenamer.text) > 1 Then
If charnum = 45 Or charnum = 95 Then charflag = True
End If
'check that 8 character filename limit is not crossed
If Len(filenamer.text) > 8 Then charflag = False
If charflag Then
'if all validity requirements are met then update "checker"
checker.text = filenamer.text
Else
'otherwise give warning beep (for invalid characters
'or exceeding 8 char limit)
beep
'delete the newly entered character from "filenamer"
filenamer.text = checker.text
End If
End Sub
Code: starter
Private Sub Label1_Click()
'return control to calling routine
Unload starter
End Sub
Private Sub UserForm_Click()
161
'return control to calling routine
Unload starter
End Sub
162
C H A P T E R S I X
USER GUIDE
6.1 Installation
The program BEAMDEZ is included with this thesis on a floppy put inside the back
cover. Run the INSTALL.EXE file. It’s a WinZip SelfExtractor file with “C:\Program
Files\ACAD2000\” as default directory. If AutoCAD 2000 directory is different on your
computer then provide its path. This file will install required files in your AutoCAD 2000
directory.
Figure-6.1 Figure-6.2
6.2 Loading the Program
At AutoCAD 2000 command prompt type APPLOAD and press enter, or choose “Load
Application” from “Tools” menu as shown in figures 6.1 and 6.2 respectively. Choose
the “beam.dvb” file and click the load button as shown in figure 6.3
163
Figure-6.3
6.3 Running the Program
Type VBARUN at AutoCAD command prompt (figure-6.4). This will bring the macro
dialog. Choose beam.dvb!beamrun and click the run button (figure-6.5). This will
bring the initialization screen with logo, click anywhere on this screen to continue.
Figure-6.4
164
Figure-6.5
6.4 Entering Beam Data
Figure-6.6
165
Either load data from a file or enter new data. To load a data file, click on button labeled
“Load Data File”, choose a file name and click “OK”. To enter new data, select units,
and fill the boxes with suitable data. Holding mouse cursor over anything for a while
shows a help tip, as shown for “Concrete E” in the figure. After filling the boxes, click
“OK” to continue, this will bring the form for element lengths.
6.5 Discretizing the Beam
Element lengths should be selected in such a way that nodes should be available at
column centers and edges. Also, the element aspect ratio of 2:1 is recommended, i.e., no
element should be more than double than its adjacent elements. The examples, which are
given in next chapter, may be referred for clarification of discretization.
6.6 Entering Element Lengths
Element lengths are then entered in the form shown below:
Figure-6.7
6.7 Applied Loads and Moments
The loads and moment applied through the columns are entered in the form shown on
next page at the central nodes of columns.
166
Figure-6.8
6.8 Boundary Conditions
If there are any known rotations or deflections, they are entered in the form shown below.
All unknown rotations and deflections are marked as “none”.
Figure-6.9
167
6.9 Results
After entering all the data, the results are shown on a multipage. Below are shown the
output results on different pages.
Figure-6.10 Figure-6.11
Figure-6.12 Figure-6.13
168
Figure-6.14 Figure-6.15
Figure-6.16 Figure-6.17
169
Figure-6.18 Figure-6.19
Figure-6.20
170
6.10 Cursor Icons
The program shows different cursor icons when mouse is over different objects; they are
described below.
The Pencil: Mouse cursor changes to pencil icon when it is over a box in which the
user can enter values.
The Mouse: Mouse cursor changes to mouse icon when it is over something that
can be clicked only for selection.
The Floppy: Mouse cursor changes to floppy icon when it is over a button that is
for loading or saving files.
The Green Signal: Mouse cursor changes to green signal icon when it is over ‘OK’
button, user gives the green signal to proceed to next step.
The Exit Door: Mouse cursor changes to exit door icon when it is over the exit
button.
The Graph: Mouse cursor changes to graph icon when it is over the plot button.
Printing: Mouse cursor changes to printing icon when it is over the ‘print this
screen’ button.
Text: Mouse cursor changes to text icon when it is over the button for exporting
results in text format.
The Band Matrix: Mouse cursor changes to band matrix icon when it is over the
button for viewing the band matrix.
The MUET Monogram: Mouse cursor changes to Mehran University’s
monogram when it is over the ‘about’ button.
U Turn: Mouse cursor changes to U Turn icon when it is over the ‘new problem’
button.
171
C H A P T E R S E V E N
EXAMPLE PROBLEMS
Example problem 1:
Design a rectangular combined footing using the conventional method.
Given:
Column Dead load (kN) Live load (kN) Total load (kN)
1 189 277 466
2 157 191 348
Applied loads
kPaqMPafMPaf acy 1107.20414'
172
Column Momentdead (kN-m) Momentlive (kN-m) Total moment
1 16 15 21
2 35 30 65
Applied Moments
Solution:
Step 1 convert loads to ultimate and find “ultimate” soil pressure:
This is necessary so that eccentricity is not introduced in finding L using working loads
and then switching to “ultimate” values.
Step 2 Find footing dimensions L and B; first locate load resultant from center of
column 2.
To make the resultant of 1280 kN (factored loads) fall at L/2 :
kNpu 5.735)277(7.1)189(4.11
kNPu 5.544)191(7.1)157(4.12
kNPPPw 81434846621
kNPPP uuu 12805.5445.73521
814
1280
w
u
P
PURratioUltimate
572.1UR
)572.1(110)( URqq ault
kPaqult 973.172
9.47100)5.735(51280 x
mL 775.522
26.757.2
mx 757.21280
9.47100)5.735(5
173
Step 3 Find B:
qult = 172.973 1.281 = 221.6475 kN/m
Use B = 1.35 m
Step 4 Draw shear and moment diagrams
uPBLq
mB 281.1)973.172)(775.5(
1280
174
Step 5 select depth based on analysis for both wide-beam and diagonal tension.
Obtain critical location for wide beam first (slope of shear diagram = constant) using V
diagram:
Checking diagonal tension at column 2 using d just obtained for a three-side zone and
vc=1.29 MPa from table A-1
The net shear is (column load – upward soil force) in diagonal tension zone:
)(129.559. inspectionbycolumnatkNVMax
ddBvc 648.22129.559
)1(66.0 AtablefromallowableMPavc
dd 648.22129.559)100066.0(35.1
29.559648.221891 dd
md 503.0648.1112
29.559
mperimeter 786.1503.026.0)2)(2/503.026.0(
2391.0)763.0)(512.0()503.026.0)(2/503.026.0( mA
kNPPV soilcol 304.48035.1
648.221391.05.544
.2
2 columnofwidthwwheredwd
wperimeter
dwd
wA
2
175
At column 1 a four-side zone gives
By inspection a three-side diagonal tension is not critical at column 1.
Step 6 Design main reinforcement steel (between column 1 and 2).
For fy=414 MPa and fc’=20.7 MPa and b = 1.35 m
Obtain a:
..1290647.534)503.0)(786.1(
304.480KOkPakPavActual
222 645.0)503.03.0()( mdwA
kNV 633.62935.1
648.221645.05.735
mdwperimeter 212.3)503.03.0(4)(4
..1290712.389503.0212.3
633.629KOkPakPav
u
n
MM
u
ys
MadfA )2/(
y
us
f
MadA )2/(
TC
ysc fAabf '
85.0
s
s
c
ysA
A
bf
fAa 429.17
)35.1)(20700(85.0
414000
85.0'
)414000(9.0
655.646)715.8503.0( ss AA
176
Using quadratic formula:
< 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:
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):
000174.0503.0715.82
ss AA
24898 mmAs
..38.1
0072.0)503.0(35.1
004898.0min KO
fbd
A
y
s
mdwB 637.0)503.0(75.026.075.0'
2
1
'
1 9.490019.0/ mmAandCwhereffACL bcybd
mmLd 8497.20/4149.490019.0
mmdandCwherefdCL bybd 25058.0min 22
mmLd 60041425058.0min
177
Take d = 0.503 - 0.025=0.478 m to allow for longitudinal rebars:
Using quadratic formula:
Use 4, 18 mm bars (As=1016 mm2)
Development length
Ld furnished = 0.545 – 0.025 = 0.52 m
mwB
L 545.02
26.035.1
2'
)(928.632)637.0(35.1
5.544
'
2 veconservatikPaBB
Pq u
mkNL
qM 998.932
545.0928.632
2
' 22
ys
f
MadA )2/(
ss
c
yAA
Bf
fa 938.36
'85.0'
)414000(90.0
998.93)469.18478.0( ss AA
2538 mmAs
minmin 0033.038.1
00177.0)478.0(637.0
000538.0 use
f y
2
min 1005)478.0)(637.0(0033.0' mmdBAs
mmfAfL cbyd 4397.20/254414019.0/019.0'
mmLd 43241418058.0min
0000252.0478.0469.182
ss AA
178
Compute short direction steel at column 1; use d = 0.478 m
Using quadratic formula:
Use 7, 18 mm bars (As = 1778 mm2)
mB 017.1)478.0(5.13.0'
kPaq 708.535)017.1(35.1
5.735
mkNM 827.732
525.0708.535
2
y
us
f
MadA )2/(
s
c
syA
Bf
Afa 138.23
'85.0'
)414000(9.0
827.73)568.11478.0( ss AA
0000198.047.0568.112
ss AA
27.418 mmAs
0033.000086.0)478.0(017.1
0004187.0minmin use
21620)478.0)(017.1(0033.0 mmAs
mmLd 4397.20/254414019.0
mL 525.02
3.035.1'
179
Step 8 Check dowel requirements of column to footing. At column 2 the supporting area
is not on all sides; therefore, the bearing stress is limited to
Dowels not required for load transfer
Use 4 dowels to provide at least 0.005 Ag:
Use 4, 12 mm bars (As= 452 mm2). At column 1 with concrete all around
Use four dowels same size as column 2.
Step 9 Provide minimum reinforcement ratio of 0.002 for cantilever portion of footing.
Use 7, 18 mm bars @ 20.5 cm c/c (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,
MPaff cc 317.12))(7.0(85.0'
OKkNkNP 5.544595.832)26.0(1000317.12 2
22 338)26.0(005.0 mmAs
221
2 useA
A
MPaff cc 633.24)2)()(7.0(85.0'
kNkNP 5.73597.2216)3.0)(1000(633.24 2
21620)6.0)(35.1(002.0 mmAs
7.085.0'
whereff cc
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)
1 0.295
2 0.2
3 0.15
4 0.15
5 0.226
6 0.3
7 0.4
8 0.5
9 0.5
10 0.597
11 0.597
12 0.55
13 0.45
14 0.35
15 0.25
16 0.13
17 0.13
183
Step 3 Input the applied loads to the program.
Applied Loads:
number of point loads = 2
number of moments = 2
node point load (kN) moment (kN-m)
1 0 0
2 0 0
3 0 0
4 735.5 100
5 0 0
6 0 0
7 0 0
8 0 0
9 0 0
10 0 0
11 0 0
12 0 0
13 0 0
14 0 0
15 0 0
16 0 0
17 544.5 47.9
18 0 0
Step 4 Get the output from the program
Shear and moment at different nodes is computed as follows by the finite element
program BEAMDEZ.
184
(a) Finite element nodes, (b) Shear force diagram (c) Bending moment diagram.
185
Rotations and Deflections:
node rotation (rads) deflection (m)
1 -1.0377734519643E-03 8.8755662258179E-03
2 -1.04361249509537E-03 8.56884888491384E-03
3 -1.05638757642438E-03 8.35901080225222E-03
4 -1.07318810583341E-03 8.19938202401738E-03
5 -1.11015071144748E-03 8.03536039563571E-03
6 -1.12684593522424E-03 7.78172663389098E-03
7 -1.08375114556973E-03 7.4483775443608E-03
8 -9.27498528441175E-04 7.04266946511677E-03
9 -6.06595717569664E-04 6.65408366768268E-03
10 -1.85513876241704E-04 6.45277025262321E-03
11 3.88229918489995E-04 6.51090393322486E-03
12 9.74252507162242E-04 6.91876025529445E-03
13 1.46282862209597E-03 7.59268047671494E-03
14 1.78245567183365E-03 8.32638602463571E-03
15 1.95576683773571E-03 8.98283942851845E-03
16 2.02771044502576E-03 9.48177916983684E-03
17 2.04527493002787E-03 9.74668144612059E-03
18 2.04471122365116E-03 1.00125183324716E-02
Shear at Nodes:
node shear on left (kN) shear on right(kN)
1 0 -73.3696485354595
2 -73.3696485354595 -132.798322650586
3 -132.798322650586 -173.789584631866
4 -173.789584631866 527.246014401947
5 527.246014401947 484.914718561112
6 484.914718561112 427.56516088854
7 427.56516088854 354.51383879332
8 354.51383879332 265.706639565207
9 265.706639565207 172.476439649397
10 172.476439649397 73.2971054981952
11 73.2971054981952 -35.6244845113681
12 -35.6244845113681 -146.813032293577
186
node shear on left (kN) shear on right(kN)
13 -146.813032293577 -253.193888635818
14 -253.193888635818 -346.522517781034
15 -346.522517781034 -422.037520978226
16 -422.037520978226 -472.520129921786
17 -472.520129921786 36.4741374588287
18 36.4741374588287 7.570477578E-09
Moments at Nodes:
node moment on left(kN-m) moment on right(kN-m)
1 0 -1.2805685400E-09
2 -21.6440463167964 -21.6440463183681
3 -48.2037108479999 -48.2037108461373
4 -74.2721485455986 -174.272148543503
5 -95.18524638284 -95.18524638284
6 14.4054800115991 14.4054800113663
7 142.675028279366 142.675028278434
8 284.480563796737 284.480563796329
9 417.333883579675 417.33388357998
10 503.572103404265 503.572103404724
11 547.330475387753 547.330475387891
12 526.062658134899 526.062658134702
13 445.315490374443 445.315490374342
14 331.378240488208 331.378240488732
15 210.09535926531 210.095359265339
16 104.585979021329 104.585979020922
17 43.1583621315658 -4.74163786880672
18 0 0
Soil Pressure:
node soil pressure Q (kPa)
1 184.230128149302
2 177.863596304157
3 173.507987222349
4 170.194572672529
5 166.789975732211
187
node soil pressure Q (kPa)
6 161.525299739675
7 154.605972688297
8 146.184690087429
9 138.118814690089
10 133.9401521337
11 135.146832941948
12 143.612706619147
13 157.601268655172
14 172.830794713363
15 186.456798017757
16 196.813290228303
17 202.311866777125
18 207.829843027112
Step 5 select depth based on analysis for both wide-beam and diagonal tension.
Obtain critical location for wide beam first (slope of shear diagram = constant) using V
diagram:
)(125.527. inspectionbycolumnatkNVMax
188
Checking diagonal tension at column 2 using d just obtained for a three-side zone and
vc=1.29 MPa from table A-1:
The net shear is (column load – upward soil force) in diagonal tension zone:
At column 1 a four-side zone gives
ddBvc 648.22125.527
)1(66.0 AtablefromallowableMPavc
dd 648.22125.527)100066.0(35.1
25.527648.221891 dd
md 474.0648.1112
25.527
mperimeter 728.1474.026.0)2)(2/474.026.0(
2365.0)734.0)(497.0()474.026.0)(2/474.026.0( mA
kNPPV soilcol 606.48435.1
648.221365.05.544
..1290653.591)474.0)(728.1(
606.484KOkPakPavActual
222 599.0)474.03.0()( mdwA
.2
2 columnofwidthwwheredwd
wperimeter
dwd
wA
2
189
By inspection a three-side diagonal tension is not critical at column 1.
Step 6 Design main reinforcement steel (between column 1 and 2).
For fy=414 MPa and fc’=20.7 MPa and b = 1.35 m
Obtain a:
Using quadratic formula:
< max = 0.016 from table A-2.
Use 9, 22mm bars @ 15.75 cm c/c spacing across top of footing (As = 3420 mm2)
Run 1/3 of bars full length of footing (less 7.5 cm end covers)
Development length:
kNV 142.63735.1
648.221599.05.735
mdwperimeter 096.3)474.03.0(4)(4
..1290167.434474.0096.3
142.637KOkPakPav
s
s
c
ysA
A
bf
fAa 429.17
)35.1)(20700(85.0
414000
85.0'
)414000(9.0
33.547)715.8474.0( ss AA
000147.0474.0715.82
ss AA
23302 mmAs
..38.1
0052.0)474.0(35.1
003302.0min KO
fbd
A
y
s
2
1
'
1 380019.0/ mmAandCwhereffACL bcybd
mmLd 6577.20/414380019.0
190
Total length of bar provided = 5 + 0.13/2 + 0.15 =5.215 m
Step 7 Find steel in short direction at column 2 (refer to figure for width):
Take d = 0.474 - 0.025=0.449 m to allow for longitudinal rebars:
mdwB 616.0)474.0(75.026.075.0'
mwB
L 545.02
26.035.1
2'
)(762.654)616.0(35.1
5.544
'
2 veconservatikPaBB
Pq u
mkNL
qM 24.972
545.0762.654
2
' 22
ys
f
MadA )2/(
ss
c
yAA
Bf
fa 198.38
'85.0'
)414000(90.0
24.97)099.19449.0( ss AA
mmdandCwherefdCL bybd 22058.0min 22
mmLd 52841422058.0min
000026.0449.0099.192
ss AA
191
Using quadratic formula:
Use 6, 14 mm bars (As=924 mm2)
Development length
Ld furnished = 0.545 – 0.025 = 0.52 m
Compute short direction steel at column 1; use d = 0.449 m
2594 mmAs
minmin 0033.038.1
0022.0)449.0(616.0
000594.0 use
f y
2
min 922)449.0)(616.0(0033.0' mmdBAs
mmfAfL cbyd 2667.20/154414019.0/019.0'
mB 974.0)449.0(5.13.0'
kPaq 358.559)974.0(35.1
5.735
mkNM 087.772
525.0358.559
2
y
us
f
MadA )2/(
s
c
syA
Bf
Afa 158.24
'85.0'
)414000(9.0
087.77)079.12449.0( ss AA
mmLd 33641414058.0min
mL 525.02
3.035.1'
192
Using quadratic formula:
Use 6, 18 mm bars (As = 1524 mm2)
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.
000021.0449.0079.122
ss AA
27.473 mmAs
0033.00011.0)449.0(974.0
0004737.0minmin use
21458)449.0)(974.0(0033.0 mmAs
mmLd 4397.20/254414019.0
193
COMPARISON
#
Conventional
Method
Finite Element
Method %
1 Max. Shear at column 1 559.29 kN 527.25 kN -5.73
2 Max. Shear at column 2 486.87 kN 472.52 kN -2.95
3 Max. mid-span Moment 646.66 kN-m 547.33 kN-m -15.36
4
Max. Moment under
col-1 59.72 kN-m 95.19 kN-m 59.39
Area of steel required mm2
5
Main reinforcement
steel (between col. 1
and 2) 4898 3302 -32.58
6
Transverse steel under
column 1 1620 1458 -10.00
7
Transverse steel under
column 2 1005 922 -8.26
8
Steel in cantilever
portion 1620 1620 0
194
Example problem 3:
Design a rectangular combined footing using the conventional method.
Given:
Column Dead load (kip) Live load (kip) Total load (kip)
1 120 80 200
2 70 60 130
3 150 100 250
Applied loads
Column Momentdead (kip-ft) Momentlive (kip-ft) Total Moment
(kip-ft)
1 40.5 25.5 66
2 28 24 52
3 42 36 78
Applied Moments
ksfqksifksif acy 4440'
195
Solution:
Step 1 convert loads to ultimate and find “ultimate” soil pressure:
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
This is necessary so that eccentricity is not introduced in finding L using working loads
and then switching to “ultimate” values.
Step 2 Find footing dimensions L and B; first locate load resultant from center of
column 2.
To make the resultant of 884 kip (factored loads) fall at L/2 :
kippu 304)80(7.1)120(4.11
kipPu 200)60(7.1)70(4.12
kipPPPPw 580250130200321
kipPPPP uuuu 884380200304321
580
884
w
u
P
PURratioUltimate
524.1UR
)524.1(4)( URqq ault
ksfqult 097.6
12080100)380(27)200(12884 x
ftL 293.30212
848.14
ftx 48.14884
12080100)380(27)200(12
kipPu 380)100(7.1)150(4.13
196
Step 3 Find B:
qult = 6.097 4.787 = 29.182 kip/ft
Use B = 4.84 ft
uPBLq
ftB 787.4)097.6)(293.30(
884
197
Step 4 Draw shear and moment diagrams
198
Step 5 select depth based on analysis for both wide-beam and diagonal tension.
Obtain critical location for wide beam first (slope of shear diagram = constant) using V
diagram:
Checking diagonal tension at column 1 using d just obtained for a three-side zone and
vc=31.0 ksf from table A-1.
The net shear is (column load – upward soil force) in diagonal tension zone:
)(3483.281. inspectionbycolumnatkipVMax
ddBvc 182.29483.281
)1(5.15 Atablefromallowableksfvc
483.281202.104 d
ftd 7.2202.104
483.281
ftperimeter 9.47.212/16)2)(2/7.212/16(
2823.10)7.212/16)(2/7.212/16( ftA
kipPPV soilcol 744.23884.4
182.29823.10304
..31407.9)7.2)(4.9(
744.238KOksfksfvActual
.2
2 columnofwidthwwheredwd
wperimeter
dwd
wA
2
199
At column 2 a four-side zone gives
At column 3 a four-side zone gives
By inspection a three-side diagonal tension is not critical at column 2 and column 3.
Step 6 Design main reinforcement steel (between column 2 and 3).
For fy=40 ksi and fc’=4 ksi and b = 4.84 ft
Obtain a:
222 69.13)7.21()( ftdwA
kipV 458.11784.4
182.2969.13200
ftdwperimeter 8.14)7.21(4)(4
..31939.27.28.14
458.117KOksfksfv
u
n
MM
y
us
f
MadA )2/(
TC
ysc fAabf '
85.0
s
s
c
ysA
A
bf
fAa 203.0
)1284.4)(4(85.0
40
85.0'
222 64.17)7.25.1()( ftdwA
kipV 642.27384.4
182.2964.17380
ftdwperimeter 8.16)7.25.1(4)(4
..31033.67.28.16
642.273KOksfksfv
200
Using quadratic formula:
< 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:
Design main reinforcement steel (between column 1 and 2).
a = 0.203As
Using quadratic formula:
< max = 0.037 from table A-1.
)40(9.0
12267.1596)1015.0127.2(
ss AA
01.5324.321015.02
ss AA
237.17 inchAs
..200
0092.0144)7.2(84.4
37.17min KO
fbd
A
y
s
2
1
'
1 0.104.0/ inchAandCwhereffACL bcybd
inchLd 254000/400000.104.0
inchdandCwherefdCL bybd 125.10004.0min 22
inchLd 1840000125.10004.0min
)40(9.0
1295.1286)1015.0127.2(
ss AA
098.4284.321015.02
ss AA
284.13 inchAs
..200
0074.0144)7.2(84.4
84.13min KO
fbd
A
y
s
201
Use 14 #9 bars (As = 14 inch2)
Development length:
Step 7 Lengths of bars for main reinforcement
Size of bars required is same for span-1 (col-1 ~ col-2) and span-2 (col-2 ~ col-3)
therefore run 14 bars full length of the footing (less 3 inch end-cover on each side) and
cut off the remaining 4 bars of span-2 at 24 inch beyond col-2 as computed from moment
capacity diagram shown below.
Moment capacity for 14#9 bars in span-1:
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
inchLd 254000/400000.104.0
inchLd 1840000125.10004.0min
202
Bar cutoff for main reinforcement under col-2
Step 8 Find steel in short direction at column 1 (refer to figure for width):
Take d = 32.4-1=31.4 inch to allow for longitudinal rebars:
ftdwB 358.3)7.2(75.012/1675.0'
ftwB
L 753.12
12/1684.4
2'
ksfBB
Pq u 705.18
)358.3(84.4
304
'
1
inkipL
qM
884.3442
12753.1705.18
2
' 22
203
Using quadratic formula:
Use 5#10 bars @7.8 inch c/c (As= 6.33 inch2)
Development length
Ld furnished = 1.75312 – 3 = 18.04 inch < min Ld provide hooks
Compute short direction steel at column 2
ss
c
yAA
Bf
fa 98.0
'85.0'
)40(90.0
884.344)49.04.31( ss AA
ftinchAs /307.0 2
minmin 005.0200
0008.0)12(4.31
307.0 use
f y
inchfAfL cbyd 324000/40000266.104.0/04.0'
ftB 05.5)7.2(5.11'
ksfq 183.8)84.4(05.5
200
inkipM
995.1802
1292.1183.8
2
inchLd 20400025.10004.0min
ftL 92.12
184.4'
058.94.3149.02
ss AA
2
min 33.6)4.31)(12358.3(005.0' inchdBAs
204
Using quadratic formula:
Use 8#10 bars (As = 10.12 inch2)
Ld furnished = 1.9212 – 3 = 20.04 inch < req. Ld provide hooks
Compute short direction steel at column 3
sAa 98.0
)40(9.0
995.180)49.04.31( ss AA
0323.54.3149.02
ss AA
ftinchAs /17.0 2
005.000045.0)12(4.31
17.0minmin use
25.9)4.31)(1205.5(005.0 inchAs
inchLd 324000/266.14000004.0
ksfq 146.14)84.4(55.5
380
inkipM
711.2362
1267.1146.14
2
sAa 98.0
ftL 67.12
5.184.4'
ftB 55.5)7.2(5.15.1'
inchLd 20400025.10004.0min
205
Using quadratic formula:
Use 7#11 bars @ 10 inch c/c (As = 10.94 inch2)
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
Dowels not required for load transfer
Use 4 dowels to provide at least 0.005 Ag:
ksiff cc 38.2))(7.0(85.0'
OKkipkipP 30428.609)16(38.2 2
22 28.1)16(005.0 inchAs
7.085.0'
whereff cc
)40(9.0
711.236)49.04.31( ss AA
058.64.3149.02
ss AA
ftinchAs /21.0 2
005.000056.0)12(4.31
21.0minmin use
246.10)4.31)(1255.5(005.0 inchAs
inchLd 354000/375.14000004.0
inchLd 224000375.10004.0min
206
Use 4#6 bars (As= 1.77 inch2). At column 2 with concrete all around
Dowels not required
Use four dowels to provide at least .005 Ag.
As = 0.005 (12)2 = 0.72 inch
2.
Use 4#4 bars (As = 0.78 inch2). At column 3 with concrete all around
Dowels not required
Use four dowels to provide at least .005 Ag.
As = 0.005 (18)2 = 1.62 inch
2.
Use 4#6 bars (As = 1.77 inch2).
Step 10 Provide minimum reinforcement ratio of 0.002 for cantilever portion of footing.
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.
227.31
)7.21(2
2
1
2 useA
A
ksiff cc 76.4)2)()(7.0(85.0'
kipkipP 20044.685)12(76.4 2
218.4)144)(3)(84.4(002.0 inchAs
228.25.1
)7.25.1(2
2
1
2 useA
A
ksiff cc 76.4)2)()(7.0(85.0'
kipkipP 38024.1542)18(76.4 2
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.
208
F
inal
sket
ch
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)
1 0.66635
2 0.66635
3 0.45
4 0.45
5 0.5
6 0.68
210
Element Length (ft)
7 0.75
8 0.75
9 1.2
10 1.75
11 1.554
12 1
13 1
14 0.75
15 0.5
16 0.5
17 0.85
18 1.5
19 1.75
20 1.75
21 1.5
22 1.5
23 2.4
24 1.5
25 1
26 0.75
27 0.75
28 0.8833
29 1.2
Step 3 Input the applied loads to the program.
Applied Loads:
number of point loads = 3
number of moments = 3
node point load (kip) moment (kip-ft)
1 0 0
2 304 100
3 0 0
4 0 0
5 0 0
6 0 0
211
node point load (kip) moment (kip-ft)
7 0 0
8 0 0
9 0 0
10 0 0
11 0 0
12 0 0
13 0 0
14 0 0
15 0 0
16 200 -80
17 0 0
18 0 0
19 0 0
20 0 0
21 0 0
22 0 0
23 0 0
24 0 0
25 0 0
26 0 0
27 380 120
28 0 0
29 0 0
30 0 0
Step 4 Get the output from the program
Shear and moment at different nodes is computed as follows by the finite element
program BEAMDEZ.
Rotations and Deflections:
node rotation (rads) deflection (ft)
1 -1.90280274740935E-03 3.85903453911878E-02
2 -1.90386528427405E-03 3.73221767733048E-02
3 -0.001907930483173 3.60511007175639E-02
4 -1.90004257382928E-03 3.51940022873247E-02
5 -1.88433331180187E-03 3.43422356040202E-02
212
node rotation (rads) deflection (ft)
6 -1.85843492036462E-03 3.34061881907532E-02
7 -1.8103746457302E-03 3.21579951775808E-02
8 -1.74224402077236E-03 3.08248432658327E-02
9 -1.66060496688549E-03 2.95480062536544E-02
10 -1.50826266906429E-03 2.76443094327891E-02
11 -1.25512259582533E-03 2.52223668117729E-02
12 -1.01681749887895E-03 2.34567073404221E-02
13 -8.64777269652738E-04 2.25162780742085E-02
14 -7.19249798187343E-04 2.17249818818629E-02
15 -6.16748316896474E-04 2.12244095993594E-02
16 -5.52518258973158E-04 0.020932245194791
17 -4.80798116221413E-04 2.06737236530881E-02
18 -3.49212092742148E-04 2.03201567364419E-02
19 -9.40161559056004E-05 1.99845197423788E-02
20 2.26972720573229E-04 2.00984495585325E-02
21 5.54444103582402E-04 2.07827057265278E-02
22 8.25243986408098E-04 2.18195648321851E-02
23 1.07244660707287E-03 2.32466390546716E-02
24 1.38033607187552E-03 2.62152880906319E-02
25 1.49780016873123E-03 2.83827453268335E-02
26 1.53345217781748E-03 0.029901545484579
27 1.53382649286268E-03 3.10532852062903E-02
28 1.51177448010676E-03 3.21947077592701E-02
29 1.49780169389108E-03 0.033523060844898
30 1.49212269345947E-03 0.035315879677222
Shear at Nodes:
node shear on left(kip) shear on right(kip)
1 0 -27.3187581809334
2 -27.3187581809334 250.260241651268
3 250.260241651268 228.88215680058
4 228.88215680058 212.056924933077
5 212.056924933077 194.726785409102
6 194.726785409102 173.787646345148
7 173.787646345148 149.360378539665
8 149.360378539665 124.799605798099
213
node shear on left(kip) shear on right(kip)
9 124.799605798099 94.1931751864354
10 94.1931751864354 50.8742520400059
11 50.8742520400059 6.60769277563831
12 6.60769277563831 -25.2150664468553
13 -25.2150664468553 -49.1359099473329
14 -49.1359099473329 -69.3310729175297
15 -69.3310729175297 -83.4238155863844
16 -83.4238155863844 105.457185088595
17 105.457185088595 90.6319234777614
18 90.6319234777614 65.2663429442096
19 65.2663429442096 30.7657175578585
20 30.7657175578585 -6.60061641563067
21 -6.60061641563067 -42.4792041439721
22 -42.4792041439721 -77.2502080735972
23 -77.2502080735972 -125.408898651456
24 -125.408898651456 -179.717564286821
25 -179.717564286821 -217.409140512223
26 -217.409140512223 -245.205093917641
27 -245.205093917641 110.052114229265
28 110.052114229265 82.1202231489021
29 82.1202231489021 45.0226611148056
30 45.0226611148056 1.3021065115E-08
Moments at Nodes:
node moment on left(kip-ft) moment on right(kip-ft)
1 0 -1.2107193470E-08
2 -18.2038545012474 -118.203854521271
3 48.5570575180463 48.5570575306192
4 151.554028050974 151.554028066806
5 246.979644292034 246.979644274339
6 344.34303700272 344.343037001789
7 462.51863648463 462.51863648952
8 574.538920404855 574.538920395542
9 668.138624738902 668.1386247396
10 781.170434951549 781.170434952306
11 870.200376009452 870.200376010733
214
node moment on left(kip-ft) moment on right(kip-ft)
12 880.468730568246 880.468730566208
13 855.253664119169 855.253664114513
14 806.117754160659 806.117754162988
15 754.11944946344 754.119449467864
16 712.407541668974 792.40754166944
17 845.136134209111 845.136134207831
18 922.173269153223 922.173269152583
19 1020.07278354996 1020.07278354969
20 1073.91278925267 1073.91278925224
21 1062.36171050317 1062.36171050341
22 998.642904265958 998.642904266599
23 882.767592137272 882.767592137301
24 581.786235341686 581.786235341802
25 312.209888892714 312.209888893529
26 94.8007483665133 94.8007483666297
27 -89.1030720786657 -209.103072080063
28 -126.563986418536 -126.56398641807
29 -54.0271933223121 -54.0271933221957
30 0 0
Soil Pressure:
node soil pressure Q (ksf)
1 8.47058081336571
2 8.1922178017404
3 7.91321660750528
4 7.72508350206777
5 7.53812071508244
6 7.33265830787032
7 7.058679941479
8 6.76605309685028
9 6.48578737267714
10 6.0679259204972
11 5.53630951518414
12 5.14874726122265
13 4.94232303728876
14 4.76863352306891
215
node soil pressure Q (ksf)
15 4.65875790705939
16 4.59462782025663
17 4.53788234185283
18 4.46027440364899
19 4.38660208345215
20 4.41160967809789
21 4.56180390697285
22 4.78939448066462
23 5.10263727250043
24 5.7542557358937
25 6.23001259923996
26 6.5633892338651
27 6.81619610278071
28 7.06673835315978
29 7.35831185545511
30 7.75183558915023
Step 5 select depth based on analysis for both wide-beam and diagonal tension.
Obtain critical location for wide beam first (slope of shear diagram = constant) using V
diagram:
216
Checking diagonal tension at column 1 using d just obtained for a three-side zone and
vc=31.0 ksf from table A-1:
The net shear is (column load – upward soil force) in diagonal tension zone:
At column 2 a four-side zone gives
)(326.250. inspectionbycolumnatkipVMax
ddBvc 182.2926.250
)1(5.15 Atablefromallowableksfvc
dd 182.2926.250)5.15(84.4
26.250202.104 d
ftd 4.2202.104
26.250
ftperimeter 8.84.212/16)2)(2/4.212/16(
246.9)4.212/16)(2/4.212/16( ftA
kipPPV soilcol 96.24684.4
182.2946.9304
..3169.11)4.2)(8.8(
96.246KOksfksfvActual
ftdwperimeter 6.13)4.21(4)(4
.2
2 columnofwidthwwheredwd
wperimeter
dwd
wA
2
217
At column 3 a four-side zone gives
By inspection a three-side diagonal tension is not critical at column 2 and column 3.
Step 6 Design main reinforcement steel (between column 2 and 3).
For fy=40 ksi and fc’=4 ksi and b = 4.84 ft
Obtain a:
222 56.11)4.21()( ftdwA
kipV 3.13084.4
182.2956.11200
..3199.34.26.13
3.130KOksfksfv
u
n
MM
y
us
f
MadA )2/(
TC
ysc fAabf '
85.0
s
s
c
ysA
A
bf
fAa 203.0
)1284.4)(4(85.0
40
85.0'
)40(9.0
12913.1073)1015.0124.2(
ss AA
222 12.15)4.25.1()( ftdwA
kipV 84.28884.4
182.2912.15380
ftdwperimeter 6.15)4.25.1(4)(4
..31715.74.26.15
84.288KOksfksfv
218
Using quadratic formula:
< max = 0.037 from table A-2
Use 9 #11 bars @ 5.2 inch c/c spacing across top of footing (As = 14.06 inch2)
Development length:
Design main reinforcement steel (between column 1 and 2).
a = 0.203As
Using quadratic formula:
< max = 0.037 from table A-2
0971.3578.281015.02
ss AA
203.13 inchAs
..200
007.0144)4.2(84.4
03.13min KO
fbd
A
y
s
2
1
'
1 56.104.0/ inchAandCwhereffACL bcybd
inchLd 394000/4000056.104.0
inchdandCwherefdCL bybd 375.10004.0min 22
inchLd 2240000375.10004.0min
)40(9.0
12469.880)1015.0124.2(
ss AA
049.2938.281015.02
ss AA
259.10 inchAs
..200
0063.0144)4.2(84.4
59.10min KO
fbd
A
y
s
219
Use 7 #11 bars (As = 10.94 inch2)
Development length:
Step 7 Find steel in short direction at column 1 (refer to figure for width):
Take d = 28.8-1=27.8 inch to allow for longitudinal rebars:
Using quadratic formula:
inchLd 394000/4000056.104.0
inchLd 2240000375.10004.0min
ftdwB 133.3)4.2(75.012/1675.0'
ftwB
L 753.12
12/1684.4
2'
ksfBB
Pq u 048.20
)133.3(84.4
304
'
1
inkipL
qM
64.3692
12753.1048.20
2
' 22
ss
c
yAA
Bf
fa 98.0
'85.0'
)40(90.0
64.369)49.08.27( ss AA
ftinchAs /372.0 2
0268.108.2749.02
ss AA
220
Use 7#8 bars @5.25 inch c/c (As= 5.5 inch2)
Development length
Ld furnished = 1.75312 – 3 = 18.04 inch < Ld provide hooks
Compute short direction steel at column 2
Using quadratic formula:
minmin 005.0200
001.0)12(8.27
372.0 use
f y
inchfAfL cbyd 204000/40000786.004.0/04.0'
ftB 6.4)4.2(5.11'
ksfq 983.8)84.4(6.4
200
inkipM
612.1982
1292.1983.8
2
sAa 98.0
)40(9.0
692.198)49.08.27( ss AA
0519.58.2749.02
ss AA
ftinchAs /195.0 2
inchLd 1640000.10004.0min
ftL 92.12
184.4'
2
min 23.5)8.27)(12133.3(005.0' inchdBAs
221
Use 10#8 bars (As = 7.85 inch2)
Ld furnished = 1.9212 – 3 = 20.04 inch req. Ld O.K.
Compute short direction steel at column 3
Using quadratic formula:
005.00006.0)12(8.27
195.0minmin use
267.7)8.27)(126.4(005.0 inchAs
inchLd 204000/786.04000004.0
ksfq 395.15)84.4(1.5
380
inkipM
6.2572
1267.1395.15
2
sAa 98.0
)40(9.0
6.257)49.08.27( ss AA
0156.78.2749.02
ss AA
ftinchAs /26.0 2
005.000078.0)12(8.27
26.0minmin use
ftL 67.12
5.184.4'
ftB 1.5)4.2(5.15.1'
inchLd 1640000.10004.0min
222
Use 7#10 bars @ 9.2 inch c/c (As = 8.86 inch2)
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.
251.8)8.27)(121.5(005.0 inchAs
inchLd 324000/27.14000004.0
inchLd 20400025.10004.0min
223
COMPARISON
#
Conventional
Method
Finite Element
Method %
1 Max. Shear at column 1 265.09 kip 250.26 kip -5.59
2 Max. Shear at column 2 119.77 kip 105.46 kip -11.95
3 Max. Shear at column 3 281.48 kip 245.21 kip -12.89
4
Max. mid-span Moment
(span-1) 1280.77 kN-m 880.47 kN-m -31.26
5
Max. mid-span Moment
(span-2) 1596.27 kN-m 1073.91 kN-m -32.72
Area of steel required mm2
6
Main reinforcement steel
(between col. 1 and 2) 4898 3302 -32.58
7
Transverse steel under
column 1 1620 1458 -10.00
8
Transverse steel under
column 2 1005 922 -8.26
9 Steel in cantilever portion 1620 1620 0
224
Example problem 5:
The following combined footing design is made by IntelliConsultants (pvt.) Ltd. for Isra
University Hospital using a program made in MS-Excel.
225
226
Their program uses the conventional method. A comparison of bending moment obtained
by the conventional method and the finite element method is given below:
Comparison of bending moment by finite element method and conventional method.
It is quite obvious that the top bars, which are required according to the bending moment
obtained by conventional method, are not required according to the bending moment
obtained by the finite element method. Also the gap between the bottom bars, which has
been provided by calculations according to the conventional method, should not be left as
per finite element calculations. Due to these changes, about 30% steel will be saved.
227
APPENDICES
Table-A1
Allowable wide-beam and diagonal tension shear by ACI Code for several strengths of
concrete for < 2.0 where = col. length/col. width
=0.85 fc’, psi (MPa)
3000 (21) 3500 (24) 4000 (28) 5000 (35)
Wide beam 2fc’
Psi (MPa) Ksf
93.1 (0.66) 13.4
100.6 (0.71) 14.5
107.5 (0.76) 15.5
120.2(0.85) 17.3
Diagonal tension 4fc’
Psi (MPa) Ksf
186.2 (1.29) 26.8
201.1 (1.37) 29.0
214.0 (1.48) 31.0
240.4(1.66) 34.6
Table-A2
Allowable percent of steel (includes 25% reduction for bending using strength design per ACI)
Fc’, ksi (MPa) 1
Fy, ksi (MPa)
40(275) 50(345) 60(415)
3.0 (21) 0.85 0.028 0.021 0.016
3.5 (24) 0.85 0.032 0.024 0.019
4.0 (28) 0.85 0.037 0.028 0.021
5.0 (35) 0.80 0.044 0.023 0.025
6.0 (42) 0.75 0.049 0.036 0.028
Table-A3
Range of values of modulus of subgrade reaction ks. Use values as guide and for comparison when using approximate equations.
Soil Ks, kcf Ks, kN/m3
Loose sand 30~100 4800~16000
Medium dense sand 60~500 9300~80000
Dense sand 400~800 64000~128000
Clayey medium dense sand 200~500 32000~80000
Silty medium dense sand 150~300 24000~48000
Clayey soil:
qu 200 kPa (4 ksf) 75~150 12000~24000
200<qu 400 kPa (8 ksf) 150~300 24000~48000
qu> 800 kPa (16 ksf) >300 >48000
228
Table-A4
Typical range of values for the static stress strain modulus Es for selected soils Field values depend on stress history, water content, density, etc.
Es
Soil Ksf Mpa
Clay:
Very soft 50~250 2~15
Soft 100~500 5~25
Medium 300~1000 15~50
Hard 1000~2000 50~100
Sandy 500~5000 25~250
Glacial till:
Loose 200~3200 10~150
Dense 3000~15000 150~720
Very dense 10000~30000 500~1440
Loess: 300~1200 15~60
Sand:
Silty 150~450 5~20
Loose 200~500 10~25
Dense 1000~1700 50~81
Sand and gravel
Loose 1000~3000 50~150
Dense 2000~4000 100~200
Shale 3000~300000 150~5000
Silt 40~400 2~20
Table-A5
Values or value ranges for poisson’s 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 consolidated)
Es = 500(N+15) Es = (2 to 4)qu
Es = 7000 N Es = 8000 qc
Es = 6000 N ---
--- Es = 1.2 (3Dr2+2)qc
Es = (15000 to 22000) ln(N)
Es = (1+ Dr2)qc
Sand (saturated) Es = 250(N+15) Es = F.qc
e = 1.0 F=3.5
e = 0.6 F=7.0
Sands, all (norm. consolidated)
Es = (2600 to 2900)N
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 silt
Es = 300(N+6) Es = (1 to 2)qc
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.0071Ip
3
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.
230
REFERENCE
Argyris, G.H., and Kelsey, S. (1960), Energy Theorems and Structural Analysis,
Butterworth Scientific Publications, London.
AutoCAD 2000, Copyright © 1999, Command Reference, AutoDesk Inc.
AutoCAD 2000, Copyright © 1999, User’s 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.
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 Geosynthetic-
Reinforced Compressible Granular Fill-soft Soil System. Geotextiles and
Geomembranes, 13(9), pp. 627-639.
Straughan, W.T. (1990), Analysis of Plates on Elastic Foundation, PhD dissertation,
Dept. of Civ. Engrg., Texas Tech University, Lubbock, Tex.
Terzaghi, K. (1955), Evaluation of Coefficient of Subgrade Reaction. Geotechnique,
London.
Timoshenko, S.P. (1921), On the Correction for Shear of the Differential Equation for
Transverse Vibration of Prismatic Bars, Philosophical Magazine, 41, 744.
Turhan, A. (1992), A Consistent Vlasov Model for Analysis of Plates on Elastic
Foundations Using the Finite Element Method, Dept. of Civ. Engrg., Texas Tech
University, Lubbock, Tex.
Turner, M., Clough, R., Martin, H., and Topp, L. (1956), Stiffness and Deflection Analysis
of Complex Structures, J. Aero. Sci., vol. 23, pp. 805-823.
Utku, S., Norris, C.H., Wilbur, J.B. (1991), Elementary Structural Analysis, 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 Winkler’s 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. 746-
748.
Warnock, F.V., Benham, P.P., Crawford, R.J. (1996), Mechanics of Engineering
Materials, Longman Group UK Ltd.
White, R.E. (1985), An Introduction to the Finite Element Method with Applications to
Nonlinear Problems, John Wiley & Sons.
Yin, J.H. (1997a), Modeling Geosynthetic-Reinforced Granular Base Over Soft Soil.
Geosynthetics Int. (J.), 4(2), pp. 168-185.
Yin, J.H. (1997b), A Non-linear Model for Geosynthetic-Reinforced Granular Fill Over
Soft Soil, Geosynthetics Int. (J.), 4(5), 523-537.
Yin, J.H. (2000), Comparative Modeling Study of Reinforced Beam on Elastic
Foundation, J. Geotech. and Geoenviron. Engrg, 126(3), pp. 265-271.
Zienkiewicz, O.C. (1989), The Finite Element Method, McGraw-Hill Publishing
Company Limited.
233
INDEX
, 9
A
accuracy of the solution, 17
ActiveX Automation interface, 84
ActiveX Technology, 81
aircraft structural analysis, 9
analysis of continua, 9
analytical techniques, 11
application integration, 83
applied loads, 165
applied moments, 165
APPLOAD, 162
Argyris, 9
ASKA, 23
augmentation of k, 42
AutoCAD
command prompt, 162
AutoCAD 2000, 81
AutoCAD objects, 81
AutoCAD VBA, 83
project, 85
AutoLISP, 82
automatic mesh generation, 25
automation controller, 83
B
backward substitution, 21
band matrix, 20
base contact pressure, 42
BASIC, 82
basic differential equation, 43
beam on elastic foundation, 5, 37
beam on springs, 6
beam.dvb, 162
BEAMDEZ
default directory, 162
entering data, 164, 165
installation, 162
loading, 162
results, 167
running, 163
Beamdimensions, 88
Biot, 41
bond failures, 24
Bordeau, 38
boundary, 96
boundary conditions, 7, 22, 78, 166
boundary conditions of an unloaded member, 48
Boussinesq analysis, 42
Bowles, 33, 35, 41, 42
bridge piers, 27
bridging constants, 68
C
C++, 82, 83
CAD, 80
CAE, 80
Cholesky method, 21
class modules, 85
classical analysis of solids, 13
closure error, 32
Clough, 9
code modules, 85
Coduto, 42
columns
closely spaced, 27
eccentric loading, 26
near mechanical equipment, 26
near property line, 26
stiffening effect of, 33
combined footings, 26
design steps, 34
necessity of, 26
rectangular, 29
shape of, 28
compatibility of displacements, 11, 15
complex geometry, 14
composite materials, 24
compression modulus, 44
computer memory, 24
conformable matrices, 19
conjugate beam, 72
conjugate beam method, 43
conjugate beam theorem 1, 74
constitutive laws, 24
contact problems, 24
continuity of displacements, 17
continuum structures
analysis of, 13
Courant, 9
CP/M, 81
cracking behavior, 24
D
Daloglu, 43
Das, 43
data files, 2
data input, 25
deep beams, 13
deflection equation, 43
deflections, 69
deformation characteristics, 69
234
degrees of freedom, 16
Delphi, 82
depth of footing, 32
diagonal tension, 34
difference equations, 7
differential equation
solution of, 45
differential equations of equilibrium, 13
differential settlement, 28
differential settlements, 26
digitizing tablet, 80
discrete mesh points, 7
discretizing the continuum, 25
displacement compatibility, 12
displacement field, 14
displacement method, 43
distribution of projects, 86
dowel requirements, 35
dynamic response of beams, 39
dynamic systems, 24
E
eccentric columns, 4
elastic curve, 44
elastic foundation, 37
elastic soil, 37
Element A matrix, 71
element aspect ratio, 165
Element B matrix, 72
element 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
Hooke’s Law, 15
Hrenikoff, 9
I
identity matrix, 21
infinite series, 13
INSTALL.EXE, 162
internal member deformations, 68
internal member forces, 68
internal stresses, 14
interpolation theory, 8
inverse matrix, 21
iterative procedures for k, 43
J
Java, 83
joint equilibrium, 12
K
Kelsey, 9
Koerner, 38
L
l’Hospital’s rule, 62
laterally loaded piles, 38
laws of material behavior, 15
light pen, 80
linear elasticity, 15
linear simultaneous equations, 12
linear stress distribution, 31
loadmom, 147
local stiffness matrices, 12
M
Madhav, 38
main reinforcement, 33
Martin, 9
mat foundation, 4, 27, 31
material parameters, 24
material properties, 23
matrix
transpose of, 19
matrix methods, 9, 11
matrix multiplication, 19
matrix operations, 19
matrix properties, 19
maximum soil pressure, 40
member stiffness matrix, 37
memberlen, 153
MicroCAD, 81
mixed method, 12
modified moments, 33
modified structural system, 22
modulus of subgrade reaction, 39
moment computations, 32
mouse cursor icons, 170
multidimensional continuity, 21
multidimensional continuum, 22
N
NASTRAN, 23
neighboring property, 26
nodal equilibrium, 12
node points, 10
node springs K, 77
non-centered difference equations, 22
non-dimensional parameters for k, 43
non-homogenous continua, 23
non-linear material behavior, 24
nonrectangular meshes, 7
non-straight boundaries, 7
non-uniform meshes, 7
numerical solutions, 6
O
object libraries, 83
object-oriented programming language, 82
one way slab, 33
open-architecture application, 84
P
P matrix, 78
Pascal, 83
Pasternak, 38
pavement, 38
plate flexure
classical theory of, 13
plate-load test, 40, 41
plates, 13
plotting of results, 17
poor soil, 27
program code, 88
programmatic control, 84
propagation problems, 24
punching shear, 34
Q
QuickBasic, 83
R
RAD, 82
raft foundation, 4
rectangular combined footings
design of, 31
reinforcement design, 33
restrained points
reactions at, 14
rigid design
236
assumptions of, 35
demerits of, 35
Ritz method, 7
rotations, 69
rounding of dimensions, 32
S
SAFE, 23
SAP, 23
saver, 158
secant modulus, 39
self-weight of beam, 78
Selvadurai, 38
settlement factors, 28
shear computations, 32
shear reinforcement, 34
shell structures, 13
Shukla, 38
simultaneous equations, 11
skeletal structures, 10
slabs, 13
slope-deflection method, 11
soil
elastic range of, 2
soil spring forces KX, 71
soil-structure interaction, 37
pure shearing model, 38
soil-structure separation, 2
spongy material, 37
spring constant, 38
springs
contributory node area, 77
elastic-plastic, 38
interaction between, 38
non-linear, 38
obeying Hooke's Law, 38
St. Venant torsion problem, 9
STARDYNE, 23
starter, 160
static response of beams, 39
statically determinate problems, 15
steel
minimum percentage of, 33
stiffness matrix [S], 61
stiffness matrix of a member on elastic foundation, 49
stiffness method, 12
stiffness modulus, 37, 39
Straughan, 43
stress field, 14
stress-strain relationships, 13
strip foundation, 31
STRUDL, 23
subgrade reaction, 5
supercomputers, 24
symmetric matrix, 20
T
tangent modulus, 39
Terzaghi, 38, 41
Timoshenko beam, 39
Topp, 9
transient problems, 24
transverse deflection, 37
transverse loads, 37
transverse reinforcement, 33
trial solutions, 22
truncation, 14
Turhan, 43
Turner, 9
two-way action, 5, 32
U
ultimate strength design method, 35
unconfined seepage, 24
uneven soils, 31
V
Vallabhan, 43
VBA, 81, 83
VBARUN, 163
Vesic, 38, 42
vibration of beams
modeling of, 39
virtual wind tunnels, 24
virtual work, 69
Visual Basic, 82, 83
visual checks, 17
W
Wang, 39
weak soils, 31
weather systems, 24
weighted-residual method, 8
wide-beam shear, 5, 32
Windows Interoperability, 85
Winkler, 1, 37
Winkler foundation model, 1, 2
limitations, 38
Winkler Foundation Model, 37
WinZip SelfExtractor, 162
Word VBA, 81
work softening, 24
Y
Yin, 38
5
4