G.17.1 Stiffness Analysis
The stiffness analysis implemented in STAAD.Pro is based on the matrix displacement method. In the matrix analysis of structures by the displacement method, the structure is first idealized into an assembly of discrete structural components.
Structural systems such as slabs, plates, spread footings, etc., which transmit loads in two directions (frame members or finite elements) have to be discretized into a number of three or fournoded finite elements connected to each other at their nodes. Each component has an assumed form of displacement in a manner which satisfies the force equilibrium and displacement compatibility at the joints. Loads may be applied in the form of distributed loads on the element surfaces or as concentrated loads at the joints. The plane stress effects as well as the plate bending effects are taken into consideration in the analysis.
Assumptions of the Analysis
 The structure is idealized into an assembly of beam, plate and solid type elements joined together at their vertices (nodes). The assemblage is loaded and reacted by concentrated loads acting at the nodes. These loads may be both forces and moments which may act in any specified direction.
 A beam member is a longitudinal structural member having a constant, doubly symmetric or neardoubly symmetric cross section along its length. Beam members always carry axial forces. They may also be subjected to shear and bending in two arbitrary perpendicular planes, and they may also be subjected to torsion. From this point these beam members are referred to as "members" in the manual.
 A plate element is a three or four noded planar element having variable thickness. A solid element is a fourtoeight noded, three dimensional element. These plate and solid elements are referred to as "elements" in the manual.
 Internal and external loads acting on each node are in equilibrium. If torsional or bending properties are defined for any member, six degrees of freedom are considered at each node (i.e., three translational and three rotational) in the generation of relevant matrices. If the member is defined as truss member (i.e., carrying only axial forces) then only the three degrees (translational) of freedom are considered at each node.
 Two types of coordinate systems are used in the generation of the required matrices and are referred to as local and global systems.
Local coordinate axes are assigned to each individual element and are oriented such that computing effort for element stiffness matrices are generalized and minimized. Global coordinate axes are a common datum established for all idealized elements so that element forces and displacements may be related to a common frame of reference.
Basic Equation
The complete stiffness matrix of the structure is obtained by systematically summing the contributions of the various member and element stiffness. The external loads on the structure are represented as discrete concentrated loads acting only at the nodal points of the structure.
The stiffness matrix relates these loads to the displacements of the nodes by the equation:
A_{j} = a_{j} + S_{j}⋅D_{j}
This formulation includes all the joints of the structure, whether they are free to displace or are restrained by supports. Those components of joint displacements that are free to move are called degrees of freedom. The total number of degrees of freedom represent the number of unknowns in the analysis.
Method to Solve for Displacements
There are many methods to solve the unknowns from a series of simultaneous equations.
In STAAD.Pro, the element stiffness matrices are assembled into a global stiffness matrix by standard matrix techniques used in FEA programs. The technique used by STAAD.Pro was developed based on routines made available in the public domain. The global stiffness matrix is then decomposed as
[ K ] = [LT] [D] [L]
which is a modified Gauss method.
[K] {d} = {F}
becomes
[LT] [D] [L] {d} = {F}
which can be manipulated into a forward and a backward substitution step to obtain {d}. STAAD.Pro can detect singular matrices and solve then via a technique copied from Stardyne. To solve the matrices, the program uses an approach is used that is mathematically equivalent to the modified Choleski method. However the order of operations, memory use, and file use is highly optimized.
Consideration of Bandwidth
Internal storage order is automatically calculated to minimize time and memory.
Multiple Structures & Structural Integrity
The integrity of the structure is a very important requirement that must be satisfied by all models. You must make sure that the model developed represents one or more properly connected structures.
An "integral" structure may be defined as a system in which proper "stiffness connections" exist between the members/elements. The entire model functions as one or more integrated load resisting systems. STAAD.Pro checks structural integrity using a sophisticated algorithm and reports detection of multiple structures within the model. If you did not intend for there to be multiple structures, then you can fix it before any analysis. There are several additional model checking tools found on the Utilities ribbon tabs.
Modeling and Numerical Instability Problems
Instability problems can occur due to two primary reasons.

Modeling problem
There are a variety of modeling problems which can give rise to instability conditions. They can be classified into two groups.
 Local instability  A local instability is a condition where the fixity conditions at the end(s) of a member are such as to cause an instability in the member about one or more degrees of freedom. Examples of local instability are:
 Member Release: Members released at both ends for any of the following degrees of freedom (FX, FY, FZ and MX) will be subjected to this problem.
 A framed structure with columns and beams where the columns are defined as "TRUSS" members. Such a column has no capacity to transfer shears or moments from the superstructure to the supports.
 Global Instability  These are caused when the supports of the structure are such that they cannot offer any resistance to sliding or overturning of the structure in one or more directions. For example, a 2D structure (frame in the XY plane) which is defined as a SPACE FRAME with pinned supports and subjected to a force in the Z direction will topple over about the Xaxis. Another example is that of a space frame with all the supports released for FX, FY or FZ.
 Local instability  A local instability is a condition where the fixity conditions at the end(s) of a member are such as to cause an instability in the member about one or more degrees of freedom. Examples of local instability are:

Math precision
A math precision error is caused when numerical instabilities occur in the matrix inversion process. One of the terms of the equilibrium equation takes the form 1/(1A), where A=k1/(k1+k2); k1 and k2 being the stiffness coefficients of two adjacent members. When a very "stiff" member is adjacent to a very "flexible" member, viz., when k1>>k2, or k1+k2 k1, A=1 and hence, 1/(1A) =1/0. Thus, huge variations in stiffnesses of adjacent members are not permitted. Artificially high E or I values should be reduced when this occurs.
Math precision errors are also caused when the units of length and force are not defined correctly for member lengths, member properties, constants etc.
You must also ensure that the model defined represents one single structure only, not two or more separate structures. For example, in an effort to model an expansion joint, you may end up defining separate structures within the same input file. Multiple structures defined in one input file can lead to grossly erroneous results.