Beruflich Dokumente
Kultur Dokumente
by
TABLE OF CONTENTS
TABLE OF CONTENTS 2
1. INTRODUCTION 8
1.1 General 8
1.2 OBJECTIVE 9
2. MAIL 10
2.1 General 10
5. EXAMPLES 39
EXAMPLES ON USE OF SOLVE COMMAND 39
Program 39
Results 40
Program 40
Results 41
Program 1 41
Results: 42
Program 2: 42
The major breakthrough came when author had a chance of higher studies on a DAAD
scholarship form Government of Federal Republic of Germany, at AIT. It was at AIT, where
author enjoyed patronage of world-renowned scholars like Professor Pisidhi Karasudhi,
Professor Worsak Kanok Nukulchai, Professor Mahesh Verma, Dr. Tamon Ueda, Dr. H.
Horii and Dr Martin Wieland. Professor Worsak Kanok Nukulchai is known as an Expert on
Computers and Structures. The journey, which started in 1981 and continued slowly and
painfully, got a boom here under the guidance of these scholars. Professor Worsak himself
author of many innovative computer programmes was always generous to deliver advice and
help on any matter referred to him. He very kindly allowed the use of the algorithm of his
program AIT. That was a turning point. From then onwards the work that remained in
suspended animation for years was completed in months.
The First Version of MAIL was completed in January 1990. It was not possible to complete
this job without the generosity of Professor Worsak. The algorithm of AIT was followed and
Four Subroutines LIST, DELETE, FIND and TAPE were adopted after small modifications
as the basis of this language from the AIT package, for which author is highly indebted to
Professor Worsak Kanok Nukulchai. These subroutines were modified to increase the
efficiency of the language in terms of the execution time on microcomputer. Author is highly
grateful to Professor Shaheen Akhtar of UET, Lahore and Professor Khalid Mahmood of
KAAU, Jeddah for their valuable guidance. Many thanks are due to colleague Mr. Ahmad
Sana and to Mr. Tauqeer Azhar from Pakistan Railways who helped in testing and debugging
most of the routines. Credit also goes to the undergraduate students of final year sessions 85
and 86 who helped in perfecting the programme.
Several changes have been incorporated since the first edition of the language. The notable
ones are:
The addition of Finite Element Procedures.
The language compatibility enhancement to AIT.
Automation of Force Method.
The package when initially released was limited to have two finite elements. The author
intended to include ten finite elements. However, he could not succeed due to one reason or
the other. At present five finite elements that are compatible to those included in AIT are
included in the packages. The work is in progress on the other five elements and it is
expected that these will be included by middle of the year 1994.
The first edition was published in year 1992. The language syntax, as far as possible, was
made compatible to AIT. However, due to lack of time and tediousness involved in re-
writing the pre-processors, certain incompatibilities could not be removed by then. In the
present edition, it may be claimed that a user will not face much difficulties if he switches
from AIT to MAIL or vice a versa. The procedures are remodelled in such a way, that a user
can even refer to AIT manual while using MAIL. However, there are certain procedures that
are not available in AIT. These are finite element procedures BEAM, TRUSS, FRAME,
GRID and GENT, Moment Distribution Commands CO and DF, Matrix Flexibility Mesh
GDFM and solution of unsymmetrical system of equations, INVERT. Moreover,
incompatibility in some other procedures like COVNERT and READ is not removed
purposely.
During the summer of 1993, Mr. Aslam Shahid under the supervision of the author worked
on "Static Analysis of Structures by Direct Force Method". The procedure has been
implemented in MAILX under the command GDFM.
The author is highly indebted to those who helped in the development and enhancement of
the package physically or through their positive criticism. Among them are the postgraduate
students, who put forward many suggestions during the teaching of Advanced Structural
Analysis. The author has tried to incorporate their suggestions as far as possible. It is hoped,
it will make the package more user friendly. A special vote of thanks goes to those, who tried
to dishearten the advisees and students of undergraduate as well as postgraduate courses
through a series of well planned misinformation. The misinformation spread by them and the
negative comments made by them helped a lot in elevating the teaching and language
standards.
1. INTRODUCTION
1.1 General
In modern structural analysis, the simplified methods of past have been replaced by more
rigorous and general numerical procedures such as matrix methods, which permit analysis of
any type of structural problem to the desired degree of accuracy. The formulation of the
problem is precise and very much mechanical in nature; however the numerical computations
involved in the solution, even with a small size problem may be very tedious and
cumbersome. That is why the simplified classical methods have been so popular among the
structural engineers in the past and even today [1].
After the advent of the digital computer, the use of modern methods of analysis became more
and more popular. A large number of general-purpose programs have been written by a
number of software vendors as well as by novice users. These packages are black box
programmes by nature. The user supplies data according to the specified format and gets
results. However a user knows little about what is happening inside the programme.
Moreover, such types of programmes require a little skill or knowledge of structural
mechanics on the part of a user. Thus such programmes have little significance for structural
engineering students.
The teaching of modern matrix methods in structures and civil engineering is handicapped in
the absence of some tool, which may perform all the matrix operations on large arrays with a
little difficulty of programming involved. Need of such a tool is of two fold in teaching.
Primarily to deliver the basic concept of complex problems by more and more practise and
secondly to attract the students towards computers, which even today, are some thing very
strange for them.
A number of interactive programmes have been developed in recent past including AIT [1],
FEAP [2], CAL [3] and MATOP [4]. These programmes are designed for research and/or
educational purposes especially. AIT programme offers a full range of matrix operations. Ten
Finite Elements are also included in this package. It is a handy programme mainly suited for
Mainframe Computers. A microcomputer version is also available. The programme is
symbolic in nature and easy to use. Some basic knowledge of FORTRAN programming is
required for efficient use of AIT, though not mandatory.
FEAP employs a different approach. Macro programming language is used to perform one or
9
several steps in analysis of a structural problem. The main procedures like data input,
assembly of stiffness matrix and right hand side force, and the solution of simultaneous
equations are invoked by user without knowing exactly how the job is done. It is useful
mainly for experienced researchers in structural engineering and mechanics. The user cannot
name the arrays and has no way to access the arrays.
CAL, like AIT offers a full range of matrix operations. The various arrays are loaded by their
names assigned by user and handled at his will. Since this programme was developed mainly
for academic purpose, only simple algorithms were designed. Only one type of equation
solver is available. It also has a capability of finite element operations. However, a user has
no way to get access to this process and may not handle the arrays involved at his will.
MATOP [4] is a simple programme, which offers only a limited number of matrix
operations. The algorithm of the program is too simple and altogether different than the
aforementioned programmes. It is an extremely simple and useful package for teaching
structural analysis at undergraduate level.
1.2 OBJECTIVE
As mentioned in preface, author tried to develop a general purpose language for assisting in
teaching of structural analysis when he had little knowledge about the existence of such other
programmes mentioned in the previous section. Routines for performing various matrix
operations were written and perfected much earlier. Later on during his stay at AIT, he found
several programmes out of which anyone could have fulfilled the objective. The idea of
developing MAIL could have been dropped and any package could have been adopted.
Instead of adopting any programme blindly for teaching purpose, author considered it better
to adopt the basic philosophy of some package and build the MAIL programme around that
basic structure. The AIT [1] was followed as basic inspiration and it was tried to follow its
syntax as far as possible.
Author learned about the existence of the package MATOP [4] much later, during the year
1991-92. The basic approach of MATOP is so simple and elegant, that author should have
preferred it to follow instead of AIT [1], had it been known earlier. At later stages, however,
it was not possible to remodel once again all the procedures. The shortcoming and
capabilities of a package developed by him are well understood by the author. Moreover, the
procedures being written independently, author has a complete knowledge of inside of the
MAIL. As such imparting instructions to the students will be much easier and lessons will be
more comprehensive as compared to adopting the programme written by others. It is well
established fact that it takes years to achieve perfection in use of a package written by others.
MAIL (Matrix Analysis Interpretive Language) is developed keeping in view all the teaching
and research needs.
10
2. MAIL
2.1 General
MAIL is basically a database programme written in FORTRAN language. The basic
structure of the programme is inspired by AIT [1]. The programme consists of over 600
interacting subroutines. The 4 subroutines namely LIST, FIND, TAPE and DELETE are
adopted from AIT [1] and have been modified according to the requirements of MAIL.
MAIL was originally provided for two different levels. First level of MAIL consisted of
general operational statements like READ, WRITE, DEL, SUB, MUL, REN, DIR, and ADD
etc. This portion was independently capable of performing all the matrix operations like
addition, subtraction, multiplication, inversion, transposition in addition to formal input and
output operations and other array handling operations like deleting, renaming, copying etc.
This programme contains some finite element-operation statements like BEAM, TRUSS,
FRAME, GRID, GENT, ASMB, DSMB, and MODIFY etc. This level of the programme was
named MAIL and was useful for teaching Modern Structural Analysis at undergraduate level.
The second level of the programme included Finite Element Mesh Generation as well. In this
level the complete structures may be analysed by flexibility or stiffness approach but the
main algorithm was to be supplied by the user. The entire range of the capabilities of MAIL
was also included. This level of programme was named as MAILX and was useful for
teaching and research at postgraduate level. The two levels have been merged since 2001
with the advent of high speed and vast memory computer and certain procedures have been
dropped from the language. The package now is presented under generic name "MAIL".
insensitive. The command Add is unique to ADD or AdD. The operation data must be
supplied according to the specified syntax or an error occurs otherwise.
In file mode the programme and data are supplied through a programme file. The Output may
be received in files or on the monitor or may be directed to a printer directly if so desired.
The Programme Files are ASCII Data Files generated by EDLIN, WordStar or any other
Text Editor like NOTEPAD. The text editors should be used in non-document mode only.
The matrix data may be stored on secondary units (or Binary Files) to free the Data Bank for
the time being and may be retrieved back during the same or subsequent executions of the
MAIL.
12
User interacts with the MAIL through single line "Statements" to specify a process and
matrix names involved in that process. Every Statement line consists of:
Commnand, ArrayNames, Flags
The Command is the name of a process. The Array Names are names of the matrices
involved in that process. The Flags are the integer parameters which are characteristic of
array type and size, and process options. It is possible to perform different tasks with the
same command by supplying different process options through flags.
If a Command attempts to create any Matrix Name, which already exists, the directory and
contents of the previous matrix are destroyed; it is deleted and registered again through the
LIST procedure. The new matrix need not be of the same size as of the previous one.
The Command and Data are supplied in a free format separated by COMMAS in general for
the convenience of user
13
3. USER'S MANUAL
If n3=2, the contents of the matrix are transferred to memory in profile format. The active
coefficients of a square symmetric matrix are read into memory. In this case n1 is "number of
total active coefficients" and n2 is "number of columns or rows of the square symmetric
matrix". The contents of the matrix are input column wise. The data is followed by this
command. After the data of coefficients is exhausted, the data of the diagonal pointers are
provided in free I format on a new line. (Refer to Figure 3.1.1 for profile of a matrix)
5 0 0 0
0 8 0 1
A
0 0 6 0
0 1 0 9
1 2 3 6 (Diagonal Pointers)
The data of the above matrix A may be input in either of the two ways:
OR
READ,A,6,4,2 6 Active elements, 4 columns/rows, profile type 2
5,8,6,1,0,9 Active Coefficients
1,2,3,6 Diagonal Pointers
The top zeros in any column are not included in the profile of the matrix. (The AIT
equivalent of READ is LOAD,A,n1,n2,n3,n4. Where n4 specifies the format pattern to be
provided by user or to follow the built in format within from the package.)
To delete all the matrices form the storage use DEL, *. It may be noted that this process is
non-recoverable. However, START command may be used for same purpose.
contents are transferred to a file whose name is supplied by the user as per demand of the
MAIL programme. The space occupied by the contents is freed for other matrices. At normal
exit from MAIL, the directory structure of all the matrices transferred from memory to disk
file is listed on console as well as in a file DIR.INF. This file is changed after each execution
of MAIL in which command FILE is used. Hence this information must be saved in some
other file to facilitate the future retrieval of those matrices.
Example: File,A,2 The execution of this command will transfer the contents of matrix A in
file 2 whose name is to supplied by the user through key board at the demand of the MAIL
programme. The following message will be flashed through console:
++ An array is transferred from Core to record i of File 2 ++
File name missing or blank- Please enter file name UNIT 20?
Here user has to supply file name in which matrix is to be stored. This is done for first matrix
transfer to file 2. On all subsequent transfers to file 2, this file name is used by MAIL
automatically.
The load and File were useful in early days when computers had limited memories. However,
they are still kept for compatibility with old input files.
1 0 0
0 1 0
A
0 0 1
0 0 0
Operating System. All the input and output files are closed. Every MAIL Programme must be
concluded by STOP or an error occurs otherwise.
SKIP,A,n
This command skips next n statements within same level of FOR-NEXT loop if first element
of array A is negative. The data outside the loop should be arranged for such cases carefully.
It may be noted that you can not jump out from one loop to the other by this statement.
SUB,A,B
These commands subtract Matrix B from A if A and B are compatible for addition. The
results are respectively stored in C for the first syntax and in A for the second syntax. An
error occurs if the two matrices are not compatible for addition. (The AIT ADD and SUB
work in the second syntax alone.). The commands ADD and SUB have same syntax.
(The AIT equivalent of MUL is MULT,A,B,C. It has no equivalents to the other formats)
This commands generates a matrix B which is Transpose of the matrix A. Any matrix with
the name B is deleted automatically. (The AIT equivalent is TRAN,A,B.)
operation is completed. Ncol can not be greater than number of columns of matrix A.
3.3.11 Solution of Simultaneous Equations
SOLVE,A,B,nl
This command may perform anyone of the following tasks depending upon the value of nl.
(It is fully compatible to the AIT SOLVE.) A is a +ve definite symmetric square matrix and
B may be a matrix or a vector. n1 can have a value from 0 to 5
0. Solution of Symmetric System of Equations
For nl=0 it solves set of equations Bik=AijXjk The values of unknowns X are stored in matrix
B and matrix A is reduced.
1. Forward Reduction of the System
For nl=l. it performs forward reduction by Gaussian elimination of the matrix A alone.
Matrix B remains unchanged. (Matrix A is triangularized or reduced). Thus it is optional
whether to use Solve,A,l or Solve,A,B,l.
2. Backward Substitution in a Reduced System
For nl=2, with a previously reduced matrix A, it solves Bik=AijXjk . The results of X are
stored in B.
3. Inversion of Matrix
For nl=3, it replaces A by its inverse. For nl=3 the syntax may be Solve,A,3
Solve,A,B,n1=4,n2
For n1=4, effect of top n2 equations is eliminated from rest of the equation in the system,
when n2<N, where N is total number of equations in the system. When n2=N, the solution of
last unknown is placed at Nth position in the reduced vector B and A is fully reduced. It may
be noted that n2 can not be zero; if so no action takes place.
Solve,A,B,n1=5,n2
For n1=5, the backward substitution for top n2 equations is performed and solution is
obtained for top n2 unknowns. A must be partially reduced using n1=4 and B must contain
the solution of bottom N-n2 equations where N is number of total equations in the system.
unsymmetrical square matrix A. (The AIT did not have any equivalent to INVERT.)
Matrix D is a square matrix in which all the distribution factors are posted as negative values.
In the following D is given for the continuous beam shown below.
M1 M2 M3 M4
20,2I 20,I
1 0 0 0
0 2 / 3 2 / 3 0
D Distribution of M3 to M2.
0 1 / 3 1 / 3 0
0 0 0 0
A fixed support has a zero distribution factor and a hinge support has -1. An element Dij
gives the Distribution of j'th moment to the i'th moment. (The AIT did not have any
equivalent to CO.)
3.4.2 INVEL,B
This command replaces each element of the matrix B by its inverse. That is a new matrix B is
generated in which each element is l/element of the original matrix.
22
3.4.3 SQREL,A
This command replaces each element of matrix A by its square root.
3.4.5 MAX,A,B
This command generates a column matrix B in which each row contains the maximum
absolute value of the respective row in the matrix A.
3.4.6 NORM,A,B,n
This command generates a row matrix B in which each column contains the sum of the
absolute values of the respective columns of the matrix A when n = 0. Otherwise, it creates a
row matrix B whose each column contains the square root of the sum of the squares of the
elements of the respective column of the matrix A.
1 2 1 3
2 4
CBEAM GBEAM
D4
Y D5
D3 2
2 D2 D4
D2 X D6
PTRUSS Z
D3 1 D1 STRUSS
1 D1 Global Coordinates
The command is followed by 7 entries in which (xl,yl) and (x2,y2) are coordinates of nodes 1
and 2 respectively, E is Young's Modulus of Elasticity, I is Moment of Inertia and A is Area
of X-section.
The degrees of freedom both in local and global coordinate systems are shown on the
diagram that follows.
24
D5 d5
D6 d4
D4 d6
D2 2
2
d2 d3
D3 D1 d1 1
1
The command is followed by 8 entries in which (xl,yl), (x2,y2) are coordinates of node 1 and
node 2 of the element respectively, E is Young's Modulus of Elasticity, I is Moment of
Inertia, G is Shear Modulus and J is Polar Moment of Inertia.
The detail of the degrees of freedom and corresponding actions is given on the subsequent
diagram.
M2 P2
5 6
M1 P1 T2 6 5
2 3 4
3 2 4
Z Y
T1 1
` 1
X
Local System Global System
3.5.6 Create Stiffness Matrix of Space Frame Element
SFRAME,A,nl
X1,Y1,Z1,X2,Y2,Z2 When n1=0
E,G,Area,Ixx,Iyy,Izz. where Iyy and Izz are moment of inertias of Principal Axes.
And stiffness in Global Coordinates is generated when n1 <>0. In this case provide
X1,Y1,Z1,X2,Y2,Z2,ISwitch
E,G,Area,Ixx,Iyy,Izz
25
When n1<>0. ISwitch =0 if Principal axes coincide with y, z-axes, and non-zero otherwise.
When ISwitch is nonzero, the data is provided as follows
X1,Y1,Z1,X2,Y2,Z2,ISwitch=1
Xp,Yp,Zp (Coordinates of a point lying in Principal Plane which give direction of one of
the Principal Axes.
E,G,Area,Ixx,Iyy,Izz
3.5.6 Create a Transformation Matrix
GENT,A,n1 (n1= 2,3,4,5: Ptruss, Grid/Pframe, STruss, SFrame))
X1,Y1,X2,Y2 (n1 =2 or 3 for Plane Truss, Frame and Grid)
X1,Y1,Z1,X2,Y2,Z2 (n1 =4, for Space Truss)
X1,Y1,Z1,X2,Y2,Z2,IST (n1=5 for Space Frame)
XP,YP,ZP (Omit this data line when IST=0)
In case n1=5 and the Principal Axes of the section coincide with local y, z axes give IST=0,
otherwise IST is given non-zero value like 1. When IST is nonzero another line of data is
given which provides the coordinates of a point lying on yp-axis.
This command generates a transformation matrix for an element in plane or space.
Z,z
side force vector may also be assembled by this command. For that purpose B should be a
Vector. A 1x1 matrix is considered a vector! (The AIT equivalent command is ASSEM.)
3.5.7 Dissemble
DSMB,A,B,nl
Address(1),Address(2), ,Address(n) (all in free I format separated by commas.)
Value(1),Value(2) , ,Value(n) (all in free F format separated by commas.)
This command performs reverse of the ASMB in case of a Vector. A new vector B is formed
such that B(1)=A(Address(1)) and so on. None of the components of Address Vector could
be greater than the size of A. The input destination vector must follow the command line. For
any Address(i)=0, B(i) is set equal to the Value(i) provided on the subsequent line. Any
Value(i) [of B(i)] given to a non zero Address will be ignored. The data line of Value() must
be omitted if all the components of Address are nonzero. None of the Addresses can be
greater than the size of the matrix A. (The AIT equivalent is DISSEM.)
Examples:
Let: A=(-90,5,7,8,9,100)
DSMB,A,B,8 (Creat an 8x1 vector B from 6x1 vector A)
0,0,0,3,1,5 (B1,B2,B3 from next line,B4=A3, B5=A1,B6=A5)
0,200,-300,0,0,0
The created Vector B=(0,200,-200,7,-90,9)
Let C=(10,20,30,40,50,60,70,80,90,100)
DSMB,C,A,4 Create 4x1 A from C
3,4,9,1 This time all elements of A are available from C hence second line must be
omitted.
A=(30,40,90,10)
3.5.8 Modify a Set of Equations
This command may be used in either of the two forms
MODIFY,A,B,C,D,nl (n1 can not be less than 1)
i(l),x(l) (repeat the data line for n1 times)
i(2), x(2)
---,----
OR
MODIFY,A,B,C,D
nl (if n1 is zero the subsequent lines must be omitted essentially)
i(l),x(l) (repeat for n1 times when n1 > 0)
i(2), x(2)
---,----
This command modifies a system of equations AX=B to CX*=D to conform to the
prescribed values of X. If first system consists of n equations, the new system will consist of
n-n1 equations. That is it consists of equations corresponding to the unknown values only
27
and is stored in C and D respectively. Here n1 is the number of the prescribed values and as
many data lines specifying equation number i() and prescribed value x() must follow the
command line. None of the i() can be greater than the total number of the equations. The
second syntax is useful for placing inside a loop. It may be noted that when n1 is given zero,
the system of equation A, B is duplicated into C, D without any modifications.
For n=1 and n=2 the following flexibility matrices are generated for shear and moments at
end 1 and end 2 respectively.
L3 / 3EI L2 / 6 EI
2 n=1
L / 6 EI L / 3EI
L3 / 3EI L2 / 6 EI
2 n=2
L / 6 EI L / 3EI
It may be noted that we require stiffness matrices corresponding to each of the 5 element
flexibility matrices for use in analysis by Displacement Methods, when element deformation
vector is taken compatible to the element force vector the inverse of flexibility matrix is
stiffness matrix required for that case. So user can generate a flexibility matrix and then take
its inverse by using the command "SOLVE, MatrixName, 3" to accomplish the job. The
direct process for such stiffness is not implemented due to this reason.
The following flexibility matrices are generated respectively for n=1 and n=2. The
corresponding member forces are axial force, shear and moment at end 1 and axial force,
shear and end moment at end 2 respectively. The deformation-force relationships are
v1 L / EA 0 0 S1
v 2 0 L / 3EI L / 2 EI . S 2
3 2
when S2=Shear, S3=moment at end1
v3 0 L / 2 EI
2
L / EI S 3
v1 L / EA 0 0 S1
v 2 0 L / 3EI L / 2 EI . S 2 when S2=Shear, S3=moment at end2
3 2
v3 0 L2 / 2 EI L / EI S 3
3.5.16 Generate compatibility matrix for Beam, Truss, Frame and Grid
GENC?,MATRIXNAME
30
(GENCB, GENCPT, GENCST, GENCF, GENCG) commands works just like commands
(GENHB, GENHPT, GENHST, GENHF, GENHG) and create Compatibility Matrix for the
desired element.
3.6.2 Coordinate
COOR
NN,NG,X(l,nn) ,X(2,nn),X(3,nn), , X(NNODE,nn) (Repeat for all)
(A BLANK LINE for termination of COOR sub-command)
This sub-command reads the nodal coordinates data that follow the command and generates
nodal coordinates of the missing nodes along a line described by the values input on two
successive lines. Nodes need not be in order. The following portion of the command
COOR
1,3,0,0
31
10,0,120,0
(Terminator BLANK LINE)
will generate nodal coordinate as node=4, x=40, y=0, node=7, x=80, y=0. A blank line must
terminate the data. The automatic generation technique is adopted from FEAP [2].
The element nodes are incremented by generation increment on the previous element. The
data lines must be in order according to the element number, other wise an error occurs. This
automatic generation technique is adopted from TABS [5]. Terminate the data by a blank
line.
3.6.6 Force
FORC
32
3.6.7 Temperature
TEMP
Node Number, Generation Increment, Nodal Temperature.
(Repeated data lines)
(MANDATORY BLANK LINE)
This subcommand reads nodal temperatures one from a line and generates the same way as
COOR. For each node that has a prescribed temperature the value must be input as specified
in the first line. The last line must be a blank line.
K M
ROOT, A, B, C, D
Acc Acr X c Pc
Arc Arr X r Pr
Acc Acr X c Pc
0 Arr* X r Pr*
When nl=l, then n2 must be equal to n3 and system is solved for unknowns X. X is stored in
Bl and Al is triangularized.
For nl=2, (n3 n2) and forward reduction of both Al and Bl is carried.
For nl=3, (n3 n2) forward reduction of Al alone is carried and Bl remains unchanged.
For nl=4, (n3<n2) Forward reduction of B1 is performed. A1 must already contain the
triangularized or partially triangularized matrix Al so that it can be used to perform forward
reduction on B1.
For n1=5, (n3<n2) backward substitution is carried. Here n2 is the number of equations
starting from top whose solution is to be obtained by backward substitution. A1 and B1 must
contain the factorised or partially factorised A1 and B1. In case of partial Gaussian
elimination, part of X, Xr that has been retained in the condensation must be known and
stored in the corresponding points of Bl. The rest of X , Xc is then obtained by partial back
35
substitution.
36
The following document is presented here to facilitate the data input for MAIL command
MATE. At present only five elements are available to undergraduate students. The detail of
these and other additional elements can be found in a separate document [7].
where
G= Shear modulus.
38
This element provides facility of analysis of axisymmetric solids under axisymmetric loads
using linear elastic material properties. The element may have 3-8 nodes per element with 2
dofs in 2-D space.
MATE
1,8 Element Description
E,v,,T,,IB,IS
Repeat for all Materials
(A blank Line to terminate)
where E is Young's Modulus, v is Poisson's ration. a is coefficient of temperature expansion,
T is uniform temperature change, r is mass density. IB and IS are number of Gauss
quadrature for bending and shear respectively.
This element provides facility of analysis of 3-D space frames for straight prismatic beams in
3-D with considering the axial, shear and torsional deformations. The material properties
39
used are linear elastic. There would be three nodes per element where third node did not lye
on the beam-axis itself and it provides orientation of principal axes for bending. This third
node did not have any stiffness. There would be six dofs per node. The date is provided
through MATE command as usual; as follows.
MATE
1,9 Description
A,Ixx,Iyy,Izz,E,G, mass per unit length, udl, direction of udl, y or z as 2,3
Repeat for all materials
(A blank line to end)
4.10 ELEMENT 10: CONTACT ELEMENT
This element solves the Hertzian Contact problem using the Lagrange multiplier method.
There are two type of material property either STICKY or FRICTIONAL contact. There
would be 3 nodes of this element with middle node for contact forces. Any fictitious
coordinates can be assigned to middle node. The middle node should be given in the middle
of three nodes in any order. The data is provided through MATE
MATE
1,10 Description
DIR,TYPE,TOL
repeat for all Materials
(A blank Line to terminate Mate Data)
Where DIR is the coordinate axis (1,2,3) with which the direction of contact is collinear.
TYPE is contact type; 1 is for slip or frictionless contact and 2 is for sticky contact and TOL
is tolerance.
4.11 ELEMENT 11 : SHELL ELEMENT
5. EXAMPLES
Case 1:
4 8 4 X 1 4
8 19 14 X 2 17
4 14 18 X 3 26
Program
No
40
read,A,3,3,1
4,8,4
8,19,14
4,14,18
read,B,3,1,1
4,17,26
Solve,A,B
C,1
The solution for AX=B
write,B
c,1
The matrix A has been reduced
write,A,1
Stop
Results
No
>>> 3 Row(s) and 1 Column(s) Matrix B is Printed. <<<
1
1 .1000000E+01
2 -.1000000E+01
3 .2000000E+01
>>> 3 Row(s) and 3 Column(s) Matrix A is Printed. <<<
1 2 3
1 .4000000E+01 .2000000E+01 .1000000E+01
2 .8000000E+01 .3000000E+01 .2000000E+01
3 .4000000E+01 .6000000E+01 .2000000E+01
Case 2:
4 8 4 X 1 4
8 19 14 X 2 17 AX=B
4 14 18 X 3 26
Where Matrix A will be reduced first. In the next step the forward reduction & backward
substitution of B will be carried out in order to get solution for X
Program
No
41
read,A,3,3,1
4,8,4
8,19,14
4,14,18
read,B,3,1,1
4,17,26
C,1
Forward reduction of A is performed
Solve,A,1 Solve,A,B,1 can also be used
Write,A
C,1
The solution for AX=B
Solve,A,B,2
write,B
Stop
Results
No
>>> 3 Row(s) and 3 Column(s) Matrix A is Printed. <<<
1 2 3
1 .4000000E+01 .2000000E+01 .1000000E+01
2 .8000000E+01 .3000000E+01 .2000000E+01
3 .4000000E+01 .6000000E+01 .2000000E+01
>>> 3 Row(s) and 1 Column(s) Matrix B is Printed. <<<
1
1 .1000000E+01
2 -.1000000E+01
3 .2000000E+01
Case 3:
4 8 4 X 1 4 4 8 4 X 1 8
8 19 14 X 2 17 and 8 19 14 X 2 7
4 14 18 X 3 26 4 14 18 X 3 14
In the first solution AX=B is solved for first system and then Solve,A,B,2 is used for solving
the second system. In the second solution B is read as a 3x2 matrix and solved so.
Program 1
No
42
read,A,3,3,1
4,8,4
8,19,14
4,14,18
read,B,3,1,1
4,17,26
C,1
Forward reduction of A is performed
Solve,A,B
Write,A
C,1
The solution for AX=B (first system)
Write,B
Read,B,3,1,1
8,7,-14
Solve,A,B,2
write,B Solution for second system
Stop
Results:
>>> 3 Row(s) and 3 Column(s) Matrix A is Printed. <<
1 2 3
1 .4000000E+01 .2000000E+01 .1000000E+01
2 .8000000E+01 .3000000E+01 .2000000E+01
3 .4000000E+01 .6000000E+01 .2000000E+01
>>> 3 Row(s) and 1 Column(s) Matrix B is Printed. <<<
1
1 .1000000E+01
2 -.1000000E+01
3 .2000000E+01
>>> 3 Row(s) and 1 Column(s) Matrix B is Printed. <<<
1
1 .2000000E+01
2 .1000000E+01
3 -.2000000E+01
Program 2:
No
read,A,3,3,1
4,8,4
8,19,14
4,14,18
read,B,3,2,1
4,8
17,7
26,-14
C,1
Solution of Both the systems
Solve,A,B
43
Write,A
Write,B
Stop
SOLUTION
No
>>> 3 Row(s) and 3 Column(s) Matrix A is Printed. <<<
1 2 3
1 .4000000E+01 .2000000E+01 .1000000E+01
2 .8000000E+01 .3000000E+01 .2000000E+01
3 .4000000E+01 .6000000E+01 .2000000E+01
>>> 3 Row(s) and 2 Column(s) Matrix B is Printed. <<<
1 2
1 .1000000E+01 .2000000E+01
2 -.1000000E+01 .1000000E+01
3 .2000000E+01 -.2000000E+01
mul,k,v,Sxrt
trans,ax,axt
mul,axt,Sxrt,X
read,cx,1,2,1
-1,-.75
read,cr,1,2,1
-.75,0
mul,cr,r,qr
mul,cx,x,qx
add,qx,qr,q
write,q
write,r
write,X
Write,Sxrt
stop
Results of Mail Program
>> Total Core: [666000] Core Used= 0 Time = .00 Seconds <<
Start
++++:+++ Startup Operation +++:++++
>> Total Core: [666000] Core Used= 0 Time = .00 Seconds <<
NO
>>> 1 Row(s) and 1 Column(s) Matrix q is Printed. <<<
1
1 -.3287233E-01
>>> 2 Row(s) and 1 Column(s) Matrix r is Printed. <<<
1
1 -.2283690E-01
2 .4872960E-02
>>> 2 Row(s) and 1 Column(s) Matrix X is Printed. <<<
1
1 .1095171E+03
2 .8333867E+02
>>> 4 Row(s) and 1 Column(s) Matrix Sxrt is Printed. <<<
1
1 -.2283690E+03
2 .5764007E+01
3 -.4764007E+01
4 -.1817345E+03
ELEM
1,1,0,1,2
2,1,0,3,2
3,2,0,4,2
MATE
1,3, Beam Element
1e5,10,1,0,0,0,0,0,0
2,1, Plane Truss Element
1e4,3.6,0
BOUN
1,0,1,0,0
3,0,1,1,0
4,0,1,1,1
FORC
2,0,0,0,1.0
END
stif,a,K
rhsf,a,R
read,t,6,5,1
1,0,0,0,0
0,1,0,0,0
0,0,1,0,0
1,0,-0.75,0,0
0,0,0,1,0
0,0,0,0,1
tmul,t,K,atK
mul,atK,t,k
tmul,t,R,r
modify,k,r,k1,r1,1
1,-0.05
solve,k1,r1
dsmb,r1,r,5
0,1,2,3,4
-0.05,0,0,0,0
mul,t,r,R
disp,a,R
strs,a,R
stop
>> Total Core: [666000] Core Used= 0 Time = .00 Seconds <<
Start
++++:+++ Startup Operation +++:++++
>> Total Core: [666000] Core Used= 0 Time = .00 Seconds <<
c,1
Alternate solution by Direct Stiffness method
>> Total Core: [666000] Core Used= 0 Time = .00 Seconds <<
46
MESH,a
Name of Domain = a
NODAL COORDINATES
ELEMENTS
Material Properties
Modulus .1000E+06
Area .1000E+02
Inertia .1000E+01
U.D.L. .0000E+00 (+ Along Positive Local Y-Axis)
Density .0000E+00
Modulus = .10000E+05
Area = .36000E+01
Density = .00000E+00
NODAL FORC/DISP
47
Nodal Displacements
Node 1-COORD 2-COORD 1-DISPL 2-DISPL 3-DISPL
1 .0000D+00 .0000D+00 .0000D+00 -.5000D-01 .4700D-02
2 .3600D+01 .4800D+01 -.2284D-01 -.3287D-01 .4873D-02
3 .1000D+02 .0000D+00 .0000D+00 .0000D+00 .5064D-02
4 .0000D+00 .4800D+01 .0000D+00 .0000D+00 .0000D+00
>> Total Core: [666000] Core Used= 645 Time = .11 Seconds <<
strs,a,R