0% found this document useful (0 votes)
571 views478 pages

Ebook Programando Fem Fortran

Uploaded by

JBEC7
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
571 views478 pages

Ebook Programando Fem Fortran

Uploaded by

JBEC7
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 478
PROGRAMMING THE FINITE ELEMENT METHOD 2ND EDITION PROGRAMMING THE FINITE ELEMENT METHOD SECOND EDITION LM. Smith and D. V. Griffiths University of Manchester, UK JOHN WILEY & SONS Chichester . New York . Brisbane. Toronto . Singapore Copyright © 1982, 1988 by John Wiley & Sons Ltd. All rights reserved [No part of this book may be reproduced by any means, for transmitted, oF translated into a machine language without the written permission of the publisher. Library of Congress Cataloging-in-Publication Data: miming the finite element method, Includes bibliographies and indexes. Finite element method Computer programs, 2 Engineering - Data processing 3. Soil mechanics—Data processing, 1. Griffths, D.V. Ml Title TA37.FSS64 1988 620.001'S15353 87-8123 ISBN 0 471 91552 1 (cloth) . ISBN 0 471 91353 X (paper) British Library Cataloguing in Publication Data: Smith, 1. M. (lan Moffat) Programming the finite element method. —2nd ed 1. Finite element method—Data processing [Title I. Grilfths, D. V. 515353 TAMT.PS ISBN 0 471 91552 1 (cloth) ISBN 0 471 91353 X (paper), ‘Typeset at Thomson Press (India) Limited, New Delhi Printed and bound in Great Britain by Anchor Brendon Ltd, Tiptree, Essex Contents Preface to Second Edition. Chapter 1 Preliminaries: Computer Strategies 10 Introduction . a 1.1 Computer Hardware.) 2. 12. Store Management . oe 13. Vector and Array Processors... 14 Software . : 15 Portability of Subroutine’ or ‘Procedures’. 16 Libraries. Seca 17 Structured Programming | |) 1 1. 182 Other Uaneuapes ee eeeisa isa 19 Conclusions eee 1.10 References Chapter 2 Spatial Discretisation by Finite Elements 20. Introduction 21 Rod Element 22. Rod Inertia Matrix : Fee 23 The Eigenvalue Equation. 2). 24 Beam Element oss 25° Beam Inertia Matrix. see 26 Beam with an Axial Force. 5... 27. Beam on Blastic Foundation : 28 General Remarks on the Discretisation Process. 2.9 Alternative Derivation of Element Stiffness . 2.10 Two-dimensional Elements: Plane Stress and Strain’ 211 Energy Approach : 2.12 Plane Element Inertia Matrix 2.13 Axisymmetric Stress and Strain 2.14 Three-dimensional Stress and Strain . 2.15 Plate Bending Element 2.16 Summary of Element Equations for Solids . 2.17 Flow of Fluids: Navier-Stokes Equations. 2.18 Simplified Flow Equations 2.19 Simplified Fluid Flow: Steady State 2.20 Simplified Fluid Flow: Transient State . 2.21 Simplified Fluid Flow with Advection 222 Further Coupled Equations: Biot Consolidation . 2.23 Conclusions. 2.24 References Chapter 3 Programming Finite Element Computations 3.0 Introduction... 3.1 Local Coordinates for Quadrilateral Elements. 3.2 Numerical Integration for Quadrilaterals 33. Local Coordinates for Triangular Elements 3.44 Numerical Integration for Triangles 3.5 Element Assembly 3.6 Incorporation of Boundary Conditions . 3.7. Programming Using Building Blocks 38 Black Box Routines 3.9. Special Purpose Routines 3.10 Solution of Equilibrium Equations. 3.11 Evaluation of Eigenvalues and Figenvectors 3.12 Solution of First Order Time-dependent Problems . 313 Solution of Coupled Navier-Stokes Problems: 3.14 Solution of Coupled Transient Problems 3115 Solution of Second Order Time-dependent Problems 3.16 Conclusions 3.17 References Chapter 4 Static Equi 40 Introduction ibrium of Structures + Equilibrium of Uniform Beams Program 40 : Program 4.1 : Equilibrium of Stepped Beams Incorporating Prescribed Displacement Boundary Conditions Program 42 : Beam on Elastic Foundation with Numerically Integrated Stiffness and Mass Matrices . Program 43 : Equilibrium of Two-dimensional Rigid-jointed Frames Program 44 : Equilibrium of Three-dimensional Rigid- jointed Frames. Program 43 : Equilibrium of Two-dimensional Pin-jointed Trusses... : Program 46 ; Equilibrium of Three-dimensional Pin-jointed Trusses : Program 47 : Plastic Analysis of Two-dimensional Frames Program 48 : Stability Analysis of Two-dimensional Frames Program 49 : Equilibrium of Rectangular Plates in Bending 104 107 112 47 121 124 127 134 138 Chapter 5 Static Equilibrium of Linear Elastic Solids... . . $0 SA Introduction Program 50 Program $.1 Program $2 Program 53 Program 5.4: Program $5 : Program 5.6 Program 5.7 Program $8 Program 59 : Program $.10: References Plane Stress Analysis Using Three-node Triangles Plane Stress Analysis Using Six-node Triangles a Plane Strain Analysis Using Fifteen-node Triangles : Plane Strain Analysis Using Four-node | Quadrilaterals Plane Strain Analysis Using Eight-node Quadrilateral Plane Strain Analysis Using Nine-node Quadrilaterals . : Axisymmetric Strain Analysis Using Four- | node Quadrilaterals . . . Non-axisymmetric Strain of Axisymmetic Solids Using Eight-node Quadrilaterals . . : Three-dimensional Analysis Using Four-noded Tetrahedra ‘Three-dimensional Analysis Using Eight- noded Brick Elements . : ‘Three-dimensional Analysis Using Twenty noded Brick Elements Chapter 6 Material Nonlinearity ©... 2... 1. 60 61 62 63 64 65 66 67 Introduction Stress-Strain Behaviour») ls ll. Stress Invariants Failure Criteria Generation of Body-loads. | 1) lle Visco-plasticity Initial Stress Corners on the Filute and Potential Surfaces Program 60 : Program 6.1: Plane Strain Bearing Capacity Analysis— ‘Visco-plastic Method Using the Von Mises Criterion . oo Plane Strain Slope Stability Analysis —Visoo- plastic Method Using the Moht-Coulomb Criterion cate tt 1st 142 143 143 144 150 154 157 161 165 169 172 178 182 186 191 192 192 195 197 19 200 201 202 203, 2 Program 6.2 : Plane Strain Passive Earth Pressure ‘Analysis—Initial Stress Method Using the Mohr-Coulomb Criterion ea Program 6,3 : Axisymmetric ‘Undrained’ Analysis —Visco- plastic Method Using the Mobr-Coulomb Criterion Program 64 : Three-dimensional Elasto-plastic Analysis— Visco-plastic Method Using the Mohr Coulomb Criterion... 68 References... ceca emer Chapter 7 Steady State Flow . Program 7.0 : Solution of Laplace's Equation Over a Plane Area Using Four-node Quadrilaterals. Program 7.1 : Analysis of Planar Free Surface Flow Using Four-node Quadrilaterals eee 71 Reference Chapter 8 Transient Problems: First Order (Uncoupled) 8.0. Introduction we Fe Program 80 : Solution of the Conduction Equation over a Rectangular Area . Program 8.1 : Solution of the Conduction Equation over a Cylinder Program 82 : Solution of the Conduction Equation over a Rectangular Area Using an Explicit Method Program 83 : Solution of the Conduction Equation over a Rectangle using an EBE Product Algorithm 8.1 Comparison of Programs 80, 8.2 and 83, : Program 84 : Diffusion~Convection Problem over a Rectangle—Transformed Analysis Program 85 : Diffusion-Convection Problem over a Rectangle—Untransformed Analysis 82. References a Chapter 9 ‘Coupled’ Problems 2... 9.0 Introduction... Program 90 : Solution of the Steady-state Navier-Stokes Equations over a Rectangle... . 9.1 Analysis of Soil Consolidation using Biot’s Theory . Program 9.1 : Biot Consolidation of a Rectangle in Plane Strain (Four-node Elements) Program 9.2 : Biot Consolidation of a Rectangle in Plane Strain (Eight-node/Four-node Elements) . 92 References... rn 2. 249 - 18 224 = 232 237 239 239 245 250 . 250 + 250 256 259 = 262 + 26 . 267 mm 216 217 are 278 286 + 286 + 294 + 299 Chapter 10 Eigenvalue Problems 100 tot Chapter 11 110 td Introduction Program 10 Program 10.1 Program 10,2 : Program 103 Program 104 References Introduction, Program 11.0 : Program 11.1: Program 11.2 : Program 11.3 : Program 11.4 ; Program 11.5 : References igenvalues and Eigenvectors of a Two- dimensional Frame of Beam-Column Elements—Consistent Mass Eigenvalues of a Rectangular Solid in Plane Strain—Four-node Quadrilaterals with Lumped Mass . Eigenvalues and Eigenvectors of a Rectangular Solid in Plane Strain—Eight- node Quadrilaterals with Lumped Mass . Eigenvalues and Eigenvectors of a Rectangular Solid in Plane Stress—Bight- node Quadrilaterals with Consistent Mass . : Eigenvalues and Eigenvectors of a Rectangular Solid in Plane Strain—Four- node Quadrilaterals with Consistent Mass Forced Vibrations. Forced Vibration of a Rectangular Solid in Plane Strain Using Eight-node Quadrilaterals, Lumped Mass, Modal Superposition Method Forced Vibration of a Rectangular Solid in Plane Strain Using Eight-node Quadrilaterals—Lumped or Consistent Mass, Implicit Integration by Theta Method Forced Vibration of a Rectangular Elastic Solid in Plane Strain Using Eight-node Quadrilaterals—Lumped or Consistent Mass, Implicit Integration by Wilson Theta Method . Forced Vibration of a Rectangular Solid in Plane Strain Using Eight-node Quadrilaterals—Lumped Mass, Complex Response Method. Forced Vibration of a Rectangular Elasto- plastic Solid in Plane Strain Using Eight-node Quadrilaterals—Lumped Mass, Explicit Integration Forced Vibration of an Elastic Solid in Plane Strain Using Four-node Quadrilaterals— Lumped or Consistent Mass, Mixed Explicit/Implicit Integration ", 300 304 308 312 315 319 320 320 320 325 330 333 337 345 + 350 x Chapter 12 Analysis of Piles and Pile Groups... 2... 120. Introduction ee Program 120,: t-2 Analysis of Axially Loaded Piles Using ‘Two-noded Line Elements Program 121% p-y Analysis of Laterally Loaded Piles Using Two-noded Beam Elements Program 122 : Analysis of Vertically Loaded Pile Groups Using Two-noded Line Elements—t—z Spring forthe Sol and Mindlin's Equation for the Interactions Program 12.3 : Pile Drivability by Wave Equation—Two- node Line Elements—Implicit Integration in Time. 121 References . Appendix 1 Consistent Nodal Loads Appendix 2 Plastic Stress-Strain Matrices and Plastic Potential Derivatives Appendix 3 Geometry Subroutines Appendix 4 Alphabetic List of Building Block Subroutines Appendix 5 Listings of Special Purpose Routines ‘Author Index Subject Index 351 1 381 . sl . 389 - 365 372 378 379 382 386 401 415 466 Preface to Second Edition Following the success of the First Edition, considerable modifications and improvements have been made. In retrospect it was probably a mistake to combine in one book a programming philosophy and a survey of other workers’ applications to geomechanics, so the latter has been dropped. However, the ‘geomechanics flavour remains, particularly in Chapters 6, 7, 8, 9 and 12 Although the prograraming philosophy remains intact, Chapter I reflects the rapid developments in the hardware and (to a lesser extent) software fields. Emphasis i given to what are generally known today as micro’ computers while the programming language has been updated from FORTRAN IV (FORTRAN 66) to FORTRAN V (FORTRAN 77), Chapter 2 has been extended to give a fuller treatment of structural applice ations and the equations of fuid flow including the Navier-Stokes equations. Inthe original Chapter 3, choice of storage strategy was rather limited, so more versatility has been introduced, in the form of a ‘profile’ (‘skyline’) option. Chapter 4 has been extended to embrace elastic, elasto-plastic and clastic stability analyses of ali commonly encountered skeletal structures, while in Chapter 5a much greater range of plane and solid finite elements is provided. In Chapter 6 more realistic examples of analyses of geotechnical problems — involving walls, foundations and slopes—have been incorporated. The original Chapter 7 dealt both with steady state and with transient flow problems. In the present edition, transient problems are removed to Chapter 8 while the steady state confined and unconfined flow problems analysed in Chapter 7 are more typical of those encountered in geotechnical engineering Practice. Chapter 8 also includes relatively recent developments of element-by-clement algorithms for first order transient problems. ‘The original Chapter &, now Chapter 9, has been extended to deal with two typical coupled’ problems— those arising from the (steady state) Navier-Stokes equations and those arising from Biot's equations for transient analysis of porous elastic solids. The original Chapter 9 has been subdivided, so that eigenvalue analysis (new Chapter 10) is divorced from the solution of second order transient problems (new Chapter 11), In the new Chapter 10 a solver based on the Lanczos method for large eigenvalue problems is demonstrated. In the new Chapter 11 second xi xii order differential equations are integrated by a greater range of methods, for example mixed integration operators. ‘The final chapter (new Chapter 12) has been expanded to embrace the analysis of pile groups as well as of single piles. COMPUTER PROGRAMS All software (libraries and programs) described in this book are available from: Numerical Algorithms Group Ltd, NAG Central Office, Mayfield House, 256 Banbury Road, Oxford OX2 7DE, UK Specify the medium (tape, disc) and format when applying. A small handling charge is made. CHAPTER 1 Preliminaries: Computer Strategies 10 INTRODUCTION Many textbooks exist which describe the principles of the finite clement method of analysis and the wide scope of its applications to the solution of practical engineering problems. Usually, little attention is devoted to the construction of thecomputer programs by which the numerical results are actually produced. It is presumed that readers have access to pre-written programs (perhaps to rather complicated ‘packages’) or can write their own. However, the gulf between understanding in principle what to do, and actually doing it, can still be large for those without years of experience in this field ‘The present book attempts to bridge this gulf. Its intention is to help readers assemble their own computer programs to solve particular engineering problems by using a ‘building block’ strategy specifically designed for computations via the finite clement technique. At the heart of what will be described is not a ‘program’ ‘ora set of programs but rather a collection (library) of procedures or subroutines which perform certain functions analogous to the standard functions (SIN, SQRT, ABS, etc) provided in permanent library form in all useful scientific ‘computer languages. Because of the matrix structure of finite element formula- tions, most of the building block routines are concerned with manipulation of matrices. ‘The aim of the present book is to teach the reader to write intelligible programs and to use them. Super-eliciency has not been paramount in program construction. However, all building block routines (numbering over 100) and all test programs (numbering over 50) have been verified on a wide range of computers. Their efficiency is also believed to be reasonable, given a tolerably Well written compiler. In order to justify the choice of high level language used (FORTRAN 77) and the way in whichitis asserted programs should be written, it is necessary briefly to review the development of computer ‘architecture’ and its relationship to program writing 1.1 COMPUTER HARDWARE In principle, any computing machine capable of compiling and running FORTRAN programs can execute the finite element analyses described in this Table 1.1 ‘Approximate Wordlength Core storage cost 1985, Designation Example (its) (words) Virtual memory? UK) Micro TBM PC 6 No 2K Super micro ICL PERQ 2 Yes 20K Mini VAX 11/780 2 Yes 200K Mainframe CDC 7600 6 No 000K. Yes 10,000K Super mainframe CDC 10GF 6 book. In practice, hardware will range from ‘micro’ computers for small analyses and teaching purposes to ‘super’ computers for very large (especially non-linear) analyses. It is a powerful feature of the programming strategy proposed that the same software will run on all machine ranges. The special features of vector and array processors are described in a separate section (1 Table 1.1 shows that, in very general terms, five categories of useful hardware can be distinguished at the time of writing, graded using an ‘order of magnitude’ rule with respect to cost. While the trend in costs, certainly for minis’ and below, is downwards some such cost-based tabulation will always apply. At the lower end of the cost range, itis of course possible to code finite element analysis algorithms for very cheap machines, by employing machine code or an interpreter such as BASIC. The complete lack of portability of the former and the lack of a true subroutine structure inthe latter leads the authors to exclude such hardware from consideration. The user’s choice of hardware is a matter of accessibility and of cost. For example, in very rough terms, a ‘mini’ computer (Table 1.1) has a processing speed about 30 times slower than that of a ‘mainframe’. Thus a job taking two minutes on the mainframe takes one hour on the mini, Which hardware is"better’ clearly depends on individual circumstances. The main advice that can be tendered is against using hardware that is too weak for the task; that isthe user is advised not to operate at the extremes of the hardware’s capability. 1.2. STORE MANAGEMENT. In the programs in this book it will be assumed that sufficient main random access core store is available for the storage of data and the execution of programs. However, the arrays processed in very large finite element calculations can be of size, say, 10,000 by 200. Thus a computer would have to have a main store of 2 x 10° words to hold this information, and while some such computers exist, they are still comparatively rare. A much more typical core size is still of the order of 1 x 10° words. Two distinct strategies are used by computer manufacturers to get round the problem of limited random access core. In the first (simplest and earliest) a technique different Tevels' of store are provided with transfer of data to core from various secondary storage devices such as discs and tape being organized by the programmer. The CDC 7600 is a computer that used this strategy. Programs are executed in a small fast store while data can be stored in a medium- {ast ‘large core memory’. Further back-up storage is available on a big dise but of ‘course when the programmer decides to transfer information to and from dise the central processor would be idle, A job calling for disc transfers is therefore automatically swapped out of fast memory, and is replaced by the next job waiting in the queue. The second strategy removes store management from the uscr’s control and vests it im the system hardware and software. The programmer sees only a single level of store of very large capacity and his information is moved from backing, store to core and out again by the supervisor or executive program which schedules the flow of work through the machine. This concept, namely of a very large virtual core, was first introduced onthe ICL ATLAS in 1961. Itcan be seen from Table 1.1 that this strategy of store management is now very common. The ATLAS and most subsequent machines of this type also permit multi programming in that there can be several partly completed programs in the core at any one time. The aim in any such system is to keep the hardware (CPU, peripherals, etc) fully utilised. Clearly it is necessary for the system to be able to translate the virtual address of variables into a reat address in core. This translation usually involves a complicated bit-pattern matching called ‘paging’. The virtual store is split into segments or pages of fixed or variable size referenced by page tables, and the supervisor program tries to ‘learn’ from the way in which the user accesses data in order to manage the store in a predictive way. However, store ‘management can never be totally removed from the user's control. It must always bbe assumed that the programmer is acting in a reasonably logical manner, accessing array elements in sequence (by rows or columns as organised by the compiler), I'the user accesses a virtual store of 10° words ina random fashion the paging requests will readily ensure that very little execution of the program can take place. 13. VECTOR AND ARRAY PROCESSORS Tnllater chapters it will be shown that finite clement computations consist largely ‘of handling matrices and vectors—multiplying them together, adding, transpos- ing, inverting and so on. It has seemed appropriate to computer manufacturers, therefore, to provide special hardware capable of doing vector or matrix operations at high speed. This hardware can bein the form of central processing, Vector registers such as on the Cray and CDC Cyber 205 or in peripheral form such as the ICL 2900 DAP concept. Other array processors can also be connected as peripherals, one such being the Floating Point Systems FPS264, and this is a very likely future development. The drawback associated with specialised hardware of this kind is that 4 specialised programs usually have to be written to exploit it, This detracts from such important software considerations as program portability and machine independence. However, at the very least, software can be written to pre-process standard high level language code to see if it can be re-organised tomake best use of a particular machine's vector capabilities. Future trends in this direction are difficult to anticipate, It may be that, ultimately, array processing will become so fast and cheap, even for very large arrays, that much of the special purpose software which has been written to date, for example to process arrays with various sparsity patterns, will become redundant. However, such a trend would be entirely consistent with the philosophy of the present book, and would merely necessitate a change of emphasis, At present, though, only standard, completely portable high level languages will be considered in the following sections on software. 14 SOFTWARE, Since all computers have different hardware (instruction formats, vector capability, etc) and different store management strategies, programs that would make the most effective use of these varying facilities would of course differ in structure from machine to machine, However, for excellent reasons of program portability and programmer training, engineering computations on all machines are usually programmed in “high level’ languages which are intended to be ‘machine-independent. The high level language (FORTRAN, ALGOL, ete) is translated into the machine order code by a program called a ‘compiler. Tt is convenient to group the major high level languages into those which are FORTRAN-like (for example PASCAL) and those which are ALGOL-like (for example ADA), The major difference between these groups is that the latter allow dynamic management of storage at run-time whereas the former do not. This difference has immediate implications for store management strategy because clear that unless a computer permits genuine multi-programming and aone-level store in which programs are dynamically expanding and contracting there is not ‘much point in having a language that allows these facilities. Thus, on CDC 7600 machines, FORTRAN was an obvious choice of language whereas on other computers there is greater room for manoeuvre. Dynamic store management seems to be a uniform trend for the future, so one would expect ALGOL-like languages to become more and more attractive. ‘There are many texts describing and comparing computer languages, often from the point of view of computer scientists, eg. Barron (1977). What matters in the context of the present book is not syntax, which is really remarkably constant among the various languages, but program structure. The following example illustrates the two crucial differences between ALGOL-ike and FORTRAN-like languages as far as the engineer-programmer is concerned. ‘Suppose we want to write a program to multiply two matrices together, a task that occurs hundreds of times during execution of a typical finite clement program. In ALGOL 60 the program might read as follows: Degin integer 1 m, n statements which read or compute I,m, n: Degin array a{I:(,1:m, B[T-m,1:n], e[1:1, 1:0} integer i,j,k; real x; statements which initialise a,b; for i:=1 step } until ! do for j:=1 step J until n do begin x for k:=1 step 1 until m do xcmxt afisk] +b end; eli,fls=x statements which do something with ¢ end end while in FORTRAN 77 it might be written: INTEGER I, J, K, L, M,N REAL X REAL A(20, 20), B(20,20), C(20,20) Statements which read or compute L, M, N Statements which initialise A, B DO! 0 DO2K=1,M 2 X=X+A(LK)«BK,)) CU) =x 1 CONTINUE Statements which do something with C END Note that the declarations of the simple integers and the real in lines 1 and 2 of this program are unnecessary. ‘Comparison of the two codes will casily show that the syntaxes of the two languages are very similar, eg. compare the ALGOL for i:=1 step 1 until | do with the corresponding FORTRAN DOIT=1,L or the assignment statements xrex+ ali, k]*b Uk: 6 and X=X+AGK)BKD. ‘Therefore, anyone familiar with one syntax can learn the other in a very short time. However, consider the program structures. ‘The main difference is that in ALGOL, the array dimensions J, m,n do not need to be known at compile time whereasin FORTRAN they do. Indeed, our FORTRAN program is uscless if we ‘want to multiply together arrays with dimension greater than 20. Iti this lack of ‘dynamic’ storage which is FORTRAN’s major limitation, It can partially be alleviated by various devices such as allocating all storage to a large vector and keeping track ofthe starting addresses ofthe various arrays held inthe vector, but one can never get away without a dimensioning statement of some kind within a FORTRAN program. ‘This has various bad effects, among which isa tendency for FORTRAN users to declare their arrays to have the maximum size that will ever be encountered, subject to the limitation ofthe core size of the machine, Since most large machines allow multi-programming this can be inefficient. 15 PORTABILITY OF ‘SUBROUTINES’ OR ‘PROCEDURES’ ‘The second major deficiency of FORTRAN becomes apparent when we wish to construct a program to multiply together matrices of varying size within the same program. This sort of activity occurs very frequently in finite element programs. ‘To avoid the repetition of sections of code within a program, most languages allow these sections to be hived off into self-contained sub-programs which are then‘called” by the main program. These are termed ‘procedures’ in ALGOL and ‘subroutines’ in FORTRAN and their use is central to efficient and readable programming, For example, it would be very tedious to include the code required to compute the sine of an angle every time it is required, so ALGOL and FORTRAN provide a special, completely portable routine (actually a function) called SIN, This is held in a permanent library and is accessible to any user program. Why not do the same thing with matrix multiplication? In ALGOL the technique is straightforward and encouraged by the structure of the language. For example, an ALGOL 60 matrix multiplication procedure might be as follows: procedure matmult (a,c, l,m, 1); value I, m,n; array db, ¢: integer I, m, n; begin integer i,j, k: real x; step 1 until n do begin x:=.0 for k:= 1 step I until m do xrex + alk] +bLb fle end oli, ls end Suppose we now wish to multiply the (! x m) array a by the (m x n) array b to sive the (I n) array c as before, and then to multiply c by the (n x!) array d to yield the (I I) array e. The ALGOL 60 program would be as follows: begin integer 1, m,n; procedure matmult (a,b, ¢, m,n): statements which read or compute I, m, n; begin array af1:I,1:m, BEI:m, 1:1], eCUeh tem), den, 0, eC: statements which initialise a, by rmatmult (a,b,c 1,m,n) matmult (c, de, statements which do something with ¢ end end Inthe above, the procedure matmult is assumed to be available in a user library in exactly the same way as LOG, COS, etc, are available in the permanent library. The program structure can be scen to be simple and logical, reflecting exactly what the user wants to do and requiring a minimum of information about array dimensions to do it. Let us now try to do the same thing in FORTRAN 77. Reasoning ftom our previous program we write: SUBROUTINE MATMUL (A,B,C,L,M,N) REAL A(20, 20}, B(20, 20), C(20,20), X INTEGER I, J, K, L, M,N, DOI x=0 DO2K=1,M 2 X=X+A(LK)eBKD, CU=X 1 CONTINUE RETURN END. ‘Now the dimensioning statement in line 2 of this subroutine is merely a device for passing the addresses in memory of the arrays locally called A, B, C back and forth between the subroutine and the main program. Since the FORTRAN subroutine only needs to know a starting address and a column size, we could as well have written REAL A(20, 4}, B(20, 6), C(20,»), X More importantly, since in FORTRAN the local A, B, C are mapped onto the arrays of the main program, it can be seen that our subroutine is useless, unless arrays processed by it have a first dimension of 20. This is an impossible restriction akin to saying we can only work out the sines of angles less than 20° using SIN. ‘A way round this deficiency in FORTRAN js to make the subroutine completely portable at the expense of including extra parameters in the call, associated with each array. These parameters, which are constants, contain on entry to the subroutine the column sizes of the particular arrays to be multiplied at that time as declared in the main program. Thus our portable FORTRAN subroutine becomes SUBROUTINE MATMUL (A, IA, B, IB, C, IC, L, M, N) REAL A(IA, ), BOB, *), C(IC,#), X INTEGER IA, IB, IC, L, M,N, I,J, K 2 X=X+A(,K}«B(KD cuy=X 1 CONTINUE RETURN. END We could now construct our general matrix multiplication program asfollows, assuming MATMUL to be available in a user library: INTEGER L, M, N,IA, TB, IC, 1D, IE REAL A(20, 5}, B(S, 15} C(20, 15), D(1S,20), E(20,20) DATA 1A/20), 1B/5), 1C/20/, 1D/15), 1B,/20/ Statements which read or compute L, M, N Statements which initials A, B CALL MATMUL (A,1A,B,IB,C,IC, L, M,N) . : CALL MATMUL (G.IC,D,1D,E,1E,L,N,L) . Statements which do something with E END We have now succeeded in making FORTRAN look reasonably like ALGOL. ‘The differences lie only in the need to dimension arrays in the main program and to pass the extra column size parameters in the subroutine calls. In fact we will only be concerned in our finite element programs with adjusting the sizes of few large arrays at run-time, and so the inconvenience can really be restricted to changing a line at the beginning of the main program. “This is most easily done by the PARAMETER statement in FORTRAN 77. ‘Using this facility the second and third lines of the preceding program can be replaced by: PARAMETER (1A = 20, JA =5, IB=5, JB=15, IC = 20, JC=15, *1D = 15, JD =20, IE =20, JE =20) REAL A(A,JA), B(IB,JB}, CIC, JC), DAD, JD), E(IE, JE) so that only the PARAMETER line need ever be changed. This used in this book the method 1.6 LIBRARIES ‘The concept that will be described in subsequent chapters is one of having a user library containing completely portable subroutines such as MATMUL, which was described in the previous section. The idea is not new, of course, and many such libraries already exist, notably the NAG mathematical subroutine library (Ford and Sayers, 1976). The present library is completely compatible with the NAG mathematical subroutine library and uses the same parameter passing convention, but it differs from the NAG mathematical subroutine library in two ways. Firs, it contains only routines used in finite element analysis, and second it uses mnemonic names such as MATMUL to describe its operations (an equivalent routine in the NAG mathematical subroutine library is called FOICKF). This greatly enhances program readability. The library routines which are the “building blocks’ from which the finite clement programs are constructed are described in Chapter 3. Some of them may be considered as ‘black box’ routines, that is the user need not understand or see them (how many users know how SIN(X)is computed”). Some of these routines are not even listed in the book but the source code is available on tape or floppy disc in all the usual formats. Other routines are, however, specifically related to the descriptions of finite element operations, and these routines are listed for reference purposes in Appendix 5, and of course on tape also. ‘The test programs which are built up from the library routines are described in Chapters 4 to 12 and also listed there. Interested readers can substitute their own routines at any point, because of the modular nature of the whole system. Such routines could be in machine code for greater efficiency or could be linked to the use of an array processor. For example, the Floating Point Systems Array Processor can look to the user like a set of library subroutine calls which could be substituted for the FORTRAN subroutines if required. ‘The programs described in this book arc all assumed to be processed ‘in core’. "Naturally, one could construct out of core versions ofthe library routines, which Process large arrays for usc on non-virtual machines. 1.7 STRUCTURED PROGRAMMING The finite element programs which willbe described are strongly ‘structured? in the sense of Dijkstra (1976), The main feature exhibited by our programs will be seen to be a nested structure and we will use representations called ‘structure charts’ (Lindsey, 1977) rather than flow charts to describe their actions. 10 ‘The main features of these charts are: (@ The Block DOTHS DOTHAT DOTHEOTHER ‘This will be used for the outermost level of each structure chart, Within a block, the indicated actions are to be performed sequentially. (ii) The Choice Anawert | Answer? | Answer3 ‘AcTiOn1 | AcTION2 | ACTIONS ‘This corresponds to the if...then...else if...then...end if kind of cohstruct, ii) The Loop ‘This comes in various forms, but we shall usually be concerned with the ‘DO loop ACTION TOBE REPEATED nTIMES In particular, the structure chart notation encourages the use only of those GOTO statements that are safe in a structured program. Using the notation, our matrix multiplication program would be represented as follows: ul arraysaand row x column products faxb) Do something withe The nested nature of a typical program can be seen quite clearly. 18 OTHER LANGUAGES ‘New programming languages appear from time to time, usually at the instigation ofcomputer scientists rather than engineers. For example, PASCAL is popular as ‘teaching language and has a simple structure enabling compact compilers to be written, In PASCAL 3 our matrix multiply algorithm becomes: TYPE ARR = ARRAY [INTEGER, INTEGER] OF REAL; PROCEDURE MATMUL (VAR A, B, C: DYNAMIC ARR; L, M, N: INTEGER) VAR I, J, K: INTEGER; X:REAL; BEGIN FOR I:=1 TOL DO FOR J:=1 TO N DO BEGIN X:= 00; 12 FOR K:=1 TO M DO XX +ALL K]+BIK, J], CUI % END; END; VAR L, M, N: INTEGER; ‘A:(1-10, 1.10] OF REAL; B:[1.10,1..10] OF REAL; C:[1..10, 1.10] OF REAL; BEGIN Statements which read L, M, N, A, B, C MATMUL (A,B,C,L,M,N); Statements which do something with C END. ‘Thus the language has some ALGOL-like features in that, within the procedure, arrays A, B and C are quasi-dynamic and do not need to be dimensioned. However, there is no real concept ofa stack pointer and in the main program A, B and Creed to be assigned fixed dimensions. The PASCAL language does possess. the builtin procedures (functions) HIGH and LOW which enable bounds of arrays to be inspected: e.g. HIGH(A, 1) would deliver the upper bound of the first dimension of A. However, because of the lack of a truly dynamic structure, these cannot be used to simplify the procedure call statements. ‘A language in which this is possible is ALGOL 68. It has an extremely flexible structure and points the way towards the probable shape of future languages. Our matrix multiply program becomes: (proe matmul = ([,] real a, b, ref [,] real ¢) void: (int [= 1 upb a, m= upb b, n=2 upb; oe int i,j, ki for i to Ido for j to n do loc real x for k to m do x+ malik] +b(k fled: cL, J]:=x od od ¥ . foe int 1, m, read ((I,m,n)); Joe [1:i, 1m} real a, oe [1:m, 1:1] real b, loe (1:1, 1:7] real e: read ((a,b)); ‘matmul (a,b,¢); print (c) ) ‘The procedure calling parameters have been reduced to three (compared with FORTRAN's nine) and the language has many more useful features. For 3 example, operations between matrices can be defined so that procedure calls can be dispensed with and operation c=axb would implicitly mean matrix multiply. One can therefore anticipate languages specially adapted for matrix manipulation. 19 CONCLUSIONS Computers on which finite element computations can be done vary widely in their size and architecture. Because of its entrenched position FORTRAN is the language in which computer programs for engineering applications had best be written in order to assure maximum readership and portability. (There are inevitably minor differences between machines, for example in their handling of free format input which is used exclusively in the test programs, but these are not overwhelming.) However, FORTRAN possesses fundamental limitations which can only partially be overcome by writing a structure of FORTRAN which is as, close to ALGOL as can be achieved. This is particularly vital in subroutine calling, Using this structure of FORTRAN, a library of subroutines can be created which is then held in compiled form on backing store and accessed by programs in just the way that a manufacturer's permanent library is. Using this philosophy, a library of over 100 subroutines has been assembled, together with some 50 example programs which access the library. These programs are written in a reasonably ‘structured’ style, and tapes or discs of library and programs will be supplied to readers on request. Versions are at present available for all the common machine ranges. The structure of the remainder of the book is as follows. Chapter 2 shows how the differential equations governing the behaviour of solids and fluids are programs are written in a reasonably ‘structured! style, and tapes or discs of library and programs will be supplied to readers on request. Versions are at present available for all the common machine ranges. Chapter 3 describes the sub-program library and the basic techniques by which main programs are constructed to solve the equations listed in Chapter 2 ‘The remaining Chapters 4 to 12 are concerned with applications, partly in the authors’ field of geomechanies. However, the methods and programs described are equally applicable in many other fields such as structural mechanics, water resources, electromagnetics and so on. Chapter 4 leads off with static analysis of skeletal structures and plate problems. Chapter $ deals with static analysis of linear solids, whilst Chapter 6 discusses extensions to deal with material non- linearity. Chapter 7 is concerned with problems of fluid flow in the steady state while transient states with inclusion of transport phenomena (diffusion with advection) are treated in Chapter 8. In Chapter 9, coupling between solid and fluid phases is treated, with applications to consolidation processes. A second type of ‘coupling’ involves the Navier-Stokes equations. Chapter 10 contains programs for the solution of steady state vibration problems, involving the deter- mination of natural modes, by various methods. Integration of the equations 4 ‘of motion in time by direct integration, by modal superposition and by ‘complex response’ is described in Chapter 11. Finally, Chapter 12 deals with problems of pile capacity and driveability, for single piles and including group effects. In every applications chapter, test programs are listed and described, together with specimen input and output 1.40 REFERENCES Barron, D. W.(1977) An Introduction to the Study of Programming Languages. Cambridge University Press. Dijkstra, E. W. (1976) A Discipline of Programming. Prentice-Hall, Englewood Cliff, New Tersey, Ford, Band Sayers, D. K. (1976) Developing a single numerical algorithms library for diferent machine ranges. ACM Trans. Math. Software, 2 115. Lindsey, C. H. (1977) Structure charts a structured alternative to low charts. SIGPLAN Notices, 12, No. 11, 36 CHAPTER 2 Spatial Discretisation by Finite Elements 2,0 INTRODUCTION ‘The finite element method is a technique for solving partial differential equations by first discretising these equations in their space dimensions. The discretisation is carried out locally over small regions of simple but arbitrary shape (the finite elements). This results in matrix equations relating the input at specified points in the elements (the nodes) to the output at these same points. In order to solve equations over large regions, the matrix equations for the smaller sub-regions are usually summed node by node, resulting in global matrix equations. The method is already described in many texts, for example Zienkiewicz (1977), Strang and Fix (1973), Cook (1981), Connor and Brebbia (1976) and Rao (1982), but the principles will briefly be described in this chapter in order to establish a notation and to set the scene for the later descriptions of programming techniques. 21 ROD ELEMENT Figure 2.1(a) shows the simplest solid element, namely an clastic rod, with end nodes 1 and 2. The clement has length L while u denotes the longitudinal displacements of points on the rod which is subjected to axial loading only If Pis the axial force in the rod at a particular section and F is an applied body force with units of force per unit length then P cA= Edm BAM ey ‘and for equilibrium from Figure 2.1(b), a Reto @2) Hence the differential equation to be solved is EATS +F=0 23) oF 15 16 displacement a) a _/body force F ta) ee od + ? -—1L | oer e p— —~ Po dk bx o) ps 3P = rAd atu LA ci ( —_— =p. 228 1 Pe Figure 2.1 Equilibrium of a rod element (Although this isan ordinary differential equation, future equations, for example (2.13), preserve the same notation.) In the finite element technique, the continuous variable w is approximated in terms ofits nodal values, 1, and u,, through simple functions ofthe space variable called ‘shape functions’. That is waeNju, + Nats or u=[M, waft} 4) {In simple examples the approximate equality in (24) could be made exact by setting x N= (: = . Qs) ifthe true variation of wis linear. In general N, and N, will be of higher order or ‘more linear element subdivisions will be necessary. When (24) is substituted in (23) we have BASIN, wai{t}erao e6 so that the partial differential equation has been replaced by an equation in the Giscretised space variables u, and u,. The problem now reduces to one of finding, “good! values for u, and t, "Many methods could be used to achieve this, and Crandall (1956) discusses W collocation, subdomain, Galerkin and least squares techniques. Of these, Galerkin’s method, e.g. Finlayson (1972) is the most widely used infinite element ‘work. The method consists in multiplying equation (2.6) by the shape funetions in turn and integrating the resulting residual over the element, Thus LON) oF is rey, Nea Soon, Nal Vrdeed 27 Ferdi safsjan[ irae on ‘Note that in the present example, double differentiation ofthe shape functions would cause them to vanish and yet we know the correct shape may not be of higher order than linear. This difficulty is resolved by applying Green's theorem (integration by parts) to yield typically [ritioc= [OY Maceo tem mir aioe 28 Hence (2.7) becomes: ox ox ON, Ny ox ox | et Neee aN, ON oft} rife oe oe ax On evaluation of the integrals, pe Ba| 2.10) ‘The above case is for a uniformly distributed force F acting along the rod. For the case in Figure 2.1(a) where the loading is applied only at the nodes we have of SHE) on Ht which are the familiar ‘stiffness’ equations for a uniform prismatic rod. In matrix notation we may write KMu=F 212) Where KM is called the ‘element stiffness matrix’. 2.2 ROD INERTIA MATRIX Consider now the case of an unrestrained rod in longitudinal motion, Figure 2.1(¢ shows the equilibrium ofa segment in which the body force is now 18 siven by Newton’s law as mass times acceleration. Ifthe mass per unit volume is ps the differential equation becomes eu ue Ean a OA ar 213) (On discretising u by finite elements as before, the first term in (2.13) clearly leads again to KM. The second term takes the form TIN uy -{ {Rhea Zem, wa {it}ex ey “TNGN, NN2] 4. & fur ~o[ [ax mate a Evaluation of integrals yields $4] 2 fu ~oatlh jhe fe} oo or in matrix notaion -wm2t oe where MM is the ‘clement mass matrix’ or ‘element inertia matrix’. Thus the full matrix statement of equation (2.13) is ae KMu+MM5> a a7) ‘Note that MM as formed in this manner is the ‘consistent’ mass matrix and differs fror: the ‘lumped’ equivalent which would lead to 4pAL terms on the diagonal with zeros off-diagonal. 23. THE EIGENVALUE EQUATION Equation (2.17) is sometimes integrated directly (Chapter 11) but is also the starting point for derivation of the eigenvalues of an element or mesh of elements. ‘Suppose the elastic rod element is undergoing free harmonic motion. Then all nodal displacements will be harmonic, of the form usasin(wt +0) (218) where a are amplitudes of the motion, « its frequencies and y its phase shifts. When (2.18) is substituted in (2.17) the equation KMa—o?MMa=0 19) is obtained, which can easily be rearranged as a standard eigenvalue equation. Chapter 10 describes solution of equations of this type. 19 24 BEAM ELEMENT ‘As a second one-dimensional solid clement, consider the slender beam Figure 2.2. The end nodes 1 and 2 are subjected to shear forces and moments which result in translations and rotations. Each node, therefore, has two degrees of freedom. ‘The element shown in Figure 2.2 has length L, flexural rigidity EJ and carries a uniform transverse load of q pet unit length. The well known equilibrium equation for this system is given by et (2.20) Again the continuous variable, win this case, is approximated in terms of discrete nodal values, but we introduce the idea that not only w itself but also its derivatives can be used in the approximation. Thus we choose to write we[Ny Na Ns Nel 221 where 8, = dw/8x at node 1 and so on. In this case equation (2.21) can often be made exact by choosing the cubic shape functions: Nya ptt? 31s +204) Nia q(x = 2Lx? +x) 1 (2.22) Ny=fpOLst—20) Nea fet-be) Kt A mC vores Sie Fares -—t — (Ms, cisiacenents Figure 22. Slender beam element 20 Note that the shape functions have the property that they or their derivatives in this case equal one at a specific node and zero at all others. Substitution in (2.20) and application of Galerkin’s method leads to the four clement equations: ™ wi Ny f Noh ey IN, NA Ny Nad” of aN dx (223) Jo tau EN Nir, Ne 6 Ng Again Green's theorem is used to avoid differentiating four times; for example ay, ON, ON, aN, EN, fo Sdte=- ian = [TR ede + nels tems (2.24) Hence assuming that EJ and q are not functions of x, (2.23) become w ™, af EMM get j,2,3,4 Jo =f Mh dx @25 8, Ng Evaluation of the integrals gives Ce L B eacepeare : 2 4 _& 21) ], B . L Ria . ary EL if ae (2.268) Symmetrical 12 6] | w, . v7 B Wal |“ é 4 B rt) ® 2 which recovers the standard slope-deflection equation for beam elements, ‘Theabove cases fora uniformly distributed load applied to the beam. For the case where loading is applied only at the nodes we have 12 6 2 6 ee eee a [et | eee $ -§ z at |My a ae - (2260) PB |") |% [Symmetrical ty lad lw which represents the element stiffness relationship. a Hence, in matrix notation we have KMw=F @2n Beam-column elements, in which axial and bending effects are superposed from (2.26b) and (2.11), are described further in Chapter 4. 25 BEAM INERTIA MATRIX If the element in Figure 2.2 were vibrating transversely it would be subjected to an additional restoring force — (0 w/ét?). The inertia or mass matrix, by analogy with (2.15), is just NN NiNa NNy NANG ™ “1 NaN, NaNa NaNs NaNalg. 2 |, ~oal) NSM, NaNy NG, NGNAI* ae] w,p 229 NaN, NaNa NaNy NaN. a; Evaluation of the integrals yields 156 22L $4 130] py pat] a st 32] a Jo os 420 156 -22L| oF Jw, (2.29) Symmetrical 4L 6; Inthis instance, the neglect ofthe consistent mass terms leads to large errors in the prediction of beam frequencies as shown by Leckie and Lindburg (1963) Superposition of (2.29) and (2.16) is required in the dynamic analysis of framed structures and this is described further in Chapter 10. 26 BEAM WITH AN AXIAL FORCE Ifthe beam element in Figure 2.2 is subjected to an additional axial force P (Figure 2.3), a simple modification to (2.20) results in the differential equation aw, paw ElzatP aan (2.30) Where the positive sign corresponds to a compressive axial load and vice versa. mo 1 bt —+4 Figure 23. Beam with axial force 2 Finite element discretisation and application of Galerkin's method leads toan. additional matrix associated with the axial force contribution “ANON, FP Se eei 231) Evaluation of these integrals yields for compressive P 36 36 Spee pees ei| P 4. -3 -L| |o +30 ieee (232) 7 2 Symmetrical aL] | o, If this matrix is designated by KP the equilibrium equation becomes (KM — KP)w =F 233) Buckling of a member can be investigated by solving the eigenvalue problem when F = 0, by increasing the compressive force on the element (corresponding to KP in 2.33) until large deformations result or in simple cases by determinant search, Program 12.1 uses the KP matrix to assess the effect of axial loadingon the response of laterally loaded piles. Equations (2.32) and (2.33) represent an approximation of the approach to modifying the element stiffness involving stability functions (Lundquist and Kroll, 1944; Horne and Merchant, 1965). The accuracy of the approximation depends on the value of P/P, for each member, where Pr is the Euler load. Over the range — 1 < P/P, <1 the approximation introduces errors no greater than 7% (Livesley, 1975) For larger positive values of P/Pp, however, equation (2.33) can become highly inaccurate unless more element subdivisions are used. Program 4.8 therefore uses the stability function approach to modify the element stiffness matrices in analysing the stability of plane frames. 2.7 BEAM ON ELASTIC FOUNDATION In Figure 24 a continuous elastic support has been placed beneath the basic clement. If this support has stiffness k (force/length?) then clearly the transverse load is resisted by an extra force + kw leading to the differential equation er thw mg 234) By comparison with the inertial restoring force — p A(@*w/ét®)it will be apparent ‘that application of the Galerkin process to (2.34) will result in a foundation B 6 A dad a, Foundation stiffness k Figure 24 Beam on continuous elastic foundation stiffness matrix that is identical to the consistent mass matrix apart from the multiple + kL in place of —pAL. An example of a consistent finite element solution to (2.34) is given by Program 4.2 in Chapter 4. A lumped mass’ approach to this problem is also possible by simply adding the appropriate spring stiffness to the diagonal terms of the beam stiffness matrix and Chapter 12 describes programs of this type. 28 GENERAL REMARKS ON THE DISCRETISATION PROCESS Enough examples have now been described for a general pattern to emerge of how terms in a differential equation appear in matrix form after discretisation. Table 2.1 gives a summary, N being the shape functions. In fact, first order terms such as du/@x have not yet arisen. They are unique in Table 2.1 in leading to matrix equations which are not symmetrical, as indeed would be the case for any odd order of derivative. We shall return to terms of this type in due course, in relation to advection in fluid flow. Table 21 Semi-discretisation of partial differential ‘equations Term appearing Typial orm ia in diferent fit ment sation mate eauanon , fora tu oN, a Jrges ou 2M, IN oe Ox Ox | ca ae oa ou ie an, u 29 ALTERNATIVE DERIVATION OF ELEMENT STIFFNESS. Instead of working from the governing dilferential equation, element properties can be derived by an alternative method based on a consideration of energy. For example, the strain energy stored due to bending of a very small length of the bbeam element in Figure 2.2 is (235) where M is the ‘bending moment’ and by conservation of energy this must be equal to the work done by the external loads g; thus 4W=}qwox (236) To proceed, we discretise the displacements in terms of the element shape functions (2.21 and 2.22) to give w= Ny wy + N28; +Nywy NO, = Nw 237) ‘The bending moment M is related to w through the ‘moment-curvature’ expression aw M=-EIE> or M=DAw (238) where D is the material property EI and A is the operator ~ 4/6x?, Writing (235) in the form au =}(—25) an re) we have 6U =HAwy'M dx 2.40) Using (2.37) and (2.38) this becomes 6U =ANw)'DANwSx w™(AN)" DANw8x eat) ‘The total strain energy of the element is thus u =f wT(AN)TDANw dx (242) The matrix AN is usually written as B, and since w are nodal values and therefore constants Uaiw" [aD 243) o 25 ‘Similar operations on (2.36) lead to the total external work done and hence the stored potential energy of the beam is given by T=u-w <0" [par -iw'g fines (244) A state of stable equilibrium is achieved when x is a minimum with respect to all w. That is anise pee L gat |, BDBdxw—a | Nidx=0 (2.45) [fmronasnaa nts 246) which is simply another way of writing (2.25). ‘Thus we see from (2.27) that the element stiffness matrix KM can be written in the form KM= f B'DBdx (247) which will prove to be a useful general matrix form for expressing stiffnesses ofall solid elements. The computer programs for analysis of solids developed in the next chapter use this notation and method of stiffness formation. 210 TWO-DIMENSIONAL ELEMENTS: PLANE STRESS AND STRAIN ‘The elements so far described have not been true finite elements because they have been used to solve differential equations in one space variable only. Thus the real problem involving two or three space variables has been replaced by a hypothetical, equivalent one-dimensional problem before solution. The elements ‘we have considered can be joined together at points (the nodes) and complete continuity (compatibility) and equilibrium achieved. In this way we can often ‘obtain exact solutions to our hypothetical problems and these solutions will be unaffected by the number of elements chosen to represent uniform line segments This situation changes radically when problems in two or three space dimensions are analysed. For example, consider the plane shear wall with ‘openings shown in Figure 2.5(a). The wall has been subdivided into rectangular elements of side a x b of which Figure 2.5(b) is typical. These elements have four corner nodes 50 that when the idealised wall is assembled, the elements will only be attached at these points. the wall can be considered to be of unt thickness and ina state of plane stress, see Timoshenko and Goodier (1951), the equations to be solved are the following: 6 t Figure 2.5. (a) Shear wall with openings. (b) Typical rectangular element with four comer nodes @ Equilibrium 00, Ox Gy ae a8) Fete a0 where o,,9, and t,, are the only non-zero stress components and F,., F, are body forces, per unit volume, (i) Constitutive (plane stress) (Generalised Hooke) oh (as) where E is Young's modulus, v is Poisson's ratio and ¢,,£, and yx, are the independent small strain components. i) Strain-displacement a «) |x 0 a| fu l-fo aie) a 7 see Yo) Lay ox, where u,v are the components of displacement in the x,y directions Pu Using the notation of the previous section with A as the strain-displacement operator and D as the stress-strain matrix, these three equations become Max -F o=De (2.51) ende where a ox tv 0 efi} anjo oe ae 0 ay ox We shall only be concerned in this book with ‘displacement’ formulations in which o and ¢ are eliminated from (2.51) as follows: Ato=-F A"De= -F (253) A'DAe= —F Writing out (2.53) in full we have eu TD tray @ 2 a tay? 1avou t+y Ho | which is a pair of simultaneous partial differential equations in the continuous space variables u and v. ‘As usual these can be solved by discretising over each element using shape functions u=[N; Nz Ns Ng) a =No (2.55) and vm IN, Nz Ny Nali'!}=Nv 2.56) where in the case of the rectangular element shown in Figure 2.5(b) the N, 8 functions were first derived by Taig (1961) to be (257) ‘These result in linear variations in strain across the element which is sometimes called the ‘linear strain rectangle. Discretisation and application of Galerkin’s method (Szabo and Lee, 1969), using Table 2.1, leads to the stiffness equations for a typical element: (@N,aNy 1-vaN,Nj\/ ON, aN), 1- ON, AN, ) E ia \ax ox TD ay dy)\" ax dy 2 oy =) Jo do] (2M AML =n eNe a) (ANN, Ln. ENY \"y ax * 2 ox dy ay ty * 2 dx ox eee sdydx, j= 234 fh afi (2.58) a kMe=F Evaluation of the first term in the stiffness matrix yields eee KM. =7w ($4575) i ee In the course of this evaluation, integration by parts now involves integrals of the type fj wo ldxdy = ~ [ [Re Reasay + hu Riras (260) ‘where lis the direction cosine of he normal to boundary S and we assume thatthe ‘contour integral in (2.60) is zero between elements. This assumption is generally, reasonable but extra care is needed at mesh boundaries. Only if the elements become vanishingly small can our solution be the correct one (an infinite number of elements) Physically, in a displacement method, it is usual to satisfy compatibility everywhere in a mesh but to satisfy equilibrium only at the nodes. It is also possible to violate compatibility, but none of the elements described in this book does. 20 2.11 ENERGY APPROACH ‘As was done in the case of the beam clement, the principle of minimum potential energy can be used to provide an alternative derivation of (2.58). The element strain energy per unit thickness is Us |fieteaxay ait” [faxrpanae dyr =r | [prpaxayr @61) where A and D are defined in (2.52) and NaN ENG ENE a0 ecOr 020 Bele oo ws ne N, (262) Thus we have again for this element kM= ffm DBdxdy 263) which is the form in which it will be computed in Chapter 3. Exactly the same expression holds in the case of plane strain, but the D matrix becomes (Timoshenko and Goodier, 1951), for unit thicknes Ed-¥) PT end - 2) 1 ° (264) 2.12. PLANE ELEMENT INERTIA MATRIX When inertia is significant (2.54) are supplemented by forces — p(@*u/ét*) and ~ p(G?v/év?) respectively, where pis the mass ofthe element per unit volume, For an element of unit thickness this leads, in exactly the same way asin (2.14), to the element mass matrix which has terms given by Moty=0 | [Na dedy 265) and hence to an eigenvalue equation the same as (2.19) 30 213. AXISYMMETRIC STRESS AND STRAIN Solids of revolution subjected to axisymmetric loading possess only two independent components of displacement and can be analysed as if they were two-dimensional. For example, Figure 26(a) shows a thick tube subjected to radial pressure p and axial pressure q. Only a typical radial cross-section need be analysed and is subdivided into rectangular elements inthe figure. The cylindrical coordinate system, Figure 2.6b), is the most convenient and when itis used the clement stiffness equation equivalent to (2.58) is wor f f forpnrarance 266) which, when integrated over one radian, becomes kat {[oronrarae where the strain-displacement relations are now (Timoshenko and Goodier, 1951) oa ° 2 rs 1 emde or «| Figure 26 Cylinder under axial and radial pressure 31 and as usual B= AN, where for elements of rectangular cross-section N could again be defined by (2.57) and (2.62). The stress-strain matrix must be redefined as. E-» Ty (2.68) 2.14 THREE-DIMENSIONAL STRESS AND STRAIN When (2.48), (2.49) and (2.50) are extended to the three space-displacement variables u,v, , three simultaneous partial differential equations equivalent to (2.54) result, Discretisation proceeds as usual, and again the familiar element stiffness properties are derived as aon [{ farppassyae (2.69) where the full strain-displacement relations are (Timoshenko and Goodier, 1951) a CFF Preece) @ 5 °° oo Zhu a = ° 2.70) ore Yo! lay ox aa He Oe gay a a a)ie [sO se or nde and as before B= AN. For example, he rectangular brick-shaped element shown in Figure 2.7, which has eight corner nodes, would have shape functions of the 32 type (+ ‘and so on. The full N matrix would be N, 0 0 N=/0 N, 0 2.72) 0 ON =0IM, Na Ny Ng Ns Ne N; Ng) (2.73) leading to the assembly of B. The stress-strain matrix is in this case any where x Pray =m on 3 215 PLATE BENDING ELEMENT The bending of a thin plate is governed by the differential equation DV‘w=q (2.75) where D is the flexural rigidity of the plate, w its deflection in the transverse (2) direction and q the applied transverse load. The flexural rigidity is given by Eh? P= 2.76) where h is the plate thickness. Solution of equation (2.75) directly, for example by Galerkin minimisation, appears to imply that for a fixed D, a thin plate’s deflection is unaffected by the value of Poisson's ratio, This isin fact true only for certain boundary conditions and in general the integration by parts in the Galerkin process will supply extra terms which are dependent on ¥. This is a case in which the energy approach provides a simpler formulation. The train energy stored in a piece of bent plateis (Timoshenko and Woinowsky- Krieger, 1959) val 3) or una l (f(s) +S) ees +100 22)" hacay 078) Consider, for example, the rectangular element shown in Figure 2.8, I'there are assumed to be four degrees of freedom per node, namely ow ow ew FH ad Bae then the appropriate element shape functions can be shown to be products of the } ay Figure 28 Rectangular plate bending element 4 ‘beam shape functions already described. That is, as usual w=Nw 279) where, if the freedoms are numbered (W,0,. 4), 0,,)ace would be 234s the first term in N Bax? +23) 4 (6° -3by? +2y°) (2.80) rd Defining (@—3ax?+2x*), Qy =e —3by? +2y°) (@x—2axt+2), Qr—palby—2by*+ 9) 1 1 (281) Pye ss(Sax?= 20) Qs mfp (Bby? 29") 1 Pea al? ax), the full list of shape functions becomes N=P,Q,, N= P203, Ny=Pi0s, N= P20, NaP.O., 282) Ne=P20s, N= PQs, Ne= P20. Using the same energy formulation terminology as before, define a M, ty oll 2 M}eap}ot o |] & bw (283) x or M=DAw It can readily be verified that equation (2.78) for strain energy can be written u =f [(aerDiamae dy (284) 35 and that the stiffness matrix becomes M = [fppsea which is again the familiar equivalent of equation (2.47), with B= AN. A typical value in the element stifiness matrix is given by [fon,eny , 22N aN, | dN, a KMy= if NN, | ONOIN, | 22ND, Ge be FGF BF TYRE Gy? NON O2N, ON, ape yt TN aeay Baap (286) and these integrals are performed using Gaussian quadrature in two dimensions in Chapter 4, For some boundary conditions, the terms involving Poisson's r will cancel out. ‘As usual, typical values in the mass matrix are given by Mat = ph | [winery e287 2.16 SUMMARY OF ELEMENT EQUATIONS FOR SOLIDS ‘The preceding sections have demonstrated the essential similarity of all problems in solid mechanics when formulated in terms of finite elements. The statement of ‘element properties isto be found in two expressions, namely the element stiffness matrix KM = f B'DBad (clement) (2.88) and the element mass matrix MM= srw (clement) (289) These expressions then appear in the three main classes of problem which concern us in engineering practice, namely () Static equilibrium problems KMr =F (290) (i) Eigenvalue problems (KM —a?MM)r=0 291) ii) Propagation problems KMr +. ume =F() (292) Equations (2.90) are simultaneous equations which can be solved for known forces F to give equilibrium displacements r. Equations (2.91) may be solved by various techniques (iteration, QR algorithm, etc; see Bathe and Wilson (1976) or Jennings (1977) te yield mode shapes r and natural frequencies « of elastic 36 systems, while equations (2.92) can be solved by advancing step by step in time from a known initial condition or by transformation to the frequency domain. Later chapters in the book describe programs that enable the user to solve practical engineering problems which are governed by these three basic equations. Additional features, such as treatment of non-linearity, damping, etc, will be dealt with in these chapters as they arise. 2.17 FLOW OF FLUIDS: NAVIER-STOKES EQUATIONS We shall be concerned only with the equations governing the motion of viscous, incompressible fluids. These equations are widely developed elsewhere, e Schlichting (1960), Preserving an analogy with previous sections on two- dimensional solids, u and v now become velocities in the x and y directions respectively and pis the mass density as before, Also as before, F, and F, are body forces in the appropriate directions. Conservation of mass leads to 80, yg Pyne 042 (+2 00)=0 293) ‘but due to incompressbility this may be reduced to = as) ‘Conservation of momentum leads to au du ou 26, , Oey (2a rude ota + (Mee) 6 ox ot ex Y, y (295) 2 4 2 20) , (200, Ot o( tend vo® anys (Mae where 04,0, and t,, are stress components as previously defined for solids. Introducing the simplest constitutive parameters x (the molecular viscosity), 2 (taken to be — 3,1) and p (the fluid pressure) the following form of the stress equations is reached: , (ou, av éu na) sat noi (cee BN By toe, ‘Combining (2.94) to (2.96) a form of the ‘Navier-Stokes’ equations can be ev év + =) + 296) Tey 37 1p 8 (au dv) pf Pu ew ba(nta)S oe oy eee) zar( ou ab Vai ee ee att Mae Pay pt pay” 3p dy ox” dy)” plow * ay, On introduction of the incompressibility condition, these can be further simplified to (297) au, du, du 1, Lap u(au dw +u Feat lat tage, at ax tay ov lop w/o , av ae de +2 ( #0, Fe ae Max tay pay * wloxt a? Forsteady state conditions the terms du/0t and v/0t can be dropped resulting in ‘coupled’ equations in the ‘primitive’ variables u,v and p. The equations are aso, in contrast to those of solid elasticity, nonclinear due to the presence of products like u(du/dx). Ignoring body forces for the present, the steady state equations to be solved are Gu | dul ep w/a tu, Pu) _ “iat "ay tp ax” plat ay) ~° ao, a0 1ap_u(ao oy) ee eae Proceeding as before, and for the moment assuming the same shape functions are applied to all variables, u = Nu, v = Nv, p = Np we have for a single clement, treating the terms u and v as constants @ = Nuy and § = Nvo for the purposes of integration e298 299) aN, oN, LON w ON pen TUFTS Ut Pog aren gar tne 100) aN, a gQN, p LON, HON dIN Ny Lan, ®a tay to ay? pas poy wt Multiplying by the weighting functions and integrating as usual yields an an Le yan nae, PR yard +4 { (NX pax ff ax wardy+ | [wos d: y+ [IN pdxdy #( (nN uaeay—# [ (NEN, £[fy@Baacay£| n2assay-0 and Q101 38 ON {[waON Lf fan [JraSvava + | fro racay +i Des -E [Jv Boacar=# |v Pracen Integrating products by parts where necessary and an resulting contour integrals gives éN ON 1 6N [Jos2ansyes [fotasyaat l Item (ON ON gy ‘ON ON +p flex asteorers [lay ay teoren = i ata [petecons [fro oayrat [bac aN ON oN ON oh (R Racare BRE ards ‘The set of equations is completed by the continuity condition [Jn(oNer2s)esaye0 a Collecting terms in w, p and v respectively leads to an equilibrium equation (Taylor and Hughes, 1981) Cy Ce (2.1048) where y= Ce [qacay 2.1040) Ox a= oN Ca= [ew 39 Cy, =0 1 aN. Cy: = | |=N<—axdy = Sf wr O=Cn Referring to Table 2.1 we now have many terms ofthe type N(2N,/2x) which imply unsymmetrical structures for C,,. Thus special solution algorithms will be necessary. Computational details are let until Chapter 9. 218 SIMPLIFIED FLOW EQUATIONS In many practical instances it may not be necessary to solve the complete coupled. system described in the previous section. The pressure p can be eliminated from (2.98) and if vorticity « is defined as ou_ a0 a (2105) this results in a single equation: (2.106) 2.107) ‘an alternative coupled system involving y and w can be devised, given here for steady state condition ay ey ae a (2.108) 4(2g42e) ade atte 28 p\ ax? * Oy?) “dy ox Gx dy This clearly has the advantage that only two unknowns are involved rather than the previous three. However, the solution of(2.108) isstill a relatively complicated process and flow problems are sometimes solved via equation (2.106) alone, assuming that wand v can be approximated by some independent means. In this form, equation (2.106) is an example of the ‘diffusion-convection’ equation, the second order space derivatives corresponding toa ‘diffusion’ process and the first order ones to a ‘convection’ process. The equation arises in various areas of 40 engineering, for example sediment transport and pollutant disposal (Smith, 1976, 1979). If there is no convection, the resulting equation is of the type do _u (Bo, Po a8 (Be Be 1 2 at (eS 2108) which the ‘heat conduction’ or‘ilfusion’ equation well known in many areas of engineering. ‘final simplification isa reduction to steady state conditions, in which case Fo Fo ioe ae ati oat t ay? eto) leaving the familiar ‘Laplace’ equation. In the following sections, finite element formulations of these simplified flow equations are described, in order of increasing complexity. 2.19 SIMPLIFIED FLUID FLOW: STEADY STATE, ‘The form of Laplace's equation (2.110) which arises in geomechanics, for example concerning groundwater flow in an aquifer (Muskat, 1937), is 26 ab RSS th Ss Quit Rather a0 au where ¢ is the fluid potential and k,,k, are permeabilities in the x and y directions. The finite clement discretisation process reduces the differential ‘equation to a set of equilibrium type simultaneous equations of the form KP¢=Q (2.112) where KP is symmetrical and Q is a vector of net nodal inflows/outflows. Reference to Table 2.1 shows that typical terms in the matrix KP are of the form ANON) 4 ON ON) [JOM BBay ain With the usual finite element discretisation g=Nob (2114) a convenient way of expressing the matrix KP in (2.112) is xe [ [rrxraxay us) where the property matrix K is analogous to the stress strain matrix D in solid mechanics; thus k, 0 «=| ° 7 (2.116) at {assuming that the axes of the permeability tensor coincide with x and y). The T matrix is similar to the B matrix of solid mechanics and is given by aM aN. ax ox ON, ON, ONs ONe oy “ay “oy ay The similarity between (2.115) for a fluid and (2.63) for a solid enables the corresponding programs to look similar in spite of the governing differential ‘equations being quite different. This unity of treatment is utilised in describing the programming techniques in Chapter 3 Finally, it is worth noting that (2.115) can also be arrived at from energy considerations. The equivalent energy statement is that the integral [sey eG) Jaw ey shall be a minimum for all possible (x, )). Example solutions to steady state problems described by (2.111) are given in Chapter 7. uy 2.20. SIMPLIFIED FLUID FLOW: TRANSIENT STATE Transient conditions must be analysed in many physical situations, for example in the case of Terzaghi ‘consolidation’ in soil mechanics or heat conduction. The ‘governing consolidation diffusion equation for excess pore pressure u, takes the form ly Pty _ Bitty Saat * OOF oe (219) where ¢,,¢, ate the coefficients of consolidation. Discretisation of the left hand side of (2.119) clearly follows that of (2.111) while the time derivative will be associated with a matrix of the ‘mass matrix’ type without the multiple p. Hence the discretised system is (2.120) This set of first order, ordinary differential equations can be solved by many ‘methods, the simplest of which discretise the time derivative by finite differences. The algorithms are described in Chapter 3 with example solutions in Chapter 8 221 SIMPLIFIED FLUID FLOW WITH ADVECTION If pollutants, sediments, tracers, etc., are transported by a laminar flow system they are at the same time translated or ‘advected’ by the flow and diffused withi 4a it. The governing differential equation for the two-dimensional case is (Smith etal, 1973) 74 4 28 2b ob ab 2.121) Cage tat “Gx Gy OF where wand v are thefluid velocity components the x and y directions (compare equation 2.106) rhe extra advection terms — u(29/2x) and —v(2¢/0y) compared with (2-119) lead, es shown in Table 21, to unsymmetric components ofthe stiffness’ matrix of the type . {f(a tte) en x ay which must be added to the symmetric, diffusion components given in (2113) ‘When this has been done, equilibrium equations like (2.112) or transient equa- tions like (2.120) are regained. ‘Mathematically, equation (2.121) is a differential equation which is not selt- adjoint (Bere, 1962), due to the presence of the first order spatial derivatives From a finite clement point of view, equations which are not self-adjoint will always lead to unsymmetrical stiffness matrices. "A second consequence of non-self-adjoint equations is that there is no energy formulation equivalent to (2.118) It is clearly a benefit of the Galerkin approach that it can be used for all types of equation and is not restricted to self-adjoint systems. ‘Equation (2.121) can be rendered self-adjoint by using the transformation (2.123) but thisis nor recommended unless wand v are small compared with c, and ¢, a shown by Smith etal, (1973) Equation (2.121) and the use of (2.123) are described in Chapter 8. 222 FURTHER COUPLED EQUATIONS: BIOT CONSOLIDATION ‘Thus far in this chapter, analyses of solids and fluids have been considered separately. However, Biot formulated the theory of coupled solid-fluid interac. tion which finds applications in soil mechanics (Smith and Hobbs, 1976). Thesoil skeleton is treated as a porous elastic solid and the laminar porefluid is coupled to the solid by the conditions of compressibility and of continuity. Thus Biot’s governing equation is given by Ke, Oe yp Sle 4g Oe elas thar th ae | where K’ is the soil bulk modulus and p is the mean total stress. (2.124) B For two-dimensional equilibrium in the absence of body forces, the gradient of fective stress from (2.48) must be augmented by the gradients of the fuid reSSUre tty as follows: tay 5 Be 0 y 7 Ox ens dey 005 Omg @x © dy “ dy ‘The constitutive laws are those previously defined for the solid and fluid respectively; hence in plane strain «, 1 o | ie gun) | ¥ “I "Tev-m|i-y | 9 |iey e126 1-2v ty 0 0 Al he 4 Ake 0) faua/ex 1 heads ele om where q, amd q, are the volumetric flow rates per unit area into and out of the element and 7, is the unit weight of water. The solid strain-displacement relations are still given by (2.50), and the final condition is that for full saturation and, in this case incompressibility, outflow from an element of soil equals the reduction, in volume of the element. Hence d (du, dv $ (H+) e128) and from (2.127) the third differential equation is given by ke 4 @uy, d (du av ye Oe Op tae (+)=° a1) Asusual ina displacement method, aand are eliminated in terms ofu and vso that the final coupled variables are u,v and u,. These are now discretised in the normal way: (2130) In practice, it may be preferable to use a higher order of discretisation for wand 4 » compared with u, but, for the present, the same shape functions are used to describe all three variables. ‘When discretisation and the Galerkin process are completed, (2.125) and (2.129) lead to the pair of equilibrium and continuity equations: KMr + Cu, =F nit cn where, for a four-noded element, ct —KPu, =0 4 Ha ref} and ayn d 2.132) KM and KP are the elastic and fTuid ‘stfiness’ matrices and C is a rectangular coupling matrix consisting of terms of the form [nctteos dy 2133) F is the external loading vector. Equations (2.131) must be integrated in time by some method such as finite dilerences and this is described further in Chapter 3. Examples of such solutions in practice are given in Chapter 9. 2.23 CONCLUSIONS When viewed from a finite clement standpoint, all equilibrium problems, ‘whether involving solids or fluids, take the same form, namely KMr=F or (2134) KP6=Q Forsimple uncoupled problems the solid KM and fluid KP matrices have similar symmetrical structures and computer programs to construct them will be similar However, for coupled problems such as are described by the Navier-Stokes equations, KM (or KP) is unsymmetrical and appropriate alternative software will be necessary. Tn the same way, eigenvalue, propagation and transient problems all involve the mass matrix MM (or a simple multiple of it, PM), Therefore, coding of these 45 different types of solution can be expected to contain sections common toll three problems. So far, single elements have been considered in the discretisation process, and only the simplest line and rectangular elements have been described. The next chapter is mainly devoted to a description of programming strategy, but before this, the finice element concept is extended to embrace meshes of interlinked elements and elements of general shape. 2.24 REFERENCES Bathe, K. J, and Wilson, E.L. (1976) Numerical Methods in Finite Element Analysis. Prentice-Hall, Englewood Clifs, New Jersey. Berg, P. N,(1962) Calculus of variations. In Handbook of Engineering Mechanics, Chapter 16, ed. W. Flugge, McGraw-Hill, New York Connor, J.J, and Brebbia, C.A."(1976) Finite Element Techniques for Fluid Flow. ‘Newnes-Butterworth, London Cook, RD. (1981) Concepts and Applications of Finite Element Analysis, 2nd edition, Wiley, New York, Crandall, 8. H. (1956) Engineering Analysis. McGraw-Hill, New York. Finlayson, B.A. (1972) The Method of Weighted Residuals and Variational Principles. ‘Academic Press, New York. Horne, M. R.,and Merchant, W.(1965) The Stability of Frames. Pergamon Press, Oxford, Jennings, A. (1977) Matrix Computation for Engineers and Scientists. John Wiley, London. Leckie, FA, and Lindberg, G. M. (1963) The effect of lumped parameters on beam frequencies, The Aeronautical Quarterly, 14, 234 Livesley, R. K. (1975) Matrix methods of structural analysis, Pergamon Press, Lundquist, E.E., and Kroll, W. D. (1948) NACA Report ARR, No. 4824 Muskat, M. (1937) The Flow of Homogeneous Fluids through Porous Media. McGraw-Hill, New York. Rao, S. S (1982) The Finite Element Method in Engineering, Pergamon Press, Oxford. Schlichting, H. (1960) Boundary Layer Theory. McGraw-Hill, New York Smith, I. M, (1976) Integration in time of diffusion and diffusion-convection equations. In Finite Elements in Water Resources ed. W.G. Gray, G. F. Pinder and C.A. Brebbia, pp. 1.3-1.20. Pentech Press ‘Smith, M. (1979) The diffusion-convection equation. In A Survey of Numerical Methods for Partial Differential Equations, ed. 1. Gladwell and R. Wait, pp. 195-211. Oxford University Press Smith, I. M., Farraday, R.V., and O'Connor, B. A. (1973) Rayleigh-Ritz and Galerkin finite elements for diflusion-convection problems. Water Resources Research, 9, No.3, 593. Smith, I. M,, and Hobbs, R. (1976) Biot analysis of consolidation beneath embankments, Géotechnique, 26, No 1, 199. Strang, G., and Fix, G, J.(1973) An Analysis of the Finite Element Method. Prentice-Hall, Englewood Ciifls, New Jersey Szabo, B. A. and Lee, G. C. (1969) Derivation of stiffness matrices for problems in plane clasticity by the Galerkin method. Im. J. Num. Meth. Eng. 1, 301 Taig, I. C. (1961) Structural analysis by the matrix displacement method, English Electric ‘Aviation Report No.SO17. ‘Taylor, C, and Hughes, T. G. (1981) Finite Element Programming of the Navier-Stokes Equation. Pineridge Press Ltd, Swansea, 46 Timoshenko, & P, and Goodier, J.N. (1951) Theory of Elasticity. McGraw-Hill, New York. ‘Timoshenko, S.P,, and Woinowsky-Krieger, 8. (1959) Theory of Plates and Shells. ‘McGraw-Hill, New York Zienkiewiez, O.C(1977) The Finite Element Method in Engineering Science, 3rd edition. ‘McGraw-Hill, London. CHAPTER 3 Programming Finite Element Computations 30 INTRODUCTION In Chapter 2, the finite element discretisation process was described, whereby partial differential equations can be replaced by matrix equations which take the form of linear and nonlinear algebraic equations, cigenvalue equations oF ordinary differential equations inthe time variable. The present chapter describes how programs can be constructed in order to formulate and solve these kinds of, equations. Before this, two additional features must be introduced, First, we have so far dealt only with the simplest shapes of elements, namely lines and rectangles. Obviously if differential equations are to be solved over regions of general shape, elements must be allowed to assume general shapes as well, This is accomplished by introducing general triangular and quadrilateral elements together with the concept of a coordinate system local to the element. Second, we have so far considered only a single element, whereas useful solutions will normally be obtained by many elements, usually hundreds or thousands in practice, joined together at the nodes. In addition, various types of boundary conditions may be prescribed which constrain the solution in some way, Local coordinate systems, element assembly and incorporation of boundary Conditions are all explained in the sections that follow. 34 LOCAL COORDINATES FOR QUADRILATERAL ELEMENTS Figure 3.1 shows two types of four-noded quadrilateral clements. The shape functions for the rectangle were shown to be given by equations (257), namely Nj, =(1—x/a)(1 — y/b) and so on. Ifit is attempted to construct similar shape functions in the ‘global’ coordinates (x,y) for the general quadrilateral, very complex algebraic expressions will result, which are at the very least tedious to check (Irons and Ahmad, 1980), Instead it is better to work in a local coordinate system as shown in Figure 3.2, originally proposed by Taig (1961). The general point P(é,n) within the a7 y y (0,6) $5 : a 4 Too x x Figure 3.1 (a) Plane rectangular element. (b) Plane general quadrilateral clement Figure 32 Local coordinate system for quadrilateral elements quadrilateral is located at the intersection of two lines which cut opposite sides of the quadrilateral in equal proportions. For reasons associated with subsequent ‘numerical integrations it proves to be convenient to ‘normalise” the coordinates so that side 12 has €= 1, side 3 4 has = +I, side 1 4 has = — I and side 23 has n= + 1. In this system the intersection of the bisectors of opposite sides of the quadrilateral is the point (0,0), while the corners 1, 2, 3,4 are (1, ~ 1) (1.0, (1,0, (1,1) respectively. ‘When this choice is adopted, the shape functions for a four-noded quadrilateral with corner nodes take the simple form: Ny=KI-O(1~n) 41~+n) (1+ +n) =H1+O(1—n) and these can be used to describe the variation of unknowns such as displacement or fluid potential in an element as before. (a) 4” Under special circumstances the same shape functions can also be used to specify the relation between the global (x,y) and local (f,n) coordinate systems. If this is so the element is of a type called ‘isoparametric’ (Ergatoudis et a, 1968; Zienkiewice et al, 1969); the four-node quadrilateral is an example. The coordinate transformation is therefore Nyx, + Nata + NgXy + Naty =Nx Y= Navi + Nava + Nays + Nave =Ny (3.2) where the N are given by (3.1) In the previous chapter it was shown that element properties involve not only N but also their derivatives with respect to the global coordinates (x,y) which appear in matrices such as B and T. Further, products of these quantities need to be integrated over the element area or volume. Derivatives are easily converted from one coordinate system to the other by means of the chain rule of partial differentiation, best expressed in matrix form by (a) fee (a ag] et jax, 2 4 : ja] ~ fax 2 ° én) én ay, a alee ax. 6g 2 le (3.4) Gy an where J is the Jacobian matrix. The determinant of this matrix, det} J}, must also be evaluated because it is used in the transformed integrals as follows: fora f° ft det || dg dy G5) BIS Figure 33 (a) Degenerate quadrilateral. (b) Unacceptable ‘quadrilateral Table 3.1 Coordinates and weights in Gaus- sian quadrature formulae . Sey ane: 2 + $ 1 > ot Under certain circumstances, for example that shown in Figure 3.3(b), the Jacobian becomes indeterminate. When using quadrilateral elements, reflex interior angles should be avoided. 32 NUMERICAL INTEGRATION FOR QUADRILATERALS Although some integrals of this type could be evaluated analytically, it is impractical for complicated functions, particularly in the general case when (&,7) become curvilinear. In practice (3:5) are evaluated numerically, using Gaussian quadrature over quadrilateral regions (Irons, 19662, 1966b). The quadrature rules in two dimensions are all of the form j fi senvacar= S, wom fon) G6) where w, and w, are weighting coefficients and ¢,, n) ate coordinate positions within the element. These values for n equal to 1,2 and 3 are shown in Table 3.1 and complete tables are available in other sources, e.g. Kopal (1961). The table assumes that the range of integration is + 1; hence the reason for normalising the Tocal coordinate system in this way. ‘The approximate equality in (36) is exact for cubie functions when n= 2 and for quintics when n = 3. Usually one attempts to perform integrations over finite clements exactly, but in special circumstances (Zienkiewicz et al, 1971) ‘reduced’ integration whereby integrals are evaluated approximately can improve the quality of solutions. 33 LOCAL COORDINATES FOR TRIANGULAR ELEMENTS Figure 3.4 shows how a general triangular clement can be mapped into a right- ‘angled isosceles triangle. This approach is identical to using area coordinates (Zienkiewiez ex al, 1971) in which any point within the triangle can be referenced using three local coordinates (Ly,3, 3). Clearly for a plane region, only (wo st (1,07 by Figure 34 (a) General triangular element, (b) Element mapped. in local coordinates independent coordinates are necessary; hence the third coordinate isa function of the other two: Lya1-Ly-ky a7 However, it often leads to more elegant formulations algebraically if all three coordinates are retained. For example, the shape functions for a three-noded triangular element (constant strai 3.8) and the isoparametric property is that Nx, + Nake + Ngxy 3s Y= Nay, + Nays + Nays au Equations (3.3) and (3.4) from the previous paragraph still apply regarding the Jacobian matrix but equation (3.5) must be modified for triangles to give Jaf 34 NUMERICAL INTEGRATION FOR TRIANGLES “det|S\dLyaL, G10) ‘Numerical integration over triangular regions s similar to that for quadrilaterals except that the sampling points do not occur in such ‘convenient’ positions. ‘The quadrature rules take the general form 1 pits A i: ip I (lysLa)dba dL 4 9 WSL Li) @.11) ‘where w; is the weighting coefficient corresponding to the sampling point (Li, L5) and n represents the number of sampling points. Typical values of the weights and sampling points are given in Table 3.2. 2 Table 32 Coordinates and weights for integr- ation over triangular areas ‘As with quadrilaterals, numerical integration can be exact for certain polynomials. For example, in Table 3.2, the one-point rule is exact for integration of first order polynomials and the three-point rule is exact for polynomials of second order. Reduced integration can again be beneficial in some instances. Computer formulations involving local coordinates, transformation of co- ordinates and numerical integration are described in subsequent paragraphs, 35 ELEMENT ASSEMBLY Properties of elements in isolation have been shown to be giv equations, for example the equilibrium equation KP¢=Q G.12) describing steady laminar fluid flow. In Figure 3.5 is shown a small mesh containing three quadrilateral elements, all of which have properties defined by G.12). The next problem isto assemble the elements and so derive the properties of the three-element system, Each element possesses node numbers, shown in parentheses, which follow the scheme in Figures 3.1 to 3.3, namely numbering clockwise from the lower let hand corner. Since there is only one unknown at by matrix 7 . Figure 35. Mesh of quadlatr! elements 33 every node, the fluid potential, each individual element equation can be written KPia KPia KPig KPia) (oi) (0: KP2, KPz2 KP23 KP2al Joa{_ |Q2 KP3, KP32 KP33 KPss} )s(7\Qs on KPa, KPa2 KPax KPsal |@a} [Qe However, in the mesh numbering system, not in parentheses, mesh node 4 corresponds to element node (I) in element I and to element node 2) in element 3. The total number of equations for the mesh is 8 and, within this system, term KP, from element | and term KP, from element 3 would be added together and Would appear in location 4,4 and so on. The total system matrix for Figure 3.5 is given in Table 33, where the superscripts refer to element numbers. ‘This total system matzix is symmetrical provided its constituent matrices are symmetrical. The matrix also possesses the useful property of “bandedness’ Which means that the terms are concentrated around the ‘Teading diagonal’ which stretches from the upper left to the lower right ofthe table. In fact no term in any row can be more than four locations removed from the leading diagonal so the system is said to have a ‘semi-bandwidth’ IW of 4. This can be obtained by inspection from Figure 3.5 by subtracting the lowest from the highest freedom. number in each element. Complicated meshes have variable bandwidths and useful computer programs make use of banding when storing the system matrices The importance of efficient mesh numbering is illustrated for a mesh of line elements in Figure 3.6 where the scheme in parentheses has [W = 13 compared with the other scheme with [WV Ifsystem symmetry exists it should also be taken into account. For example, if the system in Table 3.3 is symmetrical, there are only 30 unique components (the leading diagonal terms plus @ maximum of four terms to the left or right of the diagonal in each row). Often, with a slight decrease of efficiency, the symmetrical half of a band matrix is stored as a rectangular atray with a size equal to the ‘Table 3.3. System stiffness matrix for mesh in Figure 3.5. Superscripts indicate element ‘numbers KPL, _ KPhy 0 KPA, KPLy Olio KP, KPly+KP}; KP3; KP}, KPa +KP3, KP, 0 0 ° KP}. KP33 ° KPi, KP, 00 KPh, KPL; 0. KPI, +KP2y KPLa+KPly 0. KP, KPLy KPi, KP) +KPt, KPiy KPi,+KP32 KPic+KPi, KPi4 KP3. KPia +KPRy 0 KPi2 KPis 0 KPR KP, 0 oO o 0 oO KP}: KP, 0 KP, KPis ° 0 0 KP, KPLS 0 KPL, KP, Figure 36 Alternative mesh ‘numbering schemes number of system equations times the semi-bandwidth plus 1. In this case zeros are filled into the extra locations in the first few or last few rows depending fon whether the lower or upper “half” of the matrix is stored. Special storage schemes, for example ‘skyline’ techniques (Bathe and Wilson, 1976), are also considered later in the chapter (see Figure 3.17) and are important in cases where bandwidths vary greatly Later in this chapter, procedures are described whereby system matrices like that in Table 3.3 can be automatically assembled in band form, with or without the ‘skyline’ option, from the constituent element matrices, 36 INCORPORATION OF BOUNDARY CONDITIONS, Eigenvalues of frecly floating clements or meshes are sometimes required but normally in cigenvalue problems and always in equilibrium and propagation problems additional boundary information has to be supplied before solutions ‘can be obtained. For example, the system matrix defined in Table 3.3 is singular and this set of equations has no solution The simplest type of boundary condition occurs when the dependent variable in the solution is known to be Zero at various points in the region (and hence nodes in the finite element mesh). When this occurs, the equation components associated with these nodes are not required in the solution and information is given (o the assembly routine which prevents these components from ever being assembled into the final system. Thus only the non-zero nodal values are solved for. ‘A variation of this condition occurs when the dependent variable has known, ‘but non-zero, values at various locations. Although an elimination procedure could be devised, the way this condition is handled in practice is by adding a 35 ‘targe’ number, say 10?,to the leading diagonal ofthe stiffness’ matrix in the row in which the prescribed value is required. The term in the same row of the right hhand side vector is then set to the prescribed value multiplied by the augmented “atffness’ coefficient, For example, suppose the value ofthe fluid head at node Sin Figure 3.5 is known to be S70units. The unconstrained set of equations (Table 3.3) would be assembled and term (5.5) augmented by adding 10", In the subsequent solution there would be an equation (Ke.s-+ 102} + small terms = $7.0 x (Ks,5 + 10°) G14) which would have the effect of making ¢s equal to 57.0. Clearly this procedure is only successful if indeed ‘small terms’ are stall relative to 10", ‘Boundary conditions can also involve gradients of the unknown in the forms og in 7° (15) ob moe B16) ob re 7, where 1 is the normal to the boundary and C,, C, are constants. ‘To be specific, consider a solution of the diffusion-advection equation (2121) subject to boundary conditions (315), (3.16) and (3.17) respectively. When the second order terms c,(0%p/0x2) and (02/09) are integrated by parts, boundary integrals of the type Joanr brs G18) aise, where s isa length of boundary and I, the direction cosine of the normal. Clearly the case d¢/n = 0 presents no difficulty since the contour integral (3.18) vanishes. However, (3.16) gives rise to an extra integral, which for the boundary element shown in Figure 3.7 is 5 f NTC as 6.19) ) When ¢ is expanded as N@ we get an additional matrix oo00 (x-x)}0 21 0 . 3%) 6 o120 620) 000 0 Which must be added to the left hand side of the element equations. 56 Figure 37 Boundary conditions involv- ing non-zero gradients of the unknown For boundary condition (3.17) the additional term is, ferrets 62) which is just a vector 0 Cxeadu=y) J0 oneal (3.22) 1 which would be added to the right hand side of the element equations. For a further discussion of boundary conditions see Smith (1979. In summary, boundary conditions of the type @ = 0 of 0/@n=0 are the most common and are easily handled in finite element analyses, The cases = constant or @{dn = constant x ¢ are somewhat more complicated but can be appro- Priately treated. Examples of the use of these types of boundary specification are included in the examples chapters. 3.7 PROGRAMMING USING BUILDING BLOCKS The programs in subsequent chapters are constituted from 100 or so building blocks in the form of FORTRAN subroutines which perform the tasks of ‘computing and integrating the element matrices, assembling these into system ‘matrices and carrying out the appropriate equilibrium, eigenvalue or propag- ation calculations It is anticipated that most users will elect to pre-compile all of the building blocks and to hold these permanently in a library on backing store (usually disc}. The library should then be automatically accessible to the calling programs by ‘means of a simple attach in the job description. A summary of the building blocks is listed in Appendix 4 where their actions and input/output parameters are described, A separation has been made into “black box’ routines (concerned with some matrix operations). whose mode of 37 action the reader need not necessarily know in detail, and special purpose routines which ate the basis of finite element computations. These special purpose routines are listed in Appendix 5. The black box routines should be thought ofas an addition to the permanent library functions such as SIN or ABS, ‘and could well be replaced from a mathematical subroutine library such as NAG. 38 BLACK BOX ROUTINES ‘The first group of subroutines is concerned with standard matrix handling, and. the action of these should be self-explanatory. The routines, usually assuming two-dimensional matrices, are MATCOP (copies) MATRAN (transposes).- MATSUB (subtracts) MATMUL (multiplies) NULL (nulls) TWOBY? (inverts 2 x 2) MVMULT (multiplies MATADD (adds) ‘TREEX3 (inverts 3 x 3) matrix by vector) MATIN (inverts N x N) MSMULT (multiplies NULLS (3-d array) matrix by scalar) Similar routines associated with vectors are VECCOP VVMULT (cross-product) VECADD NULVEC The second batch of subroutines is concerned with the solution of linear algebraic equations (required in equilibrium and propagation problems). The subroutines have been split into reduction and forward/backward re-substitution phases. BANRED CHOLIN — GAUSBA BACK] — CHOBKI —SOLVBA BACK? CHOBK2 Method Gauss Choleski Gauss Equation Symmetrical Symmetrical Unsymmetrical coeflcients COMRED — SPARIN COMBK1 —SPARBI COMBK2 —_SPARB2 Gauss Choleski Symmetrical Symmetrical ‘complex skyline In the majority of programs, the forward and backward substitution is enshrined in the single subroutines BACSUB, CHOBAC, COMBAC and SPABAC respectively Several subroutines are associated with eigenvalue and cigenvector determin- ation, for example 38 Tridiagonalisation — TRIDIA BANDRD. Finds eigenvalues. EVECTS BISECT Method QR factorisation Jacobi Equation coefficients | Symmetrical ‘Symmetrical, banded, full Nx N. upper triangle stored stored ‘The first of each pair tridiagonalises the matrix and the second extracts all of the eigenvalues. The eigenvectors re found only by EVECTS. Itshould be noted that ‘these routines, although very robust and accurate, can be inefficient both in storage requirements and in run-time and should not be used for solving very large problems, in which in any caseit is unlikely that the full range of eigenmodes would be required. The various vector iteration methods (Bathe and Wilson, 1976) should be resorted to in those cases. ‘One of the most effective of these is the Lanczos method, and routines LANCZ1 LANCZ2 are used to calculate the Lanezos vectors and eigenvectors of a matrix. Although simple matrix-by-vector multiplications can be accomplished by MVMULT, advantage is usually taken of banding of the matrix coefficients ‘whenever possible. To allow for this, four special matrix-by-veetor multiplication routines are provided: LINMUL BANMUL BANTML —_LINMLS Matrix coefficients Symmetrical Symmetrical Unsymmetrical Symmetrical Storage of matrix Vector Lower triangle Full band Skyline Further information on when these routines should be used is given in Section 3.10, During eigenvalue computation a couple of special matrix operations are catered for by LBKBAN : Lest whose action is described in Appendix 4. Ina teaching text such as this, elaborate input and output procedures are avoided. It is expected that users may pre-process their input data using independent programs and plot the output graphically, At present’ these operations are very machine-lependent. Therefore simple free format input to “TAPE Sis adopted in all programs, The results of calculations are usually vectors of arrays and two subroutines enable the output of these in a standard E format to “TAPE 6. They are called PRINTV* PRINTA respectively. 39 In order to describe the action of the remaining special purpose subroutines, which are listed in full in Appendix 5, t is necessary first to consider the properties of individual finite elements and then the representation of continua from assemblages of these elements Static linear problems (including eigenprablems) are considered first. Thereafter modifications to programs to incorporate time dependence are added. 39 SPECIAL PURPOSE ROUTI ‘The job of these routines is to compute the clement matrix coefficients, for example the ‘stiffness, to integrate these over the element area or volume and finally {0 assemble the element submatrices into the global system matrix or matrices. The black box routines for equation solution, eigenvalue determination and so on then take over to produce the final results 39.1 Element matrix calculation In the remainder of this chapter the notation adopted is that used in the subroutine listings in Appendix 5. Wherever possible, mnemonics are uscd so that local coordinate ¢ becomes XI in the subroutines and so on. 39.1.1 Plane strain (stress) analysis of elastic solids using quadrilateral elements ‘As an example of element matrix calculation, consider the computation of the element stiffness matrix for plane elasticity given by (2.63): kM= ff B'DBdxdy 623) In program terminology this becomes x= { fase De E«BEEdxdy (3.24) and its formation is described by the inner loop of the structure chart in Figure 3.8, Itis assumed for the moment that the element nodal coordinates (x, y) have been calculated and stored in the array COORD. For example, we would have for a four-node quadrilateral CooRD =|*? 2? (3.25) % Os 4 ‘The shape functions N are held in array FUN, in terms of local coordinates, as Find the element geometry (nodal coordinates, COORD) Nullthestitfooss matrixepace, KM Forallthe Gaussian integrating points, NGP Find the Gauss pointcoordinates and weighting factorsin array SAMP. Formthe element shape functions, FUN and dorivates, DERin local coordinates XI, ETA. Global coordinate ranstormation of derivatives toDERWV. Formthe strain displacement matrix, BEE “Multiply by he tess strain matrix, OBE. togive DBE, ‘Transpose BEE to BT andmultiply into OBE togive BTDB, ‘Add this contribution tothe element stifress KM. ‘Agsomble the current KMintothe global system matrix. Figure 38 Structure chart of element matrix assembly specified in (3.1) by ja—xna—eTA)) * 41X11 + ETA) 44X01 + ETA) 40+ X11 ETA) The B matrix contains derivatives of the shape functions and these are easily computed in the local coordinate system as 3.26) or a per=!{-(-ETA) -(1+ETA) (1+ETA) (1—ETA) -(=xX) =X) +X 0 +X 4] ‘The information in (3.26) and (3.27) for a four-node quadrilateral is formed by the subroutine i 27, FORMLN {or the specific Gaussian integration points (XI, ETA), held in the array SAMP where I and J run from I to NGP, the number of Gauss points specified in each direction. Figure 3,9(a) shows the typical layout und ordering for two-point Gaussian integration, In all-cases SAMP is formed by the subroutine Gauss where NGP can take any value from 1 t0 7. The derivatives DER must then be converted into their counterparts in the (x,y) coordinate system, DERTV, by means of the Jacobian matrix transform= ation (3.3) or (3.4). From the isoparametric property, {F}-coorprerun (328) and since the Jacobian matrix is given by cate % a 3.29) ecaey o%) on On itis clear that (3.29) can be obtained by dillerentiating (3.28) with respect to the local coordinates. In this way JAC = DER+COORD (330) Inorder to compute DERIV we must invert JAC to give JACI using TWOBY2 1 & re ' ie bes ea, tae Ba++ | NGPee NIP=3 u (0) (b) Figure 39 Integration schemes for (a) quadrilaterals and (b) triangles a2 in this two-dimensional case and finally carry out the multipli DERIV =JACI+DER Gat) ‘Thus the sequence of operations CALL FORMLN (DER, IDER, FUN, SAMP, ISAMP, I, J) CALL MATMUL (DER, IDER, COORD, ICOORD, JAC, JAG, IT, NOD, IT) CALL TWOBY? JAC, DAC, JACI, JACI, DET) 632) CALL MATMUL (JACI, ACI, DER, IDER, DERIV, IDERIY, IT, IT, NOD) where NOD is the number of element nodes four in this case) and IT the number of coordinate dimensions (two in this case), will be found in programs for plane elasticity using four-noded quadrilateral elements. After these operations have been performed, the derivatives of the element shape functions with respect to (x,y) are held in DERIV while DET is the determinant of the Jacobian matrix, required later for the purposes of numerical integration. Following the conven tion adopted in Chapter 1, IDER is the working size of array DER and so on. “The matrix BEE in (3.24) can now be assembled as it consists of components of DERIY. This assembly is performed by the subroutine FORMB for plane problems. Thus the strain-displacement relations are EPS = BEE+ELD 633) where in the case of a foursnode quadrilateral ELD = {uy 85 ty Pp ly 05 ty 04) 34) “The variables wand vare simply the nodal displacements inthe x and y directions respectively assuming the nodal ordering of Figure 3 ‘The components of the integral of BEE DEE* BEE, evaluated at the Gauss points given by all combinations of | and J,can now be computed by transposing, BEE (o give BT, by forming the stress-strain matrix using the subroutine FMDEPS (for plane strain) where (335) 6 and by carrying out the multiplications BTDB = BT +DEE*BEE 336), AA plane stress analysis would be obtained by simply replacing FMDEPS by FMDSIG. ‘The integral is evaluated numerically by KM=DET+ ¥ Y WieWy«BTDB, 37) where W, and W, are the Gaussian weighting coefficients held in array SAMP. ‘As soon as the element matrix is formed from (3.37) itis assembled into the global system matrix (or matrices) by special subroutines described later in this chapter. Since the assembly process is common to all problems, modifications to the clement matrix calculation for different situations will first be described. 39.1.2 Plane strain (stress) analysis of elastic solids using triangular elements ‘The previous section showed how the stiffness matrix of a typical four-node quadrilateral could be built up. In order to use triangular elements, very few alterations are required. For example, for a six-node triangular element, the values of the shape functions and their derivatives with respect to local coordinates at a particular location (Ly,L,,Ls) are formed by the subroutine FMTRI6 ‘This delivers the shape functions @L,-1)L, )* 4L,L; _} @b,-DL: Fune} Oa) 6.38) QL, 1)Ly 4L4L, and their derivatives with respect to Ly and Ly aFUNT per=|_°!" PUNT Ls [9 4, 0 =4L; -@L)-1) 4(ly-Ly) 0 4Ly @Ly-1) 4(Ly-L,) -@Ly-1) 41, (39) The nodal numbering and the order in which the integration points are sampled for a typical three-point scheme are shown in Figure 3.9(b). * 64 For integration over triangles, the sampling points in local coordinates (Lj,L,) are held in the array SAMP and the corresponding weighting cocficients in the vector WT. Both of these items are provided by the subroutine NUMINT ‘The version ofthis subroutine described in Appendix $ allows the total number of integrating points (NIP) to take the value I, 3, 4 6, 7, 12 or 16. The coding should be referred to in order to determine the sequence in which the integrating points are sampled for NIP > 3. The sequence of operations CALL FMTRI6 (DER, IDER, FUN, SAMP, ISAMP, I) CALL MATMUL (DER, IDER, COORD, ICOORD, JAC, JAC, IT, NOD, IT) G40) CALL TWOBY? (JAC, TAC JACI, JACI, DET) CALL MATMUL. (JACI, IACI, DER, IDER, DERIY, IDERIV, IT, IT, NOD) (here NOD now equals 6) places the required derivatives with respect to (x, y)in DERIV and finds the Jacobian determinant DET. Finally, numerical integration is performed by KM =05«DET+ }. Wi+BTDB, Gal) the factor of 05 being required because the weights add up to unity whereas the ‘area of the triangle in local coordinates only equals one half 'A higher order triangular element with fifteen nodes is also considered in Chapter 5. The shape function and derivatives for this element are provided by routine FMTRI5; otherwise the sequence of operations is virtually identical to those described above for the six-node element. 39.1.3 Axisymmetric strain of elastic solids The strain-displacement relations can again be written by (3.33) but in this case BEE must be formed by the subroutine FMBRAD where the cylindrical coordinates (r,2) replace their plane strain counterparts (.9), The stress-strain matrix is still given by an expression similar to (3.35) but the 4x 4 DEE matrix is formed by FMDRAD In this case the integrated element stiffness is (2.66), namely KM -| JorspeeenEEsrara: 642) 65 Considering a four-node element, the isoparametric property gives, r=FUN s " = SP FUN(K)+COORDEK) =SUM (43) Hence we have KM=SUM«DET# YY) WieW;eBTD3,, 44) By comparison with (3.37) it may be seen that when evaluated numerically the algorithms for axisymmetric and plane stiffness formation will be essentially the same, despite the fact that they are algebraically quite different. This is very significant from the points of view of programming effort and of program flexibility. However (3.44) now involves numerical evaluation of integrals involving l/r which do not have simple polynomial representations. Therefore, unlike planar problems, it will be impossible to evaluate (3.44) exactly by numerical means, especially as r (ie. SUM) approaches zero, Provided integration points do not lie onther = Oaxis, however, reasonable results are usually achieved using a similar order of quadrature to planar analysis. 39.14 Plane steady laminar fluid flow It was shown in (2.115) that a fluid element has a ‘stiffness’ defined by xo { frrxrasay 45) which becomes in program terminology x= [fosuvsexayepenivassy and the similarity to (3.24) is obvious. The matrix DERIV simply contains the derivatives of the element shape functions with respect to (x,)) which were previously needed in the analysis of solids and are formed by the sequence (3.32) while KAY contains the permeability properties of the clement in the form PX 0 [* 2] = In the computations, DTKD=DERIV'eKAY+DERIV G48) KAY 6 is formed by appropriate matrix multiplications and the final matrix summation for a quadrilateral element is KP=DETe SS WeWysDTKD,, 349) By comparison with (3.37) it will be seen that these physically very different problems are likely to require similar solution algorithms. 3.9.1.5. Mass matrix formation ‘The mass or inertia matrix was shown in Chapter 2, e.g, (2.65), to take the general form Mi=p { [NTNaxay 3.50) where N are just the shape functions. In the case of plane Muid flow, since there is only one degree of freedom per node, the ‘mass’ matrix is particularly simple in program terminology, namely MM ~ RHO» | [FUNT+FUNExdy G51) By defining the product of the shape functions FTF = FUN'*FUN 52) we have MM =RHO*DET+ SY) W.eWyeFTF, G53) where RHO is the mass density. In the case of plane stress or strain of solids, because of the arrangement of the displacement vector in (3.34) it is convenient to use a special subroutine ECMAT to form the terms of the mass matrix as ECM before integration. Thereafter Mat = RHO { [eM axay =RHO+DET+ 5. 5. Wy#W,+ECM,, G54) When ‘iumped mass approximations are used MM becomes a diagonal matrix. For a four-noded quadrilateral (NOD = 4), for example, MM =(RHO+AREA/NOD)«I 3.55) where AREA is the clement area and I the unit matrix. For higher order elements, however, all nodes may not receive equal weighting. 3.9.16 Higher order quadrilateral elements 6 To emphasise the ease with which element types can be interchanged in programs, consider the next member of the isoparametric quadrilateral group, namely the ‘quadratic’ quadritateral with midside nodes shown in Figure 3.10 The same local coordinate system is retained and the coordinate matrix becomes * coorp = | ** xs % ‘The shape functions are now 4(1—XD(1— ETA)(—XI- ETA —1) 41 =X1)(1 ETA?) 40=X1jq + ETA)(—X1 + ETA 1) run =] {¢-XP)0+ ETA) (1 +X0(1 + ETA)(X1+ ETA—1) 4 +X) - ETA?) (1 +X0(1 — ETA)(XI~ ETA ~1) 4d_—X7-)(1— ETA) yi Ya Ya Ye vs Ye yy vr 3.56) 57) which, together with their derivatives with respect to local coordinates, DER, are Figure 3.10 General quadratic quadsilateral ‘element 68 formed by the subroutine FMQUAD The sequence of operations: CALL FMQUAD (DER, IDER, FUN,SAMP, ISAMP, I,J) CALL MATMUL (DER, IDER, COORD, ICOORD, JAG, JAC, IT, NOD, IT) CALL TWOBY? (JAC, JAC, JACI, JACI, DET) 58) CALL MATMUL (ACI, ACI, DER, IDER, DERIV, IDERIV, IT, IT, NOD) (where NOD now equals 8) places the required derivatives with respect to (x, ))in DERIV and finds the Jacobian determinant DET. ‘Another plane clement used in the programs later in this book is the Lagrangian nine-node element, This element uses ‘complete’ polynomial inter- polation in each direction, but requires a ninth node at its centre (Figure 3.11). ‘The shape Functions for this element are given by (X1)(X1 = 1)(ETAVETA — 1) 1 = XI(XI— (ETA + (ETA = 1) HOXI(XI— ETAMETA +1) —HXI + 1X1 — 1)(BTAY(ETA +1) FUN=| HXI\XI + N(ETAVETA +1) G59) = HXI)(XI+ ETA + (ETA 1) HOXI(XL + I(ETAMETA ~ 1) = HOX1 + 1X1 — 1(ETANETA = 1) (X14 (XI N(ETA + 1(ETA —1) Figure 3.11 The Lagrangian nine-node ‘element 69 and are formed together with their derivatives with respect to local coordinates by the subroutine FMLAG9 A comparison of 3.58), (3.40) and (3.32) indicates that programs using diferent clement types will be almost identical, although operating on different sizes of arrays. Indeed, the reader could readily devise a completely general two- dimensional program in which element type selection was accomplished by data (ie, FORMLN, FMQUAD, FMLAG9, FMTRIG, ete, could be merged into a single routine) 39.17 Three-dimensional cubic elements ‘As was the case with changes of plane element types, changes of element dimensions are readily made. For example, the eight-node brick element in Figure 3.12 is the three-dimensional extension of the four-noded quadrilateral, Using the local coordinate system (£,n,4) the coordinate matrix is ee Shh Xs Ya fa coorp=|*+ % 7 (2.602) Xs Ys 75 Xe Ye 2 xy ye xe Ye Fe Figure 3.2 General linear brick element 0 ‘The shape functions are {1 —XI(1— ETA) = ZETA) | (1 —XI(1 — ETA)(I + ZETA) (1+ XI(1 = ETA)(I + ZETA) 4. +XI(1— ETA) ~ZETAD [1 —X1)(1 + ETA)( -ZETA) | 41 —X1(1 + ETA)(I + ZETA) AU+XD(.+ ETA) + ZETA) 4 + X10 + ETA)( -ZETA) (3.606) which together with their derivatives with respect to local coordinates are formed by the subroutine FMLIN3 The sequence of operations: CALL FMLIN3 (DER, IDER, FUN,SAMP,ISAMP.1.J,K) CALL MATMUL (DER, IDER, COORD, ICOORD, JAC, JAG, IT, NOD, IT) CALL TREEX3 (JAC, JAC, JACI, IACI, DET) 361) CALL MATMUL (JACI, JACI, DER, IDER, DERIV, IDERIV, IT, IT, NOD) (where NOD now equals 8 and IT now equals 3) results in DERIV, the required gradients with respect to (,y,2) and the Jacobian determinant DET. rer order brick element with 20 nodes (Figure 3.13) is also used in * , pw 4 3 18 2 19 1 ‘2 7 Figure 313 A 20-node brick element 1 programs later in the book, The shape functions for this element are provided by the subroutine FMQUA3 and are not quoted here, but see the coding in Appendix 5. For the three-dimensional elastic solid the element stiffness is given by sor= [[forspeesassdcna a where BEE and DEE must now be formed by the subroutines FORMB3 \ FORMD3 respectively. The final summation becomes KM=DET+ ). 5.) Wye Wye WesBTDB,y x 3.63) where W,, W,, Wx are as usual Gaussian multipliers obtained from SAMP. For three-dimensional steady laminar fluid flow the element ‘stiffness’ is KP= il} |DERIV'-KAY«DERIV dxdydz “i ‘pal axes permeability tensor forkpaxayas 6m where KAY is the p PX 0 0 . Kay=|0 PY 0 3.65) 0 0 PZ Gaussian integration gives Nap Nor Nor KP=DET« SY, WieWeWaeDTKD is (3.66) Which is similar to (3.63). ‘The mass matrix for potential flow is MM = RHO+ [front-Funasayas =RHO+ [[frreaxayas sn Which is replaced by quadrature as MM = RHO+DETs ¥° ey WeWeWxtFTFiyx (3.68) n In solid mechanics, a three-dimensional equivalent of ECMAT would be Fequited. This development is left to the reader. 39.18 Three-dimensional tetrahedron elements ‘An alternative clement for three-dimensional analysis is the tetrahedron, the simplest of which has four corner nodes. The local coordinate system makes use of volume coordinates as shown in Figure 3.14, For example, point P can be identified by four volume coordinates (Ly,L3,Ls,L4) where 432 (3.69) As is to be expected, one of these coordinates is redundant due to the identity Lytlythytly=1 6.70) The shape functions for the constant strain tetrahedron are a L FUN=})7 any L, z poe x 2 Volume of 1 tetrahedron = Vy Figure 3.14 A four-node tetrahedron element B and these, together with their derivatives with respect to L,, Land L, reformed by the subroutine FMTETS The sequence of operations: CALL FMTET4 (DER, IDER, FUN, SAMP, ISAMP, 1} CALL MATMUL (DER, IDER, COORD, ICOORD, JAC, JAC, IT. NOD, IT) CALL TREEX3 (JAC. LAC, JACI, IACI, DET) CALL MATMUL (JACI. IJACI, DER, IDER, DERIV, IDERIV, IT, IT, NOD) Gm (where NOD now equals 4) results in DERLV which is needed to form the element matrices and DET which is used in the numerical integrations, The integration is performed by KM =4eDETs 5 W,«BTDB, 073) ‘where W, isthe weighting coefficient corresponding to the particular integrating point. The factor dis required because the weighting coefficients provided by the subroutine NUMIN3 always add up to unity whereas the volume of the tetrahedron in local coordinates equals one-sixth, The addition of mid-side nodes results in the ten-noded tetrahedron which represents the next member of family. This element could easily be implemented by replacing FMTETS by an appropriate subroutine. Transient, coupled poro-clastic transient and elastic-plastic analyses all involve manipulations of the few simple element property matrices described above. Before describing such applications, methods of assembling elements and ‘of solving linear equilibrium and eigenvalue problems must first be described. 392 Assembly of elements ‘The nine special purpose subroutines READNF FORMKVY FORMKU FMBIGK FKDIAG FORMKB FORMTB FORMKC FSPARV fare concerned with assembling the individual element matrices to form the system matrix that approximates the desired continuum. Allied to these there must be a specification of the geometrical details, in particular the nodal ‘coordinates of each element and the element’s place in some overall node numbering scheme, " Large finite clement programs contain mesh generation code which is usually of some considerable complexity. Indeed, in much finite element work, the most expensive and time consuming task is the preparation of the input data for the imesh generation routine. In the present book, this aspect of the computations is essentially ignored and attention is restricted to simple classes of geometry which ¥ Boundary restrained at zero potential NOD = & NXE NODOF= 2 NYE 1DOF = ON Restrained in both directions (b) Two degrees of freedom per node Restroined at zero pressure Restrained in x direction Restrained in both directions (c) Coupled problem with three degrees of freedom per node igure 3.15 Numbering system and data for regular meshes 1s can be automatically built up by small routines. Examples are the simple meshes made up of four-noded rectangles shown in Figure 3.15 In the writers’ experience, users often want to solve specific classes of problem for which itis the most effective practice to write specialised mesh generation routines. For example, a user interested in the analysis of turbine blades has different specification requirements from one who is interested in analysis of earth dams. In the present work, the majority of programs use plane rectangular ‘elements, so subroutines such as GEOM4Y (four-node numbering in the y direction) are provided to generate coordinates and freedom numbering ‘A full list of ‘geometry’ routines is given in Appendix 3 With reference to Figure 3.15, the nodes of the mesh are first assigned numbers as economically as possible (ie. always numbering in the ‘shorter’ direction to minimise the bandwidth). Associated with each node are degrees of freedom (displacements, uid potentials and so on) which are numbered inthe same order as the nodes. However, account is taken at this stage of whether a degree of freedom exists or whether, generally at the boundaries of the region, the freedom is restrained, in which case the freedom number is assigned the value zero. ‘The variables in Figure 3.15 have the following meaning: NXE elements counting in x direction NYE elements counting in y direction N otal number of (non-zero) freedoms in problem Ww semi-bandwidth NN total number of nodes in problem NR number of restrained nodes NOD __ nodes per element NODOF freedoms per node IDOF freedoms per element TTOT total freedoms per element (for coupled problems) {In potential problems described by these types of element there is one degree of freedom possible per node, the potential 6. In plane or axisymmetric strain there are two, namely the wand v components of displacement specified in that order. In coupled solid-Muid problems the order is ut. 1, (where uy = excess pressure) and in three-dimensional displacement problems u, v, w, For Navier-Stokes applic- ations the order 1, p, v (where p= pressure) is adopted. This information about the degrees of freedom present in specific problems is stored in an integer array NF called the ‘node freedom array’, formed by the building block subroutine READNF. ‘The node freedom array NF has NN rows, one for each node in the problem analysed, and NODOF columns, one for each degree of freedom per node. Formation of NF is achieved by specifying as data to the subroutine the number 16 ‘of any node whose freedom is restrained in some way, followed by the digit 0 ifthe node is restrained in that sense and by the digit 1 ifit is not. This is the reverse of the convention employed in the first edition of this book. For example, to create NF lor the problem shown in Figure 3.15(b) the data specified and the resulting NF ate listed in Table 34. Building block subroutines of the GEOMSY type can then be constructed using NF as input. For example, the rectangular meshes need to be specified by the number of elements in the x(r) and y(z) directions respectively (NXE, NYE), together with their sizes (AA, BB). The subroutine has to work out the nodal coordinates COORD of each clement together with a vector G called a steering Vector’, which contains the numbers of the degrees of freedom associated with that particular element in accordance with the nodal order 1234 in Figure 3. For example, element E in Figure 3.15(b) has the steering vector G=[l 12.9 10 0 13 0 14] 3.74), Inits turn G is used to assemble the coeicients of the element property matrices such as KM, KP and MM into the appropriate places in the overall coefficient matrix. This is done according to the following scheme: Scene teen ceeee eee eee eee Building Upper or block Banding Symmetry of lower Storage subroutine considered? coefficients?_—triangle?_—_ scheme FORMKV (real) Yes Yes Upper Columns FORMKC. (complex) Yes Yes Upper Columns FORMKB Yes Yes Lower Rows FORMKU ‘Yes ‘Yes Upper Rows FORMTB Yes No Both Rows FMBIGK No No Both Rows FSPARV Yes Yes Lower Rows(skyline) Se earae ae ae eae een tee gee eee eee [A simple three-dimensional mesh is shown in Figure 3.16 and the system coefficients can again be assembled using the same building blocks. “Although the user of these subroutines does not strictly need to know how the storage is carried out, examples are given in Figure 3.17 for the most commonly used assembling routines FORMKV, FORMKB and FSPARV. Subroutine FORMKV stores the global stiffness matrix as a vector of length Neil +1) with the diagonal terms occupying the first N_ positions (Figure 3.17@). Subroutine FORMKB stores the global stiffness matrix as a rectangular n Table 34 Formation of typical nodal freedom array NF Data read by procedure Resulting NF array 300 2 600 4 900 0 wood 6 nod 8 200 0 Plane restrained 02728 293031323334 inx direction ¥ dracon) } Noo = 8 NXE v0 ooor = 3 NYE 09 WOOF = 24 NZE N Ww NN NR = Fixed base Figure 3.16 A simple three-dimensional mesh matrix with N rows and (IW + 1) columns. The diagonal terms are held in the IW + 1th column (Figure 3.176). Both these strategies include a number of zeros in the storage due to the variability of the bandwidth and the inclusion of ‘ictitious' zeros outside the actual array to simplify the subseripting. Subroutine FSPARY stores only those numbers within the ‘skyline’ (Figure 3.17c) and can lead to improvements in storage requirements, Inform- B a cs Ree Mmm ‘Subroutine Ne orate 4 NNN gern its : NANA es DS ° he (a) ‘Subroutine FORMKB, KB axray with diagonal terms in tW- fth column (b) Subroutine FSPARV KV. vector with positions of diagonal terme stored in vector KDIAG te Figure 317 Different storage strategies p ation regarding the position of the diagonal terms within the resulting vector must be held in the integer vector K DIAG formed by subroutine FK DIAG. Some examples of this type of storage are given later in the book (e.g, Program 5.10) 310 SOLUTION OF EQU LIBRIUM EQUATIONS After assembly, including specification of boundary conditions, a typical equilibrium equation is KV+DISPS = LOADS 3.75) in which the coelficients of KV have been formed by FORMKV and LOADS are usually just input as data. The black box routines for equation solution depend of ‘course on the method of coefficient storage according to the following scheme: Solution Coefficients Matrix/vector routines formed by product CHOLIN. CHOBK1 cloaks} CHOBAC FORMKB BANMUL GAUSBA SOLvan FORMTB BANTML_ COMRED COMBK 1 connes} COMBAC FORMKC SPARIN SPARBI spanoat SPABAC FSPARV LINMLS Tnfact,to save storage, al of the solution routines overwrite the right hand side by the solution. That is, on completion of (3.75) the vector LOADS holds the solution DISPS, The storage strategy adopted by the compiler and the hardware, as described in Chapter I, strongly influences the solution method that should be adopted. For example, on a virtual store machine in which FORTRAN stores by’ columns, the CHOLIN, CHOBAC options should be avoided, because of the excessive paging requests that would be involved. 80 31 EVALUATION OF EIGENVALUES AND EIGENVECTORS. Amongthe black box subroutines provided are TRIDIA which tridiagonalises an. NxN symmetric matrix and EVECTS which finds the cigenvalues and eigenvectors. These same subroutines could be used whether lumped or distributed masses are assumed, it being necessary to reduce the eigenproblem to standard form Ax=0%x (3:76) before solution. This is achieved in different ways for the two mass assumptions, 3.11.1 Lumped masses The eigenproblem to be solved is BIGKX = OMEGA?+DIAGeX G77, where BIGK and DIAG are the system stiffness and mass matrices respectively. The stiffness is stored as a complete Nx N matrix having been formed by FMBIGK. The mass is actually a diagonal matrix which can be stored in the vector DIAG. : In order to reduce (3.77) to the required form (3.76) itis necessary to split the ‘mass matrix by forming DIAG +L 378) While thisis essentially a Choleski split, itis particularly simple in the case of a gonial matrix. The non-zero terms in Lare simply the square roots of the tems in DIAG and the inverse of L merely consists of the reciprocals of these square roots. Thus BIGK+X = OMEGA?s+L+L"sX (3.79) which is then reduced to standard form by making the substitution L™sX=Z (3.80) Then L-tsBIGK +L “T4zZ. = OMEGA?4Z es) is ofthe desired form. Having solved for Z, the required eigenvectors X are readily recovered using (380), Subroutine TRIDIA requires an extra vector UDIAG as working space which is then input to routine EVECTS. Ti the case where the mass has been lumped, an alternative, more eficent approach is to form the stifiness in band form using FORMK.U. The operation L*eKBeL is casily carried out in this case, and the resulting eigenvalue problem can be solved for the cigenvalues using subroutines BANDRD and BISECT. at 3A1.2 Distributed masses In this case the mass matrix is no longer diagonal, and is stored as a band matrix having the same bandwidth as the stiffness matrix. The eigenproblem is now KB+X = OMEGA?+MBeX (3.82) where system stiffness KB and mass MB are both formed by FORMKB. ‘The mass matrix must now be split using CHOLIN so that KB+X = OMEGA? +L+L"4X 8.83) Again let LX =Z 84) X=L"Z, 85) so that the symmetrical eigenproblem becomes BIGK+Z =L~!«KBeL~"«Z = OMEGA*+Z 6.86) In order to avoid computing inverses, the N x N matrix BIGK is formed in two stages. First the equation LeBIGK = KB G87) is solved for BIGK where L and KB are banded using the subroutine NBKBAN. Vhis is equivalent to vhe statement BIGK = N7'*KB (3.88) Secondly, the transpose is taken of the BIGK that has just been found and the equation L«BIGK =(L~'+KB)" G.89) is again solved for BIGK using subroutine LBBT hence BIGK =L7'«(L-1«KB)F (3.90) Finally, using the identity (AB)"=BTAT and the fact that for a symmetrical matrix KB = KB", we get BIGK =L~'#KBeL-T G91) whichis the required matrix from (3.86) in standard form. After the vectors Z have been found the true eigenvectors X are recovered by solving (3.85) using CHOBK2 Analysis of this type will be found in Chapter 10. 3.11.3 Lanczos algorithm ‘The transformation techniques previously described are robust in that they will ot fail to find an eigenvalue or to detect multiple roots, However, they are 2 expensive to use on large problems for which, in general, vector iteration methods ‘are preferable. The heart of all of these involves the matrix-by-vector products listed in Section 3.10, using whatever storage strategy is adopted for the global matrices, For example, the programs described in Chapter 10 use subroutines modified from those described by Parlett and Reid (1981). These subroutines calculate the eigenvalues and eigenvectors of a symmetric matrix, say A, requiring the user only to compute the product and sum Av+u for w and ¥ provided by the subroutines. This would involve, for example, routines BANMUL and VECADD. ‘There is a slight additional complexity in that, as in (3.82), we often have the generalised eigenvalue problem to solve KB«X = OMEGA?«MB+X 82) If mass factorisation is chosen, a Choleski factorisation gives MB=L+L™ (CHOLIN), Then on each Lanczos iteration, whenever u = Av + uis called for, we compute @ =v (CHOBK2) (i) 2%, =KBz, (BANMUL) (ii) Lz) =2, (CHOBK1) (v)u =utz, (VECADD) Finally, the true eigenvectors are recovered from the transformed eigenvectors by backward substitution (CHOBK2) (compare equation 3:80) ‘The Lanczos vector subroutines are LANCZ1 and LANCZ2. This algorithm has proved to be reasonably robust and is certainly efficient. However, itis possible for clustered eigenvalues to cause difficulties. 32 SOLUTION OF FIRST ORDER TIME-DEPENDENT PROBLEMS A typical equation is given by: dg pp + PM’? 8.92) where Q may be afunction of time. There are many ways of integrating this set of, ordinary differential equations, and modern methods for small numbers of ‘equations would probably be based on variable order, variable timestep methods with error control (e.g. “SPRINT” in the NAG mathematical subroutine library However, for large engineering systems more primitive methods are still mainly .° used, involving linear interpolations and fixed time steps At. The basic algorithm is written: dds os dbo dr ar Ko, + 0.601+ PM 0 |-90.+4~006 (393) 83 leading to the following recurrence relation between timesteps ‘0’ and ‘1' (PM + 04:KP)g, = [PM—(1— Ar KP] gy + 94/Q, +(1—)ArQe 8.94) This system is only unconditionally ‘stable’ (je. errors will not grow unboundedly) if @>4, Common choices would be @=4, giving the ‘Crank— Nicolson’ method (assuming for the moment Q = 0} ‘ (emstixe)e.-(om—Me)a a9 and @= 1 giving the ‘fully implicit” method: (PM + ArKP)¢, = PMgy 6.96) After assembly of these element equations into system equations using the usual ofthe left hand side coefficients, which is atime consuming operation, need only be performed once, as shown in the structure chart in Figure 3.18, Forallthe elements ) Calculate the element matrices KP and PM and assemble the systom matrices BK and BP using FORMKV Form the matrix BP + 84¢8K reduce this matrix using BANRED For all he imesteps: Calculate the vector (BP — (1 ~0) A¢8K}4, using LINMUL back-substitute using BACSUB to give result let de 4, and repeat Figure 3.18 Structure chart for first order time dependent problems by ‘implicit methods 84 The ‘implicit’ strategies described above are quite effective for linear problems (constant KP and PM), However, storage requirements can be considerable, and in non-linear problems the necessity to refactorise BP +041 BK can lead to lengthy calculations ‘An alternative, widely used for second order problems (see Section 3.15), is to set =0 and to ‘lump’ the PM matrix (see Section 2.2) In that case the system to be solved is PM¢, =(PM — Ar KP), 697 where PM is a diagonal matrix and hence @, can be obtained ‘explicitly from $y without resorting to equation solution. Indeed, by appropriate manipulation of element PM and KP matrices, no large ‘global’ arrays are necessary, as element- by-element (EBE) summation is possible. The disadvantage is that (3.97) is only stable on condition that Ar is small, and in practice perhaps so small that real times of interest would require an excessive number of steps. ‘An alternative approach which conserves computer storage while preserving the stability properties of implicit methods involves ‘operator splitting’ on an clement-by-clement product basis (Hughes et al, 1983), Although not necessary for the operation of the method, the simplest algorithms result from ‘lumping’ PM. The global equations are, for Q = 0, , =(BP + 841 BK) '[BP — (1 — #)At BK] hy 8.98) ‘Thus BP is the global PI BP= 5 PM G99) tn and BK is the global KP BK= KP 6.100) The EBE splitting methods are based on binomial theorem expansions of (BP + 04r BK)! which neglect product terms. When BPs lumped (diagonal) the ‘method is particularly straightforward because BPcan be effectively be replaced byL (1+ 0ABK)~* = (1-4 0a KP)? = T] (soapy? G.101) where [] indicates a product. As was the case with implicit methods, optimal accuracy consistent with stability is achieved for 0— 4, It is shown by Hughes et al, (1983) that further optimisation is achieved by spliting further to KP =(KP)+@KP) 3.102) and carrying out the product (3.101) by sweeping twice through the elements. ‘They suggest from first to last and back again, but clearly various choices of sweeps could be employed. It can be shown that as Ar +0, any of these processes converges to the true solution of the global problem (for lumped PM of course). A 85 Input and initialisation Foralleloments do Forall Gauss pointsdo Form and sum KP contribution ‘Store element KP ‘Assemble global mass Forallelementsdo Retrieve KP Invert M+ 0A¢KP/2=B Form B x (M~(1 —6)8¢KP/2) Store A (—_ Foratimestepedo For both passes do. Select appropriate part of dy Figure 3.19 Structure chart for the element-by- clement product algorithm (2-pass) structure chart for the process is shown in Figure 3.19 and examples of all the methods described in this section are described in Chapter 8. Consistent mass versions are described by Wong (1987) 3.13. SOLUTION OF COUPLED NAVIER-STOKES PROBLEMS For steady state conditions, it was shown in Section 2.17 that a non-linear system of algebraic equations has to be solved, involving, at element level, submatrices C1, Cy,,¢te. These element matrices contained velocities @ and 6 (called UBAR 86 and VBAR in the programs)together with shape functions and thei desivativesfor the velocity and pressure variables. It was mentioned that it would be possible to use different shape functions for the velocity (vector) quantity and pressure (scalar) quantity and this is what is done in the program in Chapter 9, The velocity shape functions are designated as FUN and the pressure shape functions as FUNF. Similarly, the velocity derivatives are DERIV and the pressure derivatives DERIVF. ‘Thus the element integral have to be evaluated numerically, typically C11(= C33). i DERIV™+KAY«DERIV dx dy + | fosareFunspeniva, )dxdy - {I VBAR+FUN*DERIV@, -)dxdy (6.103) In this equation, DERIV(I, — ) signifies the first row of DERIV and so on. The diagonal terms in KAY represent the reciprocal of the Reynolds number, Note the identity of the first erm of CL with (3.46) for uncoupled flow. ‘The remaining submatrices are RHO a RHO cae! [JFon-perivra, —)dxdy C3: {[frox-peniwre,—yeray G.104) a= [frone-peaiva, ~bxdy B= | frone '* DERIV(2, —)dxdy where RHO is the mass density The (unsymmetrical) matrix built up from these submatrices is formed by a special subroutine called FRMUPV and the global, unsymmetrical, band matrix is assembled using FORMTB. The appropriate equation solution routines are GAUSBA and SOLVBA. 3.14 SOLUTION OF COUPLED TRANSIENT PROBLEMS The element equations for Biot consolidation were shown in Section 2.22 to be given by KMr+Cu, =F (3.105) 87 where KM and KP are the now familiar solid and fluid stfinesses. The matrix Cis the connection matrix which, iit is assumed that the same linear shape functions ‘govern the variation of porewater pressure and displacements within an element, is given for plane strain by c= [ fvorsruNavay 6.106) The matrix product is called VOLF and C is numerically integrated as caere'SS WeWVOLR, 6.107 The vector VOL is related to the volumetric strain in an element. In plane strain, for example, the strain-displacement relation is * { “| = BEE+ELD G.108) where ELD are the element displacements and aN, a Ong ani ox 9 & oo & o & ° ON, aN, Ns ON. BEE=;/ 0 =—+ 0 =4 0 =* 0 + (3.109) éy éy ey oy 6 Y 2M, aN, ONy ONy ONy BN éy dx dy ax dy ax ay ax The element volumetric strain can therefore be written e,+6,=VOLT+ELD G.110) where ou -(% Dy i dxtOyt Oxtiidy tox: Fe] aun and this vector is worked out by the subroutine VOL2D. ‘To integrate equations (3.105) with respect to time there are again many ‘methods available, but we consider only the simplest linear interpolation in time using finite differences thus: KMr, + 6Cp, = (@~ 1)KMry + (6 1)Cby + F OCTr, — @PALKP, = OC¥r — 6(8—- )ArKPGy Where F is assumed here to be independent of time. In the Crank-Nicolson type of approximation, 0 is made equal to 4 in both of, 112) 88 (3.112), leading to the recurrence relation: ‘KM c Ty —-KM -C Fey i {"} 2 2 It will be shown in Chapter 9 that this approximation can lead to oscillatory results. The oscillations can be smoothed out either by using the fully implicit version of (3.112) with 0= 1, which leads to the recurrence relation [e" -swelfat-Ler alfs}e{a} ene (ot by writing the first of (3.112) with 0 = 1 and the second with 8 = 4. This hybrid method leads to a recurrence relation KM C Jerny [O07 cry { c ~ Hep t- ct Mx! Ne oo Results of ealculations using (3.112) are presented in Chapter 9. The algorithms will clearly be of the same form as those described previously for uncoupled equations (3.95, 396) and the Structure Chart of Figure 3.18. A right hand side ‘matrix-by-vector multiplication is followed by an equation solution for each timestep. As before a saving in computer time can be achieved if KM, C and KP are independent of time, and constant AV is used, because the left hand side matrix needs to be reduced only once. Note that the left hand side matrix is always symmetrical whereas the right hand side is not. Therefore FORMKV or FORMKB can be used to assemble the left hand side system equations from G.113), 3.114) of (3.115) whereas FORMTB must be used to assemble the right hand side system, Element by element summation could be most effective in 3.114) and (3.115) due to sparsity 3.15 SOLUTION OF SECOND ORDER TIME-DEPENDENT PROBLEMS. ‘The basic second order propagation type of equation was derived in Chapter 2 and takes the form of 2.92), namely KMr+MMS7=F() @.116) or a where in the context of solid mechanics, KM is the element elastic stiffness and MM the element mass, {n addition to these elastic and inertial forces, solids in ‘motion experience a third type of force whose action is to dissipate energy. For example, the solid may deform so much that plastic strains result, or may be subjected to internal or external friction. Although these phenomena are non- linear in character and can be treated by the non-linear analysis techniques given 89 in Chapter 6, itis most common to linearise the dissipative forces, for example by assuming that they are proportional to velocity. This allows (3.116) to be modified to oF KMr seme + MM! F(), 3.17) where CM is assumed to be a constant damping matrix. The three most popular techniques for integrating 3.117) with respect to time will now be described. They are the ‘modal superposition’, ‘direct integration’ and ‘complex response’ ‘methods, the last of which transforms (3.117) into the frequency domain (Clough and Penzien, 1975), 3.18.1 Modal superposition This method has as its basis the analysis of the free undamped part of (3.117), that is when CM and F are zero. The reduced equation is xe +o any which can of course be converted into an eigenproblem by the assumption of harmonic motion : reasin(or+¥) G.119) (6.120) Solution of this eigenproblem by the techniques previously described results in N ‘modal veetorsa, where N is the total number of degrees of freedom present. These modes can be considered to be columns of a modal matrix A where [a] i= | to NMODES 21) Often it is not necessary to include the higher frequency components in an analysis, o that NMODES < N Because ofthe properties of cigenproblems the mode shapes possess orthogon- ality one to the other such that to give KMa~o? MMa =! a!MMa, a7KMa = af inj 122) aIMMa, Ze) al KMa,=KPR,, 123) where MPR and KPR are the diagonal ‘principal’ mass and stiffness matrices. ‘Use of these relationships in (3.118) has the effect of uncoupling the equations in 90 terms of the principal or ‘normat’ coordinates ap in the diagonal matrix equation Mer +KPRap=0 6.124 The normal coordinates are related to the original coordinates by a= 2 Ayer; 3.125) and the effect of uncoupling has been to reduce the vibration problem to an cigenproblem (3.120), leading to a set of independent second order differential equations, whose number is NMODES (3.124). A final superposition process can be used to recover the actual displacements (3.125) 3.15.1.1 Inclusion of damping Free, damped vibrations, governed by airs omy eg can be handled by the above technique if it is assumed that the undamped mode Shapes are also orthogonal with respect tothe damping matrix CM in the way described by (3.122) and (3.123). This can readily be achieved if CM is taken to be a linear combination of MM and KM, (CM =oMM + $KM. e127 where a and ff are scalar variables, the so-called ‘Rayleigh damping’ coefficients, Because of the orthogonality with respect to CM the uncoupled normal coordinate equations are Mpr@22. cpr? + KPR 6.128) a 2 where CPR =aMPR + /KPR 6.129) ‘The modal matrix is usually normalised with respect to MM so that CPR = (24 fo) G.130) ‘Therefore each ordinary differential equation (3.128) has the form Pap 228P Fa tet POSE + oF =0 G31) and and f can be related to the more usual ‘damping ratio'y (Timoshenko et al, 1974) by means of a+ fo? 0 8.132) 1 By working in normal coordinates it has become necessary to take a constant y for the complete mesh being analysed, although y could be varied from mode to mode. Since many real systems contain areas with markedly different damping. properties, this is an undesirable feature of the method in practice (see Chapter 11). 3.15.1.2 Inclusion of forcing terms ‘When F(2) is non-zero in (3.117), the right hand side of atypical modal equation 3.131) becomes a multiple of F(t) and the transpose of the modal matrix a ay SAP sat for) AP + otap= ARO) 6.133) For example, suppose that in a specific problem only degrees of freedom 10and 12 are loaded with forces cos 1. A typical member of (3.133) would be Hap, 3) 29 + adap, = Feel + (e+ Bet) P+ wap, =(Arout Arz,de0st 3.134) or 2001 |» 4 2%, 9 Far + 270,32 + wt ap, = P,cos it 138) The particular solution to this equation is given by Pia} - @) ‘The normal coordinates having thus been determined, the displacements can be resorted using (135 For more general forcing functions, (3.133) must be solved by other means, for ‘example by one of the direct integration methods described below. a rgparsings (136 315.2 Direct integration ‘There are many methods for advancing the solution of 3.117} with respect to time by direct integration, but attention is first focused on two of the simplest popular implicit methods. In both of these, integration is advanced by one time interval At, the values of the displacement and its derivatives at one instant in time being sufficient to determine these values at the subsequent instant by means of Tecurrence relations. Both preserve unconditional stability, 3.15.2. Newmark or Crank-Nicolson method IFRayleigh damping is assumed, a class of recurrence relations based on linear interpolation in time can again be constructed, involving the scalar parameter @ which varies between 4 and I in the same way as was done for first order problems. 9 ‘Writing the differential equation (3.117) at both the ‘0’ and ‘1’ stations, thus Oro a KMry +(2MM + BKM)"5° +MM‘57°=Fo ary ar KMr, +(@MM + BKM)! + MMS = Fy G37) and assuming linear interpolation in time giving or 1 rye tot aa - | or sofa -oSe 059 | (3.138) ao oe ae rearrangement of these equations leads to the following three recurrence relations: 1 [(« *ah)MM +B+ ane 1 m0arF, + — 981 +(2 gz) MM 1 +h + (9-(-aed KM (3.139) ar 1 art Fo) (3.140) @r,_ 1 (dr, ato oe onl B45 G14) In the special case when 0 = 4 this method is Newmark’s‘f = 4° method, which is also the exact equivalent of the Crank-Nicolson method used in first order problems. There are other variants of the Newmark type but this is the most ‘common. ‘The principal recurrence relation (3.139) is clearly similar to those which arose in first order problems, for example (3.93), (3.112). Although substantially more matrix-by-vector multiplications are involved, together with matrix and vector additions, the recurrence again consists essentially of an equation solution per timestep. Advantage can as usual be taken of a constant left hand side matrix should this occur. 3.15.22 Wilson method This method advances the solution of (3.117) from some known state Fo, Oro/@t, ro ée? to the new solution r,, dr, /dt, dr, /0¢? an interval At later by first linearly 93 extrapolating to a hypothetical solution, say t, dr2/6t, 6%3/ét? an interval dt = OAC later where 14<0<2. ' If Rayleigh damping is again assumed, r, is first computed from 6 3a 3B [ (ear +7z)MM + (e+ 1) fs 6 3a 6 aro aOAt\ dro =F eM (hos +g ot (she 29) 92 +(2+ FP] 3p aro , BOAt Ot +m (Zero 2052 +A 7 (142) ‘The acceleration at the hypothetical station can then be computed from * @ eee (2 —to) 6 tra _ to (3.143) OF "Far “oat a“ ar and thus the acceleration at the true station can be interpolated or ‘averaged! using @r, Fry 1/Pr, Pro Se eae ) oe ‘A Crank-Nicolson equation then gives the desired velocity ar, _ drm, At(@re , Ory a oe (os oe) (3.145) and finally the displacement Ory , At? oR, rated Are Se 6.146) Finally, F, in (3.142) must be replaced by Fy + 0(F,—Fo) to complete the algorithm. ‘The principal recurrence relation (3.142) s again of the familiar type forall one- step time integration methods. 315.3 Explicit methods and storage-saving strategies The implicit methods described above are relatively safe to use due to their "unconditional stability. However, as was the case for first order problems, storage demands become considerable for large systems, and so can solution times for ‘non-linear problems (even although refactorisation ofthe let hand side of (3.139) or (3.142) is not usually necessary, the non-linear effects having been transposed to the right hand side). The simplest option, which at least minimises storage, is the analogue of (3.97), in which 0 is set to zero and the mass matrix lumped. In the resulting explicit algorithm, operations are carried out element-wise and no global system storage 94 is necessary. Of course the drawbaci timesteps can be very small indeed Since stability is governed by the highest natural frequency of the numerical approximation and since such high frequencies are derived from the stilfest elements in the system, itis quite possible to implement hybrid methods in which the very stiff elements are integrated implicitly, but the remainder are integrated expliciily, Equation solution as implied by (3.139), for example, i still necessary, but the bandwidth of the rows in the coefficient matrix associated with freedoms inexplicit elements not connected to implicit onesis only one. Thus great savings in storage can be made (Smith, 1984). Another alternative is to resort to operator splitting, as was done in first order problems In Chapter 11, implicit, explicit and mixed implicitjexplicit algorithms are described and listed, Although product EBE methods have been programmed (Wong, 1987) they are beyond the scope of the present book. potential loss of stability, so that stable 3.15.4 Complex response The most troublesome feature of linearised solutions to (3.117) is the proper inclusion of damping, Observations indicate that damping can be frequency- independent and that it varies with material type and location, for example being ‘much higher in soils than in steel or conerete and higher in areas of large (plastic) deformation than in elastic regions. It has been shown that the modal superposition method is best suited to the analysis of systems where damping is uniformly distributed over the whole system foreach mode. When damping is not uniformly distributed, the direct integration ‘methods can be used with variable damping in each element (Idriss et al, 1973) ‘but itis still difficult to preserve the frequency independence ofthe damping ratio. ‘A method which does not suffer from either of these drawbacks is the complex response or complex transfer function method (Timoshenko et al.,1974) which is ‘widely used in seismic analyses ofstructure-soil interaction (Lysmer et aly 1974) The method takes as its starting point the undamped equation of motion (2.116) and assumes that F(a) is harmonic, of the form Fw=fe" G47) where f may be complex. In a linearised system this implies that the response r is also harmonic: r=Re™ 6.148) where R is a (possibly complex) amplitude vector. ‘When (3.148) are substituted in (3.116) the set of equations, (KM —@?MM)R =f 149) is obtained which can be solved for R provided that KM—«?MM is non- 95 singular or, in other words, when « is not a natural frequency of the undamped system. The real and imaginary parts of the input f and output R correspond. An advantage of the method is that damping can be introduced in the form of a complex equivalent of KM such that KM* = KM[1 ~ 2)? + 2inV(1 7?) (3.150) This produces the same amplitudes as a modal analysis with damping ratio yand to.a close approximation the same phase. Clearly the equations (KM? — o® MMR = B.151) can be assembled clement by element using varying 7 values when required. For a simple harmonic input with a single frequency «, (3.151) can be assembled into a set of N complex simultaneous equations in the normal way but using assembly routine FORMKC to form the complex left hand side matrix. Solution routines COMRED and COMBAC would then be used to determine R and hence r from (3.148) More usually, F(t) is # general non-harmonic function, for example a seismic record or a series of ocean wave height measurements. The complex response ‘method can still be used ifthe random values of F(t)are converted intoequivalent harmonic components Examples ofthe solution of second order time dependent problems by all of he above types of method are presented in Chapter 11 3.16 CONCLUSIONS The principles by which finite element computer programs may be constructed from building block subroutines have been outlined in this chapter. In general, localcoordinates are used to express the element shape functions, and the element ‘matrices are numerically integrated. However, in the next chapter we begin with programs in which the element stiffness matrix can be explicitly stated. Element assembly into a global system of equations is done automatically usinga nodal numbering system, a ‘node freedom array’ NF anda’steering vector G, Simple boundary conditions are taken care of automatically at this tage. The ‘most common global matrices are the system ‘stif ness’ and ‘mass’ matrices. ‘These matrices are then manipulated to solve three basic types of problem: equilibrium, eigenvalue and propagation. The matrix operations involved are linear equation solution, eigenvalue extraction and linear equation solution with additional matrix-by-vector multiplications and additions Extra features will be introduced as they occur in the examples chapters, but these will be found to involve minor adaptations of what has already been described. For example, axisymmetric structures under non-axisymmetric loads will be considered in Chapter 5, while non-linear solid problems take up Chapter 6 However, these are solved by linearising incrementally, so that a minimum of new methodology is necessary. 96 317 REFERENCES Bathe, K.J, and Wilson, E.L. (1976) Numerical Methods in Finite Element Analysis. Prentice-Hall, Englewood Ciifs, New Jersey. Clough, R. W,, and Penzien, J. (1975) Dynamics of Structures, McGraw-Hill, New York. Ergatoudis, J, Irons, BM, and Zienkiewicz, O.C. (1968) Curved isoparamet quadrilateral elements for finite clement analysis. nt. J. Solids and Structures, 4, 31 Hughes, T. J, R, Levit, Land Winget, J.(1983) Element by element implicit algorithms for heat conduction. ASCE J. Eng. Mech, 109 (2), 576-585. Idriss, | M., Lysmer, J, Hwang, Rand Seed, H. B. (1973) QUAD-4,a computer program for evaluating the seismic response of soil structures by variable damping finite element procedures. University of California, Berkeley, Report FERC 73-16. Irons, B. M. (1966a) Numerical integration applied to finite element methods. Proc. Conference on Use of Digital Computers in Structural Engineering, University of Newcastle Irons, B. M, (19660) Engincering applications of aumerical integration in stiffness method. JALAA, 14, 2035, Irons, B. M, and Ahmad, S, (1980) Techniques of Finite Elements, Elis Horwood Ltd, Chichester. Kopal, A. (1961) Numerical Analysis, 2nd edition, Chapman and Hall Lysmer, J, Udaka, T. Seed, H. B. and Hwang, R.(1974) LUSH: a computer program for ‘complex responce analysis of soi-structure systems, University of California, Berkeley, Report EERC 74 Parlett, B. N.cand Reid, J. K. (1981) Tracking the progress of the Lanczos algorithm for large symmetric eigenproblems. IMA J. Num, Anal, 1, 138-55. ‘Smith, lM. (1979) Discrete element analysis of pile instability. Int. J. Num. Anal. Meth. Geomechanics, 205-11. Smith, LM. (1984 Adaptability of truly modular sofware. Engineering Computations 1, No. 1, March, 25-35. Taig, IC. (1961) Structural analysis by the matrix displacement method. English Eleetric ‘Aviation, Report S017, Timoshenko, S.P, Young, D.H., and Weaver, W. (1974) Vibration Problems in Engineering, ath edition. John Wiley, New York. Wong, S. W. (1987) Element-by-clement methods in geomechanics. Ph.D. Thesis, University of Manchester Zienkiewicz, O.C, Irons, B.M., Ergatoudis, S, Ahmad, $., and Scott, F.C. (1968) Tsoparametic and associated eiement families fortwo and three dimensional analysis. In Proceedings of Course on Finite Element Methods in Stress Analysis,ed. 1. Holand and K. Bell, Trondheim Technical University Zienkiewicz, O. C,, Too, J, and Taylor, RL. (1971) Reduced integration technique in general analysis of plates and shells. int. J. Num. Meth. Eng, 3, 275-90. CHAPTER 4 Static Equilibrium of Structures 49 INTRODUCTION Practical finite clement analysis had as its starting point matrix analyses of ‘structures’, by which engineers usually mean assemblages of clastic, line clements, The matrix displacement (stiffness) method is a special case of finite clement analysis and, since many engineers still begin their acquaintance with the finite element method in this way, the opening applications chapter ofthis book is devoted to ‘structural’ analysis, ‘The first application program, Program 4.0, permits the analysis of horizontal uniform beams made up of elements of constant properties (flexural rigidity and length). In this case all elements have the samestiffness matrix which is formed by a single subroutine call, As the chapter unfolds, various additional features will ‘gradually be introduced into the programs. In Program 4.1 stepped beams containing elements of varying properties are considered, and a simple method for imposing ‘displacement’ boundary conditions is demonstrated Anticipating more complex elements used later in the book, the beam element stiffness and ‘mass’ matrices are formulated numerically using Gaussian quadra- ture in Program 4.2, in the analysis of a beam on an elastic foundation, Such procedures will be essential for elements whose tifiness matrices are too complex to state explicitly. Programs 4.3 and 44 are for the analysis of two- and three-dimensional frames respectively with arbitrarily inclined members. The programs are quite gencral and although most joints will be rigid, internal pins are also easily dealt with Trusses in which members are connected by pin-joints can be analysed as special cases of the framed structures. It has been decided, however, to give them special treatment in view of their widespread use and Programs 4.5 and 4.6 deal With the two- and three-dimensional cases respectively Program 4.7 deals with two-dimensional framed structures which exhibit clastic-perfectly plastic material behaviour, The program enables plastic collapse loads to be computed using a ‘constant stiffness’ approach. This means that the non-linearity is dealt with iteratively by altering the loads on the 7 98 structure rather than modifying the stiffness matrix, as is donein more traditional approaches. Program 48 performs elastic stability analyses of two-dimensional framed structures, As loads are increased on the system, axial forces are monitored and the stifness matrix modified accordingly. A buckling mode is signalled by a change in sign of the determinant of the global stifiness matrix. Finally, Program 49 describes a method for analysing thin plates in bending This could be considered the first ‘genuine’ finite element program in the book and anticipates the solid mechanics applications of Chapter 5, However, since ‘one dimension (the thickness) has been reduced to zero, itis sil a “structural clement. PROGRAM 40: EQUILIBRIUM OF UNIFORM BEAMS PROGRAM 4.0 EQUILIBRIUN OF UNIFORN BEANS ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARANETER(IKV=400, ILOADS=100, INF=100) REAL KM(4,4) £LO(4) ACTION(4) ,KV( KV) LOADS TLOADS) INTEGER (4) .NF(INF.2) DATA TKM, 100E/2*4/, 0D0F/2/,1W/3/ INPUT SECTION READ(5,*)AXE,N,NN,NREZ,ELL TRe(IWS1)4N CALL NOLWEC( KV, 18) NODE FREEDON DATA CALL REAONF (NE, NF, 1M, NODOFL NR ELEMENT STIFFNESS MATRIX CALL. BEAM(KM, EEL) GLOBAL STIFFNESS MATRIX ASSENBLY 00 10 1=1,NxXE CALL GSTRNG(TP,NOOOF,NE, INF. 6) 10 CALL FORMKV(KV,KN, TK, 6,N, 1D0F) EQUATION SOLUTION CALL BANRED(KV.N, 1M) ALL MULVEC(LOADS,N) READ(5, *)NC, (K, LOADS(K), T=1.NL) CALL BACSUB{KV,LORDS,N, 14) CALL PRINTY( LOADS.) c RETRIEVE ELENENT END FORCES AND MOMENTS 99 0 20 1P=1,.NKE CALL GStANG( TP, NODOF,NF, INF,@) 00 30 T=1, 100F 1F(G(1) .€0-0)£10{1)-0. 30 TF(G(1)-NE-0)ELD(T} -LOADs(6(1) CALL’ MWMULT (KM, KM, ELD, IDOF, [OOF ACTION) 20 CALL PRINTW(ACTION, 100) STOP Eno The main features of this program are the elastic beam element stiffness matrix (equation 2.26b) and the global stiffness matrix assembly procedures described in Chapter 3 The structure chart in Figure 41 gives the main sequence of operations. Figure 4.2 shows a simply supported elastic beam of unit length carrying, in case (a), a concentrated unit load at its mid-span and, in case (b), a uniformly distributed unit load. At each node, two degrees of freedom are possible, a vertical translation and a rotation in that order. The global node numbering system reads from the left, as shown in Figure 43 and, atthe element level, node one is always to the left and node two, to the right. The degrees of freedom within the element are taken in the order w;,0, 3,43 50 as to be consistent with the stiffness matrix equation. As explained in Chapter 3, the nodal freedom numbering associated with each element, accounting for any restraints, is contained in the ‘steering’ Reserve space or fixed and variable dimension arrays. Readin data andintialise simple variables Nullthesystem sitfness matrix Form the beam element stiffness matrix Forallelements Find the steering vector Aseomble element stfinessinto global sttiness Reducothe global stiffness Read theloads ‘Complete the equilibrium equation solution Forall elements Find the element nodal diplacements ‘Compute and print nodal actions" Figure 4.1 Structure chart in Program 40 100 0,8 freedom numbers ve) (b) Simply supported beam with uniformly distributed load ‘Structure data NXE NNN ONR aig eee 2 Element data BELL 19025 Nodefrecdomdata 101 501 Loaded NL (K)LOADS (K:),1=1,NL) 14-10 @ 5 1 ~0.005208 4-025 8 0.005208 Figure 42 Mesh and data for Program 40 2 vector G. Thus, with reference to Figures 4.2 and 43, the steering vector for element | would be fo1 237 and for element 2 12 3 4 5} ete fa zero appears in the ‘steering’ vector G, this means that the corresponding displacement has been set to zero, such as at the beam supports where no vertical translation can oceur. Rotations are permitted at the supports, however, and the degree of [recdom numbers corresponding to these rotations appear in the ‘steering’ vector in the normal way, For problems in which strings of Kine elements occur, itis « simple matter to automate the generation of the G vector for each element, This is done by the library subroutine GSTRNG which picks the Correct entries out of the nodal freedom array NF (sce Appendix 3 for details). For problems of this type, nodal 101 tenet Ssaset, D DD. O Oxvtvers Gi) G43) 0 af L196" teeter 241 ae © © 5 Figure 43 Node and element numbering convention freedom data concerning boundary restraints is read by the subroutine READNF. This data takes the form ofthe restrained node number followed by either ones or zeros, where the latter implies a restrained degree of freedom and the former an unrestrained degree of freedom. This data must be repeated for every node that has a restraint imposed upon it. In the example of Figure 4.2, there are two restrained nodes (nodes 1 and 5), and in both cases only the translational freedom is suppressed. Returning to the main program, with the exception of simple integer counters, the meanings of the variable names used with reference to the mesh of Figure 4.2 are listed below: EI element flexural rigidity (1.0) ELL element length (0.25) IKM Ikv working size of arrays TLOADS{ KM, KV, LOADS, NF INF NXE number of elements in the.x direction (4) N number of degrees of freedom in the mesh (8) NN number of nodes in the mesh (5) NR number of restrained nodes in the mesh (2) NL. number of loaded freedoms (1(a),$b)) 1DOF number of degrees of freedom per element (4) NODOF number of degrees of freedom per node (2) Iw half-bandwidth of mesh (3) IR N*(IW + 1)—working length of vector KV Space is reserved for small fixed length arrays: KM element stiffness matrix ELD element displacement vector ACTION element nodal action vector G steering vector 102 and then for variable length arrays which can be changed to alter the problem size: kv ‘global stiffness matrix (IKV > IR) LOADS —_ global load (displacement) vector (ILOADS > N) NF nodal freedom array (INF > NN) Data is divided into two types, namely fixed data IKM, IDOF, NODOF and IW and variable data IKV, ILOADS, INF which the user must change as the corresponding arrays are made bigger or smaller. As was pointed out in Chapter 1, the deficiencies of FORTRAN 77 make such changes essential In the ‘input section, simple variables are assigned their values from the data and array spaces are nulled where necessar The subroutine READNF then reads the ‘nodal freedom data’ and the element stiffness matrix KM is formed by subroutine BEAMKM. The global stiffness matrix KV is then assembled element by element by the subroutine FORMKY once the ‘steering’ vector G has been formed by the subroutine GSTRNG. Gaussian elimination of the system equations is divided into a ‘reduction’ phase, performed by the subroutine BANRED, and a back- substitution phase performed by the subroutine BACSUB. Before the back-substitution phase, however, the loads data’ must be read and this is input as the number of loaded freedoms (NL) followed by the freedom ‘number and the value of the load, Nodal loading in the context of beam analysis ccan take the form of either point loads or moments. In load case (a), the loading is quite straightforward with a single load of magnitude — 1.0 applied to freedom number 4, Load case (b), however, is slightly more involved as the loading is uniformly distributed along the entire length of the beam. In finite element analyses, loading can only be applied at the nodes, so the uniformly distributed Toad must be simulated by an equivalent set of nodal loads. These arise naturally in the finite element formulation (see equation 226a). Alternatively (ee 0125 0425 0425 0125 0425 0.125 0.125 0.125 | ea se est 9.005208 0.005208, Negatives of fixed end reactions with q=1 and L= 0.25 Figure 44 Equivalent nodal loads 103 Przemieniecki, 1968) they may be thought of as the negatives of the end reactions and moments that would apply ifeach element was fully *encastre’ at both ends. Figure 4.4 shows these loads for each of the four elements in Figure 4.2. Its seen that for elements of equal length the internal rotational loads cancel out, leaving couples at the supports and internal point loads to be applied. Back-substitution solves for the displacements which take the form of vertical translations and rotations. Once the element displacements are known, the clement end forces (or ‘actions’) can be retrieved. For this purpose the G vectoris formed again to isolate the nodal displacements for each element stored in ELD. Subroutine MVMULT performs the multiplication by the stiffness matrix KM and the end forces and moments are printed. ‘The computed results for both load cases are reproduced in Figure 4.5. For load case (a), the central deflection is given by freedom number 4 to be 0.02083 which is in exact agreement with the analytical solution WL?/48EI, where W is the central load and L the total length of the beam, The ACTION vector for each clement gives what are usually called the ‘shear forces’ and “bending moments’ in the beam. For load case (b), however, although the maximum deflection is again exactly given by 0.01302 or SqL*/384EI, where q is the uniformly distributed load, the fixed end moments and reactions for each element must be added to the ACTION vectors to retrieve the ‘shear forces’ and “bending moments. For example, for element 1 in load case (bs: Computed “Fixed end’ ‘Actual Shear Node 03750 011250 Moment (1) 0.0052 0.0052 Shear Node -03750 * 0.1250 Moment @) 0.0990 = 0.0052 2508-01 -.1432E-01 -.4688E-01 -,2083E-01 -.7216E-15 -. “"4686E-01 16250E-01 50006100 11776E-14 -.§000Es00 .12508+00 5000E+00 -!1250E+00 :s0006+00 '2500€+00| 4, =.50008+00 =12500E+00 ":S0008+00 “12soe+o0 f Astions =!5000£;00 =112506+00 “S000E+00 “0000600, ose a) NEBL SEER 86-1 MEE) —AKNES STE DF heed Ret 3750E+00 -75208E-02 -.3750E+00 .98968-01 1250Es00 °19896E-01 {1250800 /13028+00 =11250Es00 °11302E100 112606+00 9896E-01 f Actions ~13750E+00 -:9896E-01 137508400 |S208t-02 cose bY Figure 45 Results from Program 40 104 we q vost 15-4 -05 -0.5 Case (a) Case (b) Shear force diagrams 0.0936. Caseta) Case (b) Bending moment diagrams Figure 46 Shear force and loading moment diagrams and for element 2: Shear Node 041250 0.1250 0.2500 Moment (2) 0.0990 (0.0052 — 010938 Shear Node 0.1250 020 = = 0 Moment (3) 0.1302 — 0.0052 0.1250 and so on ‘The bending moment and shear force diagrams for both cases are summarised in Figure 46. Note that because the deflected shapes are exactly modelled and compatibility and equilibrium are exactly satisfied at the node points, these solutions are exact Of course, in the problems considered here the same results could have been achieved by using fewer elements and taking account of symmetry. PROGRAM 4.1: EQUILIBRIUM OF STEPPED BEAMS INCORPORATING PRESCRIBED DISPLACEMENT BOUNDARY CONDITIONS PROGRAM 4.1 EQUILIBRIUM OF STEPPED BEAMS ALTER NEXT LINE TO CHANGE PROBLEN SIZE PARAMETER( IKV=400 TLOADS=100, 1PROP+20, IND=20, INF=100) EAL HOA, 4) £L0(4) ,ACTION(4),KV( KV) LOADS(1LORDS), VAL(INO) 480° 1PROP, 2} INTEGER (4) NF (INF,2),NO( IND) ATA TH 100/247, hODDE/2/, 16/37 105 INPUT SECTION READ(5, *)NXE,1,2N, 1 TR=(IWs1) 4 CALL MULVEC (kV, 18) NODE FREEDOM DATA (CALL READNF(NF, TNF, NN,NODOF, WA) GLOBAL STIFFNESS MATRIX ASSEMBLY DO 10.161 ,NXE READ(S,*)EV, ELL PROP(IP,1)=EI PROP(IP,2) -ELL CALL BEAMKM(KH,ET,ELL) CALL GSTRUG( TP, NOSOF NE, INF 6) 20 CALL FORHKV (KV, AM, IK, 6,N, IDOF) EQUATION SOLUTION CALL NULVEC(LOADS,N) READ (54*) FIX, (NOUT),VRL(I), ToL, TFIX) 0020 i-1, FX KV (NO(T))=KV(NO(1)) 41.620 20 L9#0S(NO(T) =x (H0( 1) VAL) READ(S,*)NC, (K,LOADS(K) ,I=t NL) CALL BANRED(KV,N, IM) CALL BACSUB(KV' LOADS, W, 18) CALL PRINTV( LOADS.) RETRIEVE ELEMENT END FORCES AND MOMENTS 00 30 191, NKE EI=PROP(IP,1) ELL*PROP(IP,2) CALL BEAMKM(KH,£1,ELL CALL GSTRUG( IP NODOF AF, 1NF,6) Do 40 T-1, 100F 1F(6(1)-€0.0)£10(1)=0. 40 1F(GC1) -NE-0)ELDI 1}-LOADS(&(1)) CALL MVHULT (KM, TKH, ELD, IDOF, IOOF, ACTION) 30 CALL PRINTW(ACTIQN, 100F) STOP END ‘The method used througiiout this book isto explore solutions of new problems by making gradual alterations to previously described programs. This program, therefore, L an adaptation of the previous one, the modifications being as follows: Each element can have different properties (Nexural rigidity and length). 2 Prescribed displacement boundary conditions are incorporated in addition to conventional loading (see Section 3.6) Because the problem considered consists of a string of line elements the subroutines which assemble the global stiffness matrix remain unchanged. The 106 only additional data in this program is the integer IFIX which isthe number of freedoms at which displacements are to be prescribed and the arrays NO and ‘VAL which hold, respectively the freedom number to befixed ands value. Thus, there are IFIX number of entries in each of these vectors. Additional variables required in the PARAMETER statement are IPROP (> NXE), the working size of array PROP, and INO (> IFIX), the working size of arrays VAL und NO. The appropriate structure chart is still essentially that of Figure 4.1, except that the element properties El and ELL are read inside the element inspection loop and ate stored in the properties array PROP. The element stiffness formulation subroutine BEAMKM js thus called once for each element. Settiment of -0.005m] Rotation of-0.001 20k" 4kNIn Res fe OA . ‘ EL=4 x 10kNm EL= 2x 104 KNm? e -}-—5 3m—--2m—} s0kN sokN (pelea, n5kNm a ce (Dane Equivalent kN m 28kN /.2kN nodal loading cn) 0.8KNm 0.5333kKNm Structurecate NXE ON NN NR Batieteiaaatte2 Nodetreedomanta 101 301 Etomentcata sa fee 50 2a 30, 2e4 20 Fixedieplacement a Loads date Figure 47 IFIX (NID, VALIH,I= 1 2 10.001 2” =0.006 NL (K,LOADS(Ki,1=1,NL) 4 3 95 4 22 5-12 6 053899 Mesh and data for Program 4.1 107 1000-92 -.S00NE-02 2O51E-03 .2410E-02 .ATISE-02 2343-02} Daplocenents TUMS7E+02 1928402 [11576402 “3as5E+02 ~19577E+01 129066402 ":9577E+01 |33336+00} actions [1200E+01 1867401 -112006+01 1$333E-00. Figure 48 Results from Program 4.1 At the IFIX number of freedoms, held in NO, the large number 1.£20 is added to the appropriate leading diagonal term of the global stiffness matrix KV. ‘The load vector LOADS is then set to this augmented stiffness multiplied by the required value stored in VAL. The prescribed loads are incorporated into the Toads vector in the usual way, After solution of the equilibrium equations, the clement end forces and moments are retrieved by reforming each of the element stifiness matrices and multiplying it by the corresponding element displacement vector. The beam shown in Figure 4.7 is subjected to a combination of prescribed displacements and loads, Node I)s rotated clockwise by 0.001 radians and node (2)is translated by 0.005 m vertically downwards. In addition, a vertical force of 2OKN acts between nodes (1) and (2), a uniform load of 4kN/m acts between ‘nodes (2) and (3) and a linearly varying load from 4kN/m to zero acts between nodes (3) and (4). The appropriate nodal loads are computed by incorporating (3) in (2.25). The computed results are shown in Figure 48, The first six numbers printed are the computed displacements, and its clear that the prescribed values at freedoms | and 2 are reproduced correctly. The other displacement values indicate that the rotation at node (2), for example, equals 0000205 (anti- clockwise) In order to compute the actual moments and shear forces inthe beam, the fixed ‘end moments for each element must be added to the corresponding ACTION vector printed in the output. For example, the moments in the central element at nodes (2) and (3) are given by Mz = ~29.06+ Ms= 033— —26.06kN m ~ 267kNm PROGRAM 42: BEAM ON AN ELASTIC FOUNDATION WITH. NUMERICALLY INTEGRATED STIFFNESS AND MASS MATRICES PROGRAM 4.2 NUMERICALLY INTEGRATED BEAM ON ELASTIC FOUNDATION ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARAHETER( IKV=400, ILOADS=100, INF+100, IPROP=15) Bagh Rat 104) ACTION a AY Lovo Los) m4), +070 (4,4) FTF(4, 4) ,DER2(4) ,FUN(4),SAMP| 7,2) HOH CINE), *$STORKH( PROP, 4,4) 108 INTEGER (4) ,NFCINF, 2) DDATA"TKM, 100 /2*4/, HODOF/2/, 1N/3/, 1SANP/7/ INPUT SECTION READ(S5,*)1KE,N,NN,NR,NGP, ET, £50, FS),ELL TRe(IWE1)*N CALL MULUEC(KV, 1) CALL GAUSS( SAND, 1SAMP,NGP) NODE FREEDOM DATA CALL. READNF (NF, TH, 1, NODOF,tR) GLOBAL STIFFNESS AND MASS MATRIX ASSEMBLY 0. 00 io 1p=1 KE CALL: NULL(KM, IKM, 1DOF, 100) CALL MULL(H IKM, IDDF, 100F} 0 20 Te1 Ned FLL*”5®(SANP(L 1) 41.) Fs=58/(ELL¢NKE)*(FS1-FS0) +50 WT=SANPCT,2) CALL FMBEAM(DER2, FUN, SANP, ISAMP, ELL, 1) DOF D0 30 Lal; 100F IN(K)*FUN(L)*HT*. S*ELLAFS 2 (K)*DER2(L) “WT #8. *E1/(ELL*ELLAELL) CALL HATAOO( 40, TRH, FTE, TKM, 100, TOOF) 20 CALL MATADD(KM, IKH,DID, IKM, ID0F, ID0F) CALL MATADO( KH, KM, kM, t00F, (DOF) D0 40 11, 100F Do 40 J1; D0F 40: STORKM(1P2 1.0) -KM(1,9) CALL GSTRG( TP, NODOF NF INF.) KeXsELL 10 CALL’ FORHKV(KV,KM, IKM, Gy, DOF) EQUATION SOLUTION CALL. BRNRED( KV, TK) CALL NULVEC( LOADS, N) READ(5, *)NL, (K LOADS(K) T=1,4L) CALL BACSUB(KV; LOADS, IW) RETRIEVE ELEMENT END FORCES AND MOMENTS 00 $0 1Pe1 NXE CALL GSTRNG(1P,NODOF NF, INF,6) D0 60 T-1, 100F 00 60 J+1 100F MC) =STORKH(IP, 1,0) 0.70" 1-1, 100F 1E(6(1) £9.0)EL9(1)-0 TF (GUI) .Ne.0)EL9( 1) -LonDS(&(1)) CALL MVHULT (KH, KM, ELD, 1DOF, IOOF ACTION) Hios(1P)=ACTION(2) TF(IP.EQ.2KE )MOM( P41) =-ACTION( 4) 1 109 50 CONTINUE 50 0 11,8 WRITE(S, "(2E12.4)")LOADS(2*1-1) ,NOM(1) 80 CONTINUE sto? en For more complicated elements, or elements whose properties vary along their length, itis often more convenient to form the element matrices numerically. The ‘most effcient way of doing this is to use Gaussian quadrature, so it is necessary to replace the beam coordinate x in the range (0, L) by the local coordinate £ in the range (— 1, 1) using the transformation: ahe+)) 4» The cubic beam shape functions (equation 2.22) may be written thus: Ni =HE~36 +2) M=f@-8-E40 (4.2) Ny=H-8 +3842) Lesa tae Nag +0-€-1) and these (FUN), together with their second derivatives with respect to & (DER2}, are formed by the subroutine FMBEAM, As discussed in Chapter 2, the stiffness matrix for a beam can be formed from integrals of the type &N« rr KM = EI f PNtds, Kb= 12,34 43) i = and the mass matrix from integrals of the type MMye=p4 f NgNpdy, KL=1,234 44) Converting to local coordinates from equation (4.1) gives ey _en(azy_ 4 on de oe Vax} WO ae and (4.5) L de = Fae 110 Hence, equations (4.3) and (4.4) become Bay ft BN atn, KM = EI Na GN a ge Bi) age ae * KL=1,2,3,4 viata wee KM(K,L)=8,(ELL+e3)« 9. Ele WT, «DER2(K)+DER2(L) MM(K, L) = ELL/2.« ¥ FS*WT,*FUN(K)+FUN(L) Reservespacefor fixed and variable dimension errays Readin data andinitilise simple variables Null globalstitiness vector 1 element stiffness and mase matiloes Gauss points Findvalues of beam and foundation stiffness weighting coetficient Find shape function and'second derivatives ‘Add contribution toKM and MM AddKM to MMandstore result Findsteering vector ‘Assemble element sttiness matrixinto global system. Reduce global stiffness matrix Readloacs Reivieveatifiness matrix From steering vector find element nodal displacements Compute and print nodal actions’ Figure 49 Structure chart for Program 42 46, 7 4.8) (49) where, WT is the weighting coefficient at the Ith Gaussian integration point. The weights and sampling points in local coordinates are stored in the array SAMP produced by the library subroutine GAUSS. The required number of Gaussian integration points NGP is read in as data, ‘Turning to the main program and following the structure chart of Figure 4.9, it ccan be seen that an additional loop is required where I counts from 1 to NGP. For each of these integrating points the beam stiffness El and the foundation stiffness FS (analogous to pA) are found, the weighting coefficient is taken directly from SAMP in the statement WT = SAMP(I,2) and the library routine FMBEAM is called. This routine computes the vectors of shape functions FUN and second derivatives DER2 at the particular sampling point and multiplications required in equations (48) and (4.9)are performed. The resulting arrays DTD and FTF are then added into the accumulating matrices KM and MM respectively using routine MATADD. Once KM and MM have been formed, they are added together to give the net element stiffness matrix (still called KM). This element stiffness matrix is stored in the three-dimensional array STORKM. ‘The remainder of the program follows a familiar course. The stiffness matrices 1.0 kN 8 Tv faa > ul) 10m Linearly varying modulus Bear elements : Els 1.926 x 10 kN? nn lam? Structurecate MENON NR NGP Suetti wire one Element data a fso Fst eLL tande4 gee ga Loads ate Ne (Ry LOADS(Ki.1= 1.NL) et Figure 4.10 Mesh and data for Program 4.2 12 by Honent s016es00 1586-10 6056100 -!1782e01 ‘aig3ev00 1 259%€s01 ‘a7s7é+00 <12i20E-01 =:6008E-01 =183116400 Figure 411 Results *:2996E+00 -:2510E"10 from Program 42 are assembled into a global system matrix which is factorised, loads are read in land the system of equations solved to give the displacements. To retrieve the nodal ‘actions’ @ further loop scans each clement and obtains the nodal displacements which are multiplied by the element stiffness matrix obtained from STORKM. The example shown in Figure 4.10 shows a pile made up of five beam elements installed in an elastic soil medium with modulus varying linearly from zero at the ‘ground surface to 2 KN/m? at 10m depth. The beam elements have a constant Alexural rigidity El of 1.924 x 10* KN m#, This example has no restraints imposed onitso NR equals zero and consequently the routine READNF requires no data. The number of Gauss-points per element NGP is put to 4 because the terms in equation (49) are seventh order polynomials; thus the integration will be performed exactly, The data El, FSO and FS1 represent the beam flexural rigidity and the foundation stiffness at the top and bottom of the pile respectively and assume a linear variation, A unit load has been applied horizontally at the top of the pile The results shown in Figure 4.11 give the horizontal translation and the ‘moment (stored in vector MOM) in the pile at each nodal point. These values agree closely with the exact solution (Hetenyi, 1946). PROGRAM 43; EQUILIBRIUM OF TWO-DIMENSIONAL RIGID-JOINTED FRAMES PROGRAM 4.3 ANALYSIS OF 2-D FRAMES ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARAMETER(IK¥*400, ILOADS=100, 1PROP=20) REAL ACTION(6) ,LOCAL(6) ELD(5) KN(6,6) +LOADS/ FLOADS) RV TKV) , PROD (TPROP, 2), STEREC( PROP, 4) INTEGER 5(6), STOREG(IPROP,) DATA TkM, 100F/246/, NODOF/3/ INPUT SECTION READ (5, *)RKE,N, IH Ren? (Ie) CALL HULVEC(KV, 1R) 3 GLOBAL STIFFNESS MATRIX ASSEMBLY 00 10. 1P=1 NXE READ(5,*)EA, ET, (STOREC(IP, 1) 1»1,4) (6(1) ,[#1, 100F) PRO (TP, 1) =E8 PROP(IP,2)-E1 CALL BHCOL2 (kM, EA, EL, 1P,STOREC, TPROP) 0 20 1-1, 100F 20 STOREG( TP. 1) =5(1 10 CALL FORMKY (KV, KM, IKM,6,N, 1D0F) c EQUATION SOLUTION CALL BANREO(KV.N, TH) CALL NULVEC( LOADS, 1) READS, *)NL,(K,LOADS(K), To1,NL) CALL BACSUB{ KV: LOADS,N EK) CALL PRINTW(LOADS,N) c RETRIEVE ELEMENT END FORCES AND MOMENTS 00 30 1Pe1,mxe EA=PROPIP, 1) EtaPR0P| (P22) CALL BHEOL2(KM,EA,EL, tP, TREC, PROP) $040. tat, (oF GiaestoRectP, 1 THG(1) 0-9) €10(1)-0, 40 TF(G(1) NE .O)ELO(1)=LOADS(G(I)) CALL HPAL (KTR ELD, 100,100, ACTION) EALL Locee LOCAL, ACTION, 1p, STORE. PROP) EALL PRINT (ACTION, 100) 40 covriwe stop eno ‘The frst three programs in this chapter were concerned only with beam elements, subjected to moments and loading perpendicular to the element axes. I is much ‘more common, of course, to encounter structures made up of members arbitrarily, inclined to one another. Loading of such structures results in displacements due to both axial and bending effects, although the former is often ignored in many approximate methods described in texts on structural analysis. The program described in this section is for the solution of two-dimensional framed structures and uses beam-column elements. These elements each have six degrees of freedom, incorporating two translations and a rotation at each node, with the numbering as shown in Figure 4.12. The clement stiflness matrix is obtained by superposing the axial and bending contributions and performing a coordinate transformation to account for the angle of inclination of the clement, ‘This generalised stiffness matrix is readily derived and is contained in the library subroutine BMCOL2. ‘The program is similar 10 the beam programs described previously but requires more data. For each element, data must be provided to give the stiffness values EA and El (stored in PROP), the coordinates of the nodes X.,.20J2 14 G(s) k Oa.¥) Oeeth G6) 612) ty I oar Figure 4.12 Freedom numbering for two- dimensional beam-column element (stored in STOREC) and the steering vector G in the same order as the coordinates. As the G vector is no longer generated automatically, the variables NNand NR, and the routine READNF, are not needed. To save on storage, the value of the semi-bandwidth [W is read as data and equals the greatest difference between freedom numbers (excluding ‘zero’ freedoms) occurring for any element in the mesh, The G vector, once read in, is stored in the two-dimensional integer array STOREG. ‘An additional real array, LOCAL, holds the element end forces and moments in the element local coordinate system. This vector is formed by the routine LOC2F and should be printed out if a shear force diagram is required. In the listing provided here only the global end forces and moments are printed and these are held as usual in the vector ACTION. ‘The example shown in Figure 4.13 shows a framed structure subjected to a combination of distributed und concentrated loading. The equivalent nodal Joading is obtained by independent calculation, although it too could be computed by the program. ‘The output in Figure 4,14 gives the nodal displacements and the ACTION vector for each element. For example, the rotation at node (1) is found to be = 0,001025. The ACTION vectors for elements 4,5 and 6 display the correct, values, but for elements 1,2 and 3 the fixed end values must be added. For example, for element 1: Computed “Fixed end’ Actual Fr = 3038 0 = 3038KN FL Node 1975 + 6 = — 4025KN M(t) 60 6 OkNm F, 30.38 0 30,38kN FL Node 1875 + «= 79.75KN MQ) -5849 -00 = 11849 Nm 115 Elements EA(KN) ELIkNa*) |, 4,23 Sxt0? 6x10 aa : aaa canine | ene Stee fe a a Equivalent nodal loading ‘Structure NXE NW ata 6 0 8 Element EA EL ox Ys M2 a (GINL I= 1,6 ‘ata seo 6 0 0 8 0 00123 4 geo 6&4 6 0 12 0 23456 7 Beo Gea 12 0. 14 0 66789 10 1e9 264 G@ -4 6 0 00023 4 169 264 6 -4 12 0 00056 7 169 264 12. -8 12 0 00056 7 Losds NL (K,LOADS (Kj, = 1.NLI sta 7 4 60, 3-180, 4 -80. 6-140, 7 13393 9-20. 10 687 Figure 413 Mesh and data for Program 4:3 (fist example) 2 1O2SE-02 .3E45E-07 -.8319E-06 -.9497E-03 4356-07 -. "77ag-02 "4356-07 2880-02 -13298-02 J0a8E02 -_197SEs02 -.6000E+02 -3038E402 .1975E~02 -. $849E+02 | Jeeeeios “lesseerol ..2519E+01 23286402 -.8236F+01 51956 +02 Soar 33 “SoooEso2 | 13333Es02 ~19098E-12 -.2000-02 .8670E+0) TRosesok “Bogoesos -[9497E+01 -.7123E+01 [2080-03 --1e9gE+02 { «Nene cha eo2 “Betoeso2 9839es01 -13177E+02 --26108+02 19686402 | ROP,8) DATA Ike, 100F/246/,noDOF /3/ INPUT SECTION READ (5, *)NXE,N, IM Ren (isd) CALL HULVEC(KV, 1) GLOBAL STIFFNESS MATRIX ASSEMBLY 00 10_1P=1, NXE READ(5,*)EA, (STOREC( IP, 1), 1=1,6) ,(6(1),T*1, I0OF) PROP(TP)=ER| CALL PINC3(KM, EA, IP, STOREC, TPROP) Do 20 t=1, 100F 20 STOREG(1>%1)=6(1) To CALL FORKKY(KV, KA, KH, G,N, 1007) EQUATION SOLUTION 125 CALL BARRED (KV,n, TH) CALL NULVEC( LORDS. W) READ(S, )NL (K, LOADS(K) ,T=1,NL) CAL BACSUB{KY: LOADS, 1M) CALL >RINTV(LOADS,N) RETRIEVE ELENENT AKIAL LOADS D0 30 1P=1 NXE EA-PROPL IP) CALL >1NI3( Ko, EA, IP, STOREC, TPROP) Do 401-1, 1DOF G(1)=TOREG (TP, 1) TF(G(1) -€9.0)£L0(1)-0. 40 IEUGU) ne -opELOUL)=Lomnscactny CALL MUMULT (KM, 1K, ELD, I0OF, 100F ,ACTION) CALL >RINTV(ACT ION, DOF) CALL LOC3T(AXTAL ACTION, 1, STOREC, LPROP) 30 WAITE(6,”(E12.4)*) ANIL stop exo This program is virtually identical to Program 4.5, the only difference being that three coordinates and three freedoms per node ate required to define the geometry. The stiffness matrix is provided by the routine PINJ3 with the freedom numbering shown in Figure 4.26, The transformation to the local system is performed by routine LOC3T. The truss shown in Figure 4.27 represents a pyramid-like structure loaded by a force Q at its apex which has components of 20, ~ 20, and 30KN in the x,y and z directions respectively. The computed response in Figure 4.28 indicates that the corresponding displacement components of the loaded node are 0.249 x 10%, = 0.399 10°? and 0.081 x 10° ?m respectively. Member 3, for example, supports a tensile load of 2968kN and, as a check on equilibrium, the x reactions 65) 0g. te) @ Late te) 6(2) GH) 16) ” OH 2 " 4% 29D aaees i) 6a) mr) wa) Figure 4.26 Freedom numbering for three-dimensional truss element 126 Cords (m) ye) a Node x y 2 Op 0200 @ 12 32 0 @ ww20 aan Reema need vy! Load vector = 20i-20)+ 30k KN EASS 10° kN Our uo) Structure NXE NW dat ateealees at Elmont EA om Wy M2 GILL 1.8) deta se 0 0 0 2 18 3 000123 Geb asa 0 me itae e020 0.02205: ec tonite aiiovtire aia sit seit 07:0 198s: Se as veto oie Onpieia na: NL (K,LOADS(K),1= 1,NL) Saat onitt sit anr ata Figure 427 Mesh and data for Program 46 -2490E-03 -,3991E-03 .8075E-08 Displacements INCS) and INO (2 NL) appear in the PARAMETER statement and additional arrays, together with their functions, are summarised below: OLDSPS nodal displacements from previous iteration BDYLDS added to external LOADS vector to redistribute moments ELDTOT keeps the running total of nodal displacements HOLDR keeps the running total of element ACTIONS at convergence REACT self-equilibrating ‘correction’ vector DLOAD load increment values Although EA and El can vary for each element, to cut down on input they are assumed constant and read once outside the element loop. Variables read within 130 Read plastic moment, coordinates and steering vector Form element matrices and assembleinto global system Readloads data Reduce global stiffness matric Foreachioad inerement Foreach iteration ‘Acd body-loads oloads increment vector Back substitute to obtain nodal displacementincrements Checkeonvergence Forallelemonts| Form element sifness and nodal displacement increments Multiply together o obtain clement ‘actions’ ‘Addto"actions' let over trom last step plastic moment exceeded form sef-equlibrating correction vector Subtract{rem accumulating body-loads vector at ‘Convergence? — Yes Update ‘actions! ready for nextload step ‘Update nodal displacements Figure 430 Structure chart for Program 4.7 the element loop consist of the plastic moment PM, the COORD array and the G vector. [After assembly of the global stiffness matria, the number of loads NL and their locations and proportions are read into the vectors NO and VAL. The ‘magnitudes of the INCS load increments are read into the DLOAD veetor and 131 the stifiness matrix is reduced (factorised) by the routine BANRED. ‘The program now enters the load increment loop. For each iteration counted by ITERS, the external load increments are added to the redistribution load vector BDYLDS by the routine VECADD. The equilibrium equations are solved using BACSUB and the resulting nodal displacement increments compared with their values at the previous iteration by the routine CHECON, This routine observes the relative change in displacement increments from one iteration to the next. If the change is less than TOL (read as data) then ICON is set to | and convergence has occurred. Alternatively, ICON is st to Oand another iterations performed Each element is then inspected and its ACTION vector computed by forming i 4s ACTION + 10.43% HOLOR p= 10 OF (a) 2 Correction in local system Correction in global 0.95 system 2.85 0.95 2.85 -2.00 REACT = | \95 -2.85 5.00 Figure 431 Connection vector for ‘yielding’ element 132 the product of the nodal displacement increments and the element stiffness matrix. The routine HING2 adds the ACTION vector to the values remaining from the previous load step (held in HOLDR) and checks to see if the plastic ‘moment has been exceeded at either node. I the plastic moment has been exceeded, the selfcquilibrating correction vector REACT is formed. In Figure 4.31(a) a typical element is shown in which the moment at both nodes exceeds the plastic limit. The correction vector applies a moment to each end equal to the amount of overshoot. To preserve equilibrium a couple is required, shown in the local coordinate system in Figure 4.31(b). Finally, the couple is transformed into global directions before being accumulated into the BDYLDS vector (Figure 4.31c) If the algorithm fails to converge in the prescribed maximum number of viy) eh +y Cy 0.0 }-—20m 30n——-] @ Plastic mmonent{kN m) Sicure NXE NN oW TS TOL dae 71S 8 200.001 Stitness EA El properties 1.610 1.56 Element PM xy 2 Yo GIN 1,8) utero otocuin a suaio 0101412: 08 wm mw 1 123458 H. 1 t 2 1% 456789 2% 2 0 2 1% 000783 2 1% 38 18 7 8 SON 3. 3 18 8. 1S 1 T2TS 148 3. 80. |. 60. 16. 0.0 0131615 NL (K,LOADS¢K),1=1.NUI 301 4 6 eH INES (DLOAD(H,1=1,INCS) Bagitorirania viiataiauoe toto Figure 432 Mesh and data for Program 4.7 133 : .8000E+00 "4912-03 3 1139E-03 -,2210E-02 -10008+01 “TISTEGS -.1S196-08, -.29636-02 12006401 “HORSE-02 -.1S68E-03 -.3747E-02 -13008+01 HSTE‘C2 -.20086-08, -.42998-02 0 1350840) “HTRE-02 -.21186-03. -.49088-02 7 -1S7OEVOL 2043602 -.2059E-03 -.5453E-02 65 + 13808+01 {3203E-02 .2461E-04 -.6727E-02 200 Figure 433 Results from Program 4.7 esq, 1375 os (Horne,1971) 2Se-lterations "O20 3040 ByatAmm Figure 4.34 Load displacement behaviour from Program 4.7 134 iterations, TTS, then failure of the structure has probably occurred. Slow convergence, together with rapidly increasing displacements, usually indicates the formation of a mechanism, “The example shown in Figure 4.32 is taken from Horne (1971) and represents a two-bay frame subjected to proportional loading ‘After each load increment, the output (Figure 4.33) consists ofthe load factor 4, the displacements under the three loads and the number of iterations to ‘convergence. The horizontal movement at A is plotted against 4 in Figure 4.34 and the peak 4 shows close agreement with the analytical solution. These results hhave been obtained using a rather tight tolerance, More economical, although slightly less accurate solutions, could be obtained by inereasing TOL. Itis left to users 10 decide on the best value of TOL for their particular application. ‘Although beyond the scope of this work, it may be noted that the program is written in a way that allows the efects of unloading on yielding structures to be observed by simply applying negative load increments. PROGRAM 48: STABILITY ANALYSIS OF TWO-DIMENSIONAL FRAMES c PROGRAM 4.8 STABILITY ANALYSIS OF PLANE FRAMES c ALTER NEXT LINE TO CHANGE PROBLEM SIZE ¢ PARANETER( IKV=400, ILOADS#100, IPROP=20, 1NO20, 1STEP=20) c REAL OLDSPS( ILOADS) ,ACTION(6) ,LOCAL (6) ,ELO(6) ,KA(6,6) KP(6,6) Lond LOADS) XV (1K) PRae( rev 2) VAL(INO) STORE TROP; 4) ‘oises| TLoADs) ELDTOT(HLOADS) ,AXIF(IPROP) ,AK1P(PROP) ,KCOP(IKV) ‘S0LoaD( ISTEP) INTEGER G(6) ,STOREG( PROP, 6) ,NO( INO) DATA. IkM, 100F/26/, NODOF/3/ ¢ INPUT AND INITIALISATION c READ(5,)NXE,N, IM, ITS, TOL READ{EL#)({PROD(ID, 1) f+] 2), (STOREC(IP, 1) E91, 4)» + {SToReG( iP, 1) 11,8). 1Pel NXE} READ(S,*)NL, (NOT) ALCT) 1 NL) READ(S, =) INES, (OLOAD(1) 1*1, 1HC8) nen (ive) CALL NULVEC (AKIP, WHE) CALL NULVEC( RRIF NRE) CALL NULVEC(ELOTOT,N) c © LOAD INCREMENT LOOP c ToTLo-9. D0 10" f¥=1, NCS ToTLd=TOTLOsDLOA0(1Y) CALL NULVEC( LOADS.) 00.20 Tot nL ‘20 LOADS (NO( 1) )-DLOAD(Y) 4¥AL(1) CALL RULVEC (OLOSPS,N) 30 40 0 80 60 10 135 ITERS=0 ITERS=ITERS#1 CALL WULVEC(KV, 18) GLOBAL STIFFNESS MATRIX ASSEMBLY Do 40 1P=1, NXE Do $0 11.8 G(1)=sTOREG(IP,1) EA=PROP(1P, 1) EL=PROP( 1,2) PAKOAXTE (1B) CALL STAB2O(KH, EA, EL, TP, STOREC, TPROP, PAK) CALL FORMKV( KV. KM, Ie, 6,N, IDOE) CALL VECcOP(KV;KCOP, 18) CALL KVDET(KCOP,t, 1H DET, KSC) EQUATION SOLUTION CALL VECCOP( LOADS, DISPS,N) CALL BANRED(KV,N, Hu) CALL BACSUB(KV,01S°S,N, 1M) ‘CHECK CONVERGENCE CALL CHECON(OISPS, OLDSPS,N, TOL, ICON) RETRIEVE ELEMENT END FORCES AND MOMENTS DO 60 1P +1 NXE DO 70 t-1,8 G(1)-sTOREG( IP, 1) EnepaOP(IP,1) EL-PROP(IP.2) PRK-AKIF(1B) CALL. STAB2D( KM, EA, EI, IP, STOREC, IPROP, PAK) Do 0 1-1, 100F TF(G(1) E0.0)EL0(1)-0. (GC) NE. O)E0(1)-DisPs{s(D) CALL MUMULT (KI, TKH,EL0, [DOF YOOF ACTION) EALL LOC2F (LOCAL, ACTON, IP, STOREC, TPROP) AXIF(IP)=AKIP(1P) +LOCAL(4) CONT INUE IF(ITERS.NE. 17S. ARO. ICON.€0.0)GOTO 30 [AT CONVERGENCE UPDATE DISPLACENENTS AND AXIAL FORCES ‘CALL VECCOP(RKIF, AXIP, NXE) CALL_VECADD(ELOTOX, DISPS,ELOTOT,N) WRITE(6,"(/,£12.8)°}TOTLS WRITE(S. (1DE12.€)°} (ELDIOT (NO()) #1 NL) WRITE(6)" (110, Ei2.4) TERS DET Cont TUE sqoP END 136 This program enables the effects of axial loading on members to be accounted for in the form of a modified element stiffness matrix. The stiffness matrix for each element is formed by routine STAB2D, which uses a popular form ofthe stability function method (see Section 2.6) involving s and ¢ functions (eg. Horne and Merchant, 1965). The simplest example of buckling is a pinned strut which reaches its first buckling mode when the compressive axial loading equals the Euler load x? EI/L?. In a similar way frames made up of several members connected at their joints may become unstable when the loading reaches certain critical levels. The onset of instability can be observed numerically in several ways. The easiest approach for small structures is to monitor the determinant of the global stifiness matrix as loads are increased on the structure. Instability corresponds to a singular system in which the determinant equals zero. Physically, this implies that a combination of loading has been reached which » » Structure NXEN WITS TOL da 37) 800.0001 Elmont EA Elo om ym yz (GllhI= 1.8) M5 m0 8 OB OO OTeS 155 90. 0 6. 6 123456 165 90. 8 6. 3 458007 Loads NL (K,LOADS(Kj,1=1,NL) 2 2 INeS (DLOAD(,1=1,INCS) 1 30 10°05 02 o4 01 04 01 01 OA Figure 4.35 Mesh and data for Program 48 137 results in a state of neutral equilibrium and a non-unique displacement field. Alternatively, ifthe critical buckling mode can be predicted in advance (c.g. sway) then a disturbing force can be applied in the appropriate direction. As instability is approached the displacement caused by the disturbing force should increase significantly Referring to the program, the following new real arrays are declare AXIF holds axial forces during iterations AXIP holds axial forces at convergence KCOP __ holds a copy of the global stiffness matrix stored as vector and the following subroutines appear for the first time: VECCOP copies one vector to another ‘1800E-03 -.9000E-04 } Displacements under loads 3 .7043E+16 No.of iterations, Determinant 4000601 24008-03 -.1200E-03 ‘3 .3B5eEs le 30006401 } a 45008401 2008-03 -.13508-03 3 1829818 -4700E+0) 2820603 -.1410¢-03 3) .301E+e 4800640) 28808-03 -. 1440-03, 3 99216417 49006401 29408-03 -.14708-03, 3 68526417 50006+0) ~30008-03 -,15008-03 3 38366417 5100601 ~!30608:03. -.15308-03 + .8i27E16 52008+0), =31206-03 1560-03 4.212847 53006401 3180-03 3 1390803 SOS4E+17 Figure 436 Results from Program 48 138 KVDET forms the determinant of a symmetric matrix stored as a vector (formed by FORMKV) STAB2D forms the modified element stiffness matrix accounting for tensile (positive) or compressive (negative) axial forces As in the previous non-linear problem, iterations are carried out within each load increment to reach a converged solution. The main difference, however, is that the global stiffness matrix is modified during each iteration; thus coding describing its assembly is to be found inside the iteration loop. Once the global system is assembled its determinant is computed using the routine K VDET. For every load increment, the first iteration takes the axial forces eft over from the previous step to compute the stiffness matrices. The resulting displacement increments afte: solution of the equilibrium equations enable the axial forces to be corrected and the stiffness matrices duly modified. Convergence is said to occur when compatibility is reached between displacements, axial forces and hence stiffness matrices. Naturally, equilibrium between internal actions and external loads must also be satisfied. The example shown in Figure 4.35 represents a single-bay frame with one pinned support. The critical value of the forces applied to the columns to cause instability is required. The data and output are very similar to the previous rogram, the difference being that the input consists of EA and El for all members and the output (Figure 4,36) includes the determinant of the global stiffness matrix after convergence for each load step. The values of the determinant suggest that a ‘sway’ mode is reached when 5.1 IR) LOADS —_ global load (displacement) vector (ILOADS > N) NF nodal freedom array (INF > NN) Alter declaration of arrays and DATA statements the program enters the ‘input and initialisation’ stage. Data concerning the mesh and its properties is now presented and the routine READNF reads the nodal freedom data as given in Figure 52. The global system matrix KV is nulled in preparation for the assembly phase, and calls to the routines FMDSIG and NUMINT which form the plane stress stress-strain matrix and the numerical quadrature weights and. abscissae respectively. In the next section of the program, labelled ‘element stiffness integration and assembly’, the elements aze inspected one by one using GEOM3X. This delivers the nodal coordinates COORD and the steering vector G for each element. Alter the stiffness matrix KM has been nulled, the integration loop is entered The local coordinates of each integrating point (only 1 in this case) are extracted from SAMP, and the shape functions (FUN) and their derivatives with respect to those coordinates (DER) are provided for the three-node element by the routine FMTRI3. The conversion of these derivatives to the global system (DERIV) requires a sequence of routine calls similar to those described by equations (3.40), ‘The BEE matrix is then nulled and formed by the routine FORMB, The next three routine calls manipulate the BEE and DEE matrices to form the product 150 1OO0E-05 1500-05 -,1000E-05 .3000E-06 -.1000E-05 -.5000E-06] nesacenents 1500-08 -5000E-05 |3000E-05 -:8000-05 1500E-05 .3000E-06] 1776E-14 =‘1000E+01 !0000E00 53296-14 = 10006401 “2606E-14| TOSE-14 = 10006401 0000600] NOBSE-13 -"1000£+0) ‘1303E~14] centroid stresses 53296-14 °110006+01 -:1083E-137 oy Gy yy 3066E-23 ~'1000€+01 ~!2606E-18| 5536-14 -110006-01 -;26068-14] 1776-14 ~‘10008+01 ”!00008+00) Figure 55 Results from Program 50 B'DB. The contribution from each integration point is scaled by the weighting factor QUOT and added into the element stiffness matrix KM, Eventually, the completed KM is assembled into the global stiffness KV using the routine FORMKV which was used extensively in Chapter 4. When all element stifnesses have been assembled, the program enters the ‘equation solution’ stage. The global matrix KV is reduced by the routine BANRED and the required loads vector is read as data. The final stage of the equation solution is performed by the routine BACSUB and the resulting displacement vector (stil called LOADS) is printed. I required, the stresses and strains within the elements can now be computed, Clearly, these could be found anywhere in the elements, but itis convenient and often more accurate to use the integrating points that were used in the stiffness formulation. In this example only one integrating point (the centroid) was employed for each element, so itis at these locations that stresses and strains will be calculated, Each element is scanned once more and its nodal displacement (ELD) retrieved from the global displacement vector. The BEE matrix for each integrating point is recalculated and the product of BEE and ELD yields the strains EPS from equation (3.33), Multiplication by the stress-strain matrix DEE gives the stresses SIGMA which are printed. ‘The computed results for the example shown in Figure 5.2 are given in Figure 5.5. For this simple case the results are seen to be exact. The vertical displacements under the loads (freedoms 1, 3 and 5) all equal 10~*m and the Poisson's ratio effect has caused horizontal movement at freedoms 4, 9 and 12 equal to 0.3 x 10°°m. The stress components, printed in the order 44. Nand IKB2 > IW + I. Thisis done by the routine FORMK B (instead of FORMKY) and the reduction and back-substitution phases of the equilibrium equation solution by CHOLIN (instead of BANRED) and CHOBAC (instead of BACSUB). Thereafter the programs follow a familiar course. Tt may be noted that exact integration of the six-node element requires three integration points per element. Ifthe stresses are still required at the centroi 6a) gi) Hoy aw {gin 616) gle OD eno) gota ee o Cn a Figure 5.6 Local node and freedom numbering for six-node triangle 153 E =10°KNIn? ,£1=8.33 «10° kNa? v203 oa + Oy printed at these locations aa ae “arog Structure sNCE NYE NW ONN NR NIP deta i cee tD re 10D e SIeeOS ee Bete a Elament AA BBE OV data 5 2 166 3 Nodefreedom 5100 §200 §300 8400 6500 data Loads NL (Ky LOADS (Ki)1= 1,NL) data ie Sees Figure 5.7 Mesh and data for Program 5.1 -39746-02,.2798E-02 .1714E-02 .8241E-03 .2226E-03 chosen displacements 34148401 1137402 1937402} chosen oy 27408403 35078402, Figure 58 Results from Program 5.1 154 however, the routine NUMINT must be called with NIP put tof just before the loops in which strains and stresses are computed. ‘The example and data in Figure 5.7 relate to a cantilever supporting a load of, IKN at its tip. To reduce the volume of output, only certain displacements and stresses are printed. The computed results shown in Figure 58 give the x displacements at freedoms 1, 21,41,61 and 81 and the values of, a the centroids of elements on the tensile side, as indicated in Figure 5.7. The results indicate close agreement with slender beam theory. The computed tip displacement (freedom 1)is 3974 x 10~m compared with the ‘exact’ value of 4 x 10~* m. The ‘computed value of stress, at the centroid of the element closest to the fixed end of the cantilever is 35.07 kN/m?, compared with the ‘exact’ value of 34,67 kN/m* PROGRAM $2: PLANE STRAIN ANALYSIS USING FIFTEEN- NODE TRIANGLES © € PROGRAM 5.2 PLANE STRAIN OF A ELASTIC. SOLID USING 15-NOoe TRIANGULAR ELEMENTS € ALTER NEXT LINE To CHANGE PROBLEM SIZE ¢ PARBMETER(1K31=200, IKB242, ILOADS=200, 1NF +100, _tINeezont=20) EAL, OEE(3,3),SHNP(16,2),C00RO(15,2) 9AC( 2,2) IACN(2;2),DER(2, 15), DERI (2,15. A8€( 5,30) BEE 3, 30), BTO8(30, 38) fOH(30, 30) ,£L0(30}, SEP5(3), StGHA(3) BF 303), FUN(IS) MT (18) ,KBCLRBL, 1RB2) ‘Loans ions) wioctac}DEPCaNY) INTEGER N (INF, 2) 6(30), ATA LSHNP/ 6 1HDS, IK, 1B, 1005744307 ATA IDEE, Tae" 3e=,t8/¥=5/" IcO0RD,N00/2415/ DATA Tok, KE eR 1eR, ano 7627 INPUT AN INITIALISATION ¢ ERD(5,#]NCE.NYE,4 14, NMNR,NIP, EW ERD(S.*) (1) 121 fCESI) READS») (DEP(T) ToL (NYEs2) /2) ALL READNE (NF, OOF NR) TuPletve1 CALL NULL(KB.1461,N, 1801) CALL Fners( Bee, bee, EW) CALE MITES SP) € ELEMENT STIFFNESS INTEGRATION AND ASSEMBLY é 0 10 1Pa1,NCE D0 10 10-1, NYE CALL GEVISY(IP, 10,N¥E,WID,OEP, COORD, TCOORD, 6, NF INF) CALL MULL (KM, 1, 1O0F, 100F) Do 20 1=1,NIP CALL EMTRIS(DER, 1DER, FUN, SANP, ISANP, 1) EALL MATMUL (DER! IDER, COORD, COORD, JAC, TRC, 17, NOD, 17) EAL TwDaY2(AC, IAC, IACL, 1JACL DET) CALL MATMUL (JACI, {JAE DER, IDER;DERIV, 1DERIV, IT, 1T,§OO) CALL NULL(BEE, T8EE, 1H, 100} 155 CALL FORME, BEE, 18EE, DERIV, TOERIV, NOD) CALL MATHUL (OEE, IDEE BEE, IBEE,DBEE, 1DBEE, IH, 1H, 100F) CALL WeTRAN(BT, 1BT, BEE, IBEE, 1H, 100%) ALL MATWUL BT, TBT;OBEE, IDBEE, ETB, 16708, 100F, 1H, 100F) ore sroeTiwT{ 2) CALL HSMULT(BTOB, 18TOB, QUOT, IDO, IDOF) 20 CALL WATADO( KM, 1kH, BTO8, 1ETBB, TDF, IDOF) 10 CALL FORMKB(KE, 1KBI KM, 104, 6, 1M, 1D5F) EQUATION SOLUTION CALL CHOLIN( KB, IKBL,N, 1M) CALL NULVEC( LOADS, N} EAD(S,* NL, (K, LOADS(K) CALL CHOBAC{ RB, 1KB1, LOADS, CALL PRINTV(LOAOS,N} RECOVER STRESSES AT TRIANGLE CENTRES Nip=1 CALL NUMINT (SAMP, ISAKP,WT, NIP) 00 30 IP. D0 30, Toe ve CALL GEVISY(1P, 10, NYE, MID,DEP,COORD, 1COORD, NF, INF) 150 40, Mel TDOF TE (G(M)-£9.0)EL0(H)=0. 40 TF (G(M) NE 0)ELO(H)-L0AD5(6(H)) D0 30 I-1,NIP CALL FHTRIS( OER, 1DER, FUN, SAMP,ISAMP, 1) CALL MATHUL(DER,[DER, COORD, ICGORD, OAC, LAC, 17, NOD, 17) CALL TWOBYZ(JAC, [JAC, IACI, TJACK DET) CCALL MATHUL OAC}, JACI ,DER, IDER,OERLV, IDERIV, 17,17, NOD) CALL NULL(BEE, IBEE, TH, 100F) CALL FORNG( BEE, TBEE ,DERIV, 1OER1V NOD) CALL MYMULT (BEE, IBEE, ELD, iH, 100F, EPS CALL MVMULT(DEE,IDEE, EPS, 1H, 1H, SiGHA} CALL PRINTV(SISHA, 1} 30 CONTINUE srop END {NCE The last of the triangular elements to be considered here is the fiteen-noded ‘cubic strain’ triangle. Plane strain conditions are introduced at this stage, and thisis achieved by replacing the routine FMDSIG (for plane stress) by FMDEPS. Although the triangles are still formed by drawing diagonals of rectangles, @ variation is introduced in that the rectangles can vary in size. Thus, instead of constants AA and BB, the widths and depths are read by the arrays WID and DEP. The dimensions of these arrays appear in the PARAMETER statement where: INC>NCE+1 and INY > (NYE+2)/2 Nodal coordinates COORD and the steering vector G are generated by the ‘variable’ geometry routine GEVISY which assumes nodes are numbered in the 156 © ® ® @ Freedoms numbered ® @ + 1fo30insone = orter 0s nodes ® ° 66 Figure $9 Local node numbering for itesn-node tangle t 4 1 1 kevin OY so 72 30 0. 2, Structure «NOE NYE NW ON NA ONIP ata tae gust ga tt tap' titan att 7:2: Material any: ‘proportion 166 2 With (WID(D,1=1, NCE#1) 6 Depths (DEPIN,1=1,(NYE+2¥2) 0. Nodefreedom 101 201 301 401 500 te 1000 1500 2000 2500 3000 3500 4000 4101 4201 4301 4401 4500 Loads NL (LOADS (Ky. =1,.NL) ca 51-0778 6 ~2656 14-1333 2 3886 30 0778 Figure $10 Mesh and data for Program 5.2 TI16AE-0§ NDE NRE and NDE for axisymmetric meshes are the counterparts of NXE and NYE in planar problems. Nodal coordinates COORD and the steering vector G are generated by the ‘variable’ geometry subroutine GEOV4Y, which assumes that nodes are ‘numbered in the depth’ direction. Two other subroutines appear forthe first time 2 t 00— Seaasseeaat Es tkNin? v203 40 — € = 10KNim? v=0.45 ~10.0 besthim 0.0 40 10.0 30.0 Radius(m) Structure NRE NDE NW NN NR NGP ata 3020 2 7 2 8 38 Radi (RADINI=1,NRE+1) 0 & 10,0, Depths (DERIN=1NDE+1) = 0. =A. —10, Material & —(PROP(I,1),1= 1,NDE) fa Properties V_—(PROP(T.2,1=1, DE} 3 48 Nodefreedom 101 201 300 600 900 data 1001 1101 1200 Loads NL (K, LOADS (K),1= 1,NU) ata 3° 1 ~26687 4” 2339333 6-24. Figure 524 Mesh and data for Program 5.6 1m <.B1TSEOL -.3231E+00 1395600 -.2991E401 .1165E+00. -. 24988400] apacenents “a7otes09. “leokses00 113306.00 *leazie-01 128886400 4081801 S200E-01 182426400 ‘aoe: or TKN 102 0.3183kN ‘601 32021 many 2525.26 reas ak tom 0, 2m not to scale any sigan seoiog sas152 saesy sm5960 ns 36445 age 0.5m Structure NRE NDE NW NN NR NGP. data te iii em ieetao te ontiiigtaa| Element AA BBE OV data ibe lee 3 Harmonic LTH FLAG CHI data cr) Nodafreadom 110 4101-6101 810114104 data 14101 16101 19101 21101-24101 2000 27000 28000 Loads NL. (Ky LOADS(Ki),1= 1,NL) data 1 6" ates Figure 527 Mesh and data for Program .7 178 .67S6E-O1 -.6759E-01 .6756E-01 -.2528E-02 -.6755E-01 .6755E-01 5083-02 =L6754E-01 “5743E-01 -.5743E-01 574 5006E-02 S743E-01 /ATS3E-01 -c4752E-O1 .4753E-01 -.2626E-02 -147528-01, TATS3E-O1 -l4B50E-02 147506-01 ‘3801E-01 -!3801F-01 .38047-01 '4598E-02 -13799E-01 .29146-0] -.2913E-01 2913-01 2 2126-01 2914E-01 -+4248E-02 -,29096-01 |2103E-01 1 pvsacenents T2109e-01 =13782E-02 -‘21018-01 -14006-01 -.13998-01 1 Y614E-02 °113986-0) :2401E-0] ~13233E-02 -11394E-01 18132E-02 aisye-02 .82t2t-o7 aogst-o2 |376sE-02 -|3736E-02 “7396-02. -90106-03 “Sysee-02 -11009E-08 -.3697E-02 357at-08 <79620e-03 _110828-00 -"9219E-03 ‘en0st-03 G441Es00 =1S036E+01 -14726E+00 9638-01 L0000E+00 .0000E+00) aig “Beeleco. “l1e1ses02 “[114see01 —“68008-01 <00008+00 “00008,00) cove Sealesol “20786602 “3341ts01 “1484800 oag0E+00 “0000E+00} 2s aowaevol =caleateae “s250E+01 ‘36276+00 L0000E-00 -0000¢+00] Sr 9+ e T9o0E2 =_35e1Ev02 “1SADEIO2 |9873ELOO L0000E+00 00006400] Tye Tae Tor Figure 528 Results from Program 5.7 displacement in this case at freedom 6 would be — 5.063 x 10"? m, compared with the slender beam value of ~ 5.093 x 10"? m. PROGRAM 58: THREE-DIMENSIONAL ANALYSIS USING FOUR-NODED TETRAHEDRA PROGRAM §.€ THREE-DINENSIONAL ELASTIC [ANALYSIS USING 4-NOOF TETRAMEDRON ELEMENTS ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARAMETER( 181420, 1KE2=12, ILOADS=320, 1STOR®20) EAL DEF(S,6) ,SANP(16,3) ,COORD(4,3) ,JAC(3,3) JACI (3,3), +ER(3,4) DERIV(3, 4) ,BEE(6, 12), OBEE (6,10) BTD8(12,12),KH(12, 12), FELD (13) EPS(6), Signa (6) ,81(12,6) ,FUN(4) WT (16), HB UKBL 1482) LOADS TLOADS),STOREC (TSTOR, 4,3) INTEGER’ G(12) ,STOREG( STOR, i2) DATA ISaN/16/, IBTDB, 1KH, 187, 1D0F/4*12/, 1DEE, 1BEE, 1DBEE, 14/4¥6/ DATA [COORD,NO}/2"4/; TOAC, T9ACL, JOER, TOERIV, HODOF, 17/6837 INPUT AND INTTIALISATION READ (5, *)NEL,N IW NEPY EY Twpt=tel CALL NULL (KB, 81,4, 1MPL) ALL FORWDS (GFE, TOEE.E,V) CCRLL NUNS (SAM, ISAMP,WT, NIP) [ELEMENT STIFFNESS INTEGRATION AND ASSEVELY (0 10_1Pe1,NEL READ(5,*) ((COORO (1,9) 1, 3)5 91,4) Bo 20 1=1,N0 Do 20 JelIT 20 STOREC(IP) I,)=C00RD( 1.9) READ (5,*) (6{1), 1, 100F) 100.30" f1, 100F 179 30 STOREG(IP,1)=6(1) GAUL: NULL 100, DoF) 0 go. =1.NIP CALL ATE (DER, 1DER FUN, AMP, 1580, 1) ALL RAT (DER, IDER,cCORD, Tob0RD, JAC, 10KC, 1T,NOD, 17) ALL TREES (SRC, TAC. OAC, ACD, DET). CALL NATL (JACK, TOA OER IDR’ DERN, OERIV, 1, NoD) CALL MUL (BEE, fe, 1, DD} GALL Fowwss (BEe, 1a, GERIV, 1R1V, No) CALL MATHUL (DEE, TOEE,BEETGEe, OBE, TOBEE, TH, I, 100F) CALL MATRAN(BT i, BEE, 18EE, 1,100) GALL HATHUL( BT, 18T-DBEE, DBE, STD, 8708, IDF, 1h 100") Quor-beveur(iy/6 CALL HSMOLT (408; tet08,qUDT, 100,100) ALL HATADD kM 8108, Tb, IDOE DOF) 40 Contin ALL FoR (KS, KB 1K 614, 10) 10 cane EQUATION SOLUTION CALL CHOLIN(KB, IKBL.N, IW) CALL MULVEC(LOADS,N) READ(S,*)NL,(K, LOADS (XK), T= NL CALL ClioBAC (XB, KB), LOADS, IW CALL PRINTV(LOADS,N} RECOVER ELENENT STRAINS AND STRESSES [AT TETRAHEDRON CENTROTOS: 100 50 1Pe1,NEL 0 60 T+1, 0D 00 60 Jats IT, 60 COORD(T,J}=STOREC(IP, 1,9) 00 70 121, 100F 70 6(1)=sTORES(IP, 1) 50 T=1.ulP CALL FHTETS (DER, IDER,FUN, SANP, ISANP, 1) CALL MATAUL (DER, IDER, COORD, 1CDORD, JAC, TAC, IT,NOO, 17) CALL TREEXS(JAC,TIAC, JACI TJACL, DET) CALL MATHUL (OACi, TJAC) DER, OER, DERLV, IDERIV, 17,17, N00) CALL MULL (BEE, IBEE, TH, HOOF} CALL FORNES(SEE, I8éE,DERIV, IDERIV,NOD) (00 80 Mel, 100: TE (G(M)-£0.0)EL0(M)=0.0 180 1F(G(M)-NE.0)EL0(H)=LOADS(G(M)) CALL MVMULT(@EE, I8EE, ELD, TH, TOOF, PS) CALL MUMULT DEE, IDEE, EPS, 1H, 1H, SIGMA) CALL PRINTV(SIGHA, 14} 50 CONTINUE STOP END In cases where many Fourier harmonics are required to define a loading pattern it becomes more efficient to solve fully three-dimensional problems. The simplest three-dimensional clement is the four-noded tetrahedron, This ‘constant-strain’ element is analogous to the three-noded triangle for planar problems described in Program 5.0 and, like the triangle, is not recommended for practical ealeulations. Due to its simplicity, however, this element is a convenient starting point for 180 three-dimensional applications, and the program described here can easily be ‘modified to include more sophisticated tetrahedron elements. Comparing with Program 5.0, few changes are required. The subroutine NUMIN3 replaces NUMINT and provides the integrating points in volume coordinates and weighting coefficients for integration over tetrahedra, It may be noted that this simple element only requires one integrating point at its centroid. ‘Three-dimensional Band D matrices are formed by the routines FORMB3 and FORMD3 and the Jacobian matrix, being now of dimensions 3 x 3,isinverted by the routine TREEX3, For the simple example demonstrated here, it has been decided that the COORD and G arrays for each of the NEL elements should be read in as data This of course could have been done in any of the previous programs if these quantities could not have been conveniently generated automatically. These extra READ statements mean that no geometry routine is required for this program. Extra arrays are declared, however, to store COORD and G for each element after they are read, and these are called STOREC and STOREG respectively. The variable dimension of these arrays, ISTOR (> NEL} is defined in the PARAMETER statement. The clement shape functions and derivatives are provided by the routine FMTETS. The only other obvious difference between this program and Program 5.0 is that the former uses Gaussian elimination to solve the equilibrium equations, whereas this program uses Choleski’s method. The local element node and freedom numbering is indicated in Figure 5.29 and it is important that the nodal coordinates and freedoms are read in a consistent manner. The system adopted here is that nodes (1), (2) and (3) go clockwise as viewed from node (4). “The example and data given in Figure 5.30 represent a cube made up of six tetrahedra. One corner of the cube is fixed and the three adjacent faces are restrained (o move only in their own planes. The four nodal forces applied are equivalent to a uniform vertical compressive stress of 1 kN/m? z 10,11.12 Geeveae @,5 Gaye) 9 ¥93) Figure $29 Local node and freedom numbering for four-node tetrahedron Unit cube Structure cat Element data Loads date 181 14240 NEL NW NGP 62 9 1 ev too 3 {(COOAD (,J),J= 1,3),1= 1,4}for each element (Gu, 200 OO -- 1 O-2 © Ol amigo: s toneg 0 200 1O-- 1000 oo%1 40 0 2030 OO OrtietstoenOreOr too i sis tices :te1:1 0222696) 2203010) AO eG eeu teet tO! Pitts gianni nteanto 0: 1070! PLO £0 8 -O-- Oat Pires @ ciation sic ai0s0 103190220) CeCe beset See eet ee at eet Hee ae cy Ties Waco et0se i ceehaie0ia9 1:0: 040) NL (Ky LOADS Kj, = 1,NL) 4 1 =1667'3 =3393.6 © 9333.9 -.1867 Figure 530 Mesh and data for Program 58 182 1900-01 .30008-02 ‘a0008-02 ‘3008-02 =.1000E-01 3000-02 .3000E-02 -. ='10006-01 3000-02 “3000E-02 1965E-04 -!2100E-04 :10006+01 9000E+00 “0008400 0} 2302E-08 11389E-04 {1000E+01 -6475E-05 ‘2974E-08 34) ceria 12308-04 2075-05 -:9999E+00 0000E+00 | -3641f-08 \4| stresses 3} se Hhareog 0.49 (636) The conical surfaces are those obtained by substituting either @=30° or 6 = ~ 30° into (6.12), depending upon the sign of @ as it approuches + 30°. It should be noted that in the initial stress approach, both F and Q functions must be approximated in this way due to the inclusion of both AF /d@ and ¢Q/de terms in (6.33), The visco-plastic algorithm, however, only requires the potential function @ to be smoothed from (6.19), as derivatives of F with respect to stresses are not required. All the two-dimensional programs in this chapter have been constructed using the eight-node quadrilateral element, together with reduced integration (four Gauss points per element). This particular combination has been chosen for its simplicity, and also its well-known ability to compute collapse loads accurately (ce. Zienkiewicz, 1977; Griffiths, 1980). Of course, other element types could be used if required, and this would involve making similar subroutine changes to those illustrated in Chapter 5. ‘The first four programs involve computation of collapse loads in problems which have known closed form solutions. In addition to the different boundary value problems tackled, both the visco-plastic method and the initial stress implemented. The fifth program shows how the constant stiffness extended to deal with three-dimensional strain conditions PROGRAM 60: PLANE STRAIN BEARING CAPACITY ANALYSIS—VISCO-PLASTIC METHOD USING THE VON MISES CRITERION PROGRAN 6.0 PLANE STRAIN OF AN ELASTIC-PLASTIC (VON-MISES) SOLID USING 8-NODE QUADRILATERAL ELEMENTS VISCOPLASTIC. STRAIN METHOD ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARAMETER( 1KB1~186, 1KB2=30, 1LOADS=184, INF=130, + TEVPT+512, INK=20, INY=20, IND=10, 1QINE=20) REAL DEE(4, 4) ,SANP(4,2) ,COORD(B,2),JAC(2,2) s9ACL(2,2), ‘#ER(2,8) DERI (2,8) ,BEEL4, 16) ,OBEE(, 16) MIDTH(INX} ,DEPTHCINY) , ‘#8108 (16, i6) KM( 18,18) ,L0{16)|€P5(4) 'staiA(4) BLOAD{ 6), ‘¥8T(16.4) ,FUN(8),XB(1KBD,1RB2) LOADS LOADS) ,ELOAD( 16), +TOTD({LOADS) , AOL0S(ILoAOs),eVPT( TEVPT) ,OLOiS(ILOADS), *+SKCING INY, 4) SY(TNG TRY, 4) TAY (INK, IN, 4) SZ(INK,INY 4), “WAL(INO), ERATE (4) ,EVP(4) DEVP( 4), M14, 4} ,68(4, 4) 8444), FLON( 4. 4}, STRESS(A) INC TOTNC) INTEGER NF(INE 2) ,0(16) .NOCINO) DATA TOEE, IBEE, IDBEE, 1N,IFLOW/544/, 100F, 1BTOB, 1BT,IKH/4*16/ 20 0 [DATA T28C, T9AC1 NODOF, IT, IDER, IDERIV/6*2/, ICOORD,NOD/2*8/ DATA Isanb/4/ INDUT AND INITIALISATION READ(5,*)CU, EV, NXE, NVE,N, IM, NN,AR,NGP, ITS CALL. READNF(NF, ENF, A, NODOE, im) READ(S,*) (WIDTH(T) Td NEF) READ(S,*)(OEPTH(),T=1,NVEFL) Tapl-Te+1 CALL” MULL (KB, 1KB1,N,INPI) CALL MULVEC(SLDIS.N} CALL MULVEC(TOTD Hi) CALL FMORAD(OEE, HOEE,E,v) CALL GAUSS( SAND, ISAM, HGP) OT-4.(1.40)/03-48) ELENENT STIFFNESS INTEGRATION AND ASSEMBLY 00 10 1P=1,NKE 00 10 10-1, NVE CALL. GEOVAY(1P, 10,NYE, WIDTH, DEPTH, COORD, ICOORD, 6, NF, INF) CALL. NULL(KM, 1, 1OOF, TOOF) 1 DO 20 I=1,NGP Do 20 Jel ,NGP ToeIGe1 SX(IP, 10, 16)-4 Sy(IP, TQ, 16)-0, THY(1P, 10,16) <6 S2(1P, fa, 16)40. CALL FNQUAD( DER, 20ER, FUN, SAMP, ISAMP 0) CALL HATMUL (OER, 1DER’ COORD, COORD, JAC; TRC, 1T,NOD, IT) CCALL TWOBY2( JAC, TJAC, JACI ACI ,O8T) EAL MATNUL(IACH, TRC) OER, TOER,DERTY, 1OERIV, IT, 1T,NOD) CALL NULL(BEE, TEEE, 1, LOO} CALL FORNB(BEE, TBEE,OERIV, IoERIV, NOD) 2 ALL MATHUL (OEE, IDEE, BEE, 1SEE,O8EE, 1DBEE, TH, TM, I00F) CALL MATRAN(BT, {87 BEE, 18EE, TH, T00F) CALL NATHUL(BT, 1BT BEE, 1DBEE, BTOB, 16TDB, TOOF 1H, 10OF) (QUOT-DET*saN (,2)*SANP{ 3,2) CALL MSMULT(BTDB, 18708, QUOT, 100F 1D0F) CALL MATADO(KM, 14M, BTDB, 1BTOB, 1007, 100F) CALL FORAKB(KB, TABI, KM, TKN, G, iW, DOF) READ LOAD WEIGHTINGS AND REDUCE EQUATIONS READ(S,*)NL(NO(Z) VALI) Ta CALL CHOLEN(KE, IKBY,N, IW) Lok INCREMENT LOOP READ(S,*)INCS, (QINC(I) Tel, NCS) ProT=0: 00 30 fye1, nes proTepToTs@INC(1Y) TTERS«0 (CALL NULVEC(BDYLOS,K) CALC NULVEC(EVPT, NEANYESTHONGP*NGP) ITERATION LOOP NL) 205 40 ITERSeITERSH1 CALL NULVEC(LORDS,N) Do 50 T=1,NL LLoaDs(NO( 4) )avaL(r)sgmccsy) ‘CALL VECADD(LOADS, BOYLDS, LORDS, N) EAL CHOBAC(KB, IKB1, LOADS, N, 1H} CHECK CONVERGENCE CCALL_CHECON(LOADS, OLDIS,N,0.001 ,TCON) TFCITERS. £9.1)1C0=0 TF(ICON.£q. 1.08. TERS. €Q.ITS)CALL NULVEC(BDYLDS,N) INSPECT ALL GAUSS POINTS 5 Neo 00 60 Pet AXE 0 60 10=1,NvE Nett] CCRLL NULVEC(BLORD, 100F) ALL GEOVBY(1P, 10,NYE, MIDTH,DEPTH, COORD, 1COORD,G,NF INF) Do 70 Mel, 1DOF IF(G(M) -£9.0)EL0(H)=0 70 IF(G(M):NE-O)ELOGH) =LOADS(G(H)) Io-0 0-80 1-1 ,NeP DO 80 Jo1,NeP IeeIGe1 IN-NGP*NGD*1H6(NH-1)+1H4(G-1) CALL FMQUAD(DER, IDER, FUN, SAK, ISAM, 1,9) CALL MATAUL(DER, IDER, COORD, ORD, AC; TJAC, 1T,NOD, 1) CALL THORY2 (IAC, TUAC, JACL {JACI ET) CCRLL MATHUL(IACL TJACL DER, TOER,DERTV, TDERIV, 17,17, NOD) CALL NULL(BEE, EE, 14, DOF) CALL FORNG( BEE, 1BEE,DERTY, TOERIV, NOD) CALC MATRAN(ST, 187, EE, 1BEE, 1H, TD0F) CALL MYMULT (BEE, IBEE, ELD, IH, IDF, EPS) Do 90 kel, TH ‘90 EPs(K)=EP5(K)-EVPT( INSK) CALL HVMULT (DEE, IDEE, EPS, 1H, 1H, StcMA) STRESS(1)=SIGHA(1)+54(IP, 10,16) 1GNA(2)=S¥(1P. 10; 1G) 1GNA(é)+SZ(1P, fo, 16) CALL. INVAR(STRESS, SIGH, OSBAR, THETA) (CHECK WHETHER YIELD 1S vioLATED Fe0sBaR-sgRr(3.)*cU TF(ICON.£9.1.0R. ITERS.€Q.17S)6010 100, IF(F_LT-0.¢0T0" 110 oal=6. DQ2=1:5/OSBAR Dg3=0. CALL ORNMN( STRESS, MIH2,H8) Do 120 Lel, 1H DO 120 Ne1}IH 120 FLOW( LAN) =*(41(L,M)*0014H2(L,M) #002499 (LM) #003) CALL HMULT FLOW, HFLOM, STRESS, IM, IH, ERATE) D0 130 Kel, 1H EVP(K)=E8ATE(K)*O7 130 EVPT(Ih+K)=EVPT(IN*K)+E¥P(K) 206 CALL MUMULT(OEE, IDEE, EVP, IH, IH,DEVP) GoTo 140 200 CALL VECCOP(STRESS, DEVP, 1H) 140 CALL MYMULT (BT, 18T,DEVP, IDOF, 1H, ELOAD) QUOT-DET*SANP(T,2)#SAHP(3,2) Do 150 eI, IDOF 150 BLOAD(K)=8LORD(K)+ELOAD(K)*QUOT 110 TF(ICON,NE.1.AND,ITERS.NE.1TS)GOTO 80 UPDATE GAUSS POINT STRESSES SX(1P, 10, 16) =STRESS(1) SV (IP. 10: 16)=STRESS(2) ‘TRY(TP, 1,16) -STRESS(3) SZ(1P, 1Q, iG) =STRESS(4) 0 conriNue' ‘COMPUTE TOTAL BODYLOADS VECTOR Do 160 Met, 100F 1F(G(M)-£9-0)G0T0 160 DYLDS(&(H) )-BDYLDS (6M) )+8LOAD(M) 160 CONTINUE 160 CONTINUE TFCICON.NE.1.AND. ITERS.NE.1TS)GOTO 40 CALL_VECADD(TOTD, LOADS, TOTD,N) WeITe(s, 1000)PTOr WRITE(, 1000) (TOTO(NO( 1)) 5 wate, 2000111888 Te(ITERS.£Q.1TS)GOTO 170 30 CONTINUE 170 CONTINUE 1000 FORKAT( 10612, 4) 2000 FORMAT( 10112} sToP END NL) ‘The first four programs in this chapter are derived from Program 5.4 for linear clastic analysis, which used eight-node quadrilateral elements. Program 60 ‘employs the visco-plastic method to predict the response to loading of an elastic: perfectly plastic (von Mises) material. Plane strain conditions are enforced and, in ‘order to monitor the load-displacement response, the loads are applied incrementally. In the first part ofthe program, however, the global stifness matrix isformed in the usual way and the resulting matrix, KB, is then ‘reduced’ using (in this case) Choleski’s method. An obvious advantage of constant stiffness methods is that the time-consuming reduction process is only performed once. An outline of the viseo-plastic algorithm which follows the stifiness matrix formation is given in the structure chart in Figure 6.8. ‘New variable and array names that have not already been defined in Chapter 5 are listed below: cu undrained ‘cohesion’ INCS number of load increments ITs ‘maximum number of iterations Dr critical time step ITERS iteration counter 207 PTOT keeps running total of loading ICON checks convergence (1 = convergence) SIGM mean stress invariant 4 DSBAR deviatoric stress invariant THETA Lode angle 0 F value of failure function DQ! DQ2DQI_—_A/ooy, AQ/A;, OQ/Is IQINC > INCS INX> NXE +1 working size of matrices INY 2 NYE #1 pe FOINC, WIDTH, DEPTH, EVPT, FLOW TEVP > NXE*NYE* |" VA No NGP?+IH. INO>NL IFLOW ELOAD product B'Dée'? at each Gauss point BLOAD accumulates ELOAD from each Gauss point BDYLDS accumulates BLOAD from each element OLDIs displacements from previous iteration Qinc Toad increments WIDTH + coordinates of elements DEPTH y coordinates of elements TOTD accumulated displacements sx sy accumulates oy, 055 tay and 0, TXY at each Gauss point SZ STRESS vector holding 6, 0), fry and o, NO loaded freedom numbers VAL load weighting at each freedom ERATE visco-plasti strain rate &”* EVP visco-plastic strain increment de¥? DEVP product D°ée'? EVPT accumulated visco-plastic strain at each Gauss point MI, M2, M3 arrays holding 29/06, €J3/¢e, 0J/é0 FLOW used to calculate 69/20 Several subroutines appear for the frst time in Program 60. All elements are rectangular with nodes counted in te y direction; thus the nodal coordinates and Steering vector are provided by the eight-node variable geometry routine GEOVBY (Appendix 3), Routine INVAR forms the three invariants 6, and 8 from the four Cartesian stress components held in the one-dimensional array STRESS. It should be noted that in plane strain plasticity applications, itis necessary t0 retain four components of stress and strain. Although, by definition, one of the strains (¢,) must equal zero, the elastic strain in that direction may be non-zero, provided con 39 Form endreduce the lestc stiffness matrix Forallload displacement increments Feadin applied load increment Iterationioop starts here Addbody-losdsto appiedioads Solve equilibrium equations to give dsplacsmentineromonts SetICON=1 i displacementshardly changed fromlastiteration Forall Gauss points Compute lastiestaininerernents Compute elastic stresineremonts and add tostresses lef romendof lestloadincrement Failure evterion excooded! jt YES. No. ‘Accumulate vscoplasticsirains Gotonext Formintegralstoobteinnadalforees | Gausspoint ‘Accumulate element nodal forces in body-oads vector YESIICON= 1) NOWCON=Or Update elementstresses erate ready fornextloadstep aati Printgisplacements stresses te Figure 68 Structure chart for visco-plastic algorithm is always true, For this reason, the 4 x 4elastic stress-strain matrixis provided by the routine FMDRAD. The only other subroutine not encountered before is FORMM, which creates arrays M1, M2and M3 used in the calculation of the visco-plasti strain rate from equation (6.25), “The example shown in Figure 69 is ofa flexible strip footing at the surface of a layer ofuniform undrained clay. The footing supports uniform stress, q, whichis increased incrementally to failure, The elasto-plastic soil is described by three parameters, namely the elastic properties, E, v and the undrained ‘cohesion’ cy Bearing failure in this problem occurs when q reaches the ‘Prandi load given by Gur = (2+ Rey (6.38) maxi € | o* kuin? 1.3 | uy 4 =100 kN/n? Dimensions in 5.0 —_—— 2.0 —_____- Soil we y Properties 100. 1.65 03 Structure NXE NYE N IW NN NR NGP ITS. da «84184 28112280 Node reesom date 101 201 301 401 501601, 701 801 300 1400 2300 2800 3700 4200 5100 5600 65007000 7900 400 9900 9800 10700 11200 11300 11400 11500 11600 11700 11800 11800 12000 2100 Or eee eee tian aReiT cg ctag 0-125 -25 -375 -6 Losdweightings NL (NOM, VALIJ,1= 7, NL) Saat 8667 10 .666667 18 ~ 399039 34 — 868667 42 8667 INCS OINCID,1= 1,1NCS ments 10200. 100. 60. 80 60. 90 2. 10 6 5, Figure 69 Mesh and data for Program 60 ‘The data follows the familiar pattern established in Chapter 5. The ‘load weightings’ provide a uniform stress of 1 kN/m? across the footing semi-width of 2m (Appendix 1). These ‘weightings’ are then increased proportionally by the load increment values held inthe vector QING. Its usual in problems of this type to make the load increments smaller as the failure load is approached. At load levels well below failure, convergence should occur in relatively few iterations. In the data provided in this example ITS is set to 250, and this represents the jum number of iterations that will be allowed within any load increment. If 210 20008403 @ 8592-02 *.6487E-02 -.6116E-02 -.5418E-02 -.2849E-02 “ipieenentt 2 iterations vader oa 30006403 TISSE-O] .1126E-01 -.10S16-01 -90996-02,-.60056-02 -3$006408 STERIE‘OL -sa596E-01 1626-01 1827601 ~.7587E-02 49006503 TEBIGE-OL -.22638-01 -.2217E-01 --19866-01 --9960E-02 3 500103 “SBITECOL 3208-01 2206-01. -.29586-01,-.11606-01 4 4an0¢+03 feaT9] -ausne-o1 -a173E-01 = 3852601, 1946-01 6 $000 +08 SOBAE 01 -.SO41E-O1 --5034E-01 -.4677E-01 1458-01 8 - 1006403 So6SE:0) ~SBLIE-OL 8600601. -$296-01, -1S406-01 51508103 SO5t10), 6256-01 .88586-01 =SS69-01 = 18946-01 1 52006103 7460E:01 -.7S18E-01 -.7123E-01 -.64636-01 -.16546-01 250 Figure 610 Results from Program 60 epee se aee Our og e 10 Iterations 20 aa 8 30 45 mM 49 50 60 10 80 250 Prandtl load = 5.14 Figure 6.11 Plot of bearing stress versus centreline displacement au PRANOTL. FOOTING FAILURE. wort 12.0 vert “5.0 on Se Ree ee : Se eae : Sew ee ee Sosa ee see Figure 6.12 Displacement vectors at failure from Program 60 ITERS ever becomes equal to ITS, the algorithm stops and no more load increments are applied. ‘The computed results for this example are given in Figure 6.10 and show the applied stress, the vertical displacement under the loaded nodes and the number of iterations at each stage of the calculation. These results have been plotted in Figure 6.11 in the form of a dimensionless bearing capacity factor q/c, versus centreline displacement. The number of iterations to achieve convergence for each load increment is also shown. Itis seen that convergence was achieved in 159 iterations when g/c,=5.1, but convergence could not be achieved within the upper limit of 250'when a/c, =5.2. In addition, the displacements are also increasing rapidly at this level of loading, indicating that bearing failure is taking place at a value very close to the ‘Prandt!’ load of 5.14. Although Program 6.0 does not incorporate any graphical output capability it is a simple matter for users to write their own from commercially available libraries. Figure 6.12 shows a plot of the displacement vectors for this example at failure. Although the finite clement mesh is constrained to remain a continuum, the vectors are still able to give an indication ofthe form of the failure mechanism. PROGRAM 6.1: PLANE STRAIN SLOPE STABILITY SCO-PLASTIC METHOD USING THE ‘MOHR-COULOMB CRITERION PROGRAM 6.1 PLANE STRAIN OF AN ELASTIC-PLASTIC (WOHR-CoULoMS) SOL 10 USING 8-NODE QUADRILATERAL ELEMENTS VISCOPLASTIC STRAIN METHOD (GRAVITY LOADING) 212 ALTER NEXT LINE TO CHANGE PROBLEN SIZE PARAMETER(1KB1=184, 1K82~38, TLOADS*164, INF=96, + TEVPT=513, INK=20, INY=20, IF05¢10) REAL DEE(4,4) ,SANP(4,2) COORD(B,2) JAC (2,2) IACI (2,2) DER( 2,8) +DERIV(2,8) ,BEE(4, 16) ,DBEE(4, 16) ,DEPTH(INY) ,GRAYLO( LOADS), 3795 (16, 26} Kn(26 Te} ELD(LE),EP8(4)SIGHALS)LD( 15), 287(16, 43 FU) KB( TABI, 1K82) ,LORDS(iLoADs) ,£{0A0(16), e0¥L08 iioADs) ,EVPT (TEvPr) ,OLDIS(1LOADS) ERATE(4) ,EVP(4} ,DEVP( 4) .1( 8,4) 2( 6,8) 814.4), 4$F05(1F05},FLON(4, 4), STRESS( 4}, 10P(IN&) ,OT(INX) INTEGER NF(INF,2) 0116) ‘DATA IDEE, IBEE, IDBEE, IM, TFLO4/Se4/, 1D0F 1878, TBT, 1KH/4*16/ DATA 19AC; 1RCH ,wODOF, TT, 1DER, TOERIV/5*2/,1COORD,R00/2%8/ DATA 1808 /8/ INPUT AND INTTIALISATION READ(5,*) PHI, C, PSI, GAMA,E,V,NKE,NYE,N, TM, MU AR,NGP, ITS CALL. READNF (NF? INF, iN, NODOF NR) READ(S,*)(TOP(T) 121, E41) READ(S)*)(B01(I),T=1,NKEH1). REaD(S)*)(DEPTH(E) 121, NVES1) TWPleIved CALL NUSL(KB, 1K81,N,T4P1) CALL NULVEC(OLDIS,N} CALL NULVEC(GRAVLON) CALL FHORAD(DEE, TOEE,E,v) CALL GAUSS(SAHP, TSAND, GP) Pr=Acos(-1.) THPH-TAN(PAI*PI/100.) ¢ © ELEMENT STIFFNESS INTEGRATION AND ASSEMBLY 00 10 1P=1, NXE 00 10 9-1. AVE CALL SLOGES(IF, 10, NYE, TOP,BOT, DEPTH, COORD, ICODRD, 6, NF, TNF) CALL MULL, 184, 1OOF, 100) CALL MULVEC (ELD, LOoF) Do 20 I=1,NaP Do 20 Jalna CALL FMQUAD(OER, JDER, FUN, SAND, ISANP, 1,3) CALL MATAUL(OER, JOER’ COORD, 1CO0RD, JAC, T9AC, 1T, NOD, 17) CALL TW0BY2( JAC, TJAC) ACL {ACL DET) CALL MATAUL(JACH, TJACT,OER, TOER, DERTV, TDERIV, 1, 17, NOD) CALL NULL(BEE, TSEE, TH, 1O0F} CALL FORNB(BEE, IBEE,DERIV, IDERIV, NOD) CALL MATMUL(DEE, IDEE, SEE, FOEE,DBEE, 1DBEE, 1H, 1H, 100F) CALL MATRAN(ST, 187, BEE, 1BEE, 14, 1007) CALL MATHUL( ST’ 18T;O6EE, 1088E, 8708, 18TD8, IDOF, IM, 1DOF) (QUOT=DETESANE (,2)*SANP(3,2) 100,30 ke2, 100F,3 30 ELD(K)=ELD(K)+UN(K/2) QUOT CCALL-MSMULT(370B, 18708, QUOT, DOF 100F ) 20 CALL MATADD( KM, 184, B1D3, 18TbB, TDOF, 1DOF) CCALL_FORNB(KB, IK81,KH, 1,6, 1, 1D0F) 0 40 Kel, 100F 40 TF (G(KD NE, 0)GRAVLO(G(K) )=GRAVLO(G(K))-ELO(K)*GAMA 10 CONTINE c 80 100 213 REDUCE EQUATIONS CALL CHOLIN(KB,1KB1,H, 16) TRIAL FACTOR OF SAFETY LOOP READ(5, 4) INS, (FOS(1) ,T#1, 1NeS) 00 50 vad, INES PHIF=ATAN(TNPH/FOS(1Y))*180./PI SNPH-SIN(PHIF®PI/180. ) DT=4. (1 a¥)#(1.=2.¥)/(E*(1.-2.9V4SNPHO*2.)) Crac/rOstiv) TreRs-0 CALL NULVEC(BDYLOS.N) CALL NULVEC(EVPT,NKE*NVE® IH*NGPANGP) ITERATION LOOP ITERS«ITERSH1 CALL VECADD(GRAVLO, BOYLDS, LOADS, N) CALL CHOBAC(KB, 1KB], LOADS, 4, IW) (CHECK CONVERGENCE CALL_CHECON(LOADS, OLDIS,4,0.0001, 1C08) IF(ITERS.€9.1)1cOH0 TF(ICON.EQ. 1 OR. ITERS. EQ. ITS)CALL, NULVEC(BOYLOS,N) INSPECT ALL GAUSS POINTS seo DO 70 1Pe1 NXE DO 70 1g=1,NVE Wie CALL RULYEC(BLORD, OF) CALL SLOGEO(TP, 10,NYE, 10P,BOT, DEPTH, COORD, 1COORD,6, NF, INF) DO 80 Hel 1DOF TF(G(M) -£0.0)EL0(M)=0, F(G(M) [NE0)ELO(M) =LOADS((N)) Te=0 D0 90 Te1,nep D0 90 Je1,NcP 1G=IG TNeNGP*NG#TH®(NH-1)+1H¢( 16-1) CALL FAQUAD(DER, OER FUN, SAP, IaH, La CALL MATNUL (DER, DER, COORD, IcdORD, JAC, TAC, TT, NOD, 17) ALL TwoBY2 (IAC, TJAC, JACI 1JACL DET) CALL MATMUL{JAC}, T0AC1,DER, IDER, DERIV, IDERIV, IT, 1T,NOD) CALL MULL(BEE, I8&E, 4, 00F) CALL FORME (SEE, 15EE,DERIV, 1OERIV, NOD) CALL MATRAN(BT, 187, BEE, 1BEE, 1H, 1DOF) CALL MUMULT(BEE, THEE, EO, IH, TDOF,EPS) Do 100 Kel, TH EPS(K)£PS{K) -EVPT( INK) CALL MUMULT (OEE, TOEE, EPS, 1H, 1H, SIGMA) CALL TWVAR(STGMA,S1GH,oSBAR, THETA) CHECK WHETHER YIELD IS VIOLATED CALL MOCOUF(PHIF,CF,SIGN,OSBAR, THETA, F) IF(ICON.£Q.1.0R. FTERS.£Q:1TS)GOTO 110 TF(F-LT.0. j0T0"90 24 CALL MoCOUQ(PSI. DSBAR, THETA, DQ), 092,03) CALL, ost eh M8) D0 120 Le1,iH 0 120 Mel) TH 120 FLOW(L,M)aF*(M1 (LM) #001 6M (LH) #002243 (LM) #003) CALL MUMULT( FLOW, HFLOW, SIGMA, fH, TH, ERATE) DO 130 Ket, IH EVP(K) ERATE(K)*0T 130 EVPT(Ittek) =EVP1(NsK) +EvP(K) CALL MVMULT(DEE, IOEE, EVP, IM, 1H, EVP) GoTo 140 110 CALL VECCOP(SIGHA,DEVP, 1H) 140 CALL MVMULT(BT, 187 DEV, 1DOF, 1H, ELDAD) (QUOT-DET*Samp (i,2)*5enP( 3,2) D0 130 kel, 100F 180 BLOAD(K)=BLOND(K) sELOAD(K)*QUOT ‘90 CONTINUE COMPUTE TOTAL BODYLOADS VECTOR Do 160 Hel, 100 IF(G(M) -£9°0)G0r0 160 BDYLOS(G(M))~BD¥LDS(4(H) ) +8LOAD(H) 160 CONTINUE 70 CONTINUE AF CICON.ME.1.ANO. ITERS.NE.1TS)60TO 60 alG~0 90.170 101.6 170 TF(ABS(LOADS(1)).cT.816)BIG=ABS LOADS(1)) wal TE(6, 1000)FOS(¥), BIG WRITE(S, 2000) TERS. IF(ITERS. €0,175)60T0 160 0 CONTINUE 180 CONTINUE 4000 FORMAT (IH ,10€12.4) 2000 FORMAT(IH {10112}, STOP END ‘The program is, in many ways, similar to its predecessor. The problem to be analysed is a slope of Mohr-Coulomb material subjected to gravity loading. The factor of safety (FOS) of the slope is to be assessed, and this quantity is defined as the proportion by which tang and ¢ must be reduced in order to cause failure This is in contrast to the previous program in which failure was induced by increasing the loads with the material properties remaining constant. The gravity loading vector P, is accumulated element by element from integrals of the type > [free y 639) and these calculations are performed in the same part of the program that forms the global stiffness matrix. It may be noted that only those freedoms correspond- ing to vertical movement are incorporated in the integrals ‘At the clement level, the one-dimensional array ELD is used to gather the ‘contributions from each Gauss point. The global gravity loads vector GRAVLO 213 accumulates ELD from each element after multiplication by the unit weight GAMA (7). The gravity loads vector in this program is applied to the slope in a single increment, and what was previously called the ‘load increment loop’ is now called the trial factor of safety loop’. Each entry into this loop corresponds to a diflerent factor of safety (FOS) on the soil strength parameters. The factored soil strength parameters that go into the elasto-plastic analysis are obtained from (6.40) Keeping the loads constant, several (usually increasing) values of the factor of safety are attempted until the algorithm fails to converge. The actual factor of safety of the slope is the value to cause failure. The following variables that are new to this program are now defined: PHI friction angle (¢) c cohesion(e) PSI dilation angle (y) PHIF factored friction angle (¢) CF factored cohesion (cy) TNPH tangy SNPH sin b Fos one-dimensional array holding trial factors of safety IFOS>INCS working size of array FOS BIG largest displacement The first subroutine that is new to this program is the geometry routine SLOGEO. This subroutine generates a mesh shaped like a trapezium with the restriction that the top and bottom boundaries are parallel to the x axis. Hence, instead of single one-dimensional array to hold the x coordinates of the element boundaries, the following two one-dimensional arrays must be read in as data: TOP element x coordinates at top of mesh BOT — element x coordinates at bottom of mesh The routine assumes that these coordinates are connected by straight lines. The element y coordinates are read into the array DEPTH, as was done in Program 60. ‘The routine MOCOUF forms the Mohr-Coulomb failure function F from the ‘current stress state and the operating shear strength parameters. The routine MOCOUG forms the derivatives of the Mohr-Coulomb potential function Q with respect to three stress invariants and these values are held in DQ1, DQ2 and Qa In Program 6.0, similar subroutines corresponding to the von Mises criterion could have been used (VMF, VMQ, ete), but the required expressions were so trivial that they were written directly into the main program, Figure 6.13 shows the mesh and data for a typical slope sta y analysis. The 216 woe € AKNin? v 108 KNIm? Dimensions in metres Soil PHC OPS|_-GAMAE V properios 40, 1, «8.20. 1E5 08 Structure NXE NYE NW NN NR NGP ITS. dota iS er bueet vag apt pete guitar ae0) 101 201 301 401 501 601 701 801 301 1001 1100 1700 2800 3400 4500 6100 6200 6800 7900 8500 9600 Topwiath data °. oa 06 08 1012 Bottomwidthdeta ——. Onis oars aiisa Dopth data 0 02-04-08 -08 -10 ‘Trialfactorsofsafety —INCS OSI, 1=1,INCS 6 10 158 (20 23 24 25 Figure 613 Mesh and data for Program 6.1 Fos Lergest asplacements 10006401 75@0E-08 2 Theravions -1S00&+02 7580608 2 20006+91 .77406-08 16 23006401 .8495¢-04 29 2400401 .90248-08 140 25008401. 12006-03 250 Figure 6.14 Results from Program 6.1 parameters are given as ¢ = 40°, c= 1 kN/m? and the dilation angle y is put equal to zero. The unit weight of the material is given as y= 20kN/m?. The ‘structure data’ and ‘node freedom data’ follow a familiar pattern in which nodes fare counted in the y direction, Three one-dimensional arrays read in the coordina information, and six trial factors of safety ranging from 1.0 to 2.5 are to be attempted. 217 The output in Figure 6.14 gives the factor of safety, the maxium displacement (BIG) at convergence and the number of iterations to achieve convergence. The results have also been plotted in Figure 6.15, and these indicate that the factor of safety of the slope is around 2.5. Bishop and Morgenstern (1960) produced charts for slope stability analysis using slip circle techniques, and these give a factor of safety of 2.505 for the slope considered in this example. The displacement vectors 10 20 3,0 F 05 Bishop ond Morgenstern (1960) 505 cs ‘ Iterations VF = yes { 8 eee | 104 cote? 140\ 2 0° Figure 6.15. Plot of maximum displacement versus factor of safety SLOPE FAILURE. emt 40.0 cho Gana 20.0 Fos 25 Figure 6.16 Displacement vectors at failure from Program 6.1, 218 after 250iterations with afactor of safety of 2.5 are given in Figure 6.16 0 indicate the nature of the failure mechanism. PROGRAM 6.2: PLANE STRAIN PASSIVE EARTH PRESSURE. ANALYSIS—INITIAL STRESS METHOD USING THE, MOHR-COULOMB CRITERION PROGRAM 6.2 PLANE STRAIN OF AN ELASTIC-PLASTIC. {(WOH-COULoMB) SOLID USING 8-NODE QUADRILATERAL ELEMENTS. INITIAL STRESS METHOD ALTER NEXT LINE Ta CHANGE PROBLEM SIZE PARAMETER (IKB1~294, IKB2-48, ILOADS=294, INF=175, + TAK=20, it’=20, INO=10) REAL DEE (4,4) ,SANP( 8,2) cOORD(B,2),JAC(2,2) ,JRCL(2,2), 4+DER(2,8) DERTV(2,8) BEE (4, 16),DBEE (e, 16), WIDTH(INE) ,DEPTACINY), +8708 (16,15) k4(16, 16) ,£LD{16) ,EPS(4) SI@IAC4) ,BLOADLI5), +87(15,4) FUi(B) ,XB(TKBI, 1KB2) LOADS iLoADS) ,eL0AD (16), +ToYD({LoADS) ,BOYLOS(TLoADS) ,0L07S TLoADs) ,£1S0(4), ‘+SKCINK TRY 8) SY(TIDQ TRY, 4) THY INK, INY, 8}, SZ(IINK, THY) +$TOR«B | IND}, SHRESS(4) PL(4,£),6C(2) TuTESER NF( INE, 2),6(16),No{ THO) DATA IDEE, 1GEE) 1DBEE, TH, TFLOW, 1PL/6¥4/, IDOF, I8TDB, 1BT,IKH/4*16/ DATA TOAC, TOACH ,NODOF, Tf, IDER, TOERIV/6#2/, 1C00RD ,KOD/3%8/ DATA TSANE/4/ INPUT AND. INITIALISATION READ(S,*)PHEC, PSI GAMA, EPKO, ENE, VEN, IW, AN NR NGP, ITS CALL REAONE (KF, INE, NNNODOF NR} READ(S,*)(WIOTH(T) | J WXES4) READ(S)*)(OEPTH(I) | =1,NVEs1) IMPL=ted CALL MULL (KB, 1KB1,N,14P1) CALL WULVEC(OLDIS.N} CALL muLvectTorD, i) CALL MULVEC(3DYLOS,N) CALL FNORAD(OEE, 1DEE, Ev) CALL GAUSS (SANP) ISANP, GP) ELEMENT STIFFNESS INTEGRATION AND ASSEMBLY CALL GEOVAY( IP, 10,NVE, WIDTH DEPTH, COORD, 1c00RD, CALL MULL, 14, 1OOF, 100F) i NF, INE) DO 20 I=1,NsP Do 20 Jel.NGP TeeIGe1 CALL FHQUAD( ER, IDER, FUN, SANP, ISANP, 1,9) CALL_GcooRD(FuN,cooRb, 1c60RD, od, 17,62) S¥(iP, 10,16) -cc{2)*cahA SK(IP) 10, 16) Gc (2) acAaNAEPKO 52(1 19,16) =GC(2) GAMAEPKO ‘TAUB, 1a, 16} -0. 20 10 0 50 60 80 219 CALL. MATHUL (DER, 10ER, COORD, ICOORD, JAC, OAC, IT,§NOD, 17) CCALL TWOBY2 (JAC, 1JAC, JACI, TJACI, DET) CALL MATHUL (JACI TJAC}, DER, JOER,OEREV, IDERIV, 17,17 NOD) CALL NULL (BEE, 18ZE, 1H, 1D0F} CALL FORWS(BEE, IBEE, DERIV, TDERIV, WOO) CALL MATMUL (DEE, TOEE, BEE, IBEE,DaéE, 1DBEE, 1M, IH, 100F) CALL MATRAN(GT, 1BT, BEE, TSEE, 1h, 100F) CALL MATMUL(BT, 187, O8EE, 108EE,87D8, 18708, IOOF, 1M, I00F) QuoTDETesAMP(i.2)*SANP(I,2) CALL MSMULT (BTOB, 187D3, QUOT, 1D0F,100F) CALL MATADD(KM, 104, 8708, IBTDB,IDOF, 100F) CALL FORAB(KB, 1KB1,KN, 1,6, IM, 1DOF) READ PRESCRIBED FREEDOMS AUGMENT AND REDUCE” STIFFHESS MATRIX READ(5,*)NL, (NO(I),T=1 NL) ,PRESC, INCS Do 30 fala ¥8(H0(T) E41) -K8 (NOT) ,1MP1) +120 SSTORKB(1) =KB(NO(T) TWP} CALL CHOLIN(KB, 1KBL,N, 6) DISPLACEMENT INCREMENT LOOP Dp 40 Iy=1,INcs. Pror-PRescty ITERS+0 TTERATION LOOP ITERS*ITERS¢1 CALL NULVEC(LOADS,N) 00-60 I-14 Loads NOE) esToRea (1) Paes CALL VECADD( LOADS ,B¥LDS, LOADS_§) CALL CHOBAC(KB, [KB], LOADS, N, IW) CALL MULVEC(BDYLDS, A) (CHECK CONVERGENCE CCALL_CHECON(LOADS, OLOIS,N,0.001, ICON) IF(ITERS. £0. 1)1C0i+0 INSPECT ALL GAUSS POINTS: 00 70 1P=1, NXE DO 70 1Q=1,NVE CALL NULVEC (BLO4D, 100F) CALL GEOVAY(1P, 10, VE,MIDTH,DEPTH,COORD, 1C00RD, HF, INF) oO 80 Hel, 100F TF(G(M)-£-0)EL0(M) 0. n 1E(GIM) HED} ELH -LBADS (GH) 0-90 1=1,NeP D0 90. Jel, NGP Teele CALL HULVEC(ELSO, 1H) CALL FMQUADIOER, IER, FU, Sa, ISA, LQ, CALL MATMUL (OER) 10ER, COORD, IcBORD, JRC, TIAC, TT, NOD, 17) CALL TwoBY2 (AC! TAC, JACI, TJACI,OET) {CALL MATMUL (JACI, TORE} DER, DER, DERE, IOERTV, 17,7, NOD) CALL NULL (BEE, IBEE, 1H, HOOF} CALL FORMA (BEE, IBEE,DERIV, IOERIV NOD) CALL MATRAN(GT, 18 BEE, BEE, TH, IDOF) CALL MUMULT(BEE, 18EE, ELD, IM, IOOF, EPS) CCALL_MUMULT(DEE? IDEE? EDS, IH, TH, SiGHA) STRESS( 1) =SIGHA(1)+SK(1P, 1016} STRESS (2) «SIGHA(2)48Y(IP, 0,6) STRESS(3) =SIGHA(3)+TX¥(1P, 10,16) STRESS (4) =STGNA(4)+82(1P, 10,16) CALL TNVAR(STRESS, SIGH, OBBAR, THETA) CHECK WHETHER YIELD IS VIOLATED CCALL, MOCOUF (PHI, C, SIGH, OSBAR, THETA, FHEW) IF(FMEW.LT.0.)G0T0 100) STRESS(i)=SK(1P, 19, 16) STRESS(2)=S1(1P) 10316) STRESS(3)=THY( TP 10, 16) srrEss(4)=S7(1P, 40, 15) CALL TNVAR(STRESS, 8164, OSBAR, THETA) CALL MOCOUF (PHT.C,STGM,OSBAR, THETA, F) FAGSFNEW/(FNEW-F) STRESS (1)SH1P 10141 SESS (2) SYP IGT) STRESS(3) “104 (1P, 10,1) 41 Fae) 513) STRESS(4) -S7(1P, fa, 16)+(1. FAC) *SIGHA(A) CALL MOCOPL( HI PSi,E,V, STRESS, PL) CALL MSMULT(L, HPL, FAC, iH, TH) CALL MUMULT(L’ TPL; EPS) IH, TK, ELSO) CALL MUMULT(BT’ 187; ELSO, 1D0F, 1H, LOAD) (QUOT-DET=SANP (i, 2)*SAHP(3,2) 10 110 Kel, I00F" ag sono (x)-sLOAD (i ¥ELOAD(K) AUT 100 TF(ZCON.NE.1,AND. FTERS.NE.1TS)OTO 90 UPDATE GAUSS POINT STRESSES $X(1P, 19, 16)=SK(1P, 19, 16)+81GNA(A) -ELS0(1) SY(1P {TQ 16) =SY(1P) 10, 16)=S1GMA(2)-ELS0(2) nh 16 1) tar i iste) SMC) 8009) Sr(Upe kgeia)-SU(1P, 1a, e)osT0aN¢s) E8008) ‘90 cONTIHUE COMPUTE TOTAL BOOYLOADS VECTOR Facyestemay FAC)*S1GHA(2} Do 120 Net, 100F TF(G(M)£Q-0)c0T0 120 B|DYLDS (&(M) }=307L0S(6())+BLOAD(M) 120 CONTINUE 70 CONTINUE IF(ICON.NE.1,AND. ITERS.NE.1TS)6OD 50 CALL VEGADD( TOTD, LOADS, TOTD,N) PaV=.5((DEPTH(1}-DEPTA(2))#(S4(1,1,2)+8X(1,1,4)) PS OEPT(2) DEPTH (3))*(SX(1,2,2)4SKU1.204) > ——-Ffoepm(3) -pepra(s))*(Sx(15352)4SK(1.3,4)), 3 A(pepra(a) -DepT#(5))(5X(1,4,2)48K(2.9,4))) ‘WRITE(S, 1000) PLOT, PAV, TERS TFCITERS £9. 17S)¢070 130 40 CONTINUE 130 CONTINUE 1000 FORNAT( 2612.4, 112) STOP END 221 The initial stress method of stress redistribution is demonstrated in a problem of, passive earth pressure, in which a smooth wall is translated into a bed of sand. As in Program 6.0, a rectangular mesh of eight-noded elements is generated with nodes and freedoms counted in the y direction. An additional feature of this program which appears in the element integration and assembly section is the ‘generation of initial sel-weight stresses. The subroutine GCOORD calculates the coordinates of each Gauss point using the isoparametric property x= Na y (641) y= DN ‘The x and y coordinates that result are held in the one-dimensional array GC, in positions 1 and 2 respectively. Only the y coordinate is required in this case and the vertical stress 9, is obtained after multiplication by the unit weight 7 held in GAMA. The normal effective stresses «, and gare obtained by multiplying, by the ‘at res’ earth pressure coefficient K held in EPKO. ‘Alter the stifaess matrix formulation, the freedoms which are to receive preseribed displacements are read, followed by the magnitude of the displace- ‘ment increment held in PRESC. In this program, [NCS represents the number of constant displacement increments that are to be applied. The upper limit on iterations held in ITS does not need to be as large as it was in load-controlled problems, This is because convergence takes les iterations when using displace- ment control, especially as failure conditions are approached. “The ‘siff-spring’ technique is used to implement the prescribed displacements, as was first demonstrated in Program 41 and described more fully in Section 3.6, ‘The program follows a familiar course until the calculation of the failure function. Initially, the failure function FNEW is obtained after adding the full elastic stress increment to those stresses existing previously. If FNEW is positive, indicating a yielding Gauss point, then the failure function F is obtained using just those stresses existing previously. The scaling parameter FAC is then calculated as described in equation (635) The plastic stress-strain matrix D® for 4 Mobr-Coulomb material is formed by the routine MOCOPL (ifimplementing the von Mises eriterion, the subroutine VMPL should be substituted) using stresses that have been factored to ensure they lie on the failure surface. The resulting matrix PL is multiplied by the scaling parameter FAC and then by the total strain increment array EPS to yield the ‘plastic’ stress increment array ELSO. Integrals of the type described by equation (6.34) then follow and the array BDYLDS is accumulated from each element. It may be noted that in the algorithm presented here, the body-loads vector is completely reformed at each iteration, This is in contrast to the visco-plasticity algorithm presented in Programs 60 and 6.1 in which the body-loads vector was accumulated at each iteration. 22 ‘At convergence, the stresses must be updated ready for the next displacement (oad) increment. This involves adding to the stresses remaining from the previous increment, the one-dimensional array of total stress increments (SIGMA) minus the one-dimensional array of corrective ‘plastic’ stresses (ELSO). ‘The example problem shown in Figure 6.17 represents a sand with strength parameters and y=0°, subjected to prescribed displacements along the left face. The boundary condition is applied to the x components of displacement at the nine nodes adjacent to the hypothetical smooth, rigid wall shown hatched. The initial stresses in the ground are calculated assuming the unit weight 7=20KN/m? and ‘at rest’ earth pressure coefficient K, Following each displacement increment, and after numerical convergence, the resultant force, PAV, acting on the wall is computed by averaging the a, stresses at the eight Gauss points closest to the ‘wall’ ‘The output shown in Figure 6.18 gives the wall displacement, PTOT, the resul- tant force and the number of iterations to convergence at each step, and these are sO 4 Y= 20kNIm? Dimensions in +50 metres: Soit PHC PSI GAMA EPKO EV Properive 30, «0, «0.20.1. 1.85 08 Siete NXE NYEN IW NN NR NGP ota cian Nie” ac eeaat eee fa Nodetreedom 1500 7300 3800 4500 6100 6200 ona $400 9200 10700 11500 19000 13800, 15300 16100 16200 16300 16800 16500 16600 16700 16800 18900 17000. 17100 47200 17300 17800 17500 17600 Widthdote 0.02805 «104253580 Dopthdata 0. -028 08-075 1.0 125-1625 -20 Displaced NL_(NOM.=1,NL) fteedoms «8 Drie tuners ato ata Increment PRESC INCE. ITS e e550 Figure 6.17 Mesh and data for Program 6.2 Dsplocenent 2000-08 4008-04 “e000€-04 'B000E-04 0008-03 12008-03 4008-03 1600E-03 8008-03 20008 -03, 22008 03, 24008 -03, 26008-03, 2008-03, “3o00€ -03 “32008 -03, "34008 -03 “36006-03 “as00€-03 48008 -03, “so00€-03 52008-03 4008-03 6008-03 8008-03 ‘5000-03 52008-03, “54008 -03, “5008-03, 58008 03, TOO0E-03, Force 10976402 11988402 12926402 13886102 1477E402 1568802 16596402 1750E+02 1ea1Es02 1932602 20198402 21056402 “zigee+02 T2T7E¥02 2256102 2 2ag16402 25298102 2616402 26986402 27708402 28346402 2991Es02 2ea)tso2 "osuseso2 213034E+02 3088802 306102 30636102 30856102 3055102 30656102 3065E+02 30666402 30676402 30686402 223 erations ry Figure 6418 Results from Program 6.2 30 kW 2» 0 rere: RANKINE Pp 3040/0 ose 7 8 im Figure 6.19 Passive force versus horizontal movement 224 plotted in Figure 6.19. The force is seen to build up a maximum value of around 31KN/m. This is in close agreement with the closed form Rankine solution of 30KN/m. The initial stress algorithm presented in this program will tend to overestimate collapse loads, especially ifthe displacement (load) steps are made too big. Users are recommended to try one or two different increment sizes to test the sensitivity of the solutions. The problem is caused by incremental ‘drift’ of the stress state at individual Gauss points into illegal stress space in spite of apparent numerical convergence. Although not included in the present work, various strategies are available (eg. Nayak and Zienkiewicz, 1972) for drift correction. PROGRAM 6.3: AXISYMMETRIC ‘UNDRAINED* ANALYSIS—VISCO-PLASTIC METHOD USING THE MOHR-COULOMB CRITERION © € PROGRAM 6.3 AXISYOMETRIC STRAIN OF AN UNDRAINED € ELASTIC-PLASTIC. (Mo#R-COULOMB) SOLID USING $B: NODED QUADRILATERAL ELEMENTS, VISCOPLASTIC STRAIN METHOD € ALTER NEXT LINE TO CHANGE PROBLEM SIZE € PARAMETER(IKV=3500, ILOADS~100, 1NF=100, + EVPT=500, INR20, 1Nb-20,TN0=10) ¢ REAL DEE(44) ,SANP(4,2) ,COORD(B, 2) JAC(2,2) ,JACL(2,2), +40E8(2,8) DERI (2,8) EE (4, 16) ,OBEE(4, 16) ‘RAB (INR) ,DEPLIND) , #8108 (16, i6),M(16,16) ELD(16) .FPS(4) ,SIGHA(4) ,BLOAD( 16), +#81(16.4) ,FUN(S) ,XV(TRV) ,LOADS{TLORDS} ,ELOAD( 16) +#T070(iLoADS) ,eo}L08 1LoAds) ,eVPT(TEVPT) ,OLDIS(1LoADs) , -#SKCINR, IND, 4} ,SY(1NR, IND, 4), TRY(INR, IND, 4) ,SZ(INR, 110, 4) “SEXCINR, IND, 4) EY(INR, IND, 4) \GKY( TNR} IND, 4) EZCINR, ND.) *#STORKY {NO} ERATE (4); EvP(4)‘OEVP(4)1M1 (4,4) M24, 4) .MB(344), ‘#FLOW(S, 4), STRESS(4), PORE (IN, IND, 4) INTEGER NFCINE, 2) ,6(16) ,NO( TNO) DATA IOEE, 1BEE) 1DSEE, TH TFLOW/5%4/, TDOF, 16708, 187, 1K6/4*16/ DDATA TJAC; 198C} ,NOOOE, TY, TOER, TOEREV/6*2/, 1C0dRO, NoD/24e/ RTA TSM /47 € —_ineut avo iutiauiseTzoN REAO(5,*)PHI.C,PSI,£,¥,8¥,CONS, NRE, NOE,N, 1K, NR,NGP, ITS CALL REAONE (AF, INF, NoDDF,NR} READ(5,*) (RAD(Z) READ(5,*) (OEP(I) T= TReN*(ivs1) CALL NULVEC(KY, TR) CALL NULVEC(OLBIS,4) CALL NULVEC(TOTD. i) CALL. FMORAD(DEE, LOEE,E,V) c © AOD FLUID BULK MODULUS € 00 10 T=1,1H Do 10 Jel 1H TF(1.E03.08..€9.3)60T0 10 25 DDEE(T,9)=OEE (1,9)48 10 CONTINUE. CALL GAUSS (SAMP, ISAMP,NGP) SNPHSIN(PHI*4.*ATAN(].)/180,) Dros. *(1.40)*(1.-2.0)/(E*( 1.2. SV4SNPHASNPH) ELEMENT STIFFNESS INTEGRATION AND ASSEMBLY 10 20 1Pe1,uRe 10 20 10-1,NDE ‘CALL. GEOVBY(TP, 10, NDE, RAD,DEP,COORD, 1COORD, NF, INF) ALL MULL(KN, TK, {00F, I00F) itso 00 30 Te1,NGP D0 30 Je1,NGP IGe1G+1 SX(1P, 10,16) -CoNS SY(IP, 16) N) DISPS net inflow/outflow NF nodal freedom array (INF > NN) No prescribed freedoms (INO > IFIX) VAL value to be fixed Solution of the equilibrium equations by calls to BANRED and BACSUB ives the values of the nodal potentials held in LOADS, The flow rate through the system involves finding the modal ‘reactions’ at those freedoms where the potential was fied. This is achieved by multiplying the one-dimensional array LOADS by the global matrix held in K VH. This product is formed by the routine LINMUL which takes into account the storage ordering within KVH. The resulting array DISPS holds the nodal values of net inflow outflow. The only non-zero components within this one-dimensional array correspond to the freedoms held in NO at which the potential was fixed. These values are summed and held in REACT. ‘The output from the program given in Figure 7.3 gives the non-zero nodal potentials (LOADS) and the flow rate through the system (REACT), Asexpected, the potentials all lie in the range 0 to 50 and gradually decrease towards the downstream boundary. The flow through the system is computed to be 48.57 m?/(smj which is in good agreement with other methods of solution. For example, using the method of fragments (Griffiths, 1984) the low rate for this problem is estimated to be around 47m’ (sm). -STI6E+01 59216401 .6553E+01 .7651E+01 9225101. 1088E102] 1136E+02 ‘11036402 11143402 11264602 [14798402 “1800E+02 "2269E+02 2415E+02 11558E+02 116136402 |1783E402 “2085402 "2554E+02 13256402 1 3000E+02 L1905Ev02 “19726402 -2176E+02 2536Es02 13086E+02 13925E+02 | 5000E402 21226402 |2196E+02 24206+02 2807E+02 |3378E+02 © 14130E+02 50008402 21966 +02 22726402 2502102 2e97E+02 | |3464E+02 4185E+02 “50008 +02 "4B57E+02 Flow rate ? plemals Figure 7.3. Results from Program 7.0 245 PROGRAM 7.1: ANALYSIS OF PLANAR FREE SURFACE FLOW USING FOUR-NODE QUADRILATERALS PROGRAM 7.1 SOLUTION OF LAPLACE"S EQUATION FOR PLANE FREE-SURFACE FLOW USING 4-NODED QUAORILATERALS ALTER NEXT LINE TO CHANGE PROBLEM SIZE PRRAMETER( IKV=1000, TLOADS*150, INF=70, IND+12, 1NX=10) REAL JAC(2,2) .JAC1(2,2) KAY 2,2), SAMP(3,2) ,OTKO(4,4) KP(4,4) COORD (4,3); DER(2, 4) ,DERIV(2, 4} OERIVT(4,2) KOERIV(2~&) ,FUN(A} , +HVAL(ING) -KVH(TKV] KU (KV) LOADS LOADS) ,018PS( LOADS) , *0L0POT (LOADS) .W1DTHGINX) SURF INR) INTEGER G(4),NO(INO) .NF(IHF,1) DATA IT, [9AC? TJACT, 1KAY, 1DER, TOERIV, IKDERV/7#2/, ISAMP/3/ ATA IDi NXE + I lige a Potential Eom ote A bh, ee es pp lp wie wt ym meee Sees ere aa erate outa 20. Elormont PERMX —PERMY 1 1 0 018 04 09 14 20 erecta fr eetaeee fal Node freedom 19 0 ata Fixedtreedom FIX (NOI), 1= 11F0X) ata gira egiteazmeng igiias Figure 7.5. Mesh and data for Program 7.1 248, ‘The undeformed mesh shown in Figure 7.5 represents the starting point for an analysis of free surface seepage through a vertical faced dam. The right hand boundary of the mesh is fixed at a potential equal to the elevation of Im. The potentials on the left hand face are fixed at valtes equal to the elevations of the nodes. The bottom left hand node therefore is fixed at a potential of zero and consequently not assembled into the global system. The other freedoms on the left hand face are fixed at values that depend on the computed potential at the top left corner. Thus, the potentials corresponding to freedoms 7 and 13 are always fixed to equal, respectively, two-thirds and one-third of the potential computed at freedom 1. ‘The undeformed mesh represents the initial ‘guess’ as to the shape of the free surface, and these elevations of the top boundary are read into the one- dimensional array SURF. At each iteration, the computed values of. the potentials along the top boundary are used as the new coordinates of this boundary for the next iteration. At convergence, the upper boundary of the mesh coincides with the free surface position ‘The output for the present analysis is given in Figure 7.6 and gives the converged nodal potentials (LOADS), the flow rate through the system (REACT) and the ‘number of iterations required (ITERS). The final shape of the deformed mesh is given in Figure 7.7 and the computed flow rate through the mesh is in perfect agreement with Dupuits solution for this problem: kee Q 025 m*/(sm) aay 2D -1839E+00 .3407E+00 .4879E+00 .7012E+00 85936400. 1000601] "1232E+00 :2971E+00 14573E+00 “6765E+00 8403E+00 : 100084011, nodat 6159E-01 |2536E+CO '4337E+00 '6601E+00 18286100 | 1000E401/ potentials [23896400 4236£+00 16548E+00 18245E+00 ‘10006101 2500£+00 -Fiow rote IL = Naf iterations Figure 76 Results from Program 7.1 Duput solution ketnvs ae ki : ree 20 surface al 0184 7 Oo: Figure 7.7 Deformed mesh at convergence 249 where k = permeability (1.0m/s) head loss (1.0m) D=width of dam (20m) 7.1 REFERENCE Griffith, D. V.(1984) Rationalised charts for the method of fragments applied to confined seepage. Géotechnique, 34, No. 2, 229-38, CHAPTER 8 Transient Problems: First Order (Uncoupled) 80 INTRODUCTION In the previous chapter, programs for the solution of steady state potential flow problems were described. Typically, Laplace’s equation (2.111) was discretised into an equilibrium equation (2.112) involving the solution of a set of simulta neous equations. For well-posed problems there are usually no associated numerical difficulties. ‘When a flow process is transient, or time dependent, the simplest extension of equation (2.111), or reduction of the Navier-Stokes equations, is provided by equations like (2.119). There is still a single dependent variable (for example potential, and so the analysis is ‘uncoupled’. After discretisation in space, a typical element equation is given by equation (2.120), This is a set of first order ordinary differential equations, the solution of which is no longer a simple numerical (ask for large numbers of assembled elements. Some of the many solution techniques available were described in Chapter 3. Possibly the simplest, and most robust, are the ‘implicit’ methods described by equation (3.94) and by the structure chart in Figure 3.18, These @ methods form the basis of Program 80. PROGRAM 80: SOLUTION OF THE CONDUCTION EQUATION OVER A RECTANGULAR AREA PROGRAM 8.0 SOLUTION OF THE CONDUCTION EQUATION ‘OVER A RECTANGULAR AREA USING 4-NODED QUADRILATERALS TMPLICLT INTEGRATION IN TIME BY "THETA’ METHOO ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARAMETER(18K+1000, ILOADS=150, INF+70) REAL JAC(2,2) JACI (2,2), KAY(2,2),SAMP(3,2),FTE(4, 4) ,DTKO(4, 4), 4COOKO(4,2);OER(2,4) DERIV(2, 4}, DERIVT (4,2) ,KDERIV(2,4), FUNG), *+BH(4,4) ,KE(4, 4) EWLO(TLOADS) ,LOADS(1LOADS} ,BP(1BK) , 8K(TBK) INTEGER’ G(4) ,NF(INE, 1) 250 28 20 10 40 4 60 50 251 DATA IT, IJAC, 19ACD, IKAY,IDER, IDERIV, IKDERV/7#2/, ISAMP/3/ DATA IDTKD, IkP, ICOORD, 1DERVT, NOD, [FTF TPH/7#4/,NODOF/|/ INPUT AND INITIALISATION READ(5,*)NXE,NVE,N, IW, ANN NGP, AA, BB, PERAK, PERAY READ(5, JOTI, ISTED THETA, NPRE, ARES CCALL_READNF (NE, INF, AN, RODOF, NA} TReN*(1H41) CALL NULVEC(BK, IR) CALL NULVEC(BPTR) CALL. NULL (KAY, IKAY,1T, 17) KAV(L,1)-PERMK KAY(2,2)-PERNY CALL GAUSS(SAMP, ISANP, NP) ELEMENT INTEGRATION AND ASSEMBLY 00 10 1P=1.NKE 00 10 fost. ve CALL GED@XI (TB, 10,N¥€, AA, BB, COORD, 1600806, NF, TNF) CALL NULL(KP, 1R0, 00, NOD} ALL MULL(PH, TPM, NCD NOD) DO 20 L=1,KoP Do 20 Jel:ncP CALL FORMEN (OER, 1DER, FUN, AMP, ISAMP, 1,9) CALL HATWUL (DER, IDER, COORD, 1cbORD, AC; T4AC, IT NOD, 17) AL TwoBY2 (dae; [Jac AC, Act OFT) CALL MATWUL (JACK, 25AEL, DER, 1OER,DERIV, IOERIV, 17,17, 400) CALL MATWUL (ka, FRAY, GERI, TOERIVOERIV IKOERW, 17, NOD) ALE HATRAN OER, ERY, ea 10141410) CALL MATHUL (OERIVT,IDERVT ERE, IRDERY OTRO, LOTKO, NOD, IT NOD) GUOT-DET*SANP(T,2)5S9H(0,2) 0 25 Ke1,NOD Do 2 L=1;N00 TECK) -FUN(K)FUN(L)*0U0T DTKD(K;L)-DTHD KL) AQUOT*THETACDTIN CALL MATAOO (ON, 18H FTF, TFTFNOO, NOD) CALL MATADOR, 1kPDTAD, 107K, NEON) CALL FORNKY (BP, PH, IPH, NNO} CALL FORRKY (BK: Py IKP,G)N,NOO) REDUCTION OF LEFT HAND SIDE TR, (FKL) BK (I) »8P(1)-BK(I)/THETA CALL. BANRED(BP,N 14) READ(S,*)VALO 0 45 fe1,N LoaDs(1)=¥ato TIME STEPPING RECURSION 00 50 J=1, 1sTEP TIME-3*0TiM CALL LINMUL (8K, LOADS,NEWLO,N, 1M) CALL BACSUB(BP,NEKLO,N, 1¥)| 0 60 I-1,N Lonbs (1) =heweo(1) TF(/NPRU*NPRI-£Q.0)WRITE(6, *(2E12.4)* )TIME, LOADS (NRES) CONTINUE. srop 282 In the absence of sources or ks, equation (3.94) reduces to (PM + 64tKP)®, = [PM —(1 — )AtKP]®, @ or (PM+6ArKP}®, = (PM — ArKP +8 ArKP}®, 2) which is the form used in the present program. The clement KP matrices are assembled, including the multiple @At (THETA*DTIM in program termino- logy), into a global matrix BK and the PM matrices are assembled into the Declaration of variables Quasi dynamic arrays Inputend initialisation Findthe nodal coordinates and ‘steering vectors Nullthe element matrices For allthe Gauss points do Findihe shape functions Convertto global coordinates Form the’stifiness’ and mass! ‘Add contibution from current Gauss point necessary insert derivativeboundary conditions. ‘Assemble the global'stitiness' and mass’ matrices. Reduce thelefthandsideof the uations (Gauss, Choleski Settheintialconditions. ) For allenetime steps do Formthe newrighthandside Completethe equation solution Update the righthandside Printthe results atcurrent time Stop Figure 81 Structure chart for impli it analyses of transient problems 283 i y(z) These faces maintained at 0. eee] crete] eee] Ores] hfe 7° Initial values oo reszome 025 are eae aaa |B aee/ vato= 100, ieee freer] i9 cece veer iS eee” ieeaee [cece Oe 10 eee eee” x(n) Oren tines 09 maatese 25 t Moshdota NXE NYEN IW oN. NA NGP Gia pie salt aittian 3 Element eta AA 8B PERMX PERMY 02 02 10 10 Timeintegration OTM ISTEP THETA ao oo 180 08 Printing control NPR NRES data oot Nodettessom 1 0 2 0 3 0 4 0 5 0 ate 6 0 2 0 8 0m 0m 0 % 0 vato 1000 Note: OmitiW and THETA in Program8.2. OmitlWinProgrem 8.3. Figure 82 Mesh and data for Programs 80 to 83 254 global matrix BP. Thus, the global system to be solved is 1 a (BP + BK}, (ne-+ax- 2K), 63) with BP and BK being stored as vectors using the assembly routine FORMKV. Forconstant @and Ar the left hand side of 8.3) is constant and so the strategy will be to form BP + BK, factorise the resulting matrix once only and then for each At to carry out the matrix-by-vector multiplication on the right hand side of (8.3) followed by a back-substitution. The process is described in detail by the structure chart in Figure 8,1, Note, however, that the mattia-by-vector multiplic- ation on the right hand side could be done using element-by-clement summation, avoiding storage of one large matrix. The example chosen is shown in Figure 8.2 and could represent dissipation of, excess porewater pressure from a rectangle of soil. Two boundaries have zero pressure while the remainder of the soil, represented by freedoms ! to 25, has constant initial pressure VALO. The problem is to compute the pressures at freedoms | to 25 astime passes, The early part of the program, involving element integration and assembly, closely resembles Program 700. Since four-noded elements are used, with numbering in the x direction, the appropriate geometry subroutine is GEO4X1, The elements have coefficients of consolidation in the x and y directions, denoted by PERMX and PERMY (assumed constant for all elements), At the end of the element assembly BP and BK, as required by (8.3), have been stored. In the section headed ‘reduction of let hand side’, BP is reset to BP + BK, and BK js reset to (new) BP—(1/0)BK. The matrix BP is then factorised using BANRED and the non-zero initial pressures set to VALO (in this case 100.0 units). The final section of the program consists of the time-stepping loop completed ISTEP times. The matrix-by-vector multiplication is carried out by LINMUL ‘and back-substitution by BACSUB. The pressure at freedom 21 (NRES), the centre of the mesh, is output every NPRI (10in this case) time steps, that is at time Pressure T=TIME Gf sede 2 loooE+09 90096102 20006400 “5845E+02 30006400 '3580E+02 0000 °2178E+02 "S000E+00 “13246+02 ‘000600 ‘a051e-01 TOODE+OO '4895E+01 0006400 | :2976E+01 9000600 ‘1809E+01 1o00Es01 :1)006+01 Nooe+01 — '6687E+00 12006+01 “4065E+00 V3o0es01 124726400 T4o08+01 115036400 T5006+01 '9135E-01 Figure 83 Results from Program 80 255 yy = 107 © computed here t Sui ig 1 (ay plane #1, Carlstaw ond Jaeger (1959) os + Finite element 4:0 on boundaries t >0 =, internal = t= 0 as 10 v 1s 10 a & %, Carlstaw and Jaeger t (1959) : 0s ehh, 1) giinder + Finite element PERM « TIME = “DISTANCE? ds £0 T 1s Figure 84 Comparisons of finite element results with series solutions 256 intervals of 0.1, andis listed in Figure 8.3. The results are plotted in Figure 8.4(a), where they are compared with series solution values obtained by Carslaw and Tacger (1959). The crude finite element idealisation gives excellent results PROGRAM 8.1: SOLUTION OF THE CONDUCTION EQUATION OVER A CYLINDER ¢ © PROGRAM 8.1, SOLUTION OF THE CONDUCTION EQUATION © OVER A CYLINDER USING 4-NOOED QUADRILATERALS ¢ WPLICTT TTeGRATION ‘i TOME By “THETA NeTHOD € ALTER NEXT LINE TO CHANGE PROBLEM SIZE € PARANETER( I8K*1000, TLOADS=150, 1NF=70) c REAL JAC(2,2) ,JACL (2,2) KAY (2,2) ,SANP(3,2) FTE (4,4) ,DTKD( 4,4), COORD (4, 2) DER 2,4) ,DERIV(2,4) DERIVT(4,2) ,KDERIV (2,4) ,FUN(4), +4PM(4, 4), KP(4, 4) HEWLO(TLOADS) LOADS {LOADS}, BP(ZBK) ,BKi T8K) INTEGER (4), NFCINF, 1) DATA 17, 198G, 1JACL, IKAY, IDER, IDERIV, IKOERV/7*2/, 1SAAP/3/ DATA HOTKD 18 1co6eo, BER Noo, FHF, 10N/744/ NOOO /1/ € —_wmur avo rarTEALrsarion REAO(S,*)NXE,NYE,N, TM, NN, NR NGP, AA, BB, PERAK, PERMY REAO(S,*)OTIM, ISTEP, THETA, NPR NRES CALL, REAONE (NP, IN, i NOOOF, 1} Reh (Tvs) CALL NULVEC (BK, 1) CALL NULVEC(BP, IR} CALL_NULL (KAY, IKAY, 17,17) KAY(1, 1) =PERML KeRr(2,2) PERN CALL BAUSS(SAMNP, 1SAMP,NGP) ¢ € ELEMENT INTEGRATION AND ASSEMBLY ¢ D0 10 161, NXE 90 10 19-1 ,NVE CALL GEOAKE (TP, £0, MAE AA, BB, COORD, LCOORD, GNF, INF) CERLL NULL(KP, IK, HOD, NOD) CALL NULL (PM; 1PM, HOD, NOD) D0 20 I+1,NoP 0 20 Je1)NGP CALL FORKLN(DER, 1DER, FUN, SAMP, ISAMP, 1,9) CALL MATHUL (DER, IDER, COORD, TCGORD, JAC; TJAC, 1T, NOD, 17) CALL. THOBY2 (IAC, TYAC, IACI FIACY, DET) CALL MATMUL (JACI, IJACL,DER, IDER}DERIV, TDERIV, 17, 1T,NOD) CALL MATMUL (KAY, [KAY DERIV, IDEREV,KOERIY, IKDERV, 17, 17,NOD) CALL MATRAN(OERIVT, 1OERVT, DERIV, IDERIV, 17, NOD) {CAL MATMUL (DERIVT, IDERVT, KDERIV, IKDERV, OTKO, 0TKO, N00, 1, NOD) SUM=0. Do 30°ke1, Noo 30 SUMeSUMGFUN(K)*COORD(K,1) (QUDT=SUMPDETSAP(T,2)4SANP(I,2) 09 40 Ke1,NoD 00 40 L=1,N0D FTF(K,L)=FUN(K)*FUN(L) QUOT 257 40 OTKO(K,L)-DTKO(K, L)*QUOT®THETACDTIM CALL WATADO (PH, 1BH, FTE, TFTE, NOD, NOD) 20 CALL MATADD(KP, 1KP,OTKD, 1DTKD,NOD,NOD) CALL FORNKY (BP, PM, 1PH,G,N, HOD} 10 CALL FORAKV(BK, KP, IKP, 6,0, NOD) REDUCTION OF LEFT MAND SIDE 0 $0 Tel, 1R. (1) =BP()+8K(1) 80 BK(1)=BP(1)-BK(I)/THETA CALL BANRED(BP,N,IW) READ (5, *)VALO 00 60 f-1,0 60 LOADS(1)=¥ALO TIME STEPPING RECURSION 0 70 Je), ISTEP Tiné-3*OTin CALL. LINMUL (BK, LOADS, NEWLON, 14) CALL BACSUB(BP,NEWLO,N, IW) CALL VECCOP(NEWLO,LOADS,N) IF(J/NPRI*NPRI.EQ 70 CONTINUE STOP ENO )WRITE(6, "(2612.4)" )TINE, LOADS (NRES) In the same way as a few modifications to Program 5.3 for plane elasticity led to Program 56 for axisymmetric conditions, Program 80 is readily modified to cylindrical coordinates. The coordinate xis associated with the radial coordinate while y is associated with the axial coordinate z. ‘The mesh in Figure 8.2 now represents. symmetrical quarter of across-section through a right cylinder. In soil mechanics, the physical analogue would be @ ‘triaxial’ specimen of soil draining from all its boundaries. However, the data are identical to those for the plane case. Integration in the circumferential direction is Tatime 10006400 ‘20006 +00 30008100 40008 +00 ‘s0008+-00 ‘e000 00 ‘7000800 “Bo00e +00 ‘300000 too0E+01 "1100 +01 112006401 {33008+01 [14008401 [1500801 Pressure at Note 2? -BO96E+02 [37986402 ‘ie67E +02 ‘rpgot+o1 [31766401 "3386e+01 ‘so4st 00 “2538¢+00 ‘is1e+00 ‘5022601 ‘219ie-01 ‘os60e-02 [aITiE-02 ‘1g208-02 1 7940€-03, Figure 85 Results from Program 81 288 carried out over ! radian and the only additional code needed is to form SUM which is the radius of the current Gauss point (contained in the axisymmetric integrals, eg. equation 3.42). Program 8.1 differs from Program 8.0 only in the four lines from SUM =0 onwards. ‘The results are listed in Figure 8.5 and compared with series solutions in Figure &.4(b). The agreement is rather poorer than for the plane case due to the approximate integration as r tends to zero, However, the results are perfectly acceptable, Note that 23 x 3 point Gaussian integration was used. It would have been sufficient in Program 80 to use 2 x 2. [iesaiigaatageae paseo aa9 fees fisa2 frase (903 —[o-e7 (3263) (087 {25.000 |8.19_|t9.000 3183 [2954 [2448 (1708 [845 x73 [e058 [S303 [eaGe [iis (5283) |woge) |tr76) |ro932)_|104.57) 5217 [6836 [6007 12796 1386 5733 [5320 [44.09 }3076 [15.22 ° (6057) 5729) 76) [93621 fn6.70 core (5505 [4aze [3229 71598 lest (STT0foTHE [3307 rose |? 62.40) (5902) |19.32) [134630 [er 20) f62.08 [5761 6274 ]3309 i649 oar [S179 [ore [aT feSs ke26u) (5925) |ugs2) 34.76 |irr2e) pes S182 4192 3343 W655 lo—er Figures in parentheses are series solution values (Carlstaw and Jaeger, 1959) Figure 86 Results from triaxial consolidation analysis 259 To give an idea of the accuracy obtained for points other than the centre of a cylinder, Figure 8.6 shows results afier 100 steps with DTIM = 0001 for a S x 10 quadrant measuring 25 units radially and 50 units vertically. Otherwise, parameters are those of Figure 82. PROGRAM 82: SOLUTION OF THE CONDUCTION EQUATION OVER A RECTANGLE USING AN EXPLICIT METHOD PROGRAM 8.2 SOLUTION OF THE CONDUCTION EQUATION (OVER A RECTANGULAR AREA USING. 4-NODED QUADRILATERALS SIMPLE EXPLICIT INTEGRATION IN TINE USING ELENENT BY ELENENT SUMMATION ALTER NEXT LINE TO CHANGE PROBLEM S1ZE PARRMETER( IELS=30, 1LOADS=50, INF=70) REAL JAC(2,2) ,JACL(2,2) KAY (2,2) ,SAMP(3,2) FTE(4, 4) ,DTKO(4,4), +COORD($, 2),DER(2, 4), DERIV(2, 4) ,DERIVT( 4,2) KDERIV(2, 6) ,FUN(S), ‘+PH(4,4).KP(4 4) ,NEWLO(TLOADS) LORDS (ILOADS}, €LO(4),, SSTPNGA,&, 118) ,GLOBHACINF) ,MASS(4) INTEGER 6(4),NF (THF, 1) DATA IT, T9ACTOACL, IKAY, 1DER, IDERIV, IKDERV/7#2/, 1SAMP/3) DATA IDTHD, IKP, LCOORD, IBERVT. NOD, FTF, PH/7#4/, ADOOF/‘ INPUT AND INTTIALISATION READ( 5, *)NXE, NYE.N, NN, NR,NGP,AA, BB, PERM, PERHY READ(5,* JOTI, ISTEP, NBRI ARES CALL NULHEC(GLoaNA, in) CALL. NULL(KAY, TKAY.IT,1T) KAY(1,1)=BERIK KAY(2,2)-ERHY CALL’ GAUSS (SANP, ISANP WGP) 00 2 1-11 2 NF, ¢ © ELEMENT INTEGRATION AND STORAGE c te-9) Do 10 1P-1,NKE DO 10 1961, NYE NeW] CALL GEOSK1(1P, 19, NXE, AX, BB, COORD, TCOORD, GNF, TNF) CALL NULL(KP, 1kP, NOD, NOD} CALL NULL(PX, TPM, NOD, NOD) D0 20 Te1,nae 0 20 J=1 NG CALL FORMLN(OER, IOER, FUN, SAKP, 1SANP, 1,0) CALL MATMUL (OER, TDER, COORD, 1CO0RD,JAC, TIAC, TT, NOD, IT) CALL TWOBY2{ JAC, TOAC, ACI, T9AC),DET) CALL MATMUL (JACH, TJACL, DER, 1DER; DERIV, IDERIV, 17, 1T,NOO) CALL MATMUL (KAY, TKAY OERIV, IDERIV,KOERIV, IKDERV, IT, 17,100) CALL WATRAN(OERIVT, IOERVT, OERLV, IDERLV, 1T,NOD) CALL WATHUL (QERIVT; IDERVT, KOERIV, IKDERV, D¥KD, 1OTKD,NOD,IT,NOD) (QUoT=DFT*SANP(I,2)*SANP(A, 2) DO 25 Ke1,00 260 3 20 1 n 15 10 a 6 6 3 8 100 6 50 00 25 Let, NoD FTF (kL) »FUN(K)*FUN(L)*QUOT DTKD(K, L)-OTKD(K, L)*qUoT*OT IM CALL MATADO( PH, IDM, FTE, IFTF, NoD,¥OD) CALL MATADO(KP, TKP,OTKD, IOTKD, NOD, NOD) Do 11 T+1,n00 quoT=0 80 12 Jet, noo (quoT=quoTéeH(1,9) WASS(1)=QUOT SGLOBHIA(G(1))=GLOBHA(G(1) )4MASS(1) CALL NULL(PR, TPH, Nod NOD} DoT =I, N00 PCL, 1) =HASS(L) 00 18 f-1, too Do 15 Jel, NOD STPM(T. J, RM) =PM(L,d)-KPCI,9) ConTiNde INITIAL CONDITIONS AND REARRANGE GLOBMA INTO H-1 CALL READNF (NF, INF, RW, NOOOF, NR) 3-0 Do 42 te1,1 EF(NE(1,1}.£0.0)60 10 41 Jed] BLOBHA(3)=1./6LOBHA() CONTINUE READ(5, *)VALO D045 fel,N LOADS(1)=¥ALO TINE STEPPING RECURSION Do 50 dei, ISTEP CALL NULVEC(NEWLO,N) TIME=J*0TIN rato 00 100 1P=1, NXE D0 100 10=1,NYE ne CALL GE04X1 (JP, 19,NXE,AA, BB, COORD, ZCOORD, NF, INF) 00-16 T=1,N90 00 16 K=1!N00 HCL. K)=STPM( TKN) 00 34 T-1,K00 TF(G(t) .£0.0)€L0(1)=0 TF(G(1)-NE.0)ELD(1)-LOADS(G(1)) CCALL_HMULT (OM, TPH, ELO,NOO, HOD, FUN) 9 35 1-1,N00 TF(G{).Né.0)NEWLO(&(1))=NEWLO(6(1))+UN(1) conrinué 09 60 T-1.N 1oRDS (1) =HEWL0()*6LOBNACT) T(O/APAIPNPATEQ.O)MEITE(G,”(2E12.4)")TIME, LORDS(NRES) CONTANUE sroP EN 261 The basis equation for simple explicit time-stepping was given by equation G97) as PM®, =(PM — ArKP}®) 4) If PM is lumped (diagonalised) this can be written as ©, = PM“(PM ~ At KP}®, 5) Since PM—ArKP are element matrices which when summed give global matrices, the summation can as well be done of the vectors (PM ~ Ar KP). without there being any need to store a global matrix at all. This having bega done, the global ®, is computed by multiplying © by the inverse of the global Inputandinitialistion ‘Store PM-AtkP. Calculate and assemble GLOMBA, Set initia! conditions Invert GLOBMA Find geometry Rocover PM-At KP "Multiply by appropriate part ‘of LOADS Update NEWLOADS. Recover LOADS fram NEWLOADS via inverse of GLOMBA, Print results Figure 8.7. Structure chart for explicit time integration 262 cessure at tative fogs sh -0006+00 89726002 “20006+00 “saat v02 So00Eso0 “3e24ev02 Z000Es00 “2e1stv02 S000es00 | 113596.02 “oo0E:00 “aeseecar “yoa0e+00 “s082E-01 “Boanes00 “30reEv0l 9000800 “18736408 “Toobesot “1146.01 T00e+o1 “700s6+00 eoaesoL “4277600 ooevor “2611.00 “io0E,01 “Ts94e00 {1S00E+01 [9733e-01 Figure 88 Results from Program 82 ‘mass matrix PM"! (called GLOBMA in the program). The process is illustrated by the structure chart in Figure 8.7. ‘The program is readily derived from Program 8.0 and contains only three new arrays: the global mass vector GLOBMA, the element lumped mass vector MASS and a storage array for element matrices STPM. The PARAMETER statement now includes IELS (> NXE*NYE). ‘The element integration loop follows the now standard course but the element ‘matrix PM — Ar KPis stored foreach element rather than assembled as would be the case for an implicit technique. ‘Alter the initial conditions have been established, GLOBMA is redefined as the inverse of the global mass vector required by equation (8.5). Then, in the time- steppingloop, element matrices are recovered from STPM and the multiplication and summation required by (8.5) completed for all elements, ‘After the elements have been inspected, the ‘loads’ are updated by multiplying by the inverse of the global mass vector to give the solution at the new time. ‘The problem shown on Figure 8.2 has been analysed again and the results are listed as Figure 88, PROGRAM 83: SOLUTION OF THE CONDUCTION EQUATION OVER A RECTANGLE USING AN EBE PRODUCT ALGORITHM. PROGREM 8.3 SOLUTION OF THE CONDUCTION EQUATION. OVER A RECTANGULAR AREA USING 4-NODED QUADRILATERALS ELENENT BY ELEMENT PRODUCT INTEGRATION IN TIME THO PASS ALGORITHY ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARAMETER(IEL+100, 1LOADS=150, INF+70) PAL AM049.9\..080119.99.KaVI?.7)-SAMDEA.2).FTFUA. 4) .DIKD(4. 41. 263 42000 (4,2) ,OER(2, 4) DERIV(2,4),DERIVT (4,2), KOERIV(2,4)FUN(A), +PH(4, 4) ,KP(4, 4) , LOADS(TLOADS) ,MASS(4) , GLOBMA{ LOADS) , STKP(4,4, TEL) TNIEGER’G(4) RLM) DATA TT, 1080 TOACL, FRAY, IDER, 1ERIV, TKOERU/7#2/,1SANP/3/ DATA IDiKD, 18, 1CO6RD,IDERVT-AOD, IF, 14/747, NODOF/1/, INPUT AND INITIALISATION FReAD(5,*) NOE NYE,N,NN,NR,NGP, AA, BB, PERK, PERNY REAO(S «071 SHEP THETA NPR ARES CALL WOLVEC(GLOBKS, fn) CALL NULL(KAY,IKAY, IT, 17) KAY(1,1)=BERM KAY(2,2)=ERHY CALL’ GAUSS(SANP, ISAMP ,NGP) OS [=1,HN 5 NF(I,1)ai ELENENT INTEGRATION AND LUNPED MASS. ASSEMBLY Heo DO 10 Pel NXE 180 10 961, 1VE Mette CALL GE04x1 (TP, 19, NXE, AA, BB, COORD, ICOORD,G, AF INF) CALL NULL (KP, 1KP, foo, HOD} CALL_NULL (PM, 1P4, NOD, NOD) DO 20 T+1,NGP DO 20 Jel) NGP CALL FORMLN(OER, IDER, FUN, SAND, ISAMP, 1,9) CALL MATMUL (DER, IDER, COORD, 1CG0RD, JAC, TJAC, IT, NOD, IT) CALL TwoBY2( AC, TOAC, JACI, i9AC1,DET) CALL MATMUL (JACI, JJACL, DER, IDER;DERIV, IDERIY, I7, 17 NOD) CCRLL MATMUL(KAY FKAY, OBRIV; {DERIV, KOERIV, TKDERV, TT, IT, HoD) CALL MATRAN(DERIVT, IDERVT, GERIV, IDERLV, IT ,NOD) CALL MATMUL(DERIVT, JOERVT ,KDERIV, IKDERW, DTKD, {0TKO,NoD, 1 NOD) (QUOT-DET*SANE (I, 2) SANP(J,2) DO 25 K=1,NOO DO 25 L=1!NOO FIF(K,L) =FUN(K)*FUN(L)*QUOT 25 DTKD( st) =DTRO(K,L) "QUOT CALL MATADO(PH, 1BH, FTE, TFTE NOD, NOD) 20 CALL MATADD(KP, IKP,DTKD, 10TKD,NOO, NOD) 0 30 T=1,N00 0 30 J1:N00 30 STKP(1,0,48)=KP(1)9) D0 31 f=i,Noo quot-o Do 32 Je1,Noo. 32 QUOT=QUOTPN(1,3) ‘31 GLOBNA(G(1))=GL0BHA(( I) )+quOT 10 CONTINUE CALCULATE AND STORE ELEMENT A AND B MATRICES Neo. 0-45 1Pe1 tHe Bo 45 10-1. NYE Do 50 Jol,NOD 264 50 85 60 6% 6 95 100 108 85 80 1 (I a)e-STKP(I.0,N4)*(1.THETAYSDTIN®. 5 FTP( 4,9) =STKP(I, 3,88) *THETAYDTING. Do 55" T=1,NOD FIF(1, 1)=ETF(1,1)+6L0BNA(G(1)) eC, E)=KP (1 1} 3LOBHA(G(T)) CALL’ MATING (ETE, IFTF,NOO) CCRLL_METAUL (FTF, IFTF,KP, IKP,M, TPH, NOD, HOD, NOD) Do 60 I=1,800 10 60 J-1,NOD STKP(1, 2,84) =PH(T)3) conrad: ‘TAKE ACCOUNT OF INITIAL AND BOUNDARY CONDITIONS CALL. REAONE (NF, INFN, NODOF HR) READ(5,*)VALO 00 62 fe1,N LoaDs(I}=¥ato TIME STEPPING LOOP 0 70 det, 1STEP TIMESDTINND DO 80 1PASS=1,2 IFCIPASS.EQ.1) THEN Tel TH=NXE INP=t Tugel THQSNVE Nico ELSE ELB=nXE TP INCPe-1 TLgeRVE Tred NYSNXEANYESL EN IF DO 85. IPeILP, 1HP,INCP 10 85. 19-140, 1HQ, INC Neh INCE CALL. GEO4X1 (IP, 1Q,NXE,AA, BB, COORD, TCOORD, 6, NF, INF) DO 95 Ke1,NOO DO 95 L=1;NOO FTF (KL )=STKP(K, LAM) 0 100 Ket oo TF(G{K) .£0:0)MASS(K)+0, TFG) HE O)MASS CK L056) CALL MVWULT(FTF, [FTF MASS, NOD, NOD, FUN) 0 Tos Ket Noo TF(G(K) .NE-0)LOADS(6(K))=FUN(K) conTINUE ‘CONTINUE TF(Q/NPRI*NPRI. EQ, 3)WRITE(6, (2612.4) ) TINE, LOADS (NRES) Con INUE STOP END 265 ‘The motivation in using this algorithm is to preserve the storage economy achieved by the previous explicit technique while attaining the stability properties enjoyed by implicit methods typified by Program 8.0. The process is described in Chapter 3 by equation (3.101) and in structure by Figure 3.19. The program bears a strong resemblance to Program 8.2, The element integration loop is employed to store the element KP matrices in a storage array STKP. In addition, the element consistent mass matrices PM are diagonalised and the global mass vector, GLOBMA, assembled. A second loop over the elements is then made, headed ‘calculate and store element A and B matrices. These are the matrices given in Figure 3.19 by (M—(1—0)ArKP/2] and (M+ 0ArKP/2] respectively, and they are called KP and FTF respectively in the program, The algorithm calls for B(FTF) o be inverted, which is done using the library routine MATINV. Then A js formed as B~![M ~ (1 ~ 6)A¢ KP/2], that is by multiplying FTF and KP. The result, called PM in the program, is stored as STKP. Initial conditions can then be prescribed and the time-stepping loop entered. Within that loop, two passes, controlled by the counter IPAS, are made over the elements from first fo last and back again. Half of the total At KP increment, ‘operates on each pass, and this has been accounted for already in forming A and B. Some rather involved FORTRAN counting is necessary to pass forwards and backwards, but the essential coding recovers each element B™?A matrix from 'STKP and multiples it by the appropriate part ofthe solution ‘loads’. Note that in this product algorithm the solution is continually being updated so there is no need for any ‘new loads’ vector such as had to be employed in the explicit summation algorithm, The process is fully detailed in Figure 3.19. Results for the problem described by Figure 8.2 are shown in Figure 89. soume Suit rooot.an .ssors02 fomecoo “siaeecoe “Stvotsoo“Sesrsae foooean “aaerecog Stmnesoo “Tsseoe foooisaa ‘aesstot Tomnesoo “entaso) fooocsen ‘sraitcol soooe.en “ayratil Tomesor “Tegeeol nesot “g3e)tcoo Yemesot “sevoen TEmesoL “asee-ap TManesol “Zoo TEOOESOL“T4ESoD Figure 89 Results from Program 83, 266 8.1 COMPARISON OF PROGRAMS 8.0, 82 AND 83 These three programs already described in this chapter can all be used to solve plane conduction or uncoupled consolidation problems. Comparison of Figures 8.3, 8.8 and 89 shows that for the chosen problem —at the time step used (that is 0.01)—all solutions are accurate, and indeed the explicit solution (Figure 8.8)is probably as accurate as any despite being the simplest and cheapest to obtain It must, however, be remembered that as the time step Ar is increased, the explicit algorithm will lead to unstable results (the stability limit for the chosen problem is about At = 0.02). At that time step, Program 8.0 with # = 0.5 will tend to produce oscillatory results, which can be damped, at the expense of average accuracy, by increasing # towards 1.0. Typical behaviour of the implicit algorithm is illustrated in Figure 8.10. Program 8.3, while retaining the storage economies of Program 8.2, allows the time step to be increased well beyond the explicit limit. For example, in the selected problem, reasonable results are still produced at At = 10At.q.. However, as At is increased still further, accuracy becomes poorer and Program 8.0 yields the best solutions for very large AC. Tt will be clear that algorithm choice in this area is not a simple one and depends on the nature of the problem (degree of non-linearity, etc.) and on the hardware employed. Solution aot esas Time aol, Figure 8.10. Typical solutions from Program 8.0 with varying 267 PROGRAM 84: DIFFUSION-CONVECTION PROBLEM OVER ‘A RECTANGLE—TRANSFORMED ANALYSIS. PROGRAM 8.4 DIFFUSION CONVECTION EQUATION ON A RECTANGLE USING 4-NODED QUADRILATERAL ELEMENTS, SELF-ADJOINT ‘TRANSFORMATION; IMPLICIT INTEGRATION ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARAMETER( IKB1~=100, 1KB2+10, INF=200) REAL FUN(4),COORD(4, 2),DER(2,4) ,OERIV(2, 4) JAC(2,2), +JACL (2,2), SANP(3,2),01KO(4,4} ,KP(4,4) PH(4,4) FTE (404), +KB(IKBI, 1RB2) BB(1KBI, 1482) ,LSADS( HRA ) ANS (TKEL) INTEGER’ 6(),HECINF, 1) DATA TCOORD, {DERVT, {DTKD, IKP, 1PM, IFTFNOD/7#4/, ISANP/3/ DATA TDER, IDERIV, IKDERV, fJAC, TJAG,17/5#2/,NODOF/1/ ¢ © INPUT AND INTTIALISATION ¢ READ(S, *)NKE,NYELN, TW, NGP, AA, B, PERK, PERMY, UX,UY, . Dri, ISTEP, THETA Wetetwst CALL NULL (KB, 1401, 1WP1) CALL NULL (PO) 1KB1; W161} CALL nubvec(LOADS N} ALL GAUSS(SANP,1SAHP,NoP) 50 to. T-1,¥ 10 NF(I.1)=1 ELEMENT INTEGRATION AND ASSEMBLY Do 20 1Pet NXE 00 20 19-1 NYE CALL GEO4H!(1P, Ta,Nxe, AA, 60,CO0RD, 1CO0RO,6,NF, INF) CALL MULL («P, 1K? oD, oo} ALL MULL (PH, PM NOD; HOO) 00°30 T=1 nb 00 30 J-1.Ns CLL onal eR, ERE, aM A481 2 CALL MATHUL(OER; 106A cOORD,TCB0RD, aC, TOAC, 17, NOD, IT) CALL ORY a{ OKC: OKC OAL; Cr OET) CALL MATHUL OAC, 798C1, OER, IOER, DERI, IOERIV, 17,17, NOD) QUOT -DET=SaN(T,3)*58N8 (3,2) 10 40 K-1,N00 00 40 L-1;n00 PART1-PERRK*DERIV(1,K)+DERIV(1L)-PERHY*DERIV (2, K)*DERIV(2,L) PART2= (UX#UR/ PERKY =UY/PERaY]*FUN(K)FFUN(L}*. 38, OTKD(K, L) =QU0T* (PART PRRT2) TER, L)=FUN(K) FUN(L}*QUOT/ (THETAOTIM) 40 CONTTIUE, CALL NATADD (Ke, IKP,OTKD, DTD, HOO, NOD) CALL NATADD(PN; IPM, FTF, SFTF,NOD, NOD) 30 CONTINUE ¢ € INSERT OERIVATIVE BOUNDARY CONDITIONS € 1F(19.NE.1)G010 50 KP(2,2)=KP(2,2)4UYEAA/6. 268 KP(2,3)=KP(2,3) UYAAA/I2. 2)=KP(3,2)+UY*AA/12. (3,3) +UY*AA/6. 50 CONTINUE TF(1Q.NE.NYE)60TO 60 KPC, 1} +KP(1,1) UY*AA/6, KP(1,4)=KP(1,4) UY*RA/12. K(4y1)=KP(8)1) sUV*RA/12. KD(44)=KP4, 4) UY¥AR/E. 60 CONTINUE CALL FORK KB, IKBL, KP, IKP,G, IW, NOD) CALL FORSKB( PB, 1B) ,PH, IPM,G, IW, NOD) 20 CONTINUE REDUCTION OF LEFT HAND SIDE FIL-UY*AA/ (2. THETA) FocFl ‘CALL MATADO(PB, 1KBL KB, IKB1,¥, IMP) 00 70 1 DO 70 J=1 IPL 70 KB(1,0)=PB(1,)-KB(1,0)/THETA CALL CHOL IN(B,TKB, HIM) TINE STEPPING RECURSION 00 80 J=1, STEP ‘CALL. BARMUL (KB, KB}, LOADS, ANS,¥, IM) -ANS(N)=ANS(N) 471 AANS(N-1) =ANS(N-1) 4F2 CALL. CHOBAC(PB, KB] , ANS, TW) 0 90 T+1,N) 90 LoaDs()=ANS(1) CALL PRINTV(LOADS,N) 80 CONTINUE TOP END When convection terms are retained in the simplified low equations, (2.106) or (2.121) have to be solved. Again many techniques could be employed but, in this book, implicit algorithms based on equation 3.94) are used. Thus this programs, fan extension of Program 8.0. ‘When the transformation of equation (2.123) is employed, the equation to be solved becomes ah ah _(ut ot), ah Cant Gt (+E) 66 ‘Thus the extra term involving k distinguishes the process from a simple diffusion one. However, reference to Table 2.1 shows that the semi-discretised ‘stiffness’ ‘matrix for this problem will still be symmetrical, the h term involving an element ‘matrix of the ‘mass matrix’ type [[N.N,dxdy. Comparison with Program 80 will show essentially the same array declar- ations and input parameters although rectangular array storage involving PARAMETER statements IKBI>N and IKB2>IW +1 have been sub- stituted. Extra variables are the velocities in the x and y directions, UX and UY a 269 The problem chosen is the one-dimensional example shown in Figure 8.11, ‘The dependent variable ¢ refers to concentration of sediment picked up by the flow from the base of the mesh, and distributed with time in the y direction. ‘Thus, UX is zero and for numerical reasons PERMX is set to a small number, 1 x 10°, which is effectively zero. The equation to be solved is in effect ee tayo oF 4e, subject to the boundary conditions O and wy Daa y=56.0 i surface A 5 sd ADelements at 1.4 7a a a) 179_8ol 20 ye — Beg l6t_82 ev aye Mosh date NXE NYEN iW NN. NGP Aiea aO)ie aaterigier epg Elemental AA BB PERNX PERMY UX UY 14 14 16 4086 Timeintegration —OTIM.——ISTEP_ THETA dew 3000 2 0s Figure 8.11 Mesh and data for Program 84 7) (88) 270 % ¢ = Co where C, is constant at y= 56.0. After transformation, these conditions become oh _-v o ak," ts, and oh v gia (89) 8.10) B11) Boundary condition (8.11) is clearly of the type described in Section 3.6, equation (3.16) Therefore, at that boundary, the element matrix will have to be augmented by the matrix shown in equal (3.20), The multiple Cy¢,(x4 — x,)/6 in 3.20) is just o(x, — x,)/12 or UY *AA/12.in the program. This is carried out in the section of program headed ‘insert derivative boundary conditions’ The condition (8.10) contains a similar contribution, but in addition the term tc, is of the type described by equation (3.17). Thus, an addition must be made Neda! concentrations LOB7E-C2 .1037E-02 1071E-02 1071E-02 .11356-02 12296-¢2 "12296-02 [1356E-02 ‘1356E-02 “1821E-02 "VR6E-c2 1726E-02 1979€-02 1979E-02 ‘2285-02 2683£-C2 2553-02 3094E-02 3094-02 26188-02 251E C2 1424]E-02 149795 -02 14979E-02 “8826-02 6854E-C2 \6584E-02 “8103E-02 8103E-02 1 9542E-02 T124E-01 [1124E-0111324E-01 “1324E-01 “1561E-O1 1839E-01 11839E-01 “2168E-01 ‘216sE-01 2556E-01 3013E-01 13013E-01 3551-01 3551E-01 [4187€-01 9366-01 14936E-01 “S819-01 “S8]9E-01 “6860E-01 ‘BOB7E-O1 LADETE-01 19534E-0119534E-01 11124800 "is25€s00 “13256600 “18626400 °18626.00 ‘1e42£+00 T2I7LEWo ‘2172Es00 ‘25606400 ‘25606100 20185400 3860600 | [3858Es00 | ‘4195E+00 -4198E+00 Urse2e"02 7s62é"02 7783E-02 7783E-02 ‘'p693E-02 e693¢-02 9398-02 9398e.02 1137-01 | [1137E-01 11267E-01 [1267E-01 |1421€-01 T6O1E-O1 "1601E-01 “1811E-01 “1811-01 |2053E-01 "2331-0) 123326-01 2649-01‘ 2649E-01 3013E-01 ‘34276-01 13427E-01 1309BE-02 —13698E-01 “4308-01 T5032E-01 §032E-01 “S7O9E-01 0.2 and d$/dy =O at y= 2 for all t. Comparing with Program 8.4, the usual geometry routine for four-noded elements numbered in the x direction, GEOSX1, is used. Arrays NO and STORPB are used to read in the numbers of fixed freedoms and to store information about them during the time-stepping process, The system KB matrix is now unsymmetrical and is formed as a total band using FORMTB. Although PB is symmetrical it too is stored as a full band to be compatible with KB, The PART? contribution to the KP matrix is the only one in the present ‘example and it is unsymmetrical (skew-symmetric in fact) ‘The structure of the program is modelled on the previous one. There are no zero freedoms and the solution routines are GAUSBA and SOLVBA which use an extra array WORK as working space. Matrix-by-vector multiplication needs the subroutine BANTML (see Chapter 3). The PARAMETER statement now redefines IKB2 > 2+1WP! — 1, IWORK > TWP! and INO> IFIX. 12) 24 @ fixed at 1.0 for 0.2 seconds, thereafter fixed at 0.0 P=] | convective velocity Ea] v=t.0 ra 100 elements |’ "| atOo2= fa 20 jaw | fea | [oe | | oan ' Lo 29 a feo Moshaate NXE NYE.N IW NN. NGP ae ong a0 st aoa ta Element dota AA GB PERMX PERMY UX UY 2 2 0 0 0 10 Timeintogration TIM ISTEP THETA data rea Fixedtreedom IX (NO(),1= 1, FIX) dota geintag Figure 8.14 Mesh and data for Program &$ Inthe section ‘time-stepping recursion’ it can be seen that the solution at nodes 1 and 2 is held at the value 1.0 for the first 0.2 seconds of convection. For checking purposes the fist step of the sofution is listed as Figure 8.15. The correct solution to the problem is described by a rectangular pulse moving with nit velocity in the y direction. Figure 8.16shows the computed solution alter one second. Spurious spatial oscillations are seen to have been introduced by the numerical solution. Measures to improve the solutions are beyond the scope of the present treatment, but see Smith (1976, 1979) Of course, in the present case improvements can be achieved by simply reducing Ay and At. Concentration 10006401 "49086-01, *24056-02 "1796-03 ‘5783-05 1 2836E-06 UBsIE-07 6819E-09, [334a6-10 1406-11 ‘aoaie-13 39436-14 19368-15 9483-17 4S50E-18 22808-19 ‘118-20 ‘S4eae-22 6896-25, TIS19E-24 4676-26 SIT1E-27 15856-28 7626E-30 37396-31 1e34E-32 9926-34 aa]OE-35 2162E-36 1060-37 52002 39 25508 40 1251 0.40 # Values of fist timestep +10008+01 "4904E-01, ‘24056-02 S1179E-03 18783E-05 12836805 {Ba1E-07 6816-09, [3346-10 "16a0E-11 ‘a0aie-13 39436-18 11934E-15 ‘9¢036-17 46506 -18 *22806-19 118E-20 4848-22 2689E-23 NI319E-24 {8467E-25 31T1E-27 "15856-28 7626-20 3739-31 1e346-32 9926-34 4810835 ‘262-36 1060-37 52006 39 36606+00 "1795E-01 ‘agoze-03 T4316E-08 "2NN76-05 "1o3aE-06 "S0808-08 ‘e4s6t-09 "e24e-10 0026-12 29438-13 Sa3E- 14 TO7BE-16 SA71E-17 702-18 "8347E-20 ‘0936-21 2078-22 "98436-28 8276-25 23876-26 1gle-27 6926-29 2796-30 13596-31 67126-33 32916-38 1614e-35, 7918-37 8816-38 1903E-39 ‘93348-4) aSTIE-€2 2408643 3660400 11795€-01 ‘a80ze-03 S4316E-04 "21076-05 ‘"Yo3ae-05 5090-08 "2496E-09 ‘ezat-10 ‘e00ze- 12 29438-13, 19036-14 TOTBE-16 3476-17 1702818 a347E-20 0936-2), 2076-22 "9803-28 A827E-25 2367-26 Ns1e-27 5926-29 "2791-30 1369-31 67126-33 32916-38 1514e-35, 9156-37 3816-38 19038-39, 9334E-<) aS7IE-€2 2408-43 -1340E+00 e570 02 ‘ag22e-03, {aSe0€-08 TIATE-08 37996-07 1863E-08, 9136-10 4480-11 2197-12 1O77E-13 52836-15 2591-16 12706-17, 62308-19 0856-20 1498621, 13476-23 3603E-24 1767E-25 5646-27 248-28 20836-29 “ioz2e-30 S010E-32 2457633 12056-34 59086-36 28976-37 121E-38 6957640 3416641 “1e84e-42 Figure 8.5. Results from Program 85 400420 te 1.60 Distance = v 13406400 5706-02 '32226-03 1580-05 Srna7e-05 '37996-07 11863E-08 1366-10 4806-11 2976-12 “to77e-13 5283-15 2591-16 1270-17, 162206-19 3085E-20 1agae-21 S73a7e-23 36038-24 1767E-25, ‘asese-27 4248-28 “2083-29 1022E-30 "So10E-32 “2as7e-33 12088-34 5908-36 “eag7e-37 SM21E-38 "69675 -¢0 [3a)6e-41 6848-42 216 82 REFERENCES CCarslaw, H. §, and Jaeger, J.C. (1959) Conduction of Heat in Solids, 2nd edition. Clarendon Press, Oxford Dobbins, W. E. (1944) Effect of turbulence on sedimentation. Trans. Am, Soc. Civ. Eng. 109, 629-656, ‘Smith, 1 M. (1976) Integration in time of diffusion and diffusion-convection equations. In Finite Elements in Water Resources, eds W.G. Gay, G. Pinder and C. Brebbia, pp.1.3-1.20. Pentech Press, Plymouth, ‘Smith, I. M. (1979) The diffusion-convection equation. In Summary of Numerical Methods for Partial Differential Equations, eds 1. Gladwell and R. Wait, Chapter 11. Oxford University Press Smith, |. M., Farraday, R. V., and O'Connor, B. A. (1973) Rayleigh-Ritz and Galerkin finite clements for diffusion-convection problems. Warer Resources Research, 9, NO. 3 593-606, CHAPTER 9 ‘Coupled’ Problems 9.0 INTRODUCTION In the previous chapter, flow problems were treated in terms ofa single dependent variable, for example the ‘potential’ ¢, and solutions involved only one degree of freedom per node in the finite element mesh. While this simplification may be adequate in many cases, it may sometimes be necessary to solve problems in which several degrees of freedom exist at the nodes of the mesh and the several dependent variables—for example velocities and pressures, or displacements and pressures—are ‘coupled’ in the differential equations, Strictly speaking, the equations of two- and three-dimensional elasticity involve coupling between the various components of displacement, but the term ‘coupled problems’ is really reserved for those in which variables of entirely different types are interdependent. Both steady state and transient problems are considered in this chapter. As usual, the former involve the solution of sets of simultaneous equations, as in Chapters 4 to 7. For the problem chosen—solution of the Navier-Stokes equations—the simultaneous equations are, however, non-linear and involve unsymmetrical coefficient matrices. The transient problems, although described by coupled systems of algebraic and differential equations, are cast as (linear) first order differential equations the time variable, and solved by the techniques introduced in Chapter 8—specifically by implicit integration, as illustrated by Program 80. The (steady state) Navier-Stokes equations were developed in Chapter 2, Section 2.17. The equilibrium equations to be solved are (2.104a), whose coefficients are themselves functions ofthe velocities wand v so that the equations are non-linear. Furthermore, the coefficient submatrices C are not, in general, symmetrical and reference to Section 3.8 shows that the subroutines GAUSBA and SOLVBA will be required to operate on the banded equation coefficients. Section 3.13 illustrates how the element submatrices C are assembled and uses much of the program terminology already developed for uncoupled flow problems in Chapters 7 and 8. a 28 PROGRAM 9.0: SOLUTION OF THE STEADY-STATE NAVIER-STOKES EQUATIONS OVER A RECTANGLE PROGRAM 9.0 STEADY STATE NAVIER-STOKES USING 8 NODE VELOCITY ELEMENTS AND. 4 NODE PRESSURE ELENENTS ALTER NEXT LINE TO CHANGE PROBLEM SIZE _PARAMETER( 1281-100, 1252-50, 1NORK25,IHF+100,1NOH30, 110-30, IDEP=30) REAL SAMP(3,2) ,COORD(S,2) ,DERIVT(B,2) ,UVEL(8) .VVEL(8) REAL 3A(2,8) SAC (2,2) KA 2, 2) OR, DERE. REAL DTKO(&, 8) ,KOERIV( 2,8) ,KE(20, 20) ,FUN(8) ,OLDLDS(1PB1) REAL FUNE(4},COOROF (4,2) OERF(2,4) OERIVE(2,4) REAL WIDTH( ITO) ,OEPTH( 1DEP) Val (10) ,ROW(B} TEHP(,8) REAL C11(8.8) ,C12(8,4),C21(4,8),C23(4,8) ,C32(8,4) REAL B(1PBIL, [B2) WORK (IWORK, 1PB1) ,LOADS(IPBL} INTEGER 6(20},NO( IO) ,NF(INF,3) DATA IT, IOC, [JACL, IKAY, IOER, IOERIV, IKOERV, LDERF IDERVE/9¥2/_ DATA ISAmP.NODOF/2%3/, [CORDF,1C21,1623,NOOF/4*4/ IKE, ITOT/2#20/ DATA [CooRd, IOERVT, 1OTKD, ITEHP, Ici, ICi2, 1¢32,Nob/Be8/ INPUT AND INTTIALISATION READ(S,*)NXE,RYE,N, IM, NN,NRANGP, VISC, RHO, ITS READ(S,)(WIOTH(T) I-1,NXEs1) READ(S, *) (OEPTH(I), I=L ,NYES) ‘CALL READNF (NF, INF WN, NODOF fR) READ(S,*)1FIX, (NO(T) VAL(T) ,I=1 Tule Tiel TBANO}2*1MP1-1 CALL NULVEC (UV CALL NULVEC(W¥ CALL WuLvEC(OLDLBS,N) CALL NULVEC(LOADS i) (RY, TRAY, IT, 7) TIX) (2.2) CALL GAUSS(SAMP, 1SAMP,NGP) ITERATION LooP ITERS-0 10 TTERS-ITERS# ICONe1 CALL NULL(PB, 1PBL,, 1BAND) CALL WUCL(WORK, TWORK, IMPI.N) CALL WULL(KE, IKE, ITOT,ITOT) ELEMENT MATRIX INTEGRATION ANO ASSEMBLY 00 20 1P=1,nxXE Do 20 19=1,nvE CALL GEVUPA TP, 10, NXE, COORD, TCOORD, COORDE, TCORDF,,NF, THF, + WIDTH OEPTH) Do 30 Me, N00 TF(G() -€9.0)U¥EL (MH) 0. 30 TFLG{M) -NE-O}OVEL(H) »{LOADS(6(H) )+OL0L0S(6(H)))*.5 90:40. M-NODSNODF +}, TOT 0 60 0 20 90 100 no 279 1E(6(H) €90pvVEL (00-108) -0.0, TEAM) Ne_O} VEL H-MOD-NOOF)-(CORDS(G(H))+ OLOLOS(G(H)))#.8 CALL NULL(CII,1C11,NOO,NOD) : ld oe ALL Wott {eles ete: noo ALL MULL{C2L, Cet, NODF. NOD) ALL MULE" 29, aD} ERLE MoLL (C3252. No. ODF} So's. Bo $0 dc1 NgP VELOCITY CONTRIBUTION CALL. FHQUAD (OER, DER FUN, HAP, SAAP, 1,2) i VBR. 00.60 ter, Noo UBAR=UBARSFUN(H) “UVEL(M) VBAR=VBARSFUN(M)=VVEL(M) TE(T£Q.1)UBARE1.0 TE(I- £9. 1)vBARSL.0 CALL ATUL (DER, T0ER,cOORD, tcOORD, IRC, L9AC, IT, NOD, IT) CALL TWOBY2( IAC, JAC JACI TIACL DET). CALL MATHUL( ACH, TRE), DER, TOER DERI, IOERIV, IT, TT, NOD) CALL MeTHUL (kt, KAY OERIV, TOEREV, KOERTY, TKDERV, 1,17, NOD) CALL WATRAN(DERIVT, IOERUT, OERTV, TGERIV,T¥ NOD) CALL. WEIMUL (OERIVT; IOERVT;KOERIY, IKOERY TKO, TOTKD,NOO, 1T,¥OO) (QUOT-DET*SANB (1,2) SANB(I,2) 00 70 xe1,N0D D0 70 t=1;Nod DIKd(K, L)-DTKDCK, L)-qUoT CALL WETADD(C11, C11 0D, 1OTKO, NOD, NOD) 00 80 K-1, NOD ROw(K) =DERIV(),X) ROD-QUOTUBAR CALL WMULT(FUN, RoW TEMP, ETENP, NOD, 100) CALL MSHULT( TEND, ITENP, PROD. NOD, NOD) ALL WATADO(CIL, fc11, TEMP, IYER, NOD, WoO) D0 $01, NOD FOW(K) =DERTV(2,X) ROD=QUOT*VBAR CALL WWAUCT(FUN, Ro. TEMP, [TEHP, NOD, 40D) CALL MSHULT(TEH®, ITENP, PROD. NOD, NOD) CALL MATADO(CDL, ic11, TEMP, TEMP, NOD, no) PRESSURE CONTRIBUTION CALL FORMLN(OERF, 1OERF, FUNF, SAMP, ISAHP, ,) CALL MATHUL(DERF? TOERF,COORDF, ICORDF JAC; TJAC, 1T,NOOF,1T) CALL TOBY (AC, F4AC JACI, TOREL,DET) CALL MATHUL (JACH, LJACY DERE, 1DERF DERIVE, IDERVF, IT, 1T,NODF) (QUOT-0ET*SAHP (I, 2)*SAMP(, 2} PROD-QUOT/RHO CALL MSMULT(TE¥®, TEMP, PROD,NOD,NODF) CALL MATADD (C12, 1¢12, TEMP, TTEMP,NOD, HOOF) 00 110 Ke] NODE ROW(K)=DERIVE(2,K) CALL WHULT (FUN ROW, TEMP, ITENP, NOD. NODF) CALL MSMULT(TENP, ITEM, PROD NOD ODE) CALL MATADO(C32, i¢32, TEMP, ITEMP,NoD,NODF) 280 0 120 Ke1,Noo 120 ROW(K)-DERIVC IK) CALE" WHULT FUR, ROW, TEMP, ITEMP, NODF NOD) CALL MSHULT (TEMP, ITEHP QUOT NODE NOD} CALL wATADD( C21, 1C21, TEMP, L¥EMP,NOOF, NOD) Do 130 Kel NOD 130 ROW(K) =DERIV(2,K) CALL WWMULT (FUN, ROM, TEMP, ITEMP, NODF, NOD) CALL MSHULT (TEMP, ITEP, QUGT,NOOF OO} CALL MATADO( C23, 1C23, TEM, T¥EMP, OOF, NOD) 50 CONTINUE CaLEFmuPv xe HEC, te12,C12,1012,C21 C21, C24, 1083,c32, 1032, ndD, NoOF, T¥0T) “cau roma PB, ipB1, KE, RE, 6, iW, HOT), 20 CONTINE © © INSERT PRESCRIBED VALUES OF VELOCITY ANO PRESSURE CALL NULVEC( LOADS, Ny 00 140 Tl, 1Ftx PB(NO( 1), 1WP1)=PB(NO(T) ,THPL)=1.£15, 140 LOADS(NO())+P8(NO( 1), 1HP])*VAL(E) SOLVE SIMULTANEOUS EQUATIONS CALL GAUSBA(PB, 1PBI WORK, IHORK,N, 1M) CALL SOLV8A(PB, 1981 WORK, [MORK; LOADS, N, IW) CALL CHECON (LOADS, LOLOS1N, .004,, CoN} EF (Icon. E9.0)coT0' 10 CALL _PRINTY (LOADS.N) WRITE (6, 1900) TERS 1000 FORMAT (IN 110) stop 0 ‘The simple problem chosen to illustrate this program is shown in Figure 9.1. Flow is proceeding in the x direction between two paraltel plates at y= 0 and y= ~30. There is no flow in the y direction and since the nodal freedoms are in the order u,p,0, the third freedom is always zero. Note also that a dummy freedom has been inserted at mid-side nodes where there is no p variable, Thus, the second freedom at all mid-side nodes is zero ‘The boundary conditions are thatthe top plate is moved with au velocity of 20 relative to the bottom plate, which has a u velocity of zero, The fixed velocity of 3.0 at the top of the mesh is specified at freedoms 1, 3 and 4. The pressure boundary conditions are a pressure of 1,0 on the left side (x = 0) and of — 1.0 on the right side (x= 1), Thus, Gp/@x across the mesh is ~ 2.0. The problem is to calculate the distribution of u with depth, ‘The meanings of the variables in the program (excluding simple counters) are as follows: NXE. number of elements in x direction (1) NYE number of elements in y direction (3) N number of non-zero freedoms in mesh (23) Ww half-bandwidth of equation coefficients (11) NN NR NGP visc RHO ITs IFIX IWPI BAND 281 600 2 nis0 ato sie mao ona aka oane Maanaice NXE WWE MW RN ON NG mee Ne Gamentdea — VISCRMO TS romaycs oT a n+ ves a Node tnason resarie on Poses Piotios r riteres " poowers Feedteedom FX (NOH VAL, 1.00 Sceeiveivem acter a Paiste tg Figure 9.1 Mesh and data for Program 9.0 total number of nodes in mesh (18) ‘number of restrained nodes in mesh (18) ‘number of Gaussian integrating points in each direction (2) molecular viscosity, x (1.0) density of the fluid, p (1.0) ‘maximum number of iterations allowed (5) number of freedoms with prescribed non-zero values (11) half-bandwidth plus 1 total bandwidth of equation coefficients (2eIWP1 — 1) 282 IT UAC WACL IKAY IDER IDERIV | IKDERV IDERF IDERVF ISAMP_ NODOF 1C21 123 ‘NODF IKE ToT ICORDF } IcooRD IDERVT IDTKD TTEMP Icit Ic12 1c32 NOD ‘Space is reserved for the following small fixed length arrays SAMP COORD UVEL VEL JAC JACI KAY DER DERIV DTKD KDERIV KE FUN FUNF COORDF DERF dimensions of the problem (2) working sizeof arrays, JAC, JACI, KAY, DER, DERIV, KDERIV, DERF, DERIVF, SAMP respectively number of degrees of freedom per node (3) (assumed constant, although mid-side nodes have really only 2 freedoms) working size of arrays COORDF, C21, C23 respectively number of nodes for fluid pressure shape functions (4) working size of array KE total number of degrees of freedom per element (20) (ie. 16 ‘velocity freedoms and 4 pressure freedoms) ‘working size of arrays, COORD, DERI” DTKD, TEMP, Cll, C12, C32 respectively number of nodes for velocity shape functions (8) quadrature abscissae and weights coordinates of ‘velocity’ nodes element nodal w velocity values element nodal v velocity values Jacobian matrix inverse of Jacobian matrix viscosity matrix derivatives of velocity shape functions in local coordinates derivatives of velocity shape functions in global coordinates product DERIV'sKAY+DERIV product KAYDERIV element ‘stiffness’ matrix velocity shape functions in local coordinates pressure shape functions in local coordinates coordinates of ‘pressure’ nodes derivatives of pressure shape functions in local coordinates, 283 DERIVF derivatives of pressure shape functions in global coordinates ROW temporary storage of rows of DERIV, ete. TEMP temporary accumulation of Cl, ete. cn cn C21}, element sub-matrices (see equation 2.104a) 23 cx G clement steering vector The following arrays should have their dimensions adjusted via the PARAMETER statements to reflect the size of problem being analysed: OLDLDS _ solution at the previous iteration WIDTH x coordinates of the mesh lines DEPTH _y coordinates of the mesh lines VAL Values of fixed non-zero freedoms PB unsymmetrical band global ‘stiffness’ matrix WORK working space LOADS solution at the current iteration NO numbers of freedoms to be fixed at non-zero values NF node freedom array ‘Thus, the PARAMETER restrictions are: IPBI>N 1PB2> [BAND IWORK >1WP1 INF>NN INO>IFIX IWID > NXE +1 IDEP> NYE +1 “The structure of the program is described by the structure chart in Figure 9.2. Alter the data has been read in, various arrays must be initialised to zero. Note that the KAY matrix which, in the previous chapter, held coefficients of consolidation c, etc, now holds viscosities in the form x/p The iteration loop is then entered, controlled by the counter ITERS, System arrays PB and WORK must be nulled together with the element ‘stiffness’ matrix KE. Element matrix integration and assembly then proceeds as usual. The nodal coordinates and steering vector are formed by the geometry library routine GEVUPV. Nodal velocities used to form i and @ in equation (2.104b) are taken to bbe the average of those computed in the last two iterations, Element submatrices Cll, etc, are set to zero and the numerical integration loop entered. Average velocities d and 6 are recovered from UVEL and VVEL, except in the first iteration where the guess i (0s used. The submatrix C1! is formed as 284 (Quesi-dynamic storage vie ‘PARAMETER’ stateronts Declare fixed and variabie length array Data statements Input and initialisation For maximum of ITS iterations do ‘Null arrays Find the coordinates and steering vector Set nodal velocities to average of old and new ‘Null C submatrices Forallthe Gauss points do Formvolocity contribution Cy Using eight node shape functions FUN Form pressure contributions Using four node shape functions FUNF Coupled contributionsare C2, Ca, Ces, Can Build total costficiont matrix from Cy ‘Assemble into uneymmetrical band PB Insertboundary conditions of prescribed velocity or prossure Solvethe simultaneous equations and check convergence Printthe solution and number ofiterationstakon Figure 9.2 Structure chart for Program 9.0 Nagal velocities ond pressures 3000401 1000E+01 .2000E+01 .3000E+01 -.1000E+01 _.3750E+01 "3rS0E+01 4000E+01 /1000E+01 :4000E+01 -4000E+01 =: 1000Es01 "37806401 13750E+01 13000601 “10008401 ‘30006+01, "T0O0E+01 1750E+01 —11750E+01 1000401 2 Woot iterotions Figure9.3 Results from Program 9.0 285 required by equation (3.103). One component is DERIV™+KAY *DERIV which is formed as usual as DTKD. However, there are two extra components calculated by the two calls to the subroutine WWMULT. Finally, submatrices C12, C32, C21 and C23 are computed as demanded by equation (3.104). The clement ‘stiffness’ KE is built up by the subroutine FRMUPV. and assembled into the global unsymmetrical band matrix by the assembly routine FORMTB, It remains only to specify the fixed freedoms by the ‘big spring’ technique (see Section 36) and to complete the equation solution using GAUSBA and SOLVBA. The maximum number of iterations allowed is $ but a convergence check of 0.1% is invoked by CHECON. ‘The results are listed as Figure 9.3 and illustrated in Figure 9.4. In fact, the solution converged in two iterations and in this simple case produces the exact solution to the problem, —+ Velocity yz0 v3.0 y= 3.0 Figure94_ Distribution ofu with depth from Program 3.0 286 9.1 ANALYSIS OF SOIL CONSOLIDATION USING BIOT'S THEORY ‘The analysis of the behaviour of porous elastic solids under load is in many ways analogous to the coupled flow analysis described in the previous section. The displacements of the soil skeleton take over the role of the velocities w and v, and the excess porewater pressure the role of the uid pressure p. The differential equations to be solved are (2.125), (2.126) and (2.129), Due to the coupling of fluid and solid phases there arises the complication that the applied ‘total’ stresses, 0, are divided between a portion carried by the soil skeleton, called the ‘lective’ stress a', and a portion carried by the pore water, called in soil mechanics the ‘pore pressure’ and denoted in Chapter 2 by u, to distinguish it from the mean total stress p. Alter discretisation in space by finite elements, the coupled equations in u, vand uu, are given by (2.131). These can be seen to be partly algebraic equations and partly first order differential equations in time. Common techniques for discretisation in the time domain are shown by (3.112), in which 0 has the same role as it had in Program 80, controlling the implicit integration ‘Thus, equations (3.113) or 3.114) are in principle no different to (3.95) or (396) for uncoupled problems. Solutions will involve setting up the coupled ‘stiffness’ matrix on the left side of these equations, followed by an equation solution for every time step Af to advance the solution from time 0 to time 1. For constant clement properties and time step Ar, the equations need to be reduced only once, the remainder of the solution involving matrix-by-vector multiplication on the right hand side, followed by back-substitution, The process may be written: KES, = KD6,+F (9.1) PROGRAM 9.1: BIOT CONSOLIDATION OF A RECTANGLE IN PLANE STRAIN (FOUR-NODE ELEMENTS) A © PROGRAM 9.1 BIOT CONSDLIOATION OF AN ELASTIC SOLID 1N PLANE STRAIN usine 4-nooe quRILATERALS c € ATER NEXT LINE TO hace PROBLEM size PARAMETER(16K-5000, 1P82~50, ILOADS=200, INF+100, 1W1D=30, + 10eF=30) c REAL DEE(3,3) ,SANP(3,2),COORD(4,2),DERIVT$,2) .0AC(2,2) REAL JACI (3,2), KAY(2,2);DER(2, 4) ,DERIV(2,4) KOERIV(2,4) REAL BEE(3 2), O8EE(3,8) BT (8,3) 8108(3,8) ,K4( 2,8), ELD(2) REAL ES(3},S1GMA(3)‘OTKOC4, 4) ,KP(4, 4) KE(12,12) KO(12, 12) REAL FUN( 4) C(8,4) ,VOLF(8,4},WiDTH( iW) ,OEPTH(IDEP) ,BK( TAK) ,YOL(B 4 REAL PB(ILOADS, 1P82),LOADS LOADS) ,ANS( ILOADS) INTEGER G(12) ,NE(INE,3) DATA TJAC, 1JAEL 1KAY, IDER, IDERIV, IKDERY,1T/7*2/ DDATA DEE, 1SAN® 1BEE, [DBEE, NODOF, 1N/6*37 DDATA IcOORD, JOERVT, TOTKD, 1KP,NO0/5%4/ 0 20 10 287 ‘DATA IBT, 1BTDB, IKM, IC, IVOLF, 1DOF/6%8/, IKE, KD, ITOT/3*12/ INPUT AND INITIALISATION READ(S5,*)NAE,NYEWN, 1M, NLR, NGP, PERNX, PERKY, €,¥,OTIM, ISTEP, THETA, READ(5,*) (WIOTH(T), Ia} Wiel) READ(5,*) (OEPTH(T}, ToL .NYES1) CALL READNF(NF, INF, 80007, WR) TBAND=2*(IN+1) "1 Rew (IW CALL NULL (PB 1.0908, TNO) CALL NULVEC(LoaDS. NS CALL NULVEC(BK, 18} CALL NULL(DEE, fDEE, 1H, 1H) CALL FMDEPS (DEE, IDEE,E.Y) CALL NULL (KAY, TRAY, IT, iT) KaY(1,1) Ne(IW+1) 1PB2>1BAND ILOADS > N INF> NN IWID> NXE +1 IDEP> NYE +1 ‘Turning t the program, the nodal coordinates and steering vectorare provided by subroutine GEV4X3 and the subroutine FMKDKE builds up the KD and KE ‘matrices required by equation (9.1). Then KE is assembled into the (symmetric) slobal matrix (actually vector) BK while KD is assembled into the unsymmetrical band matrix PB. When using (3.114) the presence of many zeros in KD means that element-by-clement summation to avoid assembling KD would almost certainly be the better strategy. The subroutine BANRED is used to factorise the symmetric left hand side ‘global matrix BK summed from KE and the time-stepping loop is entered. The right hand side global matrix, PB, summed from KD is multiplied by the old solution LOADS using subroutine BANTML to give ANS, which is then modified 10 — Excess midplane pore pressure fo LET rae oo 2 3b 6 eur 2 34 6 B12 3 Figure 99 Mid-plane pore pressure response to ramp loading (Program 9.1) 294 forramploading. Thesubroutine BACSUBcompletesthesolutionand theelement effective stresses are recovered at the element ‘centre’ (= =0). ‘The results for the first time step are shown as Figure 9.8 and the mid-plane pore pressure (freedoms 97 to 100) is plotted against time in Figure 99 for two different rise-times, ¢,=10 and t, = 50. The “time factor’ in Figure 9.9 is the dimensionless number at “5 where H is the ‘drainage path distance’ of 10.0 in the present instance. The Coefficient of consolidation ¢, is found from ea 03) where (+vy0-2¥) E(i—v) and k is the ‘permeability’ (Chapter 7) with 74 being the unit weight of water. In the present example v’ is O and E’= 1.0, so m, is just 1.0. Similarly, k/74 is 10 so that 1'=1/100. Thos, for DTIM equal to 1.0, the solution at the first stepis for T'= 0001 and the rise-timeis T, = 0.1, The results wil befound to agree exactly with those of Schiffman (1960), and problems of practical importance can be solved (Smith and Hobbs, 1976). (94) PROGRAM 9.2: BIOT CONSOLIDATION OF A RECTANGLE IN PLANE STRAIN (EIGHT-NODE/FOUR-NODE ELEMENTS) PROGRAM 9.2 BIOT CONSOLIDATION OF AN ELASTIC SOLID IN PLANE STRAIN USING 4-NODE QUADRILATERALS FOR FLUID PHASE PRESSURE AND NODE QUADRILATERALS FOR THE SOLID PHASE DISPLACENENTS ALTER NEXT LINE TO CHANGE PROBLEM SIZE PPARAMETER(18K+5000, 1P82=50, 1LOADS-200, INF*100) REAL DEE(3,3) .SAMP(3,2) cOORD(B,2),DERIVT(8,2) ,RC(2,2) REAL ACI (2,2),KAV(2,2) 0ER(2.8) ,DERIV(2,8) KDERIV(2,8) REAL BEE(3. 16) ;D8EE(3, 16) 81(16, 3) ,B708(16, 16) KMC16, 16) ,ELD(16) REAL EPS(3) ,SIGNA(3),DTKD|4,4) PCA. 4) ,KE(20, 26) XD(20,20) REAL FUN(8) \C(16, 4) VOLF(1624) WIOTH(30) ,OEPYH(30) ,BK(TBK) VOL (16) REAL FUNF(4} COORDF($,2) DERF(>. 4) DERIVE (2,4) REAL P8(ILOADS, TPB2) LOADS( TLOADS) ,ANS(ILOADS) INTEGER G(20) CINE, 3) DATA IJAC, [JAG], IKAY, IDER, IDERTV, TKOER, IT, IDERF, JOERVE/9¥2/ DATA IEE, [SANP” IBEE, 1DBEE,NODOF, 1H/63/ DATA CORB, LOTKD, IKP,NODE/44/ DATA IcooRD; fOERVENo6/3*8/, 187, 1BTDB, KM, IC, IVOLF, ID0F/6*16/ DATA IKE, TKD, 1701/3#20/ c ¢ c 295 INPUT AND INITIALISATION READ(5,*)NXE,NE,N, 1W, NN NR, NGP, PERM, PERM, E,V,DTIM, ISTEP, THETA READ(S, +) (WIOTH(H), T=} MAES) READ(S5,*)(OEPTH(1) | T=] NYES1) CALL READNE (NF, INF, OOF, HR) TBAND=2 (14+) “1 TReN*(I¥s1) CALL MULL(PB, TLoADS.N, 18AND) CALL MULVEC(LOADS,N} CALL NULVEC(BK, TR) CALL MULL(DEE, ZOEE, 1H, 18) CALL FMOEDS(OFE, 1OEE,£,V) CALL MULL (KAY, TRAY, 17) KAY(a1)=PERME KaY(2,2)N 1KB2> WPI IPROP > NXE INF>NN ‘After mesh data has been read in, including nodal freedom data requested by READNF, the global matrices are nulled. Then the global matrix assembly loop is entered, requiring axial stiffness, flexural stiffness, mass per unit length and cross-sectional area for each element, together with its nodal coordinates. The subroutine BMCOL? then constructs the appropriate element stiffness matrix (an amalgamation of 2.11 and 2.26) while BCMASS constructs the appropriate element consistent mass matrix (an amalgamation of 2.16 and 2.29) ‘The steering vector is built up by GSTRNG and symmetrical, banded global stifiness and mass (KB and MB respectively) constructed using FORMKB. The eigenvalue equation to be solved is now equation (3.82). As shown in (3.83) the next step is to factorise MB using CHOLIN, and then LBKBAN and LBBT. produce the matrix BIGK described by (3.91). This matrix isin N x N form, and S0 the storage requirements are substantial for large N. ‘The eigenvalue solution routines are TRIDIA and EVECTS, after which the N eigenvalues are stored in array DIAG. The true eigenvectors must then be recovered (See equation 3.85) by calling the subroutine CHOBK2. This leaves the eigenvectors in array UDIAG, which is only done for the first NMODES cigenmodes. The higher frequency modes are unlikely to be of engineering significance. ‘The results from the program are listed as Figure 10.2. The square of the fundamental frequency, computed as o, is 0.004025. This agrees with the exact result, 1.875* x El/pAL*, Note from the eigenvectors, of which six are printed, that some modes, for example I and 3, represent flexural vibrations, whereas fothers, for example 2, represent longitudinal vibrations. The square of the fundamental axial frequency w} is computed as 0.1578 which is in good agreement with the exact result, x? x E/4L%p. S025E-02 .1578E400 .1591E+00 12706401. 1698E+01 55546101 G4slEsol —‘22B1E+02 “go6nEso2 aigenvaives N 1KU2> IWPI INF>NN ‘An example problem is shown in Figure 10.3 and the structure of the program is shown in Figure 10.4, Nominally, this problem is the same as in Figure 10.1, representing an elastic solid cantilever 4.0 units long in the x direction with a cross-sectional area of 1.0 and flexural rigidity of of 0.08333. However, the solid in Figure 104 is truly two dimensional and has the additional property of Poisson's ratio, set in this example to 0.3. Since the stress-strain matrix DEE is formed by FMDEDS, the solid is assumed to be in a state of plane strain. 307 ‘Structure dete NXE NYE.N IW ON NR ONGP. eet reenaeea zara ia alia) Element sta AA Ba RKO Vv 19303 «101.0 «1003, Node freedom ieee Hee ear eet Feed ata Note: In Program 10.4, the additional print control integer NMODES( in this aso) is read ater V. Figure 103 Mesh and data for Programs 10.1 and 10.4 ‘The lumped mass matrix is readily formed with eight diagonal terms (equal to area x mass per unit area x 0.25), with one-quarter of the mass of the element ‘lumped’ at each corner and in each direction. The stiffness and mass assembly loop is then entered for all elements, as was done for the stifiness in Chapter 5, In this case the global stiffness matrix is stored 4as an upper triangular band rectangle by subroutine FORMKU and the lumped ‘mass matrix as a vector DIAG, by subroutine FMLUMP which is printed out. By factorising DIAG and altering the appropriate components of KU, the global band stiffness is modified into a banded version of BIGK, as described in Section 3.11.1, but still stored in KU, The eigenvalues of this band matrix are then calculated using BANDRD and BISECT and printed, as listed in Figure 105. It can be seen that the square of the fundamental frequency, printed as «}, is 0.006488, considerably higher than that calculated by Program 10.0 ora slender beam. Thus, the solid in plane strain, as represented by four-node elements, is a oor representation ofa slender beam, at leastin the flexural modes. The elements are too ‘stil’, However, the longitudinal modes for analyses 10.0 and 10.1 are much closer (and would agree more closely for Poisson's ratio of zero in Program 10.1), 308 Fixed length end quasi dynamicarrays: Inputandinttialisation Form element lumped me Forallelementedo Find coordinates and steering vactor Forallintegrating points do Calculate stiffness contribution e'De Addintoolomentstifness KM Reducoto standardeigenvalue problem Extract and print oigonv Stop Figure 104 Structure chart for Program 10.1 -8567E+00 66675400 65676400 .S657E400 .6567E400 _.6557£400] Lunped [66676400 16667200 13333400 ‘e4sBE-02 112536200 ‘17258400 3338400 |3333E00 13333E.00] base motrin 52946400 '1262E+01 115436401 “NGGOESOT —12025E+01 “20455401 26396401 “4152E401 15474 s01} Bgervelues Figure 10.5 Results from Program 10.1 PROGRAM 10.2: EIGENVALUES AND EIGENVECTORS OF A RECTANGULAR SOLID IN PLANE STRAIN—EIGHT-NODE QUADRILATERALS WITH LUMPED MASS PROGRAM 10.2 EIGENVALUES AND EIGENVECTORS OF A RECTANGULAR SOLID IN PLANE STRAIN USING 8-NODE QUADRILATERALS. LOWPED Mass: t ALTER NEXT LINE To CHANGE PROBLEN SIZE PARAMETER(1B1GKe103, INF=@5) 309 REAL DEE(3,3) ,SAMP(3,2) ,COORD(@, 2), FUN(B) ,JRC(2,2) JACI (2,2) REAL DER(2, 8) DERIV(2,8) ,BEE(3, 16) OBEE(3,16) B108{16, 16) REAL B1(16,3).KM(16, 16) ,B1GK(T81GK, 1816K) EMMI6, 16) REAL LoRDS(1B1GK) ,O1AG(HBIGK) ,UDIAG(1BTGK} INTEGER NFCINE,2) G(15) DATA TJAC JACI, IDES, :DERIV, NODOF, 11/6*2/ DATA Th, [SAWP, IDEE, [BEE, 1BEE/S*3? DATA ICOoRD,NOO/2*8/, TBTB,rkM, 187, TEM, IOOF/S*16/ INPUT AND. INITIALISATION EAD(S,*)NXE,NVE,NNM.NGNGP, AA, 88 RHO, EV, MODES, CALL READNF (NE, LHF, NN: OBOE, NR) iwpl-Ivel CALU NULL (BGK, 1816K,¥,N) CALL MULE (DEE, {DEE, 1H fx) CALL F¥DEPS(DEE, DEE, Ev) CALL GAUSS(SAMP, ISAM ji) CCALL NULL (EMM, 1EMN, TDBF, 100) CALL MULVEC(DiAG,N} FORM ELEMENT LUMPED WAS MATRIX Do 30 Tel, 100 30 EMT, 1) =AAMBB*RHOM.2 Do 31" In1, 13.4 (1, 1) BHM, 3,3)*.25 Do 32-2, 18, 32 EIT, 1)=EHM(3,3)*.25 ELEMENT STIFFNESS AND MASS INTEGAATION AND ASSEMBLY Do 10 tPet,NxE Do 10 fO=1.NvE CALL GEONGY (TP, 10,NVE,AA, 88, COORD, 1CO0RD,G, NF INF) CALL NULL (KM, IRM, 100F 1067) 0 20 f=1,NGP D0 20 Jol. NGP CALL FHQUAD(DER, IDER, FUN, SANP,ESAMP, 1,9) CCALL MATHUL (DER, IDER,COOAD, COORD, IAC; TIAC,1T,NOD, 17) CALL TwOBY2(IAC’T9AC, ACL FAC DET CCALL MATMUL(OACL, TORCH, DER, IDES, DERIV, 1DERIV IT, 1T,NOD) CALL NULL(BEE, 18EE, 14, 100F} CALL FoRna BE, 1BEE,OFRIV, 1oeRIV,NoD) CALL MATHUL(OEE, 1OEE, BEE, i8e= OBEE, TOBEE, IH, IH, ID0F) CALL MATRAN(GT, [aT, BEE, BEE, TH, 1D0F) CALL MATHUL(BT’ '37;08¢E, 1DBEE,TD3, TBTDB, IDOF, 1H, 100F) QUOT-DET#SANP (i. 2)*SANP(I,2) CALL MSMULT(STDB, 18708, GUOT, IDOE, LDOF) CALL MATADD( KM, 128, B1DB, 18TD8, TOOF, 1DOF) 20 CONTINUE CCALL FMBIGK(BIGK, 1BIGK, KM, 1KM.6, 100F) CALL FHLUMP(DIAG, EMM, TEM, G, 1DOF) 10 CONTINUE: CALL PRIWTY(DIAG,N) REDUCE TO STANOARD EIGENVALUE PROBLEM 0 50 121.4 uAG (1) /S0eT(01A6(2)) 50 LOADS(1}=O1A6(1) 310 ¢ c c 00 60 TnI," 09 60 Jel.N 60 BIGK (159) =BIGK(T, 9) *O1AG(1)*0186() EXTRACT EIGENVALUES: CALL TRIDIA(N,1.E-293, B1GK, DIAG, UDIAG, BIGK, 181GK) TFAILeL CALL EVECTS(N,1.€.293, 186, UDIAG BIGK, TBIGK, IFAIL) CALL PRINTV(DIAG,N) Do 70 Je1,ANODES 0 80 T=1.N {80 CIAG(I)=BiGK(t, 3) *LoADS(1) 70 CALL PRINTV(OIAG,N) ‘sro END Declarafixediongth variabl point nto stiffness (and mass) “Assemble intogloba stfiness . (@ndmass) matric Reduceto standard eigenvalue problem Extractandprint sigonvalues Convertthe sigenvaluesto untransformed state Printthe eigenvectors ‘top Figure 106 Structure chart for Programs 10.2 and 10.3 a 1192151621, 1718 77,288 1.0 940 13h 19,20 23,26 129.50 3 of 1.33333 = 4.0 Structuredata NXE YEN NN NR NGP Siaivia0 rs iesiees Elomentdata AA BB ORHOE V icpraar eecteee cena) Print Control NMODES 6 Node freedom Gaeiguitt Quite atte Oma gis sO a Note: In Program 10.3, he Semi-bendwith IW: integers NGPK and NGPM are road instead value 3 iread after N and the NGP, Both have Figure 10.7 Mesh and data for Programs 10.2 and 10.3 A much better representation of flexural modes of ‘beams’ made up of solid elements is achieved by the use of eight-noded quadrilaterals. The present program uses these and a ‘lumped’ mass approximation, The process of mass Jumping is not obvious for these elements. For example, the summation of rows of the consistent mass matrix leads to negative values atthe corners. However, it can be shown eg. Smith, 1977) that a reasonable approximation is to lump the mass to the mid-point and corner nodes in the ratio 4:1 of the element area. The structure chart for the program is listed in Figure 10.6 and the small example problem of a cantilever in Figure 10.7. Comparing with the previous program, the only new variables are NMODES, used to control the number of eigenmodes printed, and BIGK, which is a square (N x N) global matrix replacing KU, Thus, the appropriate assembly routine is FMBIGK. The size of, BIGK is set in the PARAMETER statement where IBIGK > N. Otherwise the program resembles the previous two closely. The output shown in Figure 10.8 and consists of the diagonal global lumped mass matrix followed by the eigenvalues (as usual inthe form oo) and the first six eigenvectors. The square of the fundamental frequency is now co? = 0.0041 14, in much closer agreement with the value of 0.004025 produced by Program 10.0 312 -2567E+00 .2567E+00 .2667E+00 .2667E400 .1333E+00 1333100 {5333600 153336+00 ‘1333E+00 11333400 “26676400 [2667t+00 2667E:00 12567E+00 [1333E+00 113336400 °5333E+00 1$333E+00 [13336+00 113336400 ‘2667E+00 2667E100 <2667E+00 12667£100/ Matra es67E-01 “e567E-01 26676400 26676100 “6667E-01 16667E-01 TALI4E-02 [9598E-01 “1713E+00 145996400 ‘1427E+01 ‘1812E+01 26746:01 '3019E+01 ‘3231E+0) 13942E+01 “39646401 143946101 2656-01 154956101 "6085E+01 16B58E+01 “7210E+02 | 7509E+01 } Eigenvalues ‘5036-01 189336101 ‘9704E+01 99a7e+01 ‘0336402! osaEVO2 1S31es02 “2256Es02 12738E102 “3eesE+02 139266102 | -5617E+02) 'S290E-01 14996E-01 “5290E:01 14994E-01 -:9921E-01 116596+00) @518E-13 11567E100 ‘992iE-01 11659E+00 -11329E+00 [3292100 1329600 132926400 -11526E+00 “sz7tEvoo + .1271E-12, “Y526€+00 “S271€s00 ~[1608E+00 7413E+00 ‘16088400, [is3ze+00 9604400 -"1448e-12 96008100 C16326+00 ‘rea7eioa -2497E+00 7 2e7e+d0 =:2497E,00 [99sze-01 ~"84916+00) 1385E-12 <_58886+00 TIsto1E.00 -760776-01 o77e-01 62006400 “iHog2eio0 “72083-12 a) 2 Selees00 --4082£,00 ‘aesee-01 “AL04E+O0 ”“92s6E-O1 Sgsyesoo “Yeaatsoo 32e0e-12 “7243.00 “4s57Ev00 “7e44E 00 yzeks00 -_5505E-01 “1726E+00 “soase-o1 L38s1Et00 -14832e-01 SugsEs0d -201SE-12 136316600 4892E-01 “49598.00. -.4370E-01 Gsssetoo ta70e-01 “1696000 [3096-01 | “¢089E.00 -3591E-12} 3 Steaeroo |2096E-01 | \gen0E«00 -c14sye-01 | “ee40ev00 “T4a7t-01 Seaxes00 -117626-01 | “7os7Es00 NMODES. ‘The structure of the program i illustrated in Figure 11.2. Up to the end of the section headed ‘extract eigenvalues and eigenvectors it is copied directly from Program 10.2. When the time-stepping loop is entered, it must be remembered that the eigenvectors computed are those of the transformed problem and the true eigenvectors are first recovered as UDIAG. The eigenvalues, in the form w?, are contained in DIAG. Turning to equation (3.136), Pis called F in the program, thew? are in DIAG and dis the forcing frequency OMEGA. Therefore ap, are readily computed and stored in XMOD. Inthe final section of the program, the modes are superimposed as required by equation (3.125). 324 Declarefixed length variable Declare quasidynamicarcays Inputand initialisation Formelementlumpad mess mat ( Foralltheelementsdo ) Find he geometry and steering vector Nulltheolomentsitfness matrix Foralith Gauss points do Find mukipliers andshape functions Convertto global coordinate Sttfresscontribution 808 ‘Add contribution for current Gauss point ‘Assemble into global stiffness matric Setup the globallumped mass matrix (ecto) Reducoto standard eigenvalue problem Extractthe eigenvalues and eigenvectors For tho time steps do Update thetime Recover untransformed eigenvectors Specitythe forcing function ‘Add the modal contrib Printtheragult Stop . Figure 11.2. Structure chart for Program 11.0 ns <1O47E+01 .9S11E+00 .2732E402 2094E+01 8090E+00 3636802 ‘a14ze+o) “se7ee+0o | “4184E402 Tale9e+01 “30908400 43226402 5236640] '5390E-14 .4037E+02 263E+01 -;3090E+00 33576402 7330Es01 +1$878E+00 |234BE+02 ‘e37@e+o1 --8090E+00 “11106402 ‘94286001 -.9512E400 -.2373E+01 1O47E+O2 ~:1000E+0) ~-156)E402 13526402 “L952}E+00 -2732E+02 1257402 -18030E+00 - 136366 +02 Y36)E+02 =1$87BE+00 --4184E402 “iagoeso2 *"30906+00 -.43226+02 IS7]EV02 -L4459E-13 = 140376002 1676E402 130906400 - 133576402 1780+02 1S87BE+00 = 2348 +02 1865E+02 “8090E+00 ~"1)10E+02 39906+02 “95]1£+00 23736601 2094E+02 “1000E+01 |. 1861E+02 Tine t coset Tp displacement Figure 11.3 Results from Program 11.0 The results are listed as Figure 11.3. They consist ofthe clapsed time, the value ‘of the force and the value ofthe displacement under the force every NPRI (in this, ‘case 1) steps, It can be seen that the amplitude of the displacement is 43.22 at a phase shift of the order of 90°. PROGRAM 11.1: FORCED VIBRATION OF A RECTANGULAR SOLID IN PLANE STRAIN USING EIGHT-NODE QUADRILATERALS—LUMPED OR CONSISTENT MASS, IMPLICIT INTEGRATION BY THETA METHOD PROGRAY 11.1 FORCED VIGRATION OF A RECTANGULAR SOLID IN PLANE STRAIN USING 8-NODE QUADRILATERALS, LOMPED OR CONSISTENT MASS,OIRECT INTEGRATION IN TIME USING THE THETA-NETHOD ALTER NEXT LINE 10 CHANGE PROBLEM SIZE PARANETER(IKV=1000, ILOADS=103, INF+85) REAL DEE(3,3) ,SAMP(3,2) ,COOR(8,2),FUN(B) ,JAC(2,2) ,JACI (242), 4DER(2,6),DERIV(2,8) ,BEEL3, 16) ,OBEE(3,16),8708(16,16) , 4BT(16,) KM(16, 16) ,EMA( 16,16), ECM(16, 16), TN(16, 16) NF(16,2), SKY TEV) (TRV) FI {TKV) LORDS {TLORDS}, 4$Xx0(TLoAds) ,01X0(1L0A0S) '02K0( 1LOADS), 4x1 (TLORDS) 011 (TLoADS) ,02K1 (ILOADS) INTEGER NFCINE,2),G(16) DATA TuAC, JACK, IOER, IDERIV ,NOOOF, 17/6%2/ DATA IH, 1SAHP, IOEE, 1BEE, 108EE/5*3/ DATA 1Cb0RO,nOO/2*2/, 18108, 1KH, 1BT, IEMM, 1ECH, [DOF ITN, 1NT/8*167 INPUT AND INITIALISATION READ(S,*)NXE,NYE,N,IW,NNNR,NGP, AA, TYPE, RHO, E,V,ALPHA,BETA, + TSTEP,NPRI THETA, OMEGA’ 20 0 31 2 10 ‘CALL REAONE (NF INN NODOP NR) TRen*(IW+1) PI=ACOS(-1.) PERLODe2_*P1/oHeca BrinePeRi00/20. CALL NULVEC(KV, IR) CALL NULVEC(MM, IR) CALL NULL(OEE OEE, 1H, 1H) ‘CALL FMDEPS (DEE, IDEE,E,V) ALL GAUSS( SAP 1SAND, AGP) ELEMENT STIFFNESS AND MASS INTEGRATION AND ASSEMBLY 00 10 1Pe1,xe 00.10 10-1;N¥E Ree CALL” GEoway(1P, 10,1, AA, 88, COORD, TCOORD, 6, NF NF) ALL MULL(I, ea HOF TDDe) ALL NULL {em Ee, 10, ODF) 00 20" t=) Neb 0 20 Jo}. NP CALL FHQUAD ER ER, FUN, SAAD. SAND, £2) CALL MATMUL(DER, IDER, COORD, ICOORD, JAC, IJAC, IT,NOO, IT) CALL TWOBY2 (JAC, JAC, JACI, IACI DET) GALL MRTHUL SAC), TORE OER, TOER, OER, TDERLV, 17, 17ND) ALL MULL(BEE, TBEE, 1, DoF) ALL. FORHO( BEE, 1862, 0ERIV.LOERLY, N00) CALL WATMUL(OEE, IEE, SEE, iE, DBEE,1OBEE, 114, 100F) CALL WATRANGBT, iBT, EE, TGEE, Th, 1007) ALL WATHOL BT: T8Y;DBeE, TDBEE,STDB,!8TOB, 100, 1H, 100) QUOT=DET*SAMP(I,2)*SAMP(J,2) AREACAREAS QUO Te(riyPe snes 1) THEN CALL ECMAT(ECM, IECM, TN, ITN,NT, INT, FUN,NOD,NOOOF) PROD=-QUOT RHO GALL HSMULT Eom, 1M, PROD, 10F DOF) ALL WaTADO ELEC, (EON, i0DP,!00F) 0 TF ALL HSMULT (sTOB, 18708, UOT, IDOF, 100F) ALL WATADDG KH TEN, BTOB,TBTDB,1OGF, 100F) Te(ivvPe- en) Hen 00.30 tsi, 100e Ee, [)=ARERCRHO®.2 00 31" I=1, 13.4 EnW( tL, )obin(3,3)*.25 50 42 2ytad Era, 1)=EH3,2)%. 25 eND IF CALL FORAKY KK, 1K 6 1 IDOF) ALL FORAY HAE, TENG, TOF) REDUCTION OF LEFT HAND SIDE CALL NULVEC(X0,N) CALL NULVEC(D1X0,N) 327 CALL NULVEC(02x0., Ny Ch=(1.-THETA)*OTiM C2=BETA-CI C-ALPHAGL./CTHETASOTIM) CaeBETASTHETAYOTIN DO 40 I-1,IR 40 FL) =C3etat(1) +c4eKv(I) CALL’ BRNRED( IN, IW) TIME STEPPING LOOP Timed, 00 50 Je1, 1steP TIMeTIMOTIN CALL NULVEC( LOADS, §) Do 60 te1.N) KY(1)*C3*K0(1)4D2x0(1)/THETA ‘LOROS(N)=THETA*DTIN*COS (OME GA*TIN) 4C1*COS OMEGA®(TIM-OTIM) ) CALL LINWUL (¥04,12,DDKI,N, 1) CALL VecaDD(O1%1, LORDS Dix1,N) 00.70 T-1,N 70 LORDS(I)=£24x0(1) CALL LINMUL (KV, LOADS, X11, 14) ALL ECAR On A) CALL @ACSUB(FIK1,N\ 14} Do 80 I-1.N DEKE (1)=(32(1) -O(1))/ (THETA*DTIM) -D1XO()#(1.-THETA)/THETA DOKL (TE) (IRI (1)-D1X0(1)}/ THETAPOTIM) -D2K0(}=(1. -THETA)/THETA IF(O/NPRI*NPRL. £9, 0) WRITE(6, 1000)TIN, COS (OMEGA*T IM) x1(N} CALL’ VECO (KI, x0,N) CALL VECcOP(01%1,6140,N) CALL VECCOP(O2X1!02x0;,N) 50 CONTINUE 1000 FORWAT(SE12.4) stop. END 8 In this program, the problem previously analysed by modal superposition is solved again by a direct integration procedure. The specific method is the same implicit technique as was used for fist order problems in Program 8.0, whereit is often called the *Crank-Nicolson’ approach. In second order problems it is also known as the ‘Newmark’ f = } method. The formulation was described in Section 3.15.2.1 where it was shown that in principle the algorithm is the same as that used in Program &0.To step from one time instant to the next, set of simultaneous equations has to be solved, Since the diflerential equations are often linearised, this is not as great a numerical task as ‘might be supposed because the equation coefficients are constant and need be reduced or factorised only once before the time-stepping procedure commences (see equation 3.139). Velocities and accelerations are computed by ancillary equations (3.140) and (3.141), ‘The problem layout and data are almost the same as in Figure 11.1 and are reproduced as Figure 114, The structure of the program is contained in Figure 11.5. Turning to the coding, the new variables are the simple variables: 328 Freedom numbers nye 15.16 1.0 Firzcosat | Structure NXE NYE NW NN NR NGP 31% 1% B88 Elomentésta -«AA_—s«BB. TYPE RHO EV ALPHA BETA isms 1 8 5 Timeintegration ISTEP _NPRI THETA OMEGA dae otaat S(Progeamt1.t) 3 1atProgram 112), Nodeteadom 91 0 0 2 0 0 3 0 0 ote Figure 114 Mesh and data for Programs 11.1 and 11.2 ITYPE switch—equals 1 for lumped mass, 0 for consistent ALPHA i BETA i Rayleigh damping parameters a and f (see 3.127) AREA clement area and the arrays: FI (1+ 1/0/40M + (B+ 00K (see 3.139) X0,DIX0,D2X0 displacement, velocity, acceleration at time 0 X1,DIX1,D2X1__ displacement, velocity, acceleration at time 1 Upto the section headed ‘element stiffness and mass integration and assembly’ the program's task isthe familiar one of generating the global stiffness and mass ‘matrices inthis case stored as the vectors KV and MM respectively. The matrix, arising on the left hand side of (3.139) is then created, called FI and factorised using BANRED, In the time-stepping loop, the matris-by-vector multiplications and vector additions specified on the right hand side of (3.139) are curried out and equation Solution is completed by BACSUB. It then remains only to compute the new \elocities and accelerations using (3.140) and (3.141). Declare fixed iongth variables Declare quasiaynamicarrays Inputendinitialisation Forallolementsdo Find the geometry and steering vector Nullthe elementstitfnass and mass For lithe Gauss points do Find multipliers andshape functions Converttoglobal coordinates Stitfnes contribution 8708 ‘Mass contribution NIN ‘Addcontributions forcurront Gaus Point nto stitiness andmass matrices Assemble intogiobal stifness andmassmatrices Seltthe initia conditions Roducotheletthend side Forallthetime steps do ) Sat the forcing function ‘Assomblethenow righthandside Completethe equation solution Compute the new velocities and Printthe results Updatethe new righthand side Stop Figure 11.5 Structure chart for Programs 11.1 112 and 115 329 330 -1047E80) .9510Es00 2292640 20986+01 “8090E+00 54736401 31426+01 | “5878Es00 7771640) '4189€+0) '3090E+00 11086402 52366+0] “5390E-14 -14706402 2836.01 | -73090E+00 -1735E402 7330E+01 -~5878Es00 | 18665402 ‘378E+0) ~'8090E+00 -1887E+02 ‘oq2sev0) -19511e+00 °)768E402 10476402 11000640) *1520E402 Uinseeso2 IR. The structure of the program is described by Figure 11.9. The results are shown in Figure 11.10 and show virtually the same amplitude (44.26 as against 43.22) and phase shift as computed by Program 11.0. ‘Thus, Programs 1 ,0to 11.3 deliver essentially the same results. As was the case for first order time dependent problems described in Chapter 8, algorithm choice isa rather complicated matter and no simple rule can be laid down. tn the final two programs of this chapter, algorithms involving ‘explicit’ integration are described, 337 1oa7E+01 27216402 2094E+01 ‘668E+02 31426401“ 42556+02 ‘§189E+01 “azee+o2 "52366101 41648402 5263E+01 '3494E+02 "7830E+01 ‘24826402 83786401 1227402 [9425E+01 -11480E+01 3ON7E+02 -11509E+02 ‘anseso2 -‘272uE+02 12576402 "36686402 3361E+02 ~"4255E+02 T4S6E+02 = 14426E+02 1S71E+02 1676 +02 17806 +02 ‘ieese+o2 ~"1227E+02 ‘igs0e+02 "1480E+01 "20s4e+o2 °15098+02 Time! Tip uplecement Figure 1110 Results from Program 113 PROGRAM 11.4: FORCED VIBRATION OF A RECTANGULAR ELASTO-PLASTIC SOLID IN PLANE STRAIN USING EIGHT-NODE QUADRILATERALS—LUMPED MASS, EXPLICIT INTEGRATION PROGRAM 11.4 FORCED VIBRATION OF A RECTANGULAR ELASTO-PLASTIC SOLIO IN PLANE STRAIN USING 8-NODE (QUADRILATERAL ELENENTS:LUMPED MASS:EXPLICIT INTEGRATION ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARAMETER ( ILOADS=1000, 1N¥=20, INY=20, 1ND=20, INF=50) BEAL OEE), PL(4s4) SAND. 2); COORDS 2) DAC: 2),20C1 (2.2), +4DER(2,8),OERTV(2,8) BEE(4, 16) ,EL0(16), FUN(&) ,ENM 16) STRESS (4), SEE5(4 OM) Br 38-4) ELON U6) BLOHD (16): VAL (H0} +41 (LOADS) ,01 x1 {TLOADS) 52x (LORDS) .mM( LOADS) , BOVLDS (tLoADS) , ++SKCTING, INV, 4), SYCINX, TRY, 4), DOYCINE, NY, 4), S(T, TN, 4), “EXC INV, 4), EYCINX, TRY, 4) GXY INK, INY, 4) EZ (INKG NY, 4) INTEGER (16) ;NO(INO} ,NF(INE, 2) DATA TOEE, TBEE, 18/3*4/, TAC, LJACL, 1OER, IDERIV, NODOF,11/642/ DORTA 1CoORD,Nod/24B, 181, 100F/2*16,,1SANE/3/ © INPUT AND INITIALISATION READ (5,*) NXE, NYE.N,NN,NR, NGP, AA,BB, RHO, E, V, SBARY, PLOAD, + OTIW, ISTEP, NRE CALL READNF (NF, TNF, AI, NODOF HR) READ(S,) NL. (NO(T) VAL (I), 121,NL) IgTOT=iGp*ngp CALL WULL3(SX, INK, INY,NXE,NYE, T6TOT) CALL NULL3(S¥, INK, INY,NXE NYE, IGTOT} 338 CALL NULL3(TXY, INK, INV, AXE, NYE, 16TOT) CALL MULL3(SZ, INK, INV ARE, AVE, i@TOT) CALL NULL3 (EX, INK, INYNKE, NYE, 16TOT) CALL NULL3(EY" INK, INY,NHE,NYE, 1GTOT) CALL NULL3{GXY, INK, INV, AXE, NYE, TGTOT) CALL NULL3(EZ, INK, INV, WxE, AVE, TGTOT) CALL WULVEC(XE ALL WULVEC(DIAI.N) CALL MULVEC(02X1,N) CALL NULVEC(HH,N} CALL GAUSS(SAMP, ISAMP,NGP) EXPLICIT INTEGRATION LOOP Timo. WRITE(6, 1000) TIM, X1(N) ,DUA1(N) 02K (H) Do 10 a1, ISTEP TineTIMeoTHM APPLIED LOAD Do 20 Il. 20 X1(1)=Xi (4) (1X2 (1) 402K2 (1) 4DTIM*.5)*0TIN CALL NULVEC (BOYLDS,N) FORM ELEMENT STRAIN-DISPLACEMENT RELATIONSHIPS. 0 30 1P+1,MME 0 30 10+1.NVE ARE CALL WULVEC (BLORD, OOF) ALL GEOMEX( IP, 10;NXE,AA,B, COORD, ICOORD,G,NF INF) 00 40 Met, IDOF 1F(G(H) €0.0)ELO(N)=0,0 ‘40. LF(G(M) NE-0)ELD(N)=Xi (G(M)) To-0) 00 0 T=1,NGP Do 50 Jel NCP TGeIGei CALL NULL(DEE, IOEE, 1H, TH) CALL FHORAD (DEE, 1OEE,E,¥) CALL FHQUAD(OER, IDER, FUN, SAMP, 1SANP. 1,9) ALL MATMIL(OER;IDER;COOD, TCOORD, JAC, 1UAC, IT NOD, 1) GALL Twosy3(0ACT3KC, oACL RCL DET) ALL HATMUL(JACL, TJAC] DER, IDER, DERI, IDERIV, IT, 17, NOD) CALL NULL(BEE, 18EE, 14, iD0F) ALL FORMB BEE, IBEE,OERIV, IDERIV,NOD) (QUOT=DET*SAND(/,2)*SANP(9,2) [AREASAREAsQUOT*RHO CALL MVMULT (BEE, IBEE, €LD, 1H, 1DOF EPS) £PS(1)=£PS(1)-EX(1P, 10,16) EBS(2)=£PS(2)-E¥(1P, 10516) pS(3) -EPS(3) -GX¥(1P, 10,16) Esa) -epS(8)-€2(17, 12,16) CALL. MVMULT (DEE, 1DEE, EPS, 1H, IH, SIGMA) STRESS(1)=S1GHA1) SKIP, 10,18} ‘STRESS (2)=S1GHA(2)+S¥(1P: 10, 16) STRESS (3)=S1GHA(3)+TAY(1P, 10,16) STRESS(#)=S1GNACS) +52(IP, 19,16) CALL INVAR(STRESS, SIGH, DSBAR, THETA) FNEN-DSBAR-SBARY 80 50 100 no 120 130 30 10 339 ‘CHECK WHETHER YIELD IS VIOLATED: IF(FNEW.LT.0.)60T0 70 STRESS(i)SK(1P, 10, 16) STRESS(2)=5¥( 10,10; 16) STRESS(3)=TAY(TP, 10, 10) STRESS(4)=SZ(1P, i0, 16) CALL TNVAR(STRESS, 3164, SBAR, THETA) FeSBAR-SBARY FACeFNEW/ (FHEW-F) STRESS(1)=SX(IP, 10, 16)+(1.-FAC)*STGMACL) STRESS(2)=SY(IP, 19" 16)+(1.-FAC)*S1GMA(2) STRESS(3)=TK¥ (TP, 10, 16} (1.-FAC)*STQHA(3) STRESS(4)=S7(1P, iQ, 1¢)+(1.-FAc)*STaMA(a) CALL WNL(E,V, STRESS, PL) 0 60 Kel, TH Do 60 L-ls TH DEE(K, L)=DEE(K,L) -FACRPL(K,L) CALL HVMULT (DEE, IDEE, PS, TH, IH, SIGMA) STGMA(1) =STGMAC]) 45x(1P, fa, fa) SUGHA(2)=SIGHA(2}48¥(IP, 10.16) SUGMA(3)=5 1GHA(3) THY (TP, 10,16) SIGMA(4)=5 1GHA(4) +87(1P, fa, fa) CALL MATRAW(BT, 187, BEE, IEE, TH, 100F) CALL MVMULT (BT, TBT;STGHR, TOOF, 7H, ELOAD) Do 0 Kel, 1DOF BLOAD(K) +BLOAD(X) +ELOAD(K)*QUOT UPDATE GAUSS POINT STRESSES AND STRAINS SK (IP, 10, 16)=S1GMa(1) Sune Te) SAA ) THY UIP, 14, 16 sz(1P, ia, ig) EX(1, 10; 16) =EX(1P, 10, 16) +€65(1) EY(IP, 10, 16)=EY(1P, 10,16) +EPS(2) GXY (TP, 10, 16)=GXY (IP, 1, 16) +EP5(3) EZ(1P, i0, 1G)=£2(1P, 10, 16) +6PS(8) CONTINUE D0 90 Net, 100F 1F(G(N) -£0.0)60 10 90 ‘BOYLDS (G(M}) BOYLDS((M)) -BLOAD(M) CONTINUE TF(Q0.NE.1)60 0 30 FORM LUNPED MASS MATRIX 90 100 1=1, 100F AREA 134 (1) =. 05*AREA Do 120 in2,14,4 eM 00 130 i=1, 1ooF TF(G(1) WE! 0) MM(G(1))=¥(6(1))4EMM( 1) CONTINUE 00 140 Tel, nL BYLOS(NO(j} )»BOYLDS(NO(1))4VAL(1)*PLORD 00 150 BOYLOS(1)=8OvLDS(I)/4M(1) 340 DD1KA (1) -D141 (1) + (02K (1) +BOYLDS(I))*.5*OTIH 150 02%1(1)B0YLOS(T) TF (09 .E0.J0/NBRI*NPRI)WRITE(6, 1000) TIM, X1(N) ,01K1 (N),0241(N) 10 CONTINUE 1000 FORMAT (4£12.4) sToP END In the same way as was done for first order problems in Program 8.2, @ can be set to zero in second order recurrence formulae such as(3.139). Then the only matrix remaining on the left hand side of the equation is MM: if this is lumped (diagonalised), the new solution r, can be computed without solving simul- taneous equations at all. Further, the right hand side products can again be completed using element-by-element summation and so no global matrices are involved. This procedure is particularly attractive in non-linear problems where the stiffness KM is a function of, for example, strain. In the present program, non- linearity is introduced in the form of elasto-plasticity, which was described in Chapter 6, The nomenclature used is therefore drawn from the earlier programs in this chapter and from those in Chapter 6, particularly Program 60 which dealt with von Mises solids. The structure chart for the program is shown in Figure 11.11 and the problem layout and data in Figure 11.12. Al the variables used, and their significance, are listed below: Simple variables: NXE number of elements in x direction (1) NYE number of elements in y direction (6) N total number of non-zero freedoms in mesh (50) NN total number of nodes in mesh (33) NR number of restrained nodes (15) NGP number of Gauss points’ in each direetion (2) AA size of elements in x direction (1. BB size of elements in y direction (2.5) RHO mass of elements per unit volume (0.733 x 1073) E Young's modulus (3.0 « 107) SBARY von Mises’ yield stress (50,000) PLOAD load multiplier (180.0) DTIM time step (1.0 x 10"°) ISTEP number of time steps (300) PRI printing control (every NPRI results printed) (50) NL. number of loaded freedoms (13) IGTOT total number of Gauss points (4) TIM accumulated time AREA element area (includes multiple p) : DSBAR deviatoric stress invariant & FNEW new value of yield function Initlisation (0.9. 5 Mg=0 Replace x by x9 + At H+ At Foralltheelementsdo Cathe geometry routine Find the element nodal displacements Forall Gauss points do Find the 8 and D matices Find the element strains o= De Findthe elementstresses ¢ = De Find he element internal forces BLOAD = {BT adxdy ‘Add up totalinternal forces BDYLOS. ‘Add oxternalloadsto internal loads Computex, = M BDYLOS. Replace i by So + big + Sa) ae Replace X by Xo igure 11.11 Structure chart for Program 11.4 THETA lode angle (see Chapter 6) F yield function SBAR deviatoric stress invariant & FAC factor (see Figure 6.7) Data constants: IDEE oret sizes of arrays DEE and BEE 1H ‘components of stress and strain vectors (4) 34 342 180 kN/m Not to scale Structuredsta «NXE NYE NNN NR NGP eerie 0 se gS aN eg: Element AA BB RHO £ — V_SBARY PLOAD 10 28 (73963 367 3 6E4 180. Timeintegration DTIM —ISTEP_—_NPRI data 168 30080 Node freedom (ator ous ame ttorgt tito na io) date i ete Ose aiet Ose Oat O10 fel tate ona tottign tj sto agg) iB et en sates) casi ini! Loeds: NL (NO), VALI,1= 1, NL) 1334167 61.6667 11 8333 14° 1.6667 19.9333 22 1.6867 27 «8333-30 1.6667 35 ©8333 381.6867 43.8933 46 1.8667 60.4167 Figure 11.12 Mesh and data for Program 11.4 wac act IDER IDERIV. NODOF IT 1cOORD NOD 1BT IDOF ISAMP 343, sizes of arrays JAC, JAC, DER, DERIV. number of degrees of freedom per node (2) dimensions of problem (2) size of array COORD number of nodes per element (8) size of array BT number of degrees of freedom per element (16) size of array SAMP Fixed size arrays: DEE PL SAMP cooRD, JAC JACI DER DERIV BEE ELD FUN EMM STRESS EPS SIGMA BT BLOAD G stress-strain matrix plasticity matrix Gaussian abscissae and weights element coordinates Jacobian matrix inverse of Jacobian matrix derivatives of shape functions (local) derivatives of shape functions (global) strain-displacement matrix element nodal displacements element shape functions element mass matrix vector of current Gauss point stresses vector of Gauss point strains vector of elastic Gauss point element stresses transpose of BEE ‘element ‘internal’ nodal forces steering vector Variable size arrays: VAL X1, DIX1, MM BDYLDS values of nodal freedom loads D2X1 displacement, velocity, acceleration global mass matrix xlobal ‘body-loads' vector (see Chapter 6) SX, SY, TXY, SZ__accumulated Gauss point stresses EX, EY, GXY, EZ accumulated Gauss point strains NF node freedom array PARAMETER statement restrictions are: ILOADS> N INX > NXE 344 INY > NYE INO>NL INF >NN ‘Turning to the program code, after input and initialisation, three dimensional arrays ate nulled by subroutine NULL3 and von Mises plastic stress-strain ‘matrix PL is formed by subroutine VMPL. The remainder of the program is a large explicit integration time-stepping loop. The displacement X1 is updated and then, scanning al elements and Gauss points, new strains can be computed. ‘The constitutive relation then determines the appropriate level of stress and hence the D matrix which should operate (whether the yield has been violated or not). The difference between the true stresses and the elastic ones is redistributed ‘as'body-loads' BDYLDS, whence the new accelerations D2X1 can be found and 00006+00 0000409 .0000£+00 0000800 SO00E-04 |2995E-03 “1499E+02 2301406 3000-03 1214-02 -2381E+02 4808606 SS00E-08 2684-02 -3354E+02 1 4893E+05 2000-03 | .4867E-02 “S286E+02 -.8480108 2500603 | “BOB¢E-02 |7435E+02 6151106 0006-03 \1231E-0] 9414E+02 169786408 Time isplocement Velouity _Aceleretion oF beam centring Figure 11.13 Results from Program 11.4 5.00 400 350 300 Central Dispiacement = 10-1 noo 010 020 030 040 050 060 0.70 080 090 Tine » 102 Figure 11.14 Plot of results from Program 11.4 345 integrated to find the new velocities, D1X1. Then the next cycle of displacements, can be updated The results from the program are printed in Figure 1.13in the form of elapsed time, displacement, velocity and acceleration at the upper surface centreline of the beam, Figure 11.14 gives the centreline displacement of the beam as a function of time computed over the first 10,000 time steps. The development of permanent, plastic deformation is clearly demonstrated. PROGRAM 11.5: FORCED VIBRATION OF AN ELASTIC SOLID IN PLANE STRAIN USING FOUR-NODE QUADRILATERALS—LUMPED OR CONSISTENT MASS, MIXED EXPLICIT/IMPLICIT INTEGRATION PROGRAM 11.5 FORCED VIBRATION OF A RECTANGULAR SOLID IN PLANE STRAIN USING 4-NODE QUADRILATERALS IMPLICIT AND EXPLICIT. INTEGRATION LUMPED OR CONSISTENT MASS ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARAMETER(IKV=1000, ILOADS=100, INF=100, INX~25, INY=25) REAL O&E(3, 3) SANP(3; 2) COORD( 4,2), IA(2,2),24C) (2,2), 8T08(8,8), #ER(2, 4) DERIV(2,4) BEE(3,8) OBEECS,8) /KM(E,8) ,CHN(B,8) , ‘SECM(8, 8), FUN(4) ,BT(B, 3), TN(3.8) ,NT(B,2) KV TRY} ,MOCTRV) ‘FLoaDS{1LGaDs) x0 (TL0ADs} ,01x5 TLOADs} ,Dexo( LOADS), *FH1 (ILoaDs) , D141 ({LOaDS) 02x (ILoaDs) INTEGER NFCINE,2) KDIAG{ILOADS) ,TYPE(INK, INY) .6(8) DATA TBTDB, IKH) JEHM, TECK, TBT, 11H, INT, ID0F/8*8/, LCOORD,NOD/2*4/ DATA ISANP? DEE, IBEL, 1DBEE, 1H/5*3/ DATA TAC, 1JACI, IDER, IDERIV, NOOOF, 11/6%2/ INPUT AND. INITIALISATION READ(S,*)NXE,NVE,N, IW NUL NRNGP, RHO, + ISTEP, DTIM, AA, Ba, V.€, GANA, BETA READ(S,*)((T¥PECL,J} de AVE) To] KE) CALL. READNF(NF, INF, NODOF, NA) TR-N*(IMs}) C=1./DTIN/DTIN/BETA C2=GANMA/DTTN/BETA CALL NULVEC(MN, 18) CALL MULL(DEE, IEE, 14,14) CALL FROES (DEE, 1DEE,E,¥) CALL. GAUSS (SANP, ISANP, GP) VARIABLE BANDWIDTH STORE 00 10 11.8 10 KOIAG(1)=0 DO 20 1-1, NXE DO 20 1061 :NVE CALL. GEOMAY(1P, 19,NYE, AR, 8B,COORD, ICOORD, GNF, INF) IF(TPE(IP, 10) (NE-1)CALL’FROTAG(KDIAG,G, 100F) 20 CONTINUE, 346 Do 30 121, 30. TF(KDIAG(4) £0, O)KDIAG(I)=1 KOIAG(1)=1 0.40 1-2,N 440 KDIAG( I) =KD1AG( 1) +KDTAG(T-1) IR+KDIAG(N) CALL MULVEC (KV, 18) ELENENT STIFENESS AND MASS INTEGRATION AND ASSEMBLY DD 50 161, NXE 10.50 IQ-1,NVE BREA=O. CALL GEOM4Y(1P, 10, NYE, AA, 8B, COORD, TCOORD,G,NF, INF) CALL NULL(KR, 1, DOF, 1DOF) CALL NUCL(EM&, 1880, 1DdF, 100°) Te(TyPECIP, 1Q}.£0-1) THEN 0.60 In, 100 60 ENM(T,T)et. END IF Bo 70: T=1,NGP DO 70 Jel NG? CALL FORMLN(DER, 1DER, FUN, SANP, 1SAMP, I,J) CALL MATMUL(DER, TDER,COOAD, 1COORD, JAC, 10AC, IT NOD, 17) CALL TWOBY2(JAC, TJAC, JACI, {9ACL, DET) CALC MATHUL (JACK, TOACL DER, TOER!DERTV, IDERIV, IT, 1T,NOD) CALL NULL(BEE, T8EE, 1H, {DOF} CALL FORNBBEC, 1BEE,DERIV, IDERIV, NOD) CALL MATMUL(DEE, IDEE, BEE, TBEE OBEE, TOBE, 1H, 1M, 1DDF) CALL MATRAN(BT, iBT, BEE, 1BEE, 1h, 1D0F) CALL MATMUL (BT, 1BT;DBEE, IOBEE,BTOB, 18708, TDOF 1H, OOF) TF(TPE(IP, 19) ‘NE. 1) -SEALL ECHAT(ECM, IECM, TN, ITN,NT, INT, FUN, NOD,NODDF) ‘QUOT=DET#SANE( i, 2)*SAMP(, 2) AREA-AREAS QUOT BTDA(K, L)=87DB(K,L)*QUoT UF(TVPE(1P, 10) .NE.1)ECM(K, L) #ECH( KL) (UOT*RAD#C 80 CONTINUE, CALL HATADO(KM, 1K, 8708, IBTDB, 100F, 100F) TE (TYPE IP, 1Q):NE.i)CALL MATADO( Eni, IEMM, ECM, TECH, IDF, 100F) 70 CONTINUE ARER-AREA/NOD* RHO TF(TYPE(IP, 10) .E0.1)THEN 0 90 K=1, i00F 90 EWM (K, K)=EHN(K, K)*AREAYCL CALL _FOIAGV(KY, EAN, IEMM, G KOTAG, DOF) Do 100 I=1, 100 Do 100 J-1, 100F 100 KA(1,3)=-XH(1,9) CALL FORIKY (HH, KM, TH CAL. FORMKV(HO, 5, LEH, GN 1DOF) CALL FSPARV(KV, KH, TK, 6, KDIAG, 100F) CALL. ESPARV (KV Em4, IER, 6 KDIAG, IDDF) CCALL_FORMKV (HH, EMM, TENM, GN, 100F) END IF 50 CONTINUE 347 ¢ € TIME INTEGRATION BY SIMPLE PREDICTOR-CORRECTOR TIM=0. DO 110 WRet,W x0(R) = D1xO(9R)-1 to p2x0(aR)=0. CALL, SPARIN(KV,N,KDTAG) 80 120 Joi, ISTEP TIMeTINSDTIM D0 130 Re. {LOADS (oR) =.0 130 DIX1(4R)=X0( aR) +01X0 (08) *DTIN+02X0(0R)*.S*DTIN*DTIN +(1.-2.9B6TA} CALL LINMUL(NM,DIK1, XIN, IM) CALL VECADD(X1 LOADS, Xi) CALL, SPABAC (KV, X1,N DIAG) 00 140. 9Re1,N 2x (ok) =x (oR) -0141 (9) /OTIM/OTINY/ BETA 149 DYK1(3R)=01X0( I) +D2X0(IR)ADTIME(1, GANA) +D2K1 (OR) *DTIME ann RITE (6, 1000) 714, X1(N) ,DIXI(N) ,02K1(N) CALL VEECOPOXI,X0,N) CALL VECCOPCOLKT, B1%0,N) CALL_VEceoP(O2x1 ,02KO,N) 120 CONTINUE. 4000 FORMAT(FB.5,3€12.4) STOP END ‘The final program in this chapter combines the methods of implicit and explicit integration, already introduced in Programs 11.1 and 11.4, ina single program. The idea is (eg. Key, 1980) that a mesh may contain only a few elements which have a very small explicit stability limit and are therefore best integrated implicitly. The remainder of the mesh can be successfully integrated explicitly at reasonable time steps The recurrence relations (3.139) to (3.141) are cast in a slightly diferent form: (gag Mot kM =F gg MM aay for implicit elements and (aa™)s B.+(gigMn—am, (a) for explicit elements where Fy to + Atty +440°(1 26). a3) Accelerations and velocities are obtained from: Fat, Fae p) a4 and tate +At(l —7to + Any, aus) Initial condition v= 1.0atallfreedoms at t= 0 ‘No material damping Structuredate «NXE NYE.N TW NN. NR NGP RHO m1 42 8 a ae 2 OO Timeintegration ISTEP OTIM date 10 0.00353 Elementdata = AA«BB VE GAMMA BETA 05 08 00 1000 05 0.28 Lumpediconsistentmass data orarraragayd iO seven eysteaNa dented ° Node freedom data aay ae Wea He eee Jee Fae Fee ee Pea ee ea eye gies eett Ow are :02e See Va Ose Oat aeO. nto 2 10:1 1:0 1% 1:0 1 FO Ne Hiit Orava ose ab cairo: ta aeeNenOi Ueto spytiey Ouiaon ost anc: O1c ote) 0h t0: ious Ova en eco eect Ole OO eed ee Oe Oe 120 a1 0 @ 10 4 0:0 %& 00 Figure 11.15 Mesh and data for Program 11.5 “The time integration parameters are conventionally called B= and y= corresponding to @ =} in Program 8.1 ‘When an explicit element is not coupled to an implicit one, the half-bandwidth of the assembled equation coefficient matrix will only be 1, whereas the full hal- bandwidth will apply for implicit elements. ‘This is clearly @ case where variable bandwidth storage is essential. The assembly routine for ‘skyline’ storage FSPARV was introduced in Program 5.10 and is used again here (see Smith, 1984) “The problem chosen illustrated in Figure 11.15. An elastic rod is constrained to vibrate in the horizontal direction only, and fixed at the right hand end, Initial Conditions are that a uniform unit velocity att = Os applied to all freedomsin the mesh, The appropriate structure chart is Figure 11.2 for implicit integration 349 The only new parameters are GAMMA and BETA, used in the time integration (not to be confused with damping parameters), and constants C1=1/fide? and C2= 7/A1p. No damping is considered. ‘The integer array TYPE is used to distinguish between lumped and consistent ‘mass. In the present example, elements 1, 11 and 21 have consistent mass, the ‘others lumped. Also, the lumped elements are explicitly integrated while the consistent ones are implicitly integrated Early in the program, the variable bandwidth store is set up, using the knowledge that attached explicit elements have a hall-bandwidth of L ‘Then the stiffness and mass are integrated as usual. When TYPE is | (explicit clement) the element lumped mass is assembled into KV by subroutine FDIAGV 00353 .3071E-02 7398600 -.1474E+03 00706 | '47B3E-02 “2301E+00 -.1414¢+03, 01059 “072E-02 -.6525E-01 -.2649E102 1812 '4883E-02 -:4069E-01 4097402 1765 14906E-02 <5353E-01 ‘12408102 2118 *0SSE-02 “31026-01 -.2515E+02 02871 B054E-02 -:3168E-01 -.1037E+02 02824 4961E-02 -.2123E-01 1629402 03177 °4962E-02 -2199E-01 82006401 [03830 'S029€-02 '1601E-01 -.1159E+02 Tine Diplecenent __Velouly__Acteleranion ‘ab node 42 Figure 11.16 Results from Program 11.5 “0.20 End Displacement «102 -0.40 -0.460 a1 020 030 aso 050 060 070 080 090 100 Time Figure 11.17 Displacement near support versus time from Program 11.5 350 while the element MM —KM (see equation 11.2) is assembled into MM by subroutine FORMKY. Conversely, when the element is an implicit one, MM + KM are assembled into KV by subroutine FSPARV while the consistent clement mass is assembled into MM again by subroutine FORMKY. ‘The initial conditions are then set, with the starting velocity, DIXO, equal to 1.0. The global matrix factorisation (sparse matrix) is done by SPARIN and the time-stepping loop is entered. Equations (1.1) and (11.2) require the usual rmatrix-by-vector multiplication on the right hand side (by LINMUL in this case; if the right hand side matrix is sparse, the appropriate routine is LINMLS). Equation solution is completed by SPABAC and it remains only to update velocities, accelerations, etc, for the next timestep from (11.4) and (11.5) The results are listed in Figure 11.16 for the first ten steps. The displacements close to the support (freedom 42) are compared graphically with the exact solution in Figure 11.17. Despite some spurious oscillations the response is reasonably modelled. 11,1 REFERENCES Key, S. W. (1980) Transient response by time integration: a review of implicit and expli ‘operators. In Advance in Structural Dynamics, ed. 5. Donea, pp. 71-95. Applied Science, London. ‘Smith, I. M. (1984) Adaptability of truly modular software, Engineering Computations, 1, No. 1, 25-35, CHAPTER 12 Analysis of Piles and Pile Groups 120 INTRODUCTION ‘The concepts developed in this book can be applied to a very wide variety of problem areas. As an illustration, this chapter deals with foundation engineering, and in particular with problems of deep foundations supported on piles. Analyses of these problems are particularly vital to the offshore industry where critical production facilites are so supported ‘The first step in any foundation evaluation is an assessment of feasibility. For this, the capacity of a single pile to sustain a design load must be computed, together with its displacements. This must be done for the two conditions in which the pile is loaded axially and laterally ‘Then, since foundations almost always consist of many piles installed close together, an assessment must be made of group’ effects, thats the extent to which the behaviour of the composite system differs from that of a single pile, due to interaction effects. Again, both ultimate capacity and displacement at working load are required. Finally, the piles have somehow to be installed in the ground, Particularly in offshore operations this is nearly always done by a process of ‘driving’, that is by applying an impact to the top of the pile using a hammer, thus causing the tip of the pile to penetrate into the underlying soil The four programs in this chapter address all of these different problems in turn, They make use of features of programs from earlier chapters. For example, the laterally loaded pile problem was addressed in Program 4.2. However, in practice the behaviour of soil is So non-linear that the concepts of elasto-plasticity described in Chapter 6 have to be incorporated in the analyses as well. The impact driving problem is one involving forced vibrations of the non-linear pile/soil system and so involves the procedures developed in Chapter 11. PROGRAM 120: t-z ANALYSIS OF AXIALLY LOADED PILES USING TWO-NODED LINE ELEMENTS PROGRAM 12.0 T-Z ANALYSIS OF AKIALLY LOADED PILES. € USING 2-NODE LINE ELEMENTS 351 352 ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARAMETER(TKV=200, ILOADS=100, IND=10, INF=100, 1QINC®S0) REAL_KV(IKY) ,LOADS(ILOADS) ,01SPS( 1LOADS) ,BDYLDS(1LOADS), +40L015(TLOADS) ,RUCINF).0UCTHF) FINE) ,OF(INF) ,SKCINF) -SQUNC(TOINC) §ELD(2) KHZ, 2) INTEGER (2), NFCINF, 1) NO(INO) DATA IKM, 100F/2%2/, 1W,iOD0F/2*1/ INPUT AND INITIALISATION READ(5, )NKE,N,NN,NR,CSA,E ELL, ITS CALL. READNE CF, IN A, Ht READ(5,*) RUT), 194 WRE}) READ(5,*) (QUT) 11 ,NXES1) READ| Sonya (WO i=1,NL) EAO(5)*) INES, (QING (T) T=L, INS) Ren (is) CALL NULYEC(gD¥LDS,N) CALL NULYEC (OLDIS,A) CALL NULYEC(DISPS.N) CALL NULYEC(SK,NXE) (CALL NULYEC(F, AN) CALL ARIKO(KI,CSA, E ELL) LORD INCREMENT LOOP 00 10 Lel, Ines CALL MULVEC(KY, 18) ASSEMBLE GLOBAL STIFFNESS MATRIX 0 20 EP=t NRE CALL GSTRONG(1P,NODOE, NE, INF) 20 CALL. FORSKY (KV KH, 1, 6,N, TDF) [ADD T-2 SPRINGS. 0 30 1<1,Ni TF(QU(1).LT-1.£-6)60T0 30 ve (a bis i} EPs ny nt aR /QU ao LECABSGEISPSHD) @F--25QU 1 VEE) Rv LD) 24801 700 1) REDUCE EQUATIONS. CALL BANRED(KV,N, IM) ITERATION LOOP TERS} CALL NULVEC(LOADS,N) Do $0 t=1,NL 50 LOaDS(NO(4))=0INC(L) CALL VECADD(LOADS, BDYLDS, LOADS, N) {CALL NULVEC(BDYLDS, N) SOLVE EQUATIONS 353 CALL. BRCSUB(KV, LOADS,N,1W) (CHECK CONVERGENCE IF(ITS.€9.1)s0T0 60 CALL_CiECON(LOADS OLOIS, 0.00001, 1¢ON) TF(ITERS.£0.1) [00-0 REDISTRIBUTE EXCESS SPRING FORCES 00 70 1=1,4N TF(QU(1) .L.1.£-6)c0T0 70 DF (1) =LoAos(1)*RU(T)/QU(T) TF(ABS(O1SPS(1}) GT. .75*QU(1))DF(I)=.1*DF (1) 1F(ABS(F(1)=DE(1)) .GT.AU(T))THEN BDYLOS(1)-F(1)+0F(i) UCT) FCT) =-RUCT)-FCT) END IF 170 CONTINUE TF(ICON-£9.0.AND. ITERS.NE.ITS)GOTO 40 COMPUTE ELENENT STRESSES AND STRAINS 60 00 80 1Pat xe CALL 6STRNG(1P,NODOF NF, INF,6) 50 90 91,2, TF(G(4) -£9.0)EL0(0)+0, 90 1F(G(Q) .NE.0)ELD(0)=LOADS(G(d)) Epsm(ELO{2}-€L0(1))7EUL STGHASE*EDS. SX(IP)SK(1P) 416A 80 CONTINUE CALL VECADD(DISPS, LOADS, DISPS,N) CHECK SUM OF SPRING FORCES Sumea. Do 100 121,48 F(1) F(T) 0F(1) 100 SOm=suN+F (1) UWRITE(6, 1000) suK,O1SPS(1),TTERS Te(1TeRS.£Q.178)80T0 110 to conriwe 110 CONTINUE 1000 FORMAT (2612.4, 110) stop eno ‘The problem of pile/sol interaction is of course really three dimensional, or at least axisymmetric, and can be analysed as such using finite elements (e.g. Chow and Smith, 1982). However, useful results can be obtained from a simpler idealisation, as shown in Figure 12.1, This representation allows the pile to be analysed as a line, and so the simple rod elements introduced in equation (2.11) are appropriate. They are characterised only by length, cross-sectional area and axial stiffness. The ground is represented by diserete ‘springs’ which have load-displacement characteristics typified by Figure 122; these springs are simply attached to the 354 Typical element length LL One-dimensional pile element Ground resistance represented by ) enelinenr» springs Figure 12.1 Representation of pile and ground nodes of the finite elements, as shown in Figure 12.1. The load in a spring is traditionally termed °° and the displacement so the load-displacement curves are called ‘t-2' curves. They can be quite general relationships, but in the drivability analyses described later, they are approximated by the bilinear form shown in Figure 12.2(a). The ultimate load in the spring is termed R, and the displacement at which it is reached is termed Q,, the so-called ‘quake’. When the displacement exceeds Q,. the fictitious extra load, CB or HG in Figure 12.2(b) is redistributed to other springs by the ‘initial stress’ technique discussed in Chapter 6. Thus, Figure 12.2(b) is analogous to Figure 6.7 In the present program, the slightly more general r-2 relationship shown in Figure 12.26) is allowed. When the displacement exceeds 0.75Q,, the stiffness is reduced to 0.1R,/Q, until the limiting force R, is attained. ‘The variables in the program have the usual significance and are listed below. ‘The example is just like Figure 12.1 but the pile consists of 19 elements and 20 nodes, The program data are shown in Figure 12.3 and the structure chart in Figure 124, Simple variables: NXE number of elements (19) N number of non-zero freedoms (20) 355 ac 7 wdoute (2) Load displacenent terninalogy for ground springs : - esa TepTacamnt (21 * Displacement (2) (8) Initia stress load redistribution in springs toe) 1 th (©) Trilinear spring stiffness Figure 122 Treatment of ground behaviour NN number of nodes (20) NR number of restrained nodes (0) CSA —_eross-sectional area of elements (4129.67) E ‘modulus of elements (2110.1) ELL __ength of elements (2000) ITs ‘maximum number of iterations allowed (50) ITERS iteration counter IKM_ working size of array KM IDOF number of degrees of freedom per element (2) Ww hall-bandwidth (1) NODOF number of degrees of freedom per node (1) Fixed length arrays: ELD _ element nodal displacements Structure NXE NNN NR 2 ata 18 2 0 0 3 CsA eu. 412867 21101 2000 4 ts 5 50 7 42.73" 136.74 (9times) 140.68 168.30 198.85 291.40 262.96 18 294.52 326.07 341.84 61278 14440 19 Qudata 2 (19K 20 208 Loans deta NL NOW, I= 1,NL, 14 INCS,QINC(N, I= 1,INCS. 1" 1000, -1000. -600, 300. 200. 100, 7 Figure 12.3. Mesh and data for Program 120 KM clement stiffness matrix G steering vector Variable length arrays: KV global stiffness matrix (vector) LOADS current load/displacement increment DISPS updated displacements BDYLDS “Body-loads’ OLDIS previous iteration displacements RU ultimate spring forces Ry Qu elastic limit displacements Qy F force in springs DF change in force in springs ieee sx stress in pile QINC load increments NO numbers of loaded freedoms NF node freedom array PARAMETER statement limitations: IKV> NeW +0) ILOADS >N 387 Input and initaise valu Pileclementstitfness matrixis KM Foralltheloadinerements do NNulltheglobelstitinoss matrix KV ‘Assemble the globalstitfness matrixusing FORMKV Forallthenodes do ‘Addinthe spring stiffness Reduce teequation coefficients using BANRED Foralithe load redistribution trations do ‘Addexternalloads LOADS, internal oads BOYLDS Compietethe equation solution using BACSUB Checkeonvergence For llthenodes do Caleulatethe new out of balance nodal forces BDYLDS Yes No. Print SUM tocheck thatthe {Eepring force equals applied oad Figure 124 Structure chart for Program 12.0 INO>NL INF2NN IQINC> INCS ‘Aiter input and initialisation, the rod element stiffness matrix KM is formed by the subroutine AXIKM. Then the load increment loop is entered and the steering. 358 vector found by the subroutine GSTRNG, allowing element assembly by FORMKY. The spring stiffnesses are added to the nodes as R,/Q,, or 0.1 R,/Q, as the case may be, and the global equations reduced by BANRED. The excess load redistribution loop is then commenced, controlled by counter ITERS. The nodal loads are the sum of the external loads, LOADS, and the internal loads, BDYLDS, allowing equation solution completion by BACSUB. ‘Convergence can then be checked and the excess spring forces redistributed. If convergence is not achieved, another iteration is called for; otherwise element stresses and strains are calculated and the current displacement increment is added to DISPS, =.1000E+04 -.1848E+00 2 Tzoode+oe =14337E+00 3B ‘25006+04 ~ 15092800 3 3000608 “B114E+00 8 350008 ~:1039E+01 9 Tlaoooetos 115086 +01 40 Cagooe+os 119896401 30 TTa600E+04 ~!2536E+01 2 ‘eBooEs04 ~!29008+01 3 49008+04 -_3082E+01 En 4986E.08 -14318E+01 50 ‘Ansot—Dislacenent erations load under load Figure 12.5 Results from Program 120 oad «103 so ‘6 4a 35h x s 0 s 0 5 : + 7 7 Deflection : Figure 12.6 Load displacement for axially loaded pile 359 The output, listed as Figure 12.5, consists of the sum of the forces in the springs, which should of course equal the applied load, followed by the displacement of the top of the pile and the number of iterations to convergence. The total ground resistance is $196.0 and it can be seen that in the last computed increment the load reaches 49860 without convergence being achieved. In such a ‘load control algorithm, convergence to within the specified tolerance will be increasingly difficult to achieve as the ultimate load is approached. The results are shown graphically as Figure 12.6 up to the last increment at which convergence was achieved. The iteration tolerance was a fine one of 0.00001, or a thousandth of 1%, If there had been no spring at any node, a very small value of Q, (less than 10”*) would have been specified and a nominal Ry, allowing that node to be skipped in the assembly process. PROGRAM 12: p-y ANALYSIS OF LATERALLY LOADED PILES USING TWO-NODED BEAM ELEMENTS PROGRAM 12.1 P-Y ANALYSIS OF LATERALLY LOADED PILES USING 2-NODE BEAN ELEMENTS ALTER NEKT LINE TO CHANGE PROBLEM SIZE PARAMETER(IKV=500, 1LOADS=200, 1NO=10, ISEG>12, INF=100) EAL_KU(IKV) LOADS ILOADS) ,BOVLDS( 1LOADS) .015PS(ILOADS), +OLDIS(1LORDS} ,RU(INF, ISEG) ,QUUINF 1SEG) FCINF) OF (INE), {HOHMCINE) VAL (INO) STORE( TNO) ,RH(4, 4) ,KP(S, 8) ,ACTION(4) ,ELD(4) INTEGER (43 ,MF(INF,2) sNO( IND) DATA Ik, 1008/2847, NODOF/2/,14/3/ INPUT AND ENITIALISATION READ(S,*)NKE,N NNR, PALNP, EL, ELL, NCS, ITS CALL READNF (AF? INF, NODOF NR) READ(5,+) ((RUCT,) SoU, NB+1),T=1,NN) READ(5,*) ((QU(T,3) .De1 MPO); TL NN) READ(S’*)NL,(WOUT) VAL(T) Tod, NL} Teen (iv) CALL NULVEC(BOYLOS.N) CALL NULVEC(OLOIS,N) CALL NULVEC(DISPS,N) CALL NULYEC(E, KN) CALE NULVEC (WOM. R0) CALL BEAM EL,ELL) CALL BEANKP(KPYELL) [LOAD INCREMENT LOOP 0 10 Le1, Nes CALL MULVEC(KV, IR) MODIFY ELENENT STIFFNESS FOR AXIAL LOADING Do 20 T=1,100F Do 20 Jel, 100F 360 20 KP(L,0)=KN(1.0)-L*PRAKP(I,9) ASSEMBLE GLOBAL STIFFNESS NATRIX 0 30 1pat NHE CALL GSTANE( IP,NODOF NF INF 30 CALL FORMKV{KVKP, TKi,6,N,100F) 0D P-Y SPRINGS. 00 40 1=1,4N 2st 40 KV (11 )=KU( 11) RU(T,2)/QU(L,2) ‘AOD °BIG SPRINGS” FOR PRESCRIBED DISPLACEMENTS ‘AND REDUCE EQUATIONS 00 50 fe1,NL KV (HOC) )=KV(NO(1)}41, £20 50 STOREC)=KV(NOCE)) CALL BANRED(KV,N 1H) ITERATION LOOP TTERS-0 60 1TeRS=1TERSs1 CALL MULVEC( LOADS.) 00 79 T-1.Nt 70 LOADSENO()) «STORE(L)*VAL(1) ALL VECADD (LOADS, BOYLDS, LOADS, ¥) CALL NULVEC(BOYLDS, N) SOLVE EQUATIONS CALL BACSUB(KV,LOADS,N, IM) CHECK CONVERGENCE CALL_CHECON( LOADS, OLOES,N, .00001, ICON) IF(TTERS 0,1) 1COW=0 REDISTRIBUTE EXCESS SPRING FORCES 00 80 1=1,KN T2611 DF (1)=-LomDs(11)*RU(1,2)/QU(T.2) ah 50 90.192, Pet 90 TF (ABS(O1SPS(T1}+LOADS(I1)) .GT.QU(L_1P))JaJs1 TF. €0.1. AND DISPS(11}*LOAOS(i1) 7.0. )GOTO 100 FORCE (ABS(DTSPS( 11) #LORDS (TI) )-QU(1,9})*(RU(T J+1)-RU(LOI)) +/(QU{T 381) -QUC1, 9) )4RU(L 9) {SF (OLSHS(T).LT.0, )BOYLDS{ 1) =-F(1)-DE 1) FORCE IF{DISPS(I I} .GT-0. )BOYLDS(I1)=-F(1)-DF(1)-FORCE 100 OF(1)=80700S(11) OF (1) ‘80 CONTINUE TF(ICON.£Q.0.AND. ITERS.NE,1TS)GOTO 60 COMPUTE ELENENT MOMENTS AND SHEARS 00 110 TPL NRE CALL GSTRNG(IP,NOOOF, NF, INF) 361 0 120 Me, 100F TF(G(M)-£0"0)EL0(M)=.0 120 TF(G(M)-NE.0)ELD(N) =ioADs(G(H)) CALL MUMULT(KP, IKM, ELD, 1DOF, OOF ACTION) HOM( {P) =How(1P) AcTion(2) TF (1P.E.NXE)MOM( [P+1)=MOM( 161) 4CTION(4) 10 CONTINUE ALL WECHD0(O1SPS, LOADS OTS.) 0 0-130 11,4 F(1)=F(1)s0F() 130 SuM=SUNGF (1) WRITE(6, 1000) SUM, DISPS(1) ,ITERS TF(TTERS.€Q,118)60TO 140 10 CONTINUE 140 CONTINUE 1000 FoRNAT(2612.4, 110) stop EN Intthis type of analysis the pile is again aline such asin Figure 12.1, but thé load is applied horizontally and resisted by ground springs oriented horizontally, The pile distributes the load by bending and the appropriate elements are flexural ones with stiffnesses typified by equations (226b). At each node a transverse displacement and a rotation are permitted. In order to allow for the effect of an axial force on the bending stiffness, the element stiffness matrices in the program are actually given by equation (2.33) that is equations (2.266) are modified by (2.32) The matrix KP from (2.32) is formed by subroutine BEAMKP. The springs now have load-displacement characteristics known as p-y curves directly analogous to the axial fz ones, In this program, quite general curves’ aré allowed, by specifying any number of linear segments as shown in Figure 12. which happens to have six (that is NP) segments. The data for the pile treated in the analysis are given in Figure 12.8 and the structure of the program by Figure 12.9. In the program coding, the nomen- lature follows that of the previous program with the additions: Figure 12.7 Typical p-y curve Structure NXE NNN NR PA NP dota 8 2 6 0 8 7 Element el eu ata 1795611120 eration Incs os. data 10 8 ata 0 9 9 ° o 9 0 468 93613821872 ako 28082808 7308 14516 | 21986 29136 71648 8580 8580 20088 «40584 5468 48R8 45458 14784 14784 26664 65220 130848 190812 190648 22788 22788 9958.8 165480 331920 354720 391880 35328 35328 woodoop eoodooz = TOseeROaetie RO esq Or G0 et eOetuaha 162328765082 8H 252 025051 076.6109 145 anh 252 03 = 07008113618 543252 oid itr capes tone! etutts aaa tieinraieitt unre ttsan2) oO © 031088138185 588 25.2 Displacementineremant NL (NOV), VALI), {= 1,NL) ate ton on Figure 12.8 Mesh and data for Program 12.1 PA axial force in the pile (0.0) NP number of segments on p-y ‘curves’ (excluding the origin) (7) EI flexural stiffness of the pile (1.795 x 10'*) VAL values of displacement increments MOM bending moments and shear forces in pile STORE storage for ‘big spring’ freedoms KP. stiffness modification for axial load ACTION increments of bending moment and shear force The PARAMETER section includes the new constant ISEG > NP +1 The arrays RU and QU have essentially the same significance as in the previous program but now hold the coordinates of the points on the p-y ‘curves, including the origin, ‘The structure of the program follows the previous one with the exception that displacement is prescribed at the top of the pile rather than load. The total force is found by summing the forces in all the lateral springs as before, and the results are listed as Figure 12,10. For each increment, the output gives the total force, followed by the displacement of the pile top and the number of iterations to convergence, Note that the iteration counts are much less than in the previous program and, in general, it is more elfcient to prescribe displacements rather than loads if this is possible (Smith, 1979). The results are plotted graphically as Figure 12.11 Inputand initiaise values ‘node freedom array’ NE For load displacement) increments do Modify the pila olemont Foralltheelements do ay ese erereceeeeereeeeeeertereteat ‘Assomble the global stiffness matrixusing FORMKV eee eee eee forallthe nodes do ) ‘Addthe spring suttnesses RUQU eee eee eee eee eee EE Foralltheloadedtr inessimatrixforaxialloadPA domed Specify the displecementincrements Feducethe equation coefficients using BANRED For TERS numbor of iterations do ‘Add the internalioads BDYLDS Completethe equation solution Forallthenodes do ) Calulatothonew 8DvLDS converged to within 0.001% or aretheitorations exhausted? Yer Ne. Printtota lateral fore, Koop Nodal displacementardnumber | Going ofiteraions Sa ———_————————— 1, Figure 12.9 Structure chart for Program 121 363 Load x10 so] 40 30 20] 25106104 3206 +04 4828408 5132608 52806408 5197E08 So00E+08 Figure 12.10, Results from Program 12.1 02 toad 48096104 5028408 83726104 Loterat 4 10006400 20006100, 3000600 “ao00€ +00 50008 +00, 60006 400 TO00E +00 20008 +00, ‘90008 +00, too0€+01 Displocement under 1008 06 08 Iterations 1) Displacement Figure 12.11 Load-displacement for laterally loaded pile 365 PROGRAM 12.2: ANALYSIS OF VERTICALLY LOADED PILE. GROUPS USING TWO-NODED LINE ELEMENTS—1~z SPRINGS FOR THE SOIL AND MINDLIN’S EQUATION FOR THE INTERACTIONS’ PROGRAM 12.2 ANALYSIS OF PILE GROUPS USING 2-NODE LINE ELEMENTS FOR “IKE PILES, T-2 SPRINGS FOR THE SOTL AND MINDLIN'S EQUATION FOR THE INTERACTIONS ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARRMETER( IKV=8950, ILOADS=200, 1NQH25, INK=31) A KYAHa) Srey 405 LORS), FORE LOADS) 2) VAL INO, -¥CQORD( THO, 2) 2500R0 (INK) ,FHAX INN) FSOTL TO, INK), SUNG IND) KS(2, 2) INTEGER G{2),GP( 1H) .GOCiNX) ,NO( THD) WA(TLORDS) DATA IKM, TKS, 1007/342/,F/0.3/ INPUT AND. TNITIALISATION READ(5,* KE, €, PILEN, RO, GSURF, GRATE, VSOIL,RHO,NPTLE,INCS, TGROUP READ(5,*) ((COOAD(T,J},301,2), 11, NPELE) READ(5,*) FWAK(T) sal HRECL) READ(5,*)NL, (NO(T} VALI), T=2 NL) rennes NILE TLEN/FLOAT (NXE) S(-1.) TSROFRD S*RHO*( 1. -VSOTL)*PILEN 00 10 Te1,NN 10 7C00RD(T) 2FLOAT(-1)*EUL CALL NULL(FSOTL, INO, NPILE, RN) FACT2=3. 4. *VSOiL FRcT3=({. -WSO1L)=*2 LOCATION OF DIAGONAL ELEMENTS OF STIFFNESS MATRIX nsto=0 D0 20. Je1,N nsTo=nsTOsd 20 NA(3)-NSTO TRAHAN) LOAD/DISPLACEMENTS APPLIED IN INCREMENTS D0 30 Het, Ines WRITE (6, 2000) 11 CALL NULVEC(KY, IR) CALL MULVEC( SH TR) IF(IGROUP.E0.0}60T0 40 FORM SOIL FLEXIBILITY YATRIX USING MINDLIN'S EQUATION Do $0 Pel NPILE CALL GEOM( iP, MN NPILE,GP) IF(IPs+1.GT .NBILE) GOTO’ 80 DO 60° TG=1PH1,NPILE CALL. GECH(1Q,AN, PILE, GQ) " This program was contributed by Y. K. Chow, National University of Singapore; see Chow (1986). 366 Re SORT( (CODRD( IP, 1) -COORD(IO 1) 42. + - {COORD (1P, 2) -CO0RD( 10,2) }**2) DO 70 T=1.NN TF(FSOTL( TP, 1)/FUAX(T) GT. .9999)GOTO 70 z=rco9R0(1} (SOIL T=GSURF scaaTe*zz TE(1£0, 1) GSOILT=GSURFSGRATE® 25¢€LL TF(L-ED,NKE)GSOILT=GSURFSGRATES (Z2+.254ELL) 0.89 Jc1.N TF(FSOIL(1Q,)/FHAX(4) .6T..9999)G0TO 20 cc=7¢008D(3} SOIL J=GSURFscRaTE*cc TF(J,E0.1)GSOILJ-GSURF sGRATE®. 25¢ELL TF(I-E0.NKE)GSOILI-GSURFGRATE* (CC+.254€LL) Gs0iL=, $*(GS0IL1 468011) FacTici./(16,*PIGS0IL*(1.-VSOIL)) cept ce) sCC)*(Z24CC) RLKV(NACGPRN) }) 411 IWVERT SOIL FLEXIBILITY MATRIX TO GIVE STIFFNESS MATRIX 120 no 140 130 150 170 160 180 1000 2000 367 CALL, SPARIN(KV,N,NA) D0 110 [1,N CALL NULVEE(LOADS\N) Loads (1)=1 CALL. SPABAC (KV, LORDS, NA) 0 120 Jet, SH(NA(1)-T4)=LOADS(2) CONTINUE CALL. VECCOP(SM, KY, 1R) FORM AND ASSEMBLE STIFFNESS MATRIX CALL, AKIKM(KH, CSR, EJELL) Do 130 1P-1,npILe CALL. GEOM( IB, NN, NPILE,GP) D0 140. T-1,Nie 6(1)=6e(7) 6(2)-ce(41), CALL SPARV(SHKM, IKH,G,NA, 1D0F) CONTINUE PRESCRIBE DISPLACEMENTS : BIG SPRING TECHNIQUE CALL_NULVEC(LOADS,N) Do 150 1-1,NL TxeA(NO(T}) SMC IX) =SH(IX)+1.€20 Lonos(wo( 1) )=¥Al(1)*SM(1x) SOLVE SH TO GIVE PILE DISPLACEMENTS CALL SPARIN(SH,NNA) CALL SPABAC (SH;LOADS,N,NA) RECOVER SOIL SPRING FORCES CALL LINMLS(KY, LOADS, FORCE,N,NA) TOTSUN0. DO 160. 1-1, NPILE CERLL GEON(1,NNPTLE,GP) SUM(IP) <0. 10 170. Ti AN fone, Het Sout 1p 1) roce cet ay) TF(FSOIL(IP. 1) .GT_FHAK())FSOUL(1P, 1)=FMAK(I) SUM( TP) =Sum]1P) S01 (IP, 1) ‘TOTSUMeTOTSUMS SUN(1P) Wei TE(6, 1000) TOTSuM, VAL (1)*11 PaveTOTSUM/FLOAT (NPELE) DO 180 1P-1,NPILE Wet TE(, 2006) 1P,SuM(1P)/PAV CONTINUE FORMAT(2E12.4) FORMAT( 10, E12.4) stop eno ‘The analysis of groups of piles closely spaced enough to interact with one another ‘must attempt to model the (non-linear) behaviour of the individual piles, as was done in Program 12.0, and the interaction between them, An obvious simplific- ation used in the present program is that interaction effects are described by the 368, Input andinitiatistion Forallpile segmentiengths do Findihe geometryand caleul distances tointeracting segments Soil displacement at P due tounitloadatO gives soil flexibility marixby Mindin’s equation Forallpllesegment lengthsdo ‘Add flexbitty contributions from side springs Add tip flexibility Toralsoilflexbiliy ‘sky Invert KY to give soi stifness mavix SM Form pile element stifness matrix KM Foraiipile elementsdo ‘Add pile stitinessto ‘round stitiness ‘Solve global stitinese equations Recover soilspring forces Princresults Figure 12.12 Structure chart for Program 12.2 theory oflinear elasticity and thus the well-known Mindlin equation (e.g. Poulos and Davis, 1980) can be used to construct a foundation stiffness matrix to which the pile stiffnesses are added. The analysis can be done for general loading conditions but the present program deals with the special ease of axially loaded groups. The elastic ‘soil is assumed to be infinitely deep (linear elastic half-space) and, by assuming an average, variable, soil stiffness over each pile element, non- homogeneous foundations can be approximated ‘The structure ofthe program is shown in Figure 12.12 and the variable names are listed below. The particular case analysed is the3 x 3 group of piles illustrated in Figure 12.13, together with input data, 369 Pile andsolt NXE E PILEN RO GSURF GRATE ata 5 187 258 333063 0, VSOIL RHO NPILE INCS IGROUP 5 4 8 44 Pileplan (COORDULN),J=1,2),1= 1, NPILE geometry (sees Ose se eeoneetos O10 10 10 20 10. 0 20 10 2. 2 29 Soilultimateresistance — FMAX().1=1,NXE+1 E10 1610 1810 1610 110 1.610 Displacement data NL (NOM), VALI),1= 1,NL) 8 Niet ee teset rae: Bites Bias eegaieyee ig rnegiig Figure 12.13 Mesh and data for Program 12.2 Simple variables: NXE —_number of elements per pile (5) E modulus of piles (I x 10") PILEN length of each pile (25.0) RO. radius of each pile (0.5) GSURF soil shear modulus at surface (3.333 x 10°) GRATE rate of increase of G with depth (0.0) YSOIL Poisson ratio of soil (0.5) 370 RHO _ inhomogeneity factor (1.0) NPILE number of piles in the group (9) INCS number of displacement increments (1) IGROUP switch—if zero, no interaction (1) Data constants: IKM__ working size of arrays KM TDOF number of degrees of freedom per pile element (2) RF hyperbolic sifiness parameter (0.9) Derived variables: N ‘number of degrees of freedom in problem ELL element length CSA ——_eiement cross-sectional area RM radius at which shear stress in soil becomes zero FACT) FACT2} terms in Mindlin’s equation FACTS) RR distance to interaction node eSorn soil stiffnesses at top and bottom of segment GSOIL average soil shear stiffness xl tangent flexibility (Chow, 1986, equation 8) FSHAFT shah flexibility FTIP tp flexibility PAV average load on a pile in a group Fixed length arrays KM pile clement stiffness matrix G steering vector Variable length arrays: Kv global soil flexibility matrix SM global stiffness matrix of piles and soil LOADS loads on system to achieve prescribed FORCE _ loads in soil springs VAL values of displacements prescribed COORD plan coordinates of piles ZCOORD depth coordinates of pile nodes FMAX maximum force in 12 springs FSOIL current force in ¢z springs SUM load in each pile & SP rig eon a1 No freedoms at which displacements are prescribed NA diagonal elements of (sparse) global matrices PARAMETER statement restrictions: IKV > IR (profile storage) ILOADS-> N INO> NL INX > NN Turning to the program coding, two global matrices are used: KV to hold the global soil flexibility matrix and SM to hold the global pile plus soil stiffness matrix. Profile storage is used and so the appropriate assembly routine is FSPARY and the solution routines are SPARIN and SPABAC. After input and initialisation, the rest of the program is enclosed by a large loop in which the displacements are added in increments, The present analysis is linear, achieved by setting a high value of FMAX, and so the loop is only completed once, Analyses with no interaction at all can be achieved by setting IGROUP to zer0. Nodal numbers for the elements are provided by subroutine GEOM, ‘The soil flexibility matrix is obtained from Mindlin’s equation while a small subroutine FORMXI delivers the tangent stiffnesses of the soil springs. The tip flexibility is obtained from the solution for a rigid circular punch on an elastie half-space. ‘When KV has been found it is ‘inverted! by Gaussian elimination and then the pile stifinesses can be added, using FSPARV to find the global stiffness SM. These ‘equations are then solved and the forces in the springs recovered. By adding up all the spring forces for each pile, the load in the piles is known, called SUM. ‘The output from the program is given in Figure 12.14. The increment number is printed (for a single increment in this linear case) followed by the total load on the group, TOTSUM and the value ofthe displacement accumulated (1.0 in this case), Then for all piles, the ratio of pile load to the average, if all piles were carrying the same load, is printed. In this example, the corner piles 1, 3, 7, 9 carry nearly 20% more than the average, while the central pile, number 5, carries less than 60% of the average. These figures are in excellent agreement with values 1 trerement Nunber +4261E406 10008401 Total load Oveplacement 1198801, ‘90686200 ‘hiseeso1 9068E+00, '5833E+00, 9064E:00, N19eE+0), 90645300, N98e+01 Pile Proportion of umber tot load carried Figure 12.14 Results from Program 122 372 quoted by Poulos and Davis (1980, Table 6.4a) for the case where Eyye/Eyeu = 10° and L/d = 25. PROGRAM 123; PILE DRIVABILITY BY WAVE EQUATION— TWO-NODE LINE ELEMENTS—IMPLICIT INTEGRATION IN TIME PROGRAM 12,3 PILE ORLVABILITY BY THE WAVE EQUATION 2-NOOE LINE ELEMENTS, NEMHARK THPLICIT INTEGRATION ALTER NEXT LINE TO CHANGE PROBLEM SIZE PARANETER( IKV=1000, TLOADS=200, 1NF=101) REAL E(INF) RHO(INE), SKCINE) ELL (INF) Ne(lw+D ILOADS>N INF >NN ‘The features ofthe program have all been described before in other contexts. A static solution is done first as a check, using a load at the top of the pile given by STATLD. Diflering initial conditions ae often used in pile driving programs. The present one uses an initial velocity applied to the top two nodes of the mesh, 4088-03, 2976-03, “2576-03 00025 Tine “3712E-01 3086-07 array [14816403 "2438E-03 case o000€ +00 00008 +00 ‘00008+00 2338404 ="72986"02 =!32916-10 00050 Thee + 738BE-01 ‘S1S9E-06 ‘SSG1E-14 ST4606 103 3680602 42366 -10 00008 +00 00008 +00 ‘00008+00 -4068E-03 “25408-03 “Tooot “03 3701-01 T1245e-08 S1z08-16 h1aB1e +03, ‘9960805 [39876 13, 00008 +00 0008 +00 22398-10, 7366-01 25698-07 ATTAE-15 "14606403 1566-03 ‘36408-11 “ooa0e +00 -356BE-03 .3567E-09 3312E-03 .3054E-03] stone [2206E-03 [20276-08 11770E-03 '1513E-03 | Suplcemen! ASG7E-03 4476-03 19I9E-04 .74816-06 {Sos3e-10 ‘20a36-11 Las2ze-13 ‘34a6E-16 Displacements s3O53E+O1 .3557E+01 14556400. .5952¢-02 ‘ao7a€:06 [1667E-07 leaiee-09 ‘27a9t-10 -0000E+90 .0000E+00 .00006+00 .9000E+00 [0000E+00 “0000E+00 :0000+00 0000E+00 $Spnng forces 3008E+O4 -, 10566403 -,43616+01 -.17846+00 {HRzIE-O4 -c49888-06 -.2043t-07 =-easet 08 -2645E-02 .26208-02 -1742E-03 .90698-05 ‘1239-08 “Sea56-10 !2701E-11“12338-12 «1395102 .1385E+02 .1103E+01 .6705£-01 '9094E-05 [4334E-06 :2024E-07 °9309E-09 -0000E+00 .0000E+00 .00006+00 .00008+00 ‘os00+00 ‘00008400 La000+00 ‘0000E+00 61028+08 =.23388+01 9516-03, 212944807 61156403, 1391E-08 Figure 12.18 Results from Program 12.3 38 330 3.00 210 2.40] 210 80 150 120 a0] 1.60] 4.30] .! oo 020 040 060 080 Deflection of Pite Ti 14d 160 1.80 Figure 12.19 Tip displacement versus time from Program 123 which represent the hammer. Beneath this is the capblock and then eleven pile elements “The output is listed as Figure 12.18 and consists of the static displacements followed by the current time and the four arrays containing displacements, velocities, spring forces and stresses in the pile, for two steps in time. A plot of displacement with time is shown in Figure 12.19. This reaches a maximum value from which the quake has to be subtracted to give the permanent, plastic set’ of the tip for that hammer blow. In the present example the ‘set’ is 0.322—0.1, that is 0.222, The analysis becomes invalid if continued much beyond this first peak (Smith and Chow, 1982). 12.1 REFERENCES Chow, Y. K, (1986) Analysis of vertically loaded pile groups. Int. J. Num. Anal. Meth ‘Geomechanics, 10, 1, 59-72. Chow, Y. K., and Smith, I. M, (1982) Static/dynamic analysis of an axially loaded pile. Proc. 4th Int. Conf. on Numerical Methods in Geomechanics, Edmonton, pp. 819-24 Poulos, H.G., and Davis, E. H, (1980) Pile Foundation Analysis and Design. John Wiley, New York, Smith, E. A. (1960) Pile driving analysis by the wave equation. Proc. ASCE, JSMFD,86, SM4, 35-61, Smith, i M. (1979) A survey of numerical methods in offshore piling. Pros. It Int. Cont "Num, Meth, Offshore Piling, Institution of Civil Engineers, London, pp. 1-8 Smith, I. M,,and Chow, Y. K (1982) Three dimensional analysis of pile drivability. Proe. 2nd Int, Conf, Num. Meth. Offshore Piling, Austin, pp. 1-19. APPENDIX 1 Consistent Nodal Loads Assume that applied stress = 1 unit. ‘A. PLANAR (TWO-DIMENSIONS), ELEMENT WIDTH =1 UNIT 1, Three-node triangle Fi=Fi=d 2. Six-node triangle Fi=Fy=t Fist 3, Temnode triangle Fi=Fa=t FreFyad 4. Fifteen-node triangle 9 8 a eae 380 6 Eight-node quadrilateral A Find 7. Nine-node quadrilateral Fy=Fy=b Fant B, AXISYMMETRIC (TWO-DIMENSIONS), LOADING OVER 1 RADIAN 1. Four-node quadrilateral moro F,= 88 er +r) 6 fo, {ro + 2r1) 2 Bight-node quadrilateral not To C. THREE-DIMENSIONS, LOADED AREA = 1 UNIT 1. Four-node tetrahedron Fink; | 2. Bight-node cube APPENDIX 2 Plastic Stress-Strain Matrices and Plastic Potential Derivatives ‘A. PLASTIC STRESS-STRAIN MATRICES 1. von Mises SE $8) Sete S52 pr=26 3 ee Se ’ th Seta Symmetrical where G = shear modulus t= second deviatoric stress invariant (equation 6.3) $,= 20, 6,~ 0,3, ete. 2. Mohr-Coloumb If not near a corner, that is sind < 048, then : E Desa ydsin wring where RiCy RiCy RiCy RiCy ae RC, RC, RCs Rig = }RiCr RsC2 RsCy RsCe RC RiCy Ray RACa| and in 6 + k(1—20)sing in @ — k,(1—2v)sina (1 — 2v)cosa. 383, ¥sin in + k(t — 2v)sing: ny ~ ky(1 —2v)sine ey aft itlo,1>Ie,1 wef, ifo,>2, pie lagen IL-1 ife,<0 I near a comer, that is sin@ > 0.49, then E Drs T+ yt where A is defined as before with C,=Ky+C,LU vs. + 15,45] Cr= Ky + C,LU vs, +115, +5,)] 541 = 2W)ty et CQL Ws, + (6, +5,)] V+ CoLU = We M5, +50)] + CHL = Ws, +18, +501] “ol = 2)ty Re Ky tC + V6+5))] where x= *Sa4y Kay conta) In the expressions for C, and Cy, the po negative sign is valid if 8 = 30°. ive sign is valid if @ ~ — 30° and the 384 B, PLASTIC POTENTIAL DERIVATIVES $2 _ DQim! + DQ2M? + DOIM)s ie where ede ets aec eg sttde: a 1 1000 Mate, 46, 000 00 Symmetrical 0. a 000 000 1 ooo aut i - 600 60 Symmetrical 6 a fe fe 1. von Mises Dai=0 31 B= 157 Des=0 2, Mobr—Coloumb DQ =siny 385 0036] siny DQ= et + tandan30+ 5% (an30tan9 | /3sind + siny/cos@ pes eos 38 where £= second deviatoric stress invariant (equation 6:3) = Lode angle (equation 6.3) W=dilation angle APPENDIX 3 Geometry Subroutines ‘Asan alternative to rather elaborate mesh generation code, this book uses some twenty small ‘geometry’ subroutines for simple (usually rectangular) mesh arrangements, They are listed in full below so that users are encouraged to develop similar routines of their own. The routines all use a uniform nomencla- ture for parameters and have the essential job of delivering as output a real array called COORD, which holds the nodal coordinates of the element and/or an integer array G, the ‘steering vector,, which holds the nodal freedom numbers, including zeros if a freedom is supressed The naming convention is that a geometry subroutine name contains the characters ‘GE’ and usually the characters ‘GEO" or ‘GEOM’. The first number encountered in the subroutine name, for example the in the routine GEOM3X, tells how many nodes the element has, and the following character ‘X’ or "Y" tells the direction in which the nodes and freedoms are numbered. Usually, meshes are made up of elements of constant size, but if the character “V" appears in the name, the subroutine allows elements of varying sizes. Thus GEOVBY sets up rectangles of eight-noded elements of variable sizes numbered in the y direction. Because plane elements describing non-axisymmetric situations have an extra degree of freedom per node, the characters ‘GEN’ are used to distinguish them. For three-dimensional elements, the characters °3D’ will be found ‘Usually there are two freedoms per node in two-dimensional elements, but the suffix ‘I’ or ‘Sis used if these are one or three freedoms instead. Thus, GEV4X3 creates. rectangular mesh of four-node elements of variable size, numbered in the x direction and having three freedoms per node. The special routines GSTRNG, GEOM, FORMGP, SLOGEO and WELGEO do not fit simply into the above general scheme. The first three refer to simple line structures analysed in Chapters 4 and 12 where generally only a steering vector needs to be created, while the last two create non-rectangular ‘slope’ and ‘well’ geometries respectively as required in Chapters 6 and 7 While the output parameters of all routines are the same, namely COORD and/or G, reference must be made to the calling programs for details ofthe input parameters. These are usually simple counters, such as IP, 1Q, IS, numbers of 386 387 elements in a given direction, such as NXE, NYE, NDE, constant element dimensions, such as AA, BB, and coordinates of variable mesh lines, such as WIDTH and DEPTH, The node freedom array NF is needed as an input parameter in order that G can be found. The 21 geometry routines are listed below. In each case a commented section describes the action of the routine. SUBROUTINE FORNGP( IP, 10,NYE,6,NF, INF) THIS SUBROUTINE FORKS THE *STEERING? VECTOR FOR A 4-NODE RECTANGULAR PLATE BENDING ELEMENT TEER (=) NF CINE 4) NOMA) Ma(1P-1)*(NVE+1) 419 Telit 13-19 (NYE+1) 419 Tae 1341 001 I-14 G(1)=NFCHL, 1) G44) -NFC12, 1) (148) =NF(142 1) (112) =NF(T3, 1) CONTINUE RETURN END ‘SUBROUTINE GENABX( IP, 10, NRE,AA, B8,COORD, TCOORD,G,NF INF) THIS SUBROUTINE FORMS THE COORDINATES AND STEERING VECTOR FOR @-NODE QUADS COUNTING IN X-OIRECTION (3-FREEDOMS/NODE) REAL cooRD( 1coORD, *) INTEGER 6(#) ,NF(INF,*) .NUM(B) uw(1)~19* 34NRE+2) 4241-1 NNUM(2)=19*(3*NRE+2) +1P-NRE- NUM{3)=(10-1)* (3*NRE+2) +2410. UMC) NUH(3)41 MUM() UN) NUM(S) =NUM(2)4. MUM(7) =NUM(1) 32 NUN(8) =RUM(I) 4 INc=a 001 11,8 001 Jel)3 INc=Icad INC) =H (NUNC) OORD( 1,1) =AR*(T {600RD{21)=AA®(T €00RD(3,1)=AR¥(T COORD (5}1)=AamIP ‘COORD 6) 1)-AAe TP 00RD(7;1)=Aa¥IP CooRD(4;1)=-5+(CooRD(3, 1)+c00RD(5,1) CooRD(;1)=.5%(cooRD(7, 1}+c00RD(T; 1) o0Ro(1;2)=-B8810 ‘Coora(@,2)=-B+19 ‘cooRD(7;2)=-88*19 ‘600RD(3;2)=-88*(10-1) 33) °-1) P-1) P-1) 388 ‘c00RD(8,2)=-86*( 0-1) {€00RD(52)=-B5*(TQ-1) cooRD(2;2)=.5* CaoRD(1 ,2)+c00RD(3,2)) ‘CoonD(5,2)=:5*(cooRD(S,2)+C00RD(7,2)) RETURN END ‘SUBROUTINE GEON(IP, HN, NPILE,) THIS SUBROUTINE FORNS THE NODE NUMBERS OF PILE IP INTEGER 6(*) DO} Tal, 1W G(1) =1P+(T-1)*NPILE RETURN eno SUBROUTINE GEOMSK(IP, 1Q,NKE,AA, 8B, COORD, ICOORD,6,NF, INF) THIS, SUBROUTINE FORNS THE COORDINATES AND STEERING VECTOR FOR 3-NODE TRIANGLES COUNTING IN X-DIRECTION REAL cOORD(1COORD,*) INTEGER G(*) ,NF(INF,*) ,RUM(3) 1F(¥00( 10,2) .£Q.0)60T0"1 Una) = (MHE+I)*(10-1)/2418 NU(2) = (NRE SL) *(1QH1}/241P NUNS) =RUNCL) 31 COORD (7,1) =(1P-1) #48, ooRD(1<2)=:(10-1)/2488 600R0(2;3)=(1P-1) Aaa, 00R0(2)2)=-(1041)/2488 (600RD(3)1)=1P¥AA, {609%0(312) -C00RD(2 2) Goro 2 NUN(1) (NKE62 )*19/24T 41 MUM(2)=(WHE4)}*(1Q-2)/241P 41 Nui(3) =NOMGT) = COORG, 1)=1P°AA, .00R0(1,2)=-19/2*88 CCOORD(2;1)=1P*AA 00R0(2,2)=-(10-2)/2488 C00RD(3;2)=(1P-1) "0A o0R0(3:2)=co0RO(1,2) CConTINUE INc=0 003 11,3 00.3 Jal)? TNceINC4t (INC) =NF(NUM(I) 3) ReTURH END SUBROUTINE GEOM6X(1P,10,NXE,AA,8B,COORD, ICOORD,G,NF, INF) ‘THIS SUBROUTINE FORMS THE COORDINATES AND STEERING VECTOR FOR 6-NODE TRIANGLES COUNTING IN X-DIRECTION REAL COORD( COORD, +) INTEGER 6(*) ,NF(THF,*) .NUM(6) 389 1 (MoD 19,2) £0.0)60T0 1 NUM(1)=(1-1}*(2*NRE+1)42¢1P-1 NUM(2)=(10-1)+{2eNKE41)4 204K ,281P NUM(3)=(1Qe1)+(2+NKEs1)62*1P-1 NUM(4) =RUM(2) 41. NUM(S) =NUN(1) 42 NUNS) =NUM( ‘COORD(1,1)=(1P=1)*Ra o0RD(1,2)«=(19-1)/2488 00RD(3;1)=(1P-1) AA 00RD(3,2)==(19+1)/2+8B CooRD(;1)=1P¥AA €00R0(5,2)=C00RD (1,2) Goro 2 NUN(1)=19* 24NXE*1) 4281Pa2 NUM(2)=(10-2)+ (2eNKE v1 )+26N0E42*1P42 MUN(3)=(10-2)*(2*NKE41)4261P 1 NUM(4)«NUN(2)-1 NUN( ‘coRD(3,2)=-(10-2) 2488 (COORD (5; 1)=(1P-1) Ra Cooro(5,2)=ooRD(1,2) 003 I oORD(2, 1)=.5* co0RD (1, 1)4c00R0(3,1), ooRD(4,1)=: 5» (co0RD(3, 1)4cooRD (8, ‘ooRD(6;1)=-5+(C00RD(S, 1) 4co0RD (15 INc=0 00-4 11,6 D0 4 Jel ,2 INCeINCHd GING) NF (NUN() 3) RETURN END ‘SUBROUTINE GEOWBX (IP, 19,NXE,AA, 88, COORD, 1COORD,G, NF, INF) THIS SUBROUTINE FORNS THE COORDINATES AND STEERING VECTOR FOR 8-NODE QUADS COUNTING IN X-DIRECTION REAL cooRo1co0Ro, +) INTEGER ¢(#) NF (IKE, *) uH(@) um(1) 19" (3éuace2)2eiP-1 NUM(2) 21 (3NiEs2)s19-WAE-1 uw (3)=(10-1)*(Seniee2)s2°TP-2 NUM (8) =NUM(3) 61 NUM(S)-MUN(A)e1 Nuw(s)-NuH{2)41 NUM(7)=HUM(T) 42 , NUM(B) =NUM(L} 41 INc=0) Do? I-18 Do 1 Je1,2 INc=INC +i GCINC) =NF(NUHG) 9) COORD(1,1) =8AE (1-1 COORD (251) »Aa™ (1 390 ein. seer sees ce ae BA ay anea COORD (8, 1)=.5*(COORD(7,1)+COORD(1,1)) fata aaa a iy ae ee See EE cou an) Ean ated oo a) SUBROUTINE GEOHSK(1P, 1Q,NKE,AA,8B,COORD, ICOORD,G,NF INF) ‘THIS SUBROUTINE FORMS THE COORDINATES AND STEERING VECTOR FOR 9-NODE QUADS COUNTING IN X-DIRECTION REAL cooRD(1co0RD,*) INTEGER 6) ,NE(INE, =) ,NUM(9) NUN(1)=10" (42NXE+2)4241P-1 NUM(2)=10*(44NXEs2)42#1P-NXE. NUN(3)=( 19-1) (4°NKE42) 42417 NUNC) =NUN(3) 4 NUN(5) =NUN(8) 41 NUN(6)=NUM(2)+2 NUN(7)=NUN(1) +2 NUN(3)-AUM(1 NUN(9)-NUN(2) +1 TNC=0 INC) =NF (NUM ¢ 00RD (1,1)=( 00RD(3, 1) c00R0(5, 1) =I COORD(,1)= [PAA ooRO(1,2)=- 19°88 00RD 3)2)=-(10-1)*88 00RD(5;2)=-( 10-1) 88 o0a0(7,2)--19*88 o0RD( 2; 1)=-5*(COORD(1, 1) +C00RD(3,1)) CooRD(2,2)=:5*(cooRD(1,2)+C00R0(3,2) (cooRo(4;1)=:5*(cOoRD(3) 1) C00RD(5 1) CooRD(4,2)=:5*(cOORD(3,2)+COORD(S,2)) ooR0(6;1)=:5*(COORD(S; 1) +C00R0(7, 1) 2)-.5*(cDORD(5, 2} +COORD(7.2)) 58(CooRD( 1,1) +c00RO(7,1)) .00R0(8,2)=:5*(COORD(1 2) +C00R0(7,2) CooRD(9,3)=:5+(cooRD2, 3) +Co0RD(S, 1) oaR0(9,2)=:5*(COORD (4, 2}+COORD(S,2)) RETURN END 391 SUBROUTINE GEONEY(IP, I9,NYE,AA,8B,COORD, ICOORD,G, NF, INF) THIS SUBROUTINE FORS THE COORDINATES AND STEERING VECTOR FOR 4-NODE QUADS COUNTING TN Y-DIRECTION REAL CoORD( 1C008D,*) INTEGER G(*) ,NFCINF,*) ,NUM(4) NUN(1)=(1P-1}* (YEH) #1041 NuM(2) RUHR) <1 Nuw(3)=1P(WVEs2) 419 Maa 3) 4 2 INe=INCsi F (NYG) 0) C00RD(2,1) =AA*(TP-1) ooRD(2,1)=aa¥{1P-1) COORD (3,1) -ARwIP Co0RD(4) 1) =ARWIP ookD(1,2)--88*79 CooRD(2;2)=-85( 10-1) CooRD(3,2)=-88*(10-1) cooRD(#)2)=-8B*I9 RETURN en ‘SUBROUTINE GEOMBY IP, 19, NYE, AA, 6B,COORD, 1C0ORD,G,NF, INF) THIS SUBROUTINE FORMS THE COORDINATES ANO STEERING VECTOR FoR 8-NODE QUADS COUNTING IN THE ¥-DIRECTION REAL_CO0RD( 1C00RD,*) INTEGER NUM(8),G(*) JNFCINE,#) NUMCI)=(1P-1)*(38NrE+2) «241041 M4) =(i 1} (3entes2)-2-mvesTQet NUM(5)=1P#(3+NYE¥2)4+2"10-1 U6) UMS) +1 NUT) =NUN(6) NUM(Q) =NUN(4) 41 INC=0 001 Is Eom (0s) jaka teonn(e't}=(1p- ieee ony) 10-1}oak cor 8 eta cone" ston Econo 1hctoan ££o0RD (4 1)- (COORD (3. 1)#COORD(5s1))*.5 €oowo(e1}-Coom (4) ttoan( 8:2) etter t eb eeomnta:3)=-(00 foes COORD(S, 2)=-( 10- 1338 Eeowo {i 2}e-Lara8 392 00R0(8,2)=-10+88 00R0(7,2) == 1088 008 (2,2)=(CoORD(1,2)+c00RD(3,2))*.5 .00R0(6,2) =c00RD(2,2) RETURN END SUBROUTINE GEQVY(1P, 1Q,NDE, RAD,DEP,COORD, 1COORD, NF, INF) ‘THIS. SUBROUTINE FORNS THE COORDINATES AND STEERING VECTOR FOR EACH ELEMENT (NUMBERING IN THE Y-DIRECTION) REAL COORO( ICOORD,*),RAD(+) ,DEP(*) INTEGER (+) NF (TF) WON(A) aac 1)=(1P-1)*(NDEsi) His M2) NUNC NuM(3)=1P=(NDE+1) +10 Nu) -naM(3) +1 NCO 00 1 I=1,4 00.1 Jee TWeeINeed CIN) =NF(NUM(T) 3) 00RD (1, 1)=RAD (1) 00RD(2,1)-RAD( I) 60080 (3, 1)=RAD( TP+1) cOORD(#;1)=RaD| TP+1) €0080(1,2)-DEP(IO81) cooRo(2'2)-DEP( 10) COORO(3,2)-DEP( TQ) co0Ra(4;2)-DEP(10+2) RETURN END SUBROUTINE GEQVAY(1P, 1Q,NYE,WIOTH, DEPTH, COORD, 1COORD,G, NF, INF) THIS SUBROUTINE FORNS THE COORDINATES AND STEERING VECTOR FOR 8-NODE QUADRILATERALS NUMBERING IN’ Y=DIRECTION REAL COORD( 1COORD, *),WIDTH(=) OEPTA(*) INTEGER G(*) ,NE(INE,*) ,NUN(B) NUM(1)=(1P-1)#(34NvE42} 2*1Q¢1 NUM(2)=RUN(T) 1 NUM(3) RUNG) -2 TP-1)*(30NVEs2) 2*NYEsIO¢] P*(3*NYE2) 2410-1 m(5)+1 TNc=0 cO0RO( 1,1 00RD (2) 1 00RD(3,1)-WIOTH( IP) ooRD( 5,1) -WIDTH(IPs2) (COORD( 5,1) =MIDTH( IPs CoORD(7 1) «MIDTA( TPs] 393, ‘c00RD(4,1)=.5*(co0RD(3,1) +C00RD(5, 1)) {GooRO (8, 1)=.5*(CooRD(7;1}4C00RD(T,1)) CooRD(1'2)=DEPTH(IO+1) {C00RD(8,2)=DEPTH( TQ¥1) cooRD(72)=DEPTH(Ig+1) 00R0(3!2)=DEPTH( 1a) €0030(';2)=DEPTH( TQ) : 0080(5)2)=DEPTH(TQ) ooRD(2'2)=.5#(c00RD(1,2)«cooRD, ooa0(5!2)=:5#(co0RD(5,2)scOoRD( RETURN END SUBROUTINE GEO4X1 (IP, 10, NXE, AA, BB,COORD, ICOORD, GNF, TNF) THIS SUBROUTINE FORMS THE COORDINATES AND STEERING VECTOR FOR 4-NODE QUADS COUNTING IN X-DIRECTION LAPLACE'S EQUATION 1-FREEDOM PER NODE REAL cooRD(1c00R0,*) INTEGER NUH(4),G(4) ,NECINF,*) NUCL) 19 (NKELL) HP Nun(2)=(19-1}*(NXE¥1 91? Nuin(3)=NUM(2) 1 NUM(4 NUM} 4 Dol I14 (1) =NFGiuM() 2) C00RD(1,1)=(17"1)*Aq CooRD(2;1)=(1P-1)*RA c00RD(3;1)=TP=a4 00RD(4)1)=1P=A4 CooRD(1;2)=-19+88 CooRo(2,2)=-(10-1)#88 CooRD(3}2)=-(10-1)*B8 0080(8,2)=-10*88, RETURN 0 SUBROUTINE GEO830(IP, 19, 1S,NXE,NZE,AA,BB,CC, COORD, [COORD G,NF, INF) THIS SUBROUTINE FORMS THE COORDINATES AND STEERING VECTOR FOR 8-NODE BRICK ELEMENTS COUNTING 3-2 PLANES IN Y-DIRECTION REAL cooRD( 1cooRD,*) INTEGER >) ari) NUM(1)=(10-1) (E+) (HZES1) 41S®(NKE+1) 61 NUM(2)=NUM(1) -NKE-T NUM(3)-NUN(2) +2 NUM(2)=NUM (I) 4. NUM(5)=NUM(1)+(NXE41)#(NZEH1) NUM{)=NUM (5) -RRE-1 NUM(7)=RUm6) NUN(8) =NUM(5) 4 INC+0) 00-1 11,8 Do 1 Jot)3 INcetNCsi : (INC) =NF wUN(t) 9) C00RD(2,1)=(1P-1} Aa CooRD(2}1)=(1P-1}+ma 394 {COORD(S,1)=(1P-1) 448 COORD (6; 1)=(1P-1)*AK CoORD(3;1)=1P¥Aa (C00RD (251) =1P#RA COORD( 1) =1PRAR CooRD(e,1)=1P+AA ooRD(1,2)= (10-1) +88 o0RD(2,2)=(10-1)+88 Co0aD(3!2)=(10-1)*88 CooaD(4;2)=(10-1)*88 Co0RD(5,2)= 19888 CooRD(6,2)=10%88 o0RD(7;2)=19+88 CooRD(8}2)=19888 cooRo(1,3)=-Is¥cc cooRn(4,3)=-1S¥cC CooRD(5,3)=-1S¥cc ooRD(s,3)=-1secc ooRD(2,3)=-(1s-1)sce CooRD(3;3)=-(18-1)¥cc CooRD(5)3)=-(15-1)¥cc o0RD(T;3)==(18-1) cc RETURN END ‘SUBROUTINE GEVUPV(1P, 10,NKE, WIDTH, DEPTH, COORD, ICOORD, + ‘COORD, ICORDF,.G, NF, INF) THIS SUBROUTINE FORMS THE NODAL COORDINATES AND STEERING VECTORFOR A RECTANGULAR MESH OF 4-NODE/B-NODE ‘QUADRILATERAL ELEMENTS NUMBERING IN THE X-DIRECTION (U,P,V NAVIER STOKES FLOW) REAL COORD( ICOORD, *) ,COORDF 1CORDF, *),WIOTH(*) ,DEPTH(*) INTEGER NUM(8) .G(#) ,NECINE,*) NUM(1)=10#(34NKE*2) 521-1 NUM(2)=10¥(3#NKE+2)41P-NXE-1 (3) =(1Q-1)*(3°NKE+2)+2°1P-2 NUM) UM (3) +1 NUM(5) =MUN(4) #1 Nuis(6)-N(2) 41 NUN(7) =RUN(1) 42 NUN(8)-RUN(I) 1 INC=0) DO 1 1-1,8 INceINCed {GcINc)=NF (MUNG) 1) 00 2 101,7,2 INC=INCed (NUNC) 2) oe HS ine cooRD(5, i) opRD(s} 1) =WIDTA(Pe1) (c00RD(71)=WIDTH( P41) COORDF (3,1) =WIOTA(IPH1) COORDE (4) 1)=WIOTH(TP+1) ‘cooRD(#, | )=.$#(C0020(3, 1) 4cO0RD(5, 1)) ‘CooRD(8; 1)=:${¢0020(7; 1)4cO0RD(T,1)) CooRD(1 2) =BEPTH( 1Q+1) CooRD(8;2)=DE PTAC QT (COORD(T2) =DEPTHC IQs ooRDE(1,.2)=DEPTH( 1041) CoORDF (4,2)=DEPTH 1041) .0080(3,3)=DEPTH( 1a) .00RD(42)=DEPTH( 19) £0080(5)2)-DEPTH(1Q) CooRoe (3, 2)=DEPTH( TQ) CooRDE (3, 2)=DEPTH( IQ) CooRD(2,2)=.5* (coORD( 1,2) 4c00RD (3, 2)) cooRo(6;2)="5+(¢00R0(5,2)4cOoRD(7;2)) RETURN END SUBROUTINE GEVUVP( IP, 19, NKE,WIOTH, DEPTH, COORD, 1cD0RD, CCOORDE, ICORDF, GNF, INF) THIS SUBROUTINE FORMS THE NODAL COORDINATES AND STEERING VECTOR FOR A VARIABLE MESH OF 4-NODE/2-NODE QUADRILATERAL ELEMENTS NUMBERING IN THE X-DIRECTION (UWP BIOT CONSOLIDATION) EAL_cOoRO(ICOnRD,*) COORD cOROF*)MIDTH(*) ,DEPTH(*) INTEGER NUM(8) (+) NE (INF,*) NMG 1) 102 (S2KE 42) 3241-1 NUM (2)=10=(3NxE +2) TP -NXE-1 NUM(3)=(10-1)*(36NXE¥2) 2617-1 Nun(s)=AUH(3) 61 NuM( 5) =n (8) 31 HUM(G)=KUH(2) 41 NMC 7) =I) 92 NuH(3)=MUM CL) 41 Ines D0 1 9. IN¢sINCed GCINC) =NF(wuy() 3) (COORD(T, 1) =WIDTiN 1) coonn(2'1) ooRo(31) CoORDE (i 1) WIDTH (IP) CooRDF (2) 1)=¥IDTH (IP) ooRD(S, i)=wEDTH(1P#1) COORD(6; 1) «WIDTH 1P+1) €90R0(7. 1) sutDTH« P41) COORDE (3, 1)=wIDTH(TP+1) COORD (4) 1)=MIDTH(IPs1} CoORD(S, i) =. 5» (COORD(3, 1} +co0RD(5,1)) ogee, 1)<"3e(cooeo (7,1 )aco0RO(2,1)) CooRD(1 2) =DEPTH( 1081) 00RD(8;2)=DEPTH( 10+) 396 coono(72) 0ePTH( 1981) COORDE (1, 2)=DEPTH(IQ+1) Eoonor (422)-DePTHGIQs1} o0n0 (3,2) -bePTH( 19) COORD (4,2) =DEPTH( IQ) ‘COORD( 5,2) =DEPTH( 10) COORDF (2, 2)=DEPTH( 10) COORDF (3,2)=DEPTH(1Q) {600RD(2,2) -.5¥(COORD( 1,2) +cOoRD(3,2)) {600RD(5;2)=.5%(COORD(5,2)+COORD(T,2) RETURN END ‘SUBROUTINE GEVISY(1P,1Q,NYE,4ID,DEP,COORD, TCOORD, 6, NF, INF) THIS SUBROUTINE FORNS THE COORDINATES AND STEERING VECTOR FOR 15-NODE TRIANGLES COUNTING IN Y-DIRECTION REAL OORD(1COORD,*),wID(+),DEP(*) INTEGER G(*) .NFCINE, 4) nwt 8) 1F(NOD( 10,2) .£9,0)GOT0"1 FRCLa4*(25NVE41)*(1P-1)4241Q-1 NUN()=FRCI NUN(2) =FACL+1 NUM(3) =FACLs2 NUNS) oPACLS3 NUN(S) =FACL+4 NUN(6) -FACLS2ONVE*4 NUN(T) =FACTSO*NVESS NUN(B) =FACTS6ONVES4 NUN(9)=FACTS8#NVES4 NUN(10)=FACIS6*NYEs3. NUN(11)=FACLs44NVE¥2. NUN(12) =FACTS2*NVES] NUN( 13) FACLS2¢NVES2 NUN(T4)=FACI429NVES3 MUN(15)=FACTSS*NYESS COORD(1, 1) =WID(TP) CooRD(1,2)=DEP((1Q+1)/2) CooRD(S,1)-wiD(1P) CooRD(5,2)DEP{(10+3)/2) 00RD(9,1)=wID(1Ps1) o0xD(9!2)-DEP( (1041) /2) GoTo 2 FRC2=44 (20NYE*L)*(1P-1) 4241948 4NVESS NUNC) =FC2 NUIN(2) =FAC2-1 NUH(3) =FaCa-2 UNA) =FAC2-3 NUNS) FAC -4 NUM(6) FAC -24NVE-4 NUH(7) =FACQ-49NVE-4 NUM(B)=FAC2-6ONVE-4 NUN(9)=FAC2-BHNYE-8 NUN(10)+FAC2-6eNvE NUN(11) =FRC2-49nVE NUM(12)=FACD-26N¥E NUM(13)=FAC2-26nVE- NUM( 14) FAC2-26nVE- NUM(15) =FAC2-€9NVE- 397 ooRD(11)-w1D(IP¥1) CooRD(1 2) =DEP( (10+2)/2) 00RD(5;1)-W1D( 141) cooRD(S;2)=DEPCIa/2) o0k0(81)=4i0(18) RD(9, 2)=0EP((1042)/2) D0 3 fei, 2 CooRD(3, i)=.5#(cooRo(1,1) +cooRD(s, 1 €or (71)=5»{eooeo(3t}caneo(8" 1} 200111} 2s54(coono( >, ecQ0ROET Ty) 00m (2,1) 2" $5(Cooeo( i) cO0RD (5,7) €oone (4:1}='5{coona(31}ce0080(3 1} ooeo| 8,1) >:5+(co0RD{ 3:1} coor 7°1}) 00k 8, 1}=:55(cOono(7"1}s¢00#0(3"1}) 00818, 2). 24(co0RD(3,t}xcoORo (it fy) 00x12, 1)>5e{cooRD{ 1h }ectoR(1'1} ata |S cay ap 908014, 1}o'5e{co0M0(9° 1} c00R0{ Tf) COORD(13,1)=.5*(COORD(2, 1)+COORD( 15, 1)) connie neo Os tis bo § ac112 Thcteed Stine) nF WONT) 9) at 0 SUBROUTINE GEV4X3(1P,10,NKE,WIOTH, DEPTH, COORD, ICOORD, 6, NF, INF) THIS SUBROUTINE FORMS THE NODAL COORDINATES AND STEERING VECTOR FOR A VARIABLE MESH OF 4-NODE QUADRILATERAL ELEMENTS: UNBERING IN THE X-DIRECTION (U,V, BIOT CONSOLIDATION) REAL COORD, 1cOORD,*), MIDTH(* INTEGER nuM(4),G(4) ,NFCINE,*) NUM(1)=108 (NXEST) 1? MUM(2)«(10-1)*(4XE+1) 41 NUM(3) HUM 2) 42 NUM) NUM} NINC=O 001 I-14 DOL dele NINCSNINES GCNINC =X (NUM(I) 52) 002 Ini.4 NINCSNINES G(NINC) NF (RUM(1) 3) COORD( 1. 1) -wtOTH( iP) 0ORD( 2,1 )=WEOTH( TP} OORD(3, 1) N. Solves LB=K where 1 and K are symmetrical band matrices (lower triangles stored as rectangular arrays (N=(W +1) Bis NeN Working space via first dimension of L, B and K is KEN. Profile storage version of LINMUL. Length of rows in profile in KDIAG. LINMUL LOC2F LOC3F LoczT Loc3T MATADD MATCOP MATINV MATMUL MATRAN BK, DISPS, LOADS, N, IW = LOCAL, GLOBAL, IP, ‘COORD, ICOORD LOCAL, GLOBAL, IP, “COORD, ICOORD AXIAL, GLOBAL, IP, COORD, ICOORD AXIAL, GLOBAL, IP, ‘COORD, ICOORD 4, 1A, B, IB, M,N A, IA, B, IB, M, N AIAN A, IA, B, IB, CIC, L, M,N A, IA, B, IB, M,N at Symmetrical band matrix BK multiplied by vector DISPS to give vector LOADS. BK stored as vector of upper triangle which has N rows and half-bandwidth IW. Transforms global two- dimensional rigid frame end reactions and moments GLOBAL to local ones LOCAL. Counter IP locates nodal coordinates in COORD. Three-dimensional version of LOC2F Retrieves axial force AXIAL in a two- dimensional pin-jointed element from end reactions in GLOBAL. Counter IP locates nodal coordinates in COORD. ‘As LOC2T but for three= dimensional pin-jointed line element. A=A+B where A and B are (M+N), Working space restrictions TA 1B>M. Bis a copy of A where both are M+N matrices. Working space restriction IA = IB > M. Replaces NeN matrix A by its inverse, Only use for small N. Working space restriction IA > N, C= A*B where A(L*M), B(MsN) and C(L*N) Working restrictions IA=IC>L, 1B>M. A= BE where Bis MaN. Working restrictions IB>M,IA2N 412 MOCOPL MOCOUF MocouQ MSMULT MVMULT NULL NULL NULVEC ‘NUMIN3 NUMINT PHI, PSL, E, V, STRESS, PL PHI, C, SIGM, DSBAR, THETA, F PSI, DSBAR, THETA, QI, Daz, Dos 4,14, C, M,N M, IM, V, K, L, ¥ ATA, M,N A, IAI, IA2, L, M,N VEC,N SAMP, ISAMP, WT, NIP Forms plastic stress-strain matrix PL from the stresses STRESS, angle of friction PHI, dilation angle PSI and elastic stifiness B, V for a Mohr-Coulomb material. Mohr-Coulomb yield function F from invariants SIGM, DSBAR. Lode angle THETA (radians), angle of friction PHI (degrees) and cohesion C. Derivatives of Mohr Coulomb function DQL, DQ2, DQS (Appendix 2b) for angle of dilation PSI, invariant DSBAR and Lode angle THETA. Multiplies MxN matrix A. by scalar C, returning result to A. Working restriction IA > M, Multiplies KL matrix M by L vector V with result Y of length K, Working space IM > K. Nulls MeN array A. Working restriction ASM. Nulls Ls MxN array A, Working restriction TAL > L, 1A2> M. Nulls a vector VEC of length N. Sampling coordinates SAMP and weights WT for integration over tetrahedra using NIP integrating points. Sampling coordinates $ and weights WT for integration over PINI2 PINI3 PRINTA® PRINTV* PRNCPL READNF SOLVBA SPABAC (SPARIN) SPARIN (SPABAC) KM, EA, IP, COORD, COORD EA, IP, COORD, TCOORD A,IA,M,N VEC, N SIGM, DSBAR, THETA, SIGI, SIG2, siG3 NF, INF, NN, NODOF, NR PB, IPB, COPY, ICOPY, ANS, N, 1W A, B, N, KDIAG A,N,KDIAG 413 triangles using NIP integrating points Forms element stiffness matrix KM for a two- dimensional pin-jointed line of axial stiffness EA. Coordinates COORD located by counter IP. As PINJ2 but three- dimensional pin-jointed element. Prints MN array A. Working restriction IA> M. Tape 6 assumed. Prints a vector VEC of length N. Tape 6 assumed, Forms the principal stresses SIGI, SIG2, SIG3 from first invariant SIGM, second invariant DSBAR and Lode angle THETA Creates node freedom array NF by reading data for a mesh with NN nodes, NODOF freedoms per node and NR restrained nodes. Tape 5 assumed, Forward and backward substitution on matrix PB factorised by GAUSBA to yield result ANS. PB has dimensions Ne(2+IW +1) and COPY is a copy of WORK, dimensions (IW + 1) Choleski forward and backward substitution on A created by SPARIN to yield solution vector B. Choleski factorisation of A stored in rows by profile 414 STAB2D TREEX3 TRIDIA* voL2D VVMULT KM, EA, EI, IP, ‘COORD, ICOORD, PAX JAC, IJAC, JACI, WACI, DET Zz N, ATOL, A, D, By JAC, JAC, JACI, WACI, DET ABC.N ABN EB, V, STRESS, PL. BEE, IBEE, VOL, NOD YI, V2, PROD, IPROD, MN There are N rows whose length is held in KDIAG. Forms stiffness matrix KM of inclined two- dimensional beam- column with axial stiffness EA, flexural stiffness EI and axial force PAX using ‘stability functions. ‘Nodal coordinates COORD located by counter IP, Forms inverse JACI of 3x3 matrix JAC and its determinant DET. Householder reduction of symmetrical NeN array ‘A to tridiagonal form. Diagonal in D, Sub- diagonal in E, rotations in Z, Iteration tolerance ATOL. Forms the inverse JACI of, a2 2 matrix JAC and its determinant DET. Forms vector C= A+ Ball of length N. Makes a copy B of vector ‘A of length N. Forms plastic matrix PL for a von Mises material from stress vector STRESS and elastic moduli E and V. Forms vector VOL for matrix BEE enabling volumetric strain in two- dimensional element with NOD nodes to be found. Vector product PROD = V1sV2 where VI has length M and V2 has length N. Working restriction IPROD > M. a APPENDIX 5 Listings of Special Purpose Routines SUBROUTINE AXIKM(KH,CSA,E,ELL) ‘THIS SUBROUTINE FORMS T4E STIFFNESS MATRIX FOR AN AXTALLY LOADED LINE ELEMENT REAL KM(2,2) MCL, 1)=CSAAE/ELL (2,2) KM (1,1) Rat 2)=-kHCL 1) (21) =40(1,2) RETURN 0 ‘SUBROUTINE. BACSUB(BK, LOADS,N, 1W) THIS SUBROUTINE PERFORMS THE GAUSSIAN BACK-SUBSTITUTION REAL BK(*) ,LOADS(*) oADS (1) =LOADS(1)/8K(1) DOT 12,8 ‘UM=L0AD8(1) Met-1 NKB=I-1W TE (WKB)2,2,3 NKB=1 100 4 K=NKB, 11 Ne (LK) N SUM=SUM-BK (JN) *LOADS(K) CONTINUE ‘VOADS(1) -SUM/8K(1) CONTINUE D0 § Jd=2,H TeN-dJ41 SUN. Der NKB= TotW TF(NKB-N)7,7,6 NB? DO 8 Kell NKB We(K-1) HT ‘Ute SUM+8K (JN) *LOADS(K) {LOADS(1) -LOADS 1) -SUH/BK() CONTINUE RETURN exo 41s 416 SUBROUTINE BARMUL (KB, IKB, LOADS, ANS N, TW) THIS SUBROUTINE MULTIPLIES & MATRIX BY A VECTOR THE MATRIX IS SYMMETRICAL WITH ITS LONER TRIANGLE STORED AS A RECTANGLE REAL KB(1KB,) ,LOADS(*) ,ANS(*) DOT Tl, ¥-0. slwe (14) te tue }eoTD 3 XeX+KB(I, J) LOADS(T40-1W-1) 3001 TF(J.NE.0)G0T0 2 oe 6 IF(1-9.E.N-1W)60T0 7 KeK4RB(I-J+1We1,J)*LDADS(1-Je Wel) Tas] 1F(J.NE,0)G0T0 6 ans( T)=i 1 CONTINUE RETURN END SUBROUTINE BANRED(BK,N, IW) ‘THIS SUBROUTINE PERFORMS GAUSSIAN REDUCTION DF ‘THE STIFFNESS MATRIX STORED AS A VECTOR BK(NS(IW+1)) REAL BK(*) 00 T 1-28 Tust-1 KBL=TUL4IWeL TF(KBL-N)3,3,2 2 BLN 5001 Je1, BL 1e(9-1)!Net SUm=BK(19) NkB=0- IW TF (WCB), 4,5 Nba TF({KB-1L1)6,6,8 00 7 Menke, TUT NISCL-M) NM oH) ANH ‘SUMSUMBK (N1)*BK(N)/BK(M) BK ( 70) =SUM CONTINUE RETURN 0 417 SUBROUTINE BANTHL (KB, IKB, LOADS, ANS, N, 1M) THIS SUBROUTINE MULTIPLIES AN UNSYRMETRIC BANDED MATRIX "PB BY THE VECTOR "LOADS". REAL KB(/IKB,*), LORDS(*) ,ANS(*) D0 Te1,N Xo. Keris2 LerwelWet 00.2 dels KeK-1 TE(L-K+1.6T.N)GOTO 2 TFUL-Ke1 UT. 1)60TO 2 XeK¢kB(I, J) -LOADS(I-Ke1) CONTINUE ANS(I) =X CONTINUE RETURN END ‘SUBROUTINE BCMASS(HM, RHO, AREA, IP, COORD, 1C00RO) THIS. SUBROUTINE FORMS THE CONSISTENT MASS MATRIX OF AN INCLINED 2-0 BEAM-COLUNN ELEMENT REAL MM(6,6) ,COORD(IC00RD,#) x1=co0R0 (iP, 1) ‘y1=cooRD(1P,2) x2=COoRD(1P,3) Yy2=COoRD( IP, #) ELL*SQRT((V2-V1)#*24(X2-X1)* Go(t2-K1)/ELL S=(Y2-Y1)/ELL NACL, 1)=140.*cc+156, #5¢S W(4,4) emi 1) W(2,2)=156.4C8C+140, 988 W558) =4M1(2,2) WM(3,3) 4. *ELLELL (616) =¥91(3,3) WHC 2)=16.8¢85 (45) =H (1,2) wwcys)=-mn(i,2) (2, 4)=-MM(1,2), M(1,3)=-22. SELLS H(46)=-MM(2,3) (2) 3)=22-AELLAC wH(5,8) wna mcs (34) HC2'5). (2,6): (3,8) W316) FACHRKOSARERSELL/420. O01 I-16 001 Je16. ¥4(1,0) =H a) FAC YM(0.1) “HCI, RET 418 SUBROUTINE BEAMKM(KM, ET, ELL) THIS SUBROUTINE FORMS THE STIFFNESS MATRIX OF A WORIZONTAL BEAM ELEMENT(BENDING ONLY) REAL KM(4,4) MCL, 1)=12. #61/ (ELLYELL*ELL) m(3, 3) KH (11) fnfdez}oe-ceip(exteetty 02,1) =Ki(1,2) KCL, 4)=KM(1,2) KW(4)1) 9K (14 MC, 3) "KRG fu) 3 mn ) KM(3,4)=-KHCL, 2) ponte 332085 KM(2,3)=KH(3,4) HG3,2) 4012, 3) (2,2) 4. SE1/ELL KO(4, 4) =K4(2,2) wo(2)4) 2.91/20 KOCH, 2) =H (254) RETURN END ) 1 ) SUBROUTINE BEAYKP(KP,ELL) THIS SUBROUTINE FORMS THE TERMS OF THE BEAM STIFFNESS MATRIX DUE TO AXIAL LOADING REAL KPC4,4) KP(1,1}=2.04611/15.0 KP(2,2)=2-0°6LL/15.0 Ke(2,1)=-ELL/30.0 Koa) EL/30.0 0. SUBROUTINE BHCOL2(KH,EA, EI, IP, COORD, 1C00RD) THIS. SUBROUTINE FORMS THE STIFFNESS MATRIX OF AN 2-D BEAM-COLUMN ELEMENT REAL K&(6,6) ,COORD(TCOORD,*) x1=coorD (iP, ‘Y1=cooRD( IP) 2) x2=COORD(IP.3) 419 ‘Yanco0RD(1P, 4) ELLeSORT((Y2-¥1)*#2¢(X2-X1) #2) C=(32-K1)/ELL se(y2-¥1)/EUL Er-eae.e £2n12.*E1/(ELL*ELL*ELL) ES-ET/ELL E406, E1/ (ELLAELL) RM(L, L)=CACAELAS#SME2 FM(44) <4 1) RM(L.2)=S#C(EL-€2) (2, 1) =HC1, 2 HeMC4. 5) KM (1,2 HeM(5, 4) =K(4, 5) RM(1,3)=-S¥E4 (3,2) RHC, 3 (16) =«4(1,3 (6.1) -KM(1,8) N34) =s4ea (823) =KM (3,4 (4,6) =KH (3,4) (4,2) =KM(2,4) KM (2, 2)=SASAELSCHCMER M(5,5)=KM(2,2) (2,5) =-KM(2,2) KM (5, 2) KM (2,8) KM (2,3) «CAE KM(3.2)=KM(2,3) (2,6) +K(2,3) ¥M(6,2)=KM(2,6) MCS, 3) 4.983 KM(G, 6) =KM(3,3) KM(3,5)=-C¥E8 MCS, 3) =K8(3,5) FM(S 16) =K(3,5 (6,5) =KM(5, 5 FM(36)=2.463, M(623) =k (3,6) RETURN eNO ‘SUBROUTINE BNCOL3(KM, EA, EIY, £1, 6), 1P, COORD, 1COORD) THIS. SUBROUTINE FORMS THE STIFFNESS MATRIX OF A GENERAL 3-0 BEAM-COLUMN ELEMENT REAL KM(12, 12) ,COORD( ICOORD,*),T(12, 12) TT(12, 12) ,RO(3,3) ,C(12,12) Pied. *ATAN(I.) GANA=COORD(1P,7)*P1/180. Xi=COORD(IP,1) yi=¢ooRD(1P, 2) Eicon. 3} x2=cooRO(1P,§) 420 ‘Y2=C00R0(1P,5) ‘2=CO0RD(1P,6) XUX2-K1 yuey2-¥1 1-72-21 ELL*SQRT (XL*XL#YLAYLZL*ZL) G=COS (GAMA) ‘SG=SIN(GAMA) DENvELL*SORT(XL¢XL#ZL*ZL) DO 1 [1,12 DO 1 Je1y12 KM(T,9)=0. T(1,S)=0. THdyd)= ALEAVELL ‘A2u12.*E12/ (ELLELLAELL} ‘A312 ,*E1V/(ELL*ELLAELL} b=6.4E12/(ELL*ELL) a sE17/6UL Poa SELV/ELL AseGi/ELL ACL, 1) sA1 WOH(7,7)-AL 2 KM(3,3)=A3- e499) oA 3,9) 89 RH(9,3)- (834) M(10, 10) FoH(4,10)=-n (10,4) Hs 847 421 =(“HLAYL*C6-ELLSZL*S6)/DEN BENSCG/(ELLSELL) 3)=(-YUAZL*CG+ELLANL #56) /DEN moist = (HL YLASE-ELL*Z1 #06) /OEN EW*SG/ (ELL¥ELL) RO(3,3)=(YLAZL*SGeELL*RL CG) /0EN oto" 60 50 RO(1,1 ROC, 3) = RO(2,2) = 0(3,2) RO(1,2)1. RO(2,2)=-¢6 RO(3,3)=C6 RO(2,3)=S6 R03, 1) 456 60 CONTINUE 002 I-1,3, 00.2 J=13 XeRO(T, J} D0 2 x20,9,3, Tsk Dek) aX 2 TE(SeK, TK) =X po 3 Tel,12 00 3 Jo1y12 SUM=O. 00.4 Ke1,12 4 SUMESUM AKT, K)*T(K,9) 3 C(I, J) =SUm DO § fe1,12 D0 § Jel,12 SUM 00 6 Kel,12 8 SUM=SUM+TT(,K)#C(Ky) 5 KM(T 3) =SUM RETURN NO SUBROUTINE BNONAK(BEE, 1BEE,DERIV, IDERIV, FUN, COORD, ICOORO, + SUM,NOD, {FLAG, (TH) THIS SUBROUTINE FORMS THE STRAIN-DISPLACENENT MATRIX FOR AXISYMMETRIC SOLIDS SUBJECTED TO NON-AXISYMMETRIC. LOADING REAL BEE(IBEE,*),OERIV(IDERIV,#) FUN(*) ,COORD( 1COORD,*) Do 1 Ket, Noo 1 SUM=SUMsFUN(K)*CO0RD(K,1) 0 2 M=1,NOD. Nea KN] at BEE(1,L)=DERIV(1,M) 422 BEE(2,K)=DERIV(2,M) BEE (3,1) -FUN(n) uM BEE(3,N)-1FLAG®LTHPAEE(3,L) BEE(4,L)-DERIV(2,M) BEE(4,K)-DERIVUL-M) BEE(5;K)~-IFLAGALTHAFUN(M)/SUM BEE(5,N)-DERIV(2,K) BEELBIL)=BEE(5,K)} BEE (6,1) =DERIV( TH) -FUN(H)/SIM RETURi v0 SUBROUTINE CHECON(LOADS,OLOLDS,N, TOL, ICON) THIS SUBROUTINE SETS ICON TO ZERO _IF THE RELATIVE CHANGE JIN VECTORS "LOADS" AND *OLDLDS’ IS GREATER THAN "TOL? REAL LOADS(*) ,OLOLDS(*) 1cON=1 B1G-0. 007 fet 1 (a8 (.DAos(1)) cTBte)BTGeABS(LORDS(1)) TF (ABS (LOADS I) -OLDLDS(1))/81G.GT. TOL) 1CON+O ‘OLDLOS(1)=L0ADS(T) RETURN, 0 ‘SUBROUTINE CHOBAC(KB, 1KB, LOADS,N, TH) THIS SUBROUTINE PERFORYS THE CHOLESKI BACK-SUBSTITUTION REAL KB(IKB,A),LOADS(*) Loabs(1) =Loaos(1)/KB(1, 1W+1) 01 12,0 X0.0 Kel TF(L-LE, IWel )keTW- 12 Do 2° dak, IW XeKKB(1,J)*LOADS(I49-¥-1) ‘VOaDS(1)*(LoaDs (1) -)/KB(I,1W#1) Leqans(W)=LoADS (1) /xB(N, 1841) 1 0.0 Len, TF(L.GT.N-IW)LN Melsi 00.4 Jem, XeXsKB( 4, IW] 1) LOADS (3) ord (1)=(LBA08(1)-X) KBE, 11) Ile 1F(1)5,5,3 CONTINUE’ RETURN END 423 ‘SUBROUTINE CHOLIN(KB, TKB,N, TH) ‘THIS. SUBROUTINE PERFORMS CHOLESKI REDUCTION OF ‘THE STIFFNESS MATRIX STORED AS AN ARRAY BK(N, IW#1) REAL KB(1IKB,*) D0 1 T+," Keo. 00 2 Jet, IW KexsKB(I)9)*42 KB(T, IWe]) =SQRT(KB(T, TW41)-K) 00 3°Kel, Iw Xe. TF(T+K.6T.N)GOTO 3 TF(K-EG,IW)GOTO 4 Lew NeKKB( [4K L)*KB(T, LOX) Laer IF(L.NE.0)60T0 5 UGK TBeT-K+1 KB (IA, 18) =(KB(IA, 1B) -X)/KB(, 1W41) cour tive CONTINUE RETURN, eN0 ‘SUBROUTINE ECMAT (ECM, TECH, TN, ITN,NT, INT, FUN, NOD, NODOF) THIS SUBROUTINE FORMS THE CONSISTENT MASS MATRIX REAL ECM( TECH.) ,TN(ITH,*),NT(INT,*) ,FUN(*) 1D0F-NOD*NODOF 00 1 I=1, 100F 00 1 Je1{NODOF NT(L,3)=0. TN(Ds 1) =T(1,9) Do 2'1-1,NoD) 0 2 J=1:NOOOF NT((1=1)NOOOF +d, 9) =FUN(T) TW(D, (1-1)*NODOF#O) «FUN(T) 09 3'I-1, 100F Do 3 J-1;100F ¥-0.0 DO 4 ke1,Nooo# KeKANT(ULK)*TN(Kod) ECM(T,9) 2x CCONTIAUE RETURN END SUBROUTINE FOTAGV (BK, KM, IKM, 6, KDIAG, 1DOF) ‘THIS SUBROUTINE ASSEMBLES A DIAGONAL ELEMENT MATRIX INTO THE GLOBAL SYSTEM REAL BK(*) KH(IKH,*) INTEGER (4) ,KOIAG(*) DO 1 T-1, 100F 44 368(1) 1F(J.£9.0)60 01 KeKDIAG(3) BK (K) =BK(K) 4KM(T,T) CONTINUE RETURN END SUBROUTINE FKDIAG(KOIAG, 6, IDOF) ‘THIS SUBROUTINE FINDS THE MAXIMUM BANDWIDTH FOR EACH FREEDOM INTEGER KDIAG(*),6(*) 00.1 1-1, 1D0F TwPl-1 TF(G(1) .£0,0)6070 1 Do 2-J-i, 100F TF(6(3)..£0.0)c010 2 IN-G(1)-6(9) 1 IF(IM.GT.1WP1) INPL=IM con nive ke6(1) IF (WPL GT. KDTAG(K) )KDIAG(K) «WP continue RETURN END SUBROUTINE FHBEAM(DER2, FUN, SAMP, ISAMP,ELL,1) THIS, SUBROUTINE FORMS THE BEAM SHAPE FUNCTIONS AN THEIR 2ND DERIVATIVES IN LOCAL COORDINATES REAL DER2(*) ,FUN(*) ,SAMP( ISAMP,*) XT*SANP(T, 1), Aeextsal Har FUN(1)=.25*(X13-3. *K1+2.) Fun{2)>-125eeLta(Ar3-A12-K041) und )o.25¢(-41303. 24142.) FUN(4)=. 125*ELL*(X134K12-KI-1.) DER2(1)=1.5*X1 DDER2(2)=.25¢ELL*(3.4X1-1.) DDERZ(3)=-1.5°x1 ERD (4)=,25°€LL8(3. 4141.) RETURO ND SUBROUTINE FHBIGK( BIGK, IBIGK, KM, 1KH,G, 1DOF) THIS SUBROUTINE ASSEMBLES ELEMENT MATRICES INTO A FULL GLOBAL MATRIX REAL GIGK( 1BIGK,*) KM(IKH,A) INTEGER G(*) 0.1 1-1, 100F 1F(G(1) £90) 60 TO.1 00 3 Jai, 100F 1F(6(3).£0.0) 60 TO 3 as 4 s154(0(1),6(0) eatec6(1.ct0)96eN1.9) 3. CONTINUE! 1 CONTINUE RETURN END SUBROUTINE FHERAD(BEE, IBEE,DERIV, IDERIV, FUN, COORD, 1COORD, SUM, NOD) THIS SUBROUTINE FORNS THE STRAIN/DISPLACENENT MATRIX FOR AXISYMMETRIC STRAIN REAL BEE (1BEE,*) ,DERIV(IDERIV,*) ,FUN(*) ,cO0RD(1COORD,*) SUM. 2 Keo Lek KeDERIV(IM) BEE(1,L)= BEE(3,K) Y=DERIV(2M) BEE(2,K): BEE(SIL BEE (ALC) UNH) SUM 2 CONTIRUE RETURN ND SUBROUTINE FMOEPS(DEC, 1DEE,E.¥) THIS. SUBROUTINE FORMS THE ELASTIC PLANE STRAIN STRESS/STRAIN MATRIX REAL DEE (IDEE,*) Viel-V CoE/((L4¥) C1 SeeAd ti-vnsc DEE( 2,2 DEELS"3}--56C(1.-2.9¥) bee (h2yaise 0) DEE(3.2)= RETURN END ‘SUBROUTINE FMORAD(DEE, 1DEE, E,V) THIS. SUBROUTINE FORMS THE ELASTIC AXISYMMETRIC STRESS/STRAIN NATRIX eat ecco.) v Cel ye c.-2.90)) DECI, 1)-viec DEE(2,2)-v18C 426 B " 16 i ” seC(1.-2.4¥) id DEE(I,2)=v#C "6 DEEGS,2)+0. DEE(2\4)-vec DEE(412)-veC DEE(4.3)-0. DEE(3.8)=0, RETURN No SUBROUTINE FMDS1G(OEE, 1DEE, E,¥) THIS SUBROUTINE FORMS THE ELASTIC PLANE STRESS ‘STRESS/STRAIN MATRIX REAL DEE(IOEE,*) cet/(1.-¥e¥) Deed, se0r(1 sece(deoW) SUBROUTINE FNKOKE{ KM, 1KM, KP, 1KP,C, IC, KE, IKE, KD, IKD, + BOF, WD, [TOT THETA) THIS SUBROUTINE FORMS THE ELEMENT COUPLED STIFFNESS MATRICES KE AND KO FROM THE ELASTIC. STIFENESS KM, THE FLUID *STIFFHESS? KP AND COUPLING MATRIX C REAL KM(IKM,#*) ,KP(IKP,*) ,C(1C,*) ,KE(IKE,*) sKD(IKD,*) Do In T=1, 1d0F D9 12 Jel, 100F KE(I,0)-KH(1,9) Do 13 K-1,tod) KE(T, 10084): KE (IBD 4K, 1) CONTINUE Do 14 T=1,No0 D9 16 K=1,NO KE (100F + 100F4K)#KP(1,K) CONTINUE. Do 17 J=1, 1008 Do 17 Jel tT07 KO(T,0)=(THETA-1.)*KE(L9) E(1,3) -THETAPKE( 9) Melodes1 (LK) (UK) 18 18 DO 18 IN, 1707 Do 18 J1, 100F KO(1,d)=KE(T,3)*THETA KE(T,9)*K0(1,9) 1707 ToT KO(L a) =KE(L.I)8 (1; THETA)*THETA Kee RECE DAE HEMET RETURN END ‘SUBROUTINE. FNLAGD(DER, 1DER, FUN, SANP, ISANP, 1,3) THIS SUBROUTINE FORMS THE SHAPE FUNCTIONS AND THEIR DERIVATIVES FOR 9-NODED QUADRILATERAL ELEMENTS REAL DER( IER, *),FUN(*),SANP(ISAMP,#) ETA*SANP(I,1) 1 SaNPUI,1) ETAN-ETA-4. KIMeXI- ETAPSETALL. Alpexde1 ited, sxr-1 258X] IMMETROETAN ‘S*XTAXIN*ETAP®ETAN FUN(3) =. 25° *AIMMETAYETAP FUN(8) =", 5eX1PSKIM*CTA*ETAP FUN(5) =. 25°] *HIPPETAYETAP FUN(G) =", S*XI"XIP*ETAP*ETAM FUN(T)=.25°x1x 1PHETAYETAN FUN(8) ==. 59x 1PeXINSETA*ETAM. FUN(9) -xiPeKIN*ETAPSETAN DER(1, 1)=.25°X2H1*ETASETAN DER(1, 2)=".5eX2H1 ETAPSETAN 256X2MIETAMETAP XI*ETA*ETAP 25¥X2PI*ETASETAP Sx2P1*ETAPMETAN 256x2P1SETAYETAN XT*ETAPETAM XT*ETAPAETAN 25°XT*LINFEM] XTOXINCETA -25*X1*HIN*EZPL | SPAIP*HIMPE2PL 25°x1*x1°E2°1 AIAKIPAETA 25¢X1*x1 PEM S*x1PLIMPE2M) 9)=2. *KIPERIN*ETA RETURN END 427 428 ‘SUBROUTINE FMLING (DER, IDER, FUN, SAMP, ISAMP, 1,0,K) THIS. SUBROUTINE FORMS THE SHAPE FUNCTIONS AND THEIR DERIVATIVES FOR 8-NODED BRICK ELEMENTS REAL DER(IDER,*),FUN(*) ,SANP(ISANP, *) ETASSANP (1) xr=save(d, i) TETA-SANPLK,1) X1PexTs TETAP=ZETAAL. FUN(1)=. 1252 1MPETANSZETAM FUN(2) =. 125*XIM*ETAN®ZETAP FUN(3)=. 125®X1 PFE TANSZETAP FUN(4) =. 125®X1PFETAM*ZETAN FUN(5)=. 125¢XINSETAPAZETAM FUN(5) =. 125*KINSETAP*ZETAP FUN(7)}=- L25AXIPETAPAZETAP Fun(a)s,LesenT pet taPeré Tem DDER(L 1)=-. 125¥ETAN*ZETAM (DER(1 2) ==, 125¥E TANAZETAP ‘DER(L,3)~. L25*ETAN*ZETAP ‘DER(1;4)=,125*ETAM*ZETAM DER(15) =. 125*ETAPHZETAM DER(1\6)=-,125*ETAPYZETAP DER(1.7}=.i25#ETAPsZETAP (a), 125*€TAPSZETAM “1258KINSZETAM TQB*KINAZETAP U12BeKIPAZETAP 12561 peZETAM izbeximeze TAM 125ex1MeZETAP 125ex1PAZETAP 125"x1PZETAM T25*KINCETAM igsexINeeTaN T258x1 PETA 1250x1PHETAM T250XTH*ETAP igbexiwrerar 125*X1PAETAP s125*KIP*ETAP SUBROUTINE FALUMP(DIAG, EMM, IEHM, 6, 100F) THIS SUBROUTINE FORMS THE GLOBAL MASS MATRIX AS VECTOR DIAG REAL DIAG(*) ,EMN(TEMM,*) INTEGER G(*) 0 1 12, 100F 1F(6(1) .£9.0)¢070 1 DIAG(G(i))+D1AG(6(1))+EMM(1,1) CONTINUE! RETURN 00 SUBROUTINE FHPLAT(FUN,D1X,D1Y,02X,02V,02KY, SANP, ISAMP,AA, BB, 4d) THIS SUBROUTINE FORNS THE SHAPE FUNCTIONS AND THEIR 1ST ‘AND 26D DERIVATIVES FOR RECTANGULAR PLATE BENDING ELEMENTS REAL FUN(*) ,D1X(*) ,D1¥(#) ,02X(*) ,D2Y(*) ,02X¥(#) SANP(ISAMP,*) X=SAMPCT,1) ExSAMP(I, 1) XPL=Kl xp12=40is401 XP13=xP12*101 Ele Esl Epl2=ePiste1 EDI3-EPI2"EPI T58XP12+..25°XP13 TSSEPI2+. 2546713 XP1+. 25¢K012) (2+: 5*BBAEPI*(1.-£P1+.254EP12) P3e. 256xP124(3.,-201) Q3=.25%EP124(3.-Ep1) Pax 256AAAKPL2"(58XP1- Q¢=, 25¢BB*EPI2+( /5¥EPI-1,) FUN()}=P1*Q1 FUN(8) P2402 FUN(S)=P1+03 FUN(6) P2403, FUN(T) = 1408 FUN(8) -P2sg¢ FUN(9) -P3*03 FUN(20) -Pawg3 FUN(11)=P3%Q4 FUN(12) Page FUN(13)=P3*Q1 DQi=1 SetPI*( 5*EP1-1 DP2=AAR(.5-xBi+.375*K012) ‘092-B8R(:5-£P1+.375*EP12) Dp3-1.58KPI*(1, "59x01, 993-1 ;54EP1#(1!- 55€p1 pas, SeanexP]*(.756xP1-1.) ges 5*BB+EPI*( 754EPI-1°) 430 Daprel.sex. 25eAAM(3.4%-1.) 0201 25*hA*(3. 4X41.) 5H 25*B8*(3.46-1.) 201 25*BO"(3.%E41.) /=0P1*g1 Ix(2)-0P2"01 Dix(3)-P1*02 DIx(s)=pP2*02 DIX(5)-075*03, D1x(6)-092*03 DIx(7)=001+08 DIK(B)-0P2*04 D1x(9)-0P3*03. 01K(10)-pP4*03 D1x(11)=0P3*08 DIK(12)=DP8#g8 DIX(13)=De3*01 DIx(14)=De4*0 Ix(18)=003402 DIx(16) 09402 piv(1)=P1*001 biy(2)=P2=001 ply(3)-91+002 biy(4)=P2*002 Diy(5)=p1 +003 piv(6)=P2003 DIy(7)=1008 piy(a)=e2s008 onv(9 prvi od ond pil: on ova: ony 02x(1 02x(2)-0202"01 DeK(3)-2e1+02 Dax(4)-020202 12x 5)=0201+03 ‘D2x(5)=02°2403 02x(7)-0201-08 12x(9)=023°03 1b2x(10)=D2P4"03 D2x(11}-D2P3*g8 = 2x12) -D2P4*a8 12X(13)=D203601 o2k(14)=b2Pe*01 2k(15)-D2P3*02 2x16) -D2Ps~d2 ev(1)-P1*0201 ev(2)=p2s0201 02¥(3)-P1+0202 02v(4)=P2-0202 De¥(5)=1*0203 Dav(6}-P2*0203 Dev(7}-1+0298 Dav(a)-Pz*D29¢ Dev(9)=P3+0293 D2¥(10)=P4e0z03, bevqy 2y(13)-3+0201 b2y(14)=P4+0291, D2y(15)=P3+0292 D2¥(16) =Pasd2g2 Dexy(1) -DP1*DQI exy (2) =De2*Da1 axy(3)-0P1*Do2 oxy (a)-oee-D02 Daxy (5)=DP1*003 Dexy (6) -De2*D03 exy(7)=DPl*Das oxy (a)-Dee*D08 oxy (9) =DP3*D93 Dexy(10)=0P4"003, Dexy(11)-073*008 Daxy(12)=0P¢+D08 oxy (13)=0P3*0q1 oxy (18}-0P4*0q1 Daxy (15)=DP3*002 Dexy(16)=0P4*002 RETURN END SUBROUTINE. FQUAD(DER, 1DER, FUN, SAMP, 1SAMP, 1,0) THIS. SUBROUTINE FORMS THE SHAPE FUNCTIONS AND THEDR DERIVATIVES FOR 8-NODED QUADRILATERAL ELEMENTS. BEAL OER{ 108, +) ,FUN(*),SHHP(ISHP,*) sAMP(T, 1) Erssanr(d.i) ETA. 25*(1.-€TA) 25°(1 467A) 25"(1. 41) X1P2.25°(1 4X1) FUN(J) <4, *ETAM*KIN®(-XI-ETA-1.) FUN(2)=32, *ETAMEXIMSETAP FUN(3)=4.ETAP*KIN®(-XI¥ETA+L.) FUN(2)-32_*KINGKISETAP FUN(S)=4, *ETAP*KIP*(X1sETA-I. ) FUN(6)033.*ETAPHXIpFE TAY FUN(7)=4,*XIP*ETAN® (X1-ETA-1,) FUN(8)=32.*KINGYIP*ETAN DDER(1, 1)=ETAM*(2.*K1 ETA) DER(1,2)=-8.*ETANEETAP DER(1,3)=£TAP*(2.*KI-ETA) DER(1.4)=08 -*ETAbeKL DER(1,5)=£TAp#(2,*x1seTA) DER(1,6)-8. sETAP=ETAM DER( 1,7) -ETAN(2.*x1-ETA) DER(1,8)=-6. ETAIXI DERG 2:1 oxi (Xe2- ETA) 431 432 DERI? DER(?. iP (K142.*€TA) )a-6. #X1PRETA xIP*(2.4ETA-X1) XTX? DER(2,3)= RETURN END SUBROUTINE FMQUA3(DER, TDER, FUN, SAMP, ISAMP,1,J,K) THIS. SUBROUTINE FORMS THE SHAPE FUNCTIONS AND THEIR DERIVATIVES FOR 20-NODED BRICK ELEMENTS REAL DER(IDER,*) ,FUN(*) ,SANP(ISANP,*) INTEGER 411 (26) ,ETAT( 20) ,ZETAT(20) XT=SAHP (1,1) ErmeshH? (3,1) ZETA-SAMP(K,1) 1 XIT(6}-1 XI(-1 XID) 1 xIE(2)=1 XIN) «1 xIT8)=1 XI(19)=1 Dol i-1,8 era Do 2 L=9,12 TETAI(8) ZETAI(S) ZETAI(I2)=-1 ZeTAL(13)=-1 TETAI(I9)=-1 ZETAL(20)=-1 ZETAL(2)=0 ZETAI(6)=0 ZETAI(N4)=0 ZTETAI(18)=0 TETAL(3)=1 ZETAI(A)=1 433 TET TETAL(I Do ¢ L-1,20 X10=xI*xi1(L) ETAO-ETRYETAT(L) ZETAO=ZETA*ZETAL (L) TF(L.EQ.4.0R-L.£0,8.08.L.0.16.08.L.£0.20)THEN Fun(L)=.256(1 “x1 xi) "(1 sE1H0)*(1 sZE7HO) DER(I.U)=- S941 (1. +8780) (1. +20TA0) DER(2;L)=.25%ETAI(L)*(1. -XI*X1) (1. 4ZETRO) DER(3)L)=-25*ZETAN(L)*(i. -¥1°K1)*(1.+€TR0) ELSE TF(L.GE.9.AND.C, LE. i2)THEN FUN(L)=,288(1.+810)*(1.-ETATETA)*(1.+ZETAO) DER(I, (j=. 258401 (L)* (1. -ETA*ETA}*(1-4ZETAO) DER(2;L)=".SHETAE(1_4X10)*(1 +ZETAO}) DDER(3))=.25*ZETAT(L)*(1.+310)*(1.-ETASETA) ELSE FF(LLEQ.2.08.L.€0-6-0R.L.E0,i8.0R,L.€0.18)THEN FUN(L) =. 25*( 1, 4x10) (1 4€1A0) *(1-ZETASZETA) ‘DER(1, (j=, 258811 (L)# (1. 4€TAO) *(1.-ZETASZETA) ‘DER(2;L)=.25*ETAI (L)*(1.4K10)*(1_- ZETASZETA) ER|SiL)=-BrZETAR(L #X10)°C. E140) ELS FUN(L)=.1254(1,4X10)*(1.4ET#O)*(1.+ZETAO)* (XTOsETADSZETAO-2.) DER( Ls j=. 1250KT1(L)*(1 £780) *(1-4ZETAO)*(2, *KIOSETADSZETAO™1.) DER(2;L) =. 125*ETAL(L)*(i.+X10)*(1 4+ZETAO)* (Xi0+2. *ETADsZETAD~ DER(3}L)=:125*ZETAT(L)*(i#K10)*(1.+ETAO)*(X104€TA042. *ZETAO-1- END Te CONTINUE RETURN END SUBROUTINE. FHTETS(DER, IDER, FUN, SAMP, 1SAMP,1) THIS. SUBROUTINE FORMS THE SHAPE FUNCTIONS AND THEIR DERIVATIVES FOR &-NODE TETRANEDRON ELEMENTS: REAL DER(IDER,*) ,SAMP(ISAMP,#) ,FUN(*) FUN(1)=SAMP(T;1) FUN(2}=SaMP(1,2) FUN(3)=SAMP(1;3) FUN(4)=1. -FUN(1) -FUN(2) -FUN(3) 3 434 SUBROUTINE FHTRI3(OER, TDER,FUN, SAMP, ISAM, 1) THIS. SUBROUTINE FORMS THE SHAPE FUNCTIONS AND THEIR DERIVATIVES FOR 3-NODEO TRIANGULAR ELEMENTS REAL DER(IDER,*) ,SANP(ISAMP,*) ,FUN(*) FUN(1)=SAMP(T,1) FUN(2)=SAMP( 1.2) FUN(3)=1.-FUN(1)-FUN(2) DER(L1)<1 DER(I,2)-0) DER(1,3)=-1. DER(2\1)=0. DER(2,2)-1 DER(2,3)= RETURN END SUBROUTINE FHTRIS(OER, IDER,FUN,SAMP, ISANP, 1) THIS SUBROUTINE FORMS THE SHAPE FUNCTIONS AND. THEIR DERIVATIVES FOR 6-NOOED TRIANGULAR ELEMENTS REAL OER TOER,*) SMP ISAMP,*) FUN(*) Cl=SawP(T,1) C2=sawP( 1,2) Gel. -c1-{2 Funci)=(2,4c1-1.)*C2 FuN(2)=4.ec1#c2 FUN(3)=(2."C2-1.)*C2 FUN(8)=4.¢2403 FUN(5)=(2.°C3-1.)*C3 FUN(6)=4. C3401 DER(I, 1)=4.2c1-1. DER(1,2)=4. C2 DER(I, 3-0, DER(21)=0. : DER(2,2)=4.¢C1 DER(2,3)=4.#C2-1 DER(2,4)=4.(C3-C2) BER(2,3)--48; 6-1.) SUBROUTINE FHTRIS(OER, IDER,FUN,SAMP, ISAMP,1) THIS. SUBROUTINE FORKS THE SHAPE FUNCTIONS AND THEIR DERIVATIVES FOR 15-NODED TRIANGULAR ELEMENTS REAL DER( IER, *) SANP(ISAMP,*) ,FUN(*) C1=SaMPCT,1) Co=SaMP(T, 2) cel. -c1-€2 1-25 Test)’ T3eC1-.75 435 Tee2-.25 TeC2- 5. T6eC2-.75 18=C3-.5, 192C3-.75 °32./3.4c1471T2473 28/3. *C1*C2*T 1872 8. SCIACDATI ATS FUN(4)-128./3. *C1*C24T4*T5 FUN(5)=32,/3.4c0#T4*T5*76 FUN(6)=128./3.*¢2*C3°T4#T5 FUN(7)~68.*c2c3*T¢e17 FUN(8)=128./3, casca*Ty+Ta FUN(9)=32./3. ic3¥T7+Te*19| 128./3.C38C1* 1778 64. 4C3¢C]*T1*T7 128./3,*C3¢c1"T14T2 FUN(13)=128.*ciacoeTiec3 FUN(14)=128.*C1*coecaeTa FUN(15)«128-*c1*C2¥¢3#77 DER( 11) =32./3.4(T2*73#(TILsC1)9C14T2*(T34T2)) DER(1.2) 128,/3.*C2e(T2#(Th4Ch)¥C1*T1) DER(I;3)=68.*C2+Te¥(TH¥cl) OER(1,4)=128./3.*ce*Ta+TS: ER(1,5)=0. ER(1,5)=-128./3.*coeT4eTs OER(1,7)=-68,*C2T4* 17403) DER(1,8)=-128./3.#c28(TE*( T7403) 4C38T7) ‘DER(1,9) -32,/3.¥(TRe19* (17403) +C3*77* (TANTS) ) (DERI 10)=128./3.*(c3*T7*TB-C1*( Te (T7+C3}+C3*77)) DER(I 11) 964.*(C3*77H(THsC]) -C1*T1#(17403)) DER(112)=128./3.4(C34(T2e(THsC1)scl*T1)-C1*TI#T2) ‘DER(1,13)*128-*c2*(c3e(THeCl) -C1*T1) DER(I 14) =128. scz+Te¥(C3-C1) ‘DERI 15)=128.*C24(c3*T7-C1*(T74¢3)) DER(2,1)=0.0 DER(2,2)=128./3.¥c1*T1*T2 ER(2,3)=64.*C1Ary*(rasc2y DER(2, 4)=128./3.c1* (TSH (Tesc2)4¢24T8) BER(25)-39./35 TST (T4s2) C2" Tee (TesTS)) DER(2,6)=128.73..((c3* TS*(TasC2) +C2*T4) )-C2*T4T5) DER(2,7)=64.5(C3+T7A(T44C2)-c2*Ta*(T7403)) DER(2,8) 128. /3.¥(C3*T7#18-C2*(T8*( 17403} +C3*17)) DER(2,9)=-32./3.*(TB*T9*(T74C3) 4C3"17* (T8478) DER(2,10)~-128,/3,*C1*(TB*(T7+C3) 43417) “64.4 DER 2,11 1(174¢3) DER(2;12)=-128,/3.*ca*T1°T2 ER(2;13)=128.*c)éTI#(c3-c2) (DER(2, 14) -128"*C1*(c3 (Tasca) -c2*TA) ‘OER(25 15) =128.C1*(C3*17-C28(C34T7)) ReTURH 436 SUBROUTINE FORMB(BEE, 1BEE, DERIV, IDERIV, NOD) THIS. SUBROUTINE FORNS THE STRAIN/OISPLACEMENT MATRIX FOR PLANE STRAIN REAL BEE(IBEE,*) ,DERIV(TDERIV,*) 00 1 Nel, NOD. Cont Tie RETURN END SUBROUTINE. FORNB3 (BEE, IBEE,DERIV, IDERIV, NOD) THIS SUBROUTINE FORMS THE 3-0 STRAIN-OISPLACEMENT MATRIX REAL SEE(IBEE,*) ,DERIV(IOERIV,*) 00.1 NeIsHe0 Neatw kt tel XcoeRIV(1.M) EEC, L)ak BEE Kok BEE(6,N): Ye0sRiv (2am) BEE(2.K)=¥ BEEacL)o¥ BEE(S A) o¥ Te0¢Riv Gm) BEEG3.A)=E (Stk)oE BEE L)-2 ont Tue fenuRN ho SUBROUTINE FORMO3 (OEE, IDEE,E,V) THIS SUBROUTINE FORMS THE 3-D STRAIN STRESS/STRAIN MATRIX REAL. DEE(IOEE,*) vwiev/(l.-v) Seany/(doWe.8 437 Bee a}o¥t EE (2,3 OEE (3,2)=V1 EEC.) NULL 57, 412, 482 NULL3 $7, 412, 452 NULVEC 57, 412, 453 NUMIN3. 73, 412, 453 NUMINT 64, 412, 454 Numerical integration $0, $1 Offshore structures 351 Orthogonality 89 PARAMETER 8 PASCAL 4, 11 Passive earth pressure 218 Piles ‘axially loaded 351 laterally loaded 359 groups. 365 PINI2 123, 413, 456 PINS3 125, 413, 457 Plane stress 25, 63, 144, 150, 312 Plane strain 25. 63, 154, 157, 161, 165, 304, 308, 315 Plasticity isotropic 194 kinematic 194 associated 195 rnonsassociated 195 Mohr-Coulomh 198 Von Mises 197 Plastic analysis of frames 127 Plate bending 33, 138 Porepressures 227 Porous media 241 Portability 6 Prantl load 211 PRINTA $8, 413 PRINTV. 58, 413 PRNCPL 413, 458 Propagation problems 320 Quadrature $0, $1 Quadratic elements 67 Rayleigh damping 91 Ritz method 24 READNF 73, 413, 458 Reduced integration 50 Rod element «1S inertia matrix 17 eigenvalue equation 18 Second order time dependent problems 88 Seepage 245 Seepage through porous me Shape functions 16 SLOGEO 215, 399 Slope stability 211 Software 4 SOLVBA 57, 413, 459 SPABAC 57, 413, 459 SPARIN. 57. 413, 460 Sparse (skylie) storage of matrices m Special purpose routines $9 STAB2D 136, 414, 460 Stability of frames "134 Steering vector 76 Stiffness matrix 17 Stress invariants. 195 Storage of global arrays 76 Structural analysis 97 Structure charts 9 Structured programming 9 Theta method 82, 325 Three-dimensional analysis 178, 182, Iso, 232 Three-dimensional elements 69, 72 Time-dependent problems firstorder 82, 250 second-arder “88, 320 ‘Transformation of coordinates 48, SI 469 Transient problems 82, 88, 250, 320 TREEX3 57, 414, 462 Tresca criterion 198 Tridiagonalization 58 TRIDIA 58, 414 Trusses 2D, 121 3D, 124 TWOBY? $7, 414, 462 Und ned analysis 224 Variable stiffness 193 Variational methods 24. 268 VECADD 57, 414, 462 VECCOP. $7, 414, 462 Vector processors "3 Vibration free 300 forced 320 Viscoplasticity 200 VMPL 344, 414, 463 VOL2D 87, 414, 463 Von Mises failure criterion 197 WVMULT 57, 414, 463 Wave equation 372 Weighted residuals 17 WELGEO. 246, 400 Wilson theta method 92, 330 Yield surfaces ‘Moht-Coulomb (Tresca) 198 Von Mises 197

You might also like