Technical Notes and Examples
Technical Notes and Examples
Contents
Introduction ............................................................................................................................... 3
Basic theoretical background .................................................................................................... 4
Skyline storage scheme ......................................................................................................... 4
Coordinate systems ............................................................................................................... 6
Global system .................................................................................................................... 6
Element local system ......................................................................................................... 6
Node local system ............................................................................................................. 6
Degrees of freedom............................................................................................................... 8
Load combination ...................................................................................................................... 9
Rigid diaphragm constrained................................................................................................... 10
The frame element .................................................................................................................. 13
Equations in Local Coordinate System ................................................................................ 13
Equations in Global Coordinate System .............................................................................. 14
Frame element end releases ............................................................................................... 18
Unstable End Releases ........................................................................................................ 19
Introduction to Dynamic Analysis ........................................................................................... 20
Response Spectrum Analysis ............................................................................................... 22
Example problems for 3D Frame Analysis Library ................................................................... 23
Example 1: Load case and combination definitions ............................................................ 23
Example 2: Element local coordinate system (skew member) ........................................... 27
Example 3: Node local coordinate system (skew support) ................................................. 30
Example 4: Spring supports ................................................................................................. 32
Example 5: Partial (semi-rigid) member releases................................................................ 34
Example 6: Rigid offsets ...................................................................................................... 37
Example 7: Simple 3D building with rigid floor diaphragms and Response Spectrum Analysis
............................................................................................................................................. 40
Example 8: Beam under uniform and large axial load (P-Δ effect) ..................................... 47
Example 9: Column under shear and large axial load (P-Δ effect) ...................................... 50
Example 10: Frame on Winkler springs ............................................................................... 53
Example 11: Single storey building with shell elements (wall, foundation slab and
superstructure slab) ............................................................................................................ 56
2
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Introduction
The finite element method (FEM) (sometimes referred to as finite element analysis) is a
numerical technique for finding approximate solutions of partial differential equations (PDE)
as well as of integral equations. The solution approach is based either on eliminating the
differential equation completely (steady state problems), or rendering the PDE into an
approximating system of ordinary differential equations, which are then numerically
integrated using standard techniques such as Euler's method, Runge-Kutta, etc.
In solving partial differential equations, the primary challenge is to create an equation that
approximates the equation to be studied, but is numerically stable, meaning that errors in the
input data and intermediate calculations do not accumulate and cause the resulting output to
be meaningless. There are many ways of doing this, all with advantages and disadvantages.
The Finite Element Method is a good choice for solving partial differential equations over
complex domains (like cars and oil pipelines), when the domain changes (as during a solid
state reaction with a moving boundary), when the desired precision varies over the entire
domain, or when the solution lacks smoothness.
ENGISSOL, as a leader company in finite element programming, has launched many finite
element libraries which are continuously enriched by new contemporary arithmetic
techniques and optimized in order to come up to any complex engineering simulation. Among
these libraries, ENGISSOL’s R&D department has created a commercial library which can
perform 3D finite element analysis for frames and buildings very easily with great accuracy
and reliability. This library has been developed in the modern programming environment of
MS Visual Studio 2008 and is compatible with almost every programming interface. The
integration of 3D Frame Analysis Library to a programming interface can result into a
complete, high quality and competitive finite element application.
The scope of this paper is to provide theoretical and also practical information about the
library’s assumptions, as well as a comprehensive description of the adapted methods and
algorithms. Reference to finite element analysis theory will be made if necessary. In any case,
the reader is advised to refer to a general finite element book in order to get familiar enough
with the philosophy of the finite element method and particularly 3D Frame Analysis Library.
Furthermore, reference to the library’s classes, objects, methods etc will be made if needed.
3
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Skyline storage has become very popular in the finite element codes for structural mechanics,
because the skyline is preserved by Cholesky decomposition (a method of solving systems of
linear equations with a symmetric, positive-definite matrix; all fill-in falls within the skyline),
and systems of equations from finite elements have a relatively small skyline. In addition, the
effort of coding skyline Cholesky is about same as for Cholesky for banded matrices.
4
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
3D Frame Analysis Library uses this storage technique at all cases where symmetric and
positive defined matrices are to be stored, in order to minimize computer memory usage and
accelerate the solution speed as much as possible.
5
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Coordinate systems
Three different coordinate systems are available in 3D Frame Analysis Library. The global
system and two local ones, the element local and node local system. It has to be noted that
these three coordinate systems result into more flexibility and ease in creating the structural
model, since data as loads, boundary conditions etc can be defined at the desired system,
whereas analysis results are obtained in each corresponding coordinate system.
Global system
The global coordinate system remains constant for each element, node and generally the
complete model.
6
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
7
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Degrees of freedom
3D Frame Analysis Library features 6 degrees of freedom per node as indicated below. Each
degree of freedom can be fully or partially (by springs) constrained. Furthermore, in case of
frame elements, each set of degrees of freedom can be released unless a mechanism is
formed. The ability of partial releases is also available in 3D Frame Analysis Library.
8
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Load combination
The following load combination types are supported in 3D Frame Analysis Library:
• Linear Add: All load case results are multiplied by their scale factor and added
together.
• Envelope. A max/min Envelope of the defined load cases is evaluated for each frame
output segment and object joint. The load cases that give the maximum and minimum
components are used for this combo. Therefore the load Combo holds two values for
each output segment and joint.
• Absolute Add: The absolute of the individual load case results are summed and
positive and negative values are automatically produced for each output segment and
joint.
• SRSS: The Square Root Sum of the Squares calculation is performed on the load cases
and positive and negative values are automatically produced for each output segment
and joint.
• CQC: The Complete Quadratic Combination is used in case of coupled modes
combination. Modes are generally coupled in ordinary building structures so this
method is used as an improvement on SRSS.
It should be noted that in case of Modal analysis, only one of the last two combination
methods (SRSS, CQC) can be used, since the remaining do not have a meaning when combining
dynamic modes.
9
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
The diaphragm, or the physical floor system in the real structure, can have any number of
columns and beams connected to it. At the end of each member, at the diaphragm level, six
degrees of freedom exist for a three-dimensional structure before introduction of constraints.
Field measurements have verified for a large number of building-type structures that the in
plane deformations in the floor systems are small compared to the inter-story horizontal
displacements. Hence, it has become common practice to assume that the in-plane motion of
all points on the floor diaphragm move as a rigid body. Therefore, the in-plane displacements
of the diaphragm can be expressed in terms of two displacements, (m) ux(m) and uy(m), and a
rotation about the z-axis, uzθ(m). In the case of static loading, the location of the master node
(m) can be at any location on the diaphragm. However, for the case of dynamic earthquake
loading, the master node must be located at the center of mass of each floor if a diagonal
mass matrix is to be used. 3D Frame Analysis Library automatically calculates the location of
the master node based on the center of mass of the constraint nodes. As a result of this rigid
diaphragm approximation, the following compatibility equations must be satisfied for joints
attached to the diaphragm:
uzθ(i) = uzθ(m)
10
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Rx(mi) = Rx(i)
Ry(mi) = Ry(i)
Again, one notes that the force transformation matrix is the transpose of the displacement
transformation matrix. The total load applied at the master point will be the sum of the
contributions from all slave nodes, or:
𝑇
𝑅 (𝑚) = ∑ 𝑅 (𝑚𝑖) = ∑ 𝑇 (𝑖) 𝑅 (𝑖)
𝑖
Now, consider a vertical column connected between joint i at level m and joint j at level m+1,
as shown below. Note that the location of the master node can be different for each level.
It is apparent that the displacement transformation matrix for the column is given by
11
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Or in symbolic form:
D=Bu
K = BT k B,
12
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
The element matrices can be obtained by a similar process of obtaining the matrices of the
truss element in space and that of beam elements, and adding them together. Because of the
huge matrices involved, the details will not be shown herein, but the stiffness matrix is listed
here as follows, and can be easily confirmed simply by inspection:
13
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
where Iy and Iz are the second moment of area (or moment of inertia) of the cross-section of
the beam with respect to the y and z axes, respectively. Note that the fourth DOF is related to
the torsional deformation. The development of a torsional element of a bar is very much the
same as that for a truss element. The only difference is that the axial deformation is replaced
by the torsional angular deformation, and axial force is replaced by torque. Therefore, in the
resultant stiffness matrix, the element tensile stiffness AE/le is replaced by the element
torsional stiffness GJ/le, where G is the shear modules and J is the polar moment of inertia of
the cross-section of the bar. The mass matrix is also shown as follows:
Where
𝐼𝑥
𝑟𝑥 2 =
𝐴
in which Ix is the second moment of area (or moment of inertia) of the cross-section of the
beam with respect to the x axis.
14
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Assume that the local nodes 1 and 2 of the element correspond to global nodes i and j ,
respectively. The displacement at a local node should have three translational components in
the x, y and z directions, and three rotational components with respect to the x, y and z axes.
They are numbered sequentially by d1–d12 corresponding to the physical deformations as
defined by Eq. (6.16). The displacement at a global node should also have three translational
components in the X, Y and Z directions, and three rotational components with respect to the
X, Y and Z axes. They are numbered sequentially by D6i−5,D6i−4, . . . , and D6i for the ith node,
as shown in Figure below. The same sign convention applies to node j. The coordinate
transformation gives the relationship between the displacement vector de based on the local
coordinate system and the displacement vector De for the same element but based on the
global coordinate system:
de = T De, where
15
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
in which
To define these direction cosines, the position and the three-dimensional orientation of the
frame element have to be defined first. With nodes 1 and 2, the location of the element is
fixed on the local coordinate frame, and the orientation of the element has also been fixed in
the x direction. However, the local coordinate frame can still rotate about the axis of the
beam. One more additional point in the local coordinate has to be defined. This point can be
chosen anywhere in the local x– Y plane, but not on the x-axis. Therefore, node 3 is chosen, as
shown in Figure 6.6.The position vectors _ V1, _ V2 and _ V3 can be expressed as
where Xk, Yk and Zk (k = 1, 2, 3) are the coordinates for node k, and 𝑋⃗, 𝑌
⃗⃗, 𝑍⃗ are unit vectors
along X, Y and Z axes. We now define
16
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
⃗⃗⃗⃗2 -𝑉
Vectors (𝑉 ⃗⃗⃗⃗1) and (𝑉
⃗⃗⃗⃗3 -𝑉
⃗⃗⃗⃗1) can thus be obtained using above equations as follows:
⃗⃗⃗⃗
𝑉2 -𝑉⃗⃗⃗⃗1 = X21𝑋⃗ + Y21 𝑌
⃗⃗ + Z21𝑍⃗
⃗⃗⃗⃗
𝑉3 -𝑉⃗⃗⃗⃗1 = X31𝑋⃗ + Y31 𝑌
⃗⃗ + Z31𝑍⃗
⃗⃗⃗⃗2 − ⃗⃗⃗⃗
𝑙𝑒 = 2𝑎 = |𝑉 2
𝑉1 | = √𝑋21 2
+ 𝑌21 2
+ 𝑍21
(𝑉⃗⃗⃗⃗2 − ⃗⃗⃗⃗
𝑉1 ) 𝑋21 𝑌21 𝑍
𝑥⃗ = = 𝑋⃗ + ⃗⃗ + 21 𝑍⃗
𝑌
|𝑉⃗⃗⃗⃗2 − ⃗⃗⃗⃗
𝑉1 | 2𝑎 2𝑎 2𝑎
𝑋21
𝑙𝑥 = cos(𝑥, 𝑋) = 𝑥⃗⃗⃗⃗⃗
𝑋=
2𝑎
𝑌21
𝑚𝑥 = cos(𝑥, 𝑌) = 𝑥⃗⃗⃗⃗⃗
𝑌=
2𝑎
𝑍21
𝑛𝑥 = cos(𝑥, 𝑍) = 𝑥⃗ ⃗⃗⃗⃗
𝑍=
2𝑎
It now can be seen that the direction of z axis can be defined by the cross product of vectors
⃗⃗⃗⃗2 − ⃗⃗⃗⃗
(𝑉 ⃗⃗⃗⃗3 − ⃗⃗⃗⃗
𝑉1 ) and (𝑉 𝑉1 ). Hence a unit vector along z axis can be expressed as:
⃗⃗⃗⃗2 − ⃗⃗⃗⃗
(𝑉 ⃗⃗⃗⃗3 − ⃗⃗⃗⃗
𝑉1 )x(𝑉 𝑉1 )
𝑧⃗ =
⃗⃗⃗⃗2 − ⃗⃗⃗⃗
|(𝑉 ⃗⃗⃗⃗3 − ⃗⃗⃗⃗
𝑉1 )x(𝑉 𝑉1 )|
Since y axis is perpendicular to both x axis and z axis, the unit vector along y axis can be
obtained by cross product
𝑦⃗ = 𝑧⃗ x 𝑥⃗
Using the transformation matrix, T, the matrices for space frame elements in the global
coordinate system can be obtained as:
Ke = TT ke T
Me = TT me T
Fe = TT fe
17
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
the twelve equilibrium equations in the local IJ reference system can be written as
F = ku + r
If one end of the member has a hinge, or other type of release that causes the corresponding
force to be equal to zero, above equation requires modification. A typical equation is of the
following form:
12
𝑓𝑛 = ∑ 𝑘𝑛𝑗 𝑢𝑗 + 𝑟𝑛
𝑗=1
Therefore, by substitution of last equation into the other eleven equilibrium equations, the
unknown un can be eliminated and the corresponding row and column set to zero. Or:
̅̅̅
𝑓𝑖𝑗 = ̅̅̅̅
𝑘𝑖𝑗 𝑢𝐼𝐽 + ̅̅̅
𝑟𝑖𝑗
The terms fn = rn = 0 and the new stiffness and load terms are equal to:
𝑘𝑛𝑗
̅̅̅̅
𝑘𝑖𝑗 = 𝑘𝑖𝑗 − 𝑘𝑖𝑛
𝑘𝑛𝑛
𝑘𝑛𝑖
𝑟̅𝑖 = 𝑟𝑖 − 𝑟𝑛
𝑘𝑛𝑛
This procedure can be repeatedly applied to the element equilibrium equations for all
releases. After the other displacements associated with the element have been found from a
solution of the global equilibrium equations, the displacements associated with the releases
can be calculated from Equation (4.31) in reverse order from the order in which the
displacements were eliminated. The repeated application of these simple numerical
equations is defined as static condensation or partial Gauss elimination.
18
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
19
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
All possible types of time-dependent loading, including wind, wave and seismic, can be
represented by a sum of “J” space vectors fj , which are not a function of time, and J time
functions g(t)j.
For the dynamic solution of arbitrary structural systems, however, the elimination of the
massless displacement is, in general, not numerically efficient because the stiffness matrix
loses its sparsity. Therefore, 3D Frame Analysis Library does not use static condensation to
retain the sparseness of the stiffness matrix.
The fundamental mathematical method that is used to solve the equilibrity equations is the
separation of variables. This approach assumes the solution can be expressed in the following
form:
u(t) = Φ Y(t)
Where Φ is an “Nd by N” matrix containing N spatial vectors that are not a function of time,
and Y(t) is a vector containing N functions of time.
Before solution, we require that the space functions satisfy the following mass and stiffness
orthogonality conditions:
ΦΤ Μ Φ = Ι
ΦΤ Κ Φ =Ω2
where I is a diagonal unit matrix and Ω2 is a diagonal matrix in which the diagonal terms are
ωn2 .The term ωn has the units of radians per second and may or may not be a free vibration
frequencies. It should be noted that the fundamentals of mathematics place no restrictions
on those vectors, other than the orthogonality properties. Each space function vector, φn, is
always normalized so that the Generalized Mass is equal to one, or φnT M φn = 1.0.
𝑗=1
where pj = ΦT fj are defined as the modal participation factors for load function j. The term pnj
is associated with the nth mode. Note that there is one set of “N” modal participation factors
for each spatial load condition fj . For all real structures, the “N by N” matrix d is not diagonal;
however, to uncouple the modal equations, it is necessary to assume classical damping where
20
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
there is no coupling between modes. Therefore, the diagonal terms of the modal damping are
defined by:
dnn = 2 ζn ωn
where ζn is defined as the ratio of the damping in mode n to the critical damping of the model.
A typical uncoupled modal equation for linear structural systems is of the following form:
𝐽
𝑦̈ (𝑡)𝑛 + 2𝜁𝑛 𝜔𝑛 𝑦̇ (𝑡)𝑛 + 𝜔𝑛 2 𝑦(𝑡)𝑛 = 𝑝𝑛𝑥 𝑢̈ (𝑡)𝑔𝑥 + 𝑝𝑛𝑦 𝑢̈ (𝑡)𝑔𝑦 + 𝑝𝑛𝑧 𝑢̈ (𝑡)𝑔𝑧
where the three-directional modal participation factors, or in this case earthquake excitation
factors, are defined by pnj = -ΦnT Mj in which j is equal to x, y or z and n is the mode number.
21
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
un = y(Tn )MAX φn
The corresponding internal modal forces, fkn, are calculated from standard matrix structural
analysis using the same equations as required in static analysis.
22
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//-------MATERIAL DEFINITION-------
//-------SECTIONS DEFINITION-------
//Create node n1
Frame3D.SuperNode n1 = new Frame3D.SuperNode(1, 0, 0, 0);
23
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
n1.dof1constraint = true;//delete
n1.dof2constraint = true;//translational constraint in
direction y at local system of node
n1.dof3constraint = true;//translational constraint in
direction z at local system of node
n1.dof4constraint = true;//rotational constraint in
direction x at local system of node
n1.dof5constraint = true;//rotational constraint in
direction y at local system of node
Model.InputNodes.Add(n1);
//Create node n2
Frame3D.SuperNode n2 = new Frame3D.SuperNode(2, 5, 0, 0);
n2.dof1constraint = true;//translational constraint in
direction x at local system of node
n2.dof2constraint = true;//translational constraint in
direction y at local system of node
n2.dof3constraint = true;//translational constraint in
direction z at local system of node
n2.dof4constraint = true;//rotational constraint in
direction x at local system of node
n2.dof5constraint = true;//rotational constraint in
direction y at local system of node
Model.InputNodes.Add(n2);
Model.InputFiniteElements.Add(el1);
24
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//-------SOLUTION PHASE-------
Model.Solve();
//-------OBTAIN RESULTS-------
double[] Min, Max;//The combination results will be saved
in these arrays
//Note that the definition of two arrays for minimum and
maximum combination results is required
//For combination type "ADD", Min and Max values are
always equal
25
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
double[] disps_along_member_right = Max;
26
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//-------MATERIAL DEFINITION-------
//-------SECTIONS DEFINITION-------
//Create node n1
Frame3D.SuperNode n1 = new Frame3D.SuperNode(1, 0, 0, 0);
n1.dof1constraint = true;//translational constraint in
direction y at local system of node
n1.dof2constraint = true;//translational constraint in
direction y at local system of node
n1.dof3constraint = true;//translational constraint in
direction z at local system of node
n1.dof4constraint = true;//rotational constraint in
direction x at local system of node
n1.dof5constraint = true;//rotational constraint in
direction y at local system of node
27
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
n1.dof6constraint = true;//rotational constraint in
direction y at local system of node
Model.InputNodes.Add(n1);
//Create node n2
Frame3D.SuperNode n2 = new Frame3D.SuperNode(2, 5, 0, 0);
n2.dof1constraint = true;//translational constraint in
direction x at local system of node
n2.dof2constraint = true;//translational constraint in
direction y at local system of node
n2.dof3constraint = true;//translational constraint in
direction z at local system of node
n2.dof4constraint = true;//rotational constraint in
direction x at local system of node
n2.dof5constraint = true;//rotational constraint in
direction y at local system of node
n2.dof6constraint = true;//rotational constraint in
direction y at local system of node
Model.InputNodes.Add(n2);
Model.InputFiniteElements.Add(el1);
//-------SOLUTION PHASE-------
Model.Solve();
//-------OBTAIN RESULTS-------
double[] Min, Max;
//Reactions
//Rections for load case lc1
n1.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double[] n1_R_lc1 = Max;
n2.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double[] n2_R_lc1 = Max;
28
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
double[] forces_along_member_middle = Max;
el1.GetInternalForcesForLoadCase(5, "lc1", out Min, out
Max, 0);//Internal forces at the end of the member
double[] forces_along_member_right = Max;
29
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//-------MATERIAL DEFINITION-------
//-------SECTIONS DEFINITION-------
30
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Geometry.XYZ(1, Math.Tan(-Math.PI / 6), 0), new Geometry.XYZ(1,
Math.Tan(60.0 / 180 * Math.PI), 0)));
n1.dof2constraint = true;//translational constraint in
direction y at local system (which was defined previously) of node
n1.dof3constraint = true;//translational constraint in
direction z at local system of node
n1.dof4constraint = true;//rotational constraint in
direction x at local system of node
n1.dof5constraint = true;//rotational constraint in
direction y at local system of node
Model.InputNodes.Add(n1);
//Create node n2
Frame3D.SuperNode n2 = new Frame3D.SuperNode(2, 5, 0, 0);
n2.dof1constraint = true;//translational constraint in
direction x at local system of node
n2.dof2constraint = true;//translational constraint in
direction y at local system of node
n2.dof3constraint = true;//translational constraint in
direction z at local system of node
n2.dof4constraint = true;//rotational constraint in
direction x at local system of node
n2.dof5constraint = true;//rotational constraint in
direction y at local system of node
Model.InputNodes.Add(n2);
Model.InputFiniteElements.Add(el1);
//-------SOLUTION PHASE-------
Model.Solve();
//-------OBTAIN RESULTS-------
double[] Min, Max;
31
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//-------MATERIAL DEFINITION-------
//-------SECTIONS DEFINITION-------
//Create node n1
Frame3D.SuperNode n1 = new Frame3D.SuperNode(1, 0, 0, 0);
n1.dof3constraint = true;//translational constraint in
direction z at local system of node
n1.dof4constraint = true;//rotational constraint in
direction x at local system of node
n1.dof5constraint = true;//rotational constraint in
direction y at local system of node
n1.Kdof2 = 5000;//Translational spring constant of
partial support at y direction of local node system (units:
force/length, for example kN/m)
32
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
n1.Kdof6 = 30000;//Rotational spring constant of partial
support about z direction of local node system (units:
moment/rotation, for example kNm/rad)
Model.InputNodes.Add(n1);
//Create node n2
Frame3D.SuperNode n2 = new Frame3D.SuperNode(2, 5, 0, 0);
n2.dof1constraint = true;//translational constraint in
direction x at local system of node
n2.dof2constraint = true;//translational constraint in
direction y at local system of node
n2.dof3constraint = true;//translational constraint in
direction z at local system of node
n2.dof4constraint = true;//rotational constraint in
direction x at local system of node
n2.dof5constraint = true;//rotational constraint in
direction y at local system of node
n2.dof6constraint = true;//rotational constraint in
direction z at local system of node
Model.InputNodes.Add(n2);
Model.InputFiniteElements.Add(el1);
//-------SOLUTION PHASE-------
Model.Solve();
//-------OBTAIN RESULTS-------
double[] Min, Max;
33
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//-------MATERIAL DEFINITION-------
//-------SECTIONS DEFINITION-------
34
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//Create a new beam section of dimensions 50cmx50xm
FrameElementSection secColumn50_50 = new
FrameElementSection();
secColumn50_50.Name = "Column50/50"; //section name
secColumn50_50.A = 0.5 * 0.5;//section area
secColumn50_50.Iy = 0.5 * 0.5 * 0.5 * 0.5 / 12;//inertia
moment about local y axis
secColumn50_50.Iz = 0.5 * 0.5 * 0.5 * 0.5 / 12;//inertia
moment about local z axis
secColumn50_50.It = 8.8125e-3;
secColumn50_50.b = 0.50;//section height
secColumn50_50.h = 0.50;//section height
//Create node n1
Frame3D.SuperNode n1 = new Frame3D.SuperNode(1, 0, 0, 0);
n1.dof1constraint = true;//translational constraint in
direction x at local system of node
n1.dof2constraint = true;//translational constraint in
direction y at local system of node
n1.dof3constraint = true;//translational constraint in
direction z at local system of node
n1.dof4constraint = true;//rotational constraint in
direction x at local system of node
n1.dof5constraint = true;//rotational constraint in
direction y at local system of node
n1.dof6constraint = true;//rotational constraint in
direction z at local system of node
Model.InputNodes.Add(n1);
//Create node n2
Frame3D.SuperNode n2 = new Frame3D.SuperNode(2, 0, 4, 0);
Model.InputNodes.Add(n2);
//Create node n3
Frame3D.SuperNode n3 = new Frame3D.SuperNode(3, 5, 4, 0);
Model.InputNodes.Add(n3);
//Create node n4
Frame3D.SuperNode n4 = new Frame3D.SuperNode(4, 5, 0, 0);
n4.dof1constraint = true;//translational constraint in
direction x at local system of node
n4.dof2constraint = true;//translational constraint in
direction y at local system of node
n4.dof3constraint = true;//translational constraint in
direction z at local system of node
n4.dof4constraint = true;//rotational constraint in
direction x at local system of node
n4.dof5constraint = true;//rotational constraint in
direction y at local system of node
n4.dof6constraint = true;//rotational constraint in
direction z at local system of node
Model.InputNodes.Add(n4);
35
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//Create a MemberRelases object. Release are defined in
element local coordinate system.
MemberReleases PartialRelease = new MemberReleases();
PartialRelease.Name = "Partial bending release";//Name of
the object
PartialRelease.rz = true;//Release the rotational degree
of freedom about z axis (in element local coordinate system)
PartialRelease.krz = 10000;//Assign a spring stiffness
(units in moment/rotations, for example kNm/rad)
//Note that the corresponding degree of freedom should be
first released in order to define afterwards a partial stiffness
constant
//In case of full release we should have given
PartialRelease.krz = 0;
//-------SOLUTION PHASE-------
Model.Solve();
//-------OBTAIN RESULTS-------
double[] Min, Max;
//Support reactions
n1.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double n1_Rtx_lc1 = Max[0];
n1.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double n1_Rty_lc1 = Max[1];
n4.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double n4_Rtx_lc1 = Max[0];
n4.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double n4_Rty_lc1 = Max[1];
36
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//-------MATERIAL DEFINITION-------
//-------SECTIONS DEFINITION-------
37
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
secBeam30_70.h = 0.70;//section height
//Create node n1
Frame3D.SuperNode n1 = new Frame3D.SuperNode(1, 0, 0, 0);
n1.dof1constraint = true;//translational constraint in
direction x at local system of node
n1.dof2constraint = true;//translational constraint in
direction y at local system of node
n1.dof3constraint = true;//translational constraint in
direction z at local system of node
n1.dof4constraint = true;//rotational constraint in
direction x at local system of node
n1.dof5constraint = true;//rotational constraint in
direction y at local system of node
n1.dof6constraint = true;//rotational constraint in
direction z at local system of node
Model.InputNodes.Add(n1);
//Create node n2
Frame3D.SuperNode n2 = new Frame3D.SuperNode(2, 0, 4, 0);
Model.InputNodes.Add(n2);
//Create node n3
Frame3D.SuperNode n3 = new Frame3D.SuperNode(3, 5, 4, 0);
Model.InputNodes.Add(n3);
//Create node n4
Frame3D.SuperNode n4 = new Frame3D.SuperNode(4, 5, 0, 0);
n4.dof1constraint = true;//translational constraint in
direction x at local system of node
n4.dof2constraint = true;//translational constraint in
direction y at local system of node
n4.dof3constraint = true;//translational constraint in
direction z at local system of node
n4.dof4constraint = true;//rotational constraint in
direction x at local system of node
n4.dof5constraint = true;//rotational constraint in
direction y at local system of node
n4.dof6constraint = true;//rotational constraint in
direction z at local system of node
Model.InputNodes.Add(n4);
38
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
el1.RigidOffsetEndDx = 0.35;
Model.InputFiniteElements.Add(el1);
//-------SOLUTION PHASE-------
Model.Solve();
//-------OBTAIN RESULTS-------
double[] Min, Max;
//Support reactions
n1.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double n1_Rtx_lc1 = Max[0];
n1.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double n1_Rty_lc1 = Max[1];
n4.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double n4_Rtx_lc1 = Max[0];
n4.GetReactionsForLoadCase("lc1", out Min, out Max, 0);
double n4_Rty_lc1 = Max[1];
39
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
40
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//New model definition
Model Model = new Model();
Model.LicenseInfo = LicenseInfo;
//-------MATERIAL DEFINITION-------
//-------SECTIONS DEFINITION-------
//Create node n1
Frame3D.SuperNode n1 = new Frame3D.SuperNode(1, 0, 0, 0);
n1.dof1constraint = true;//translational constraint in
direction x at local system of node
n1.dof2constraint = true;//translational constraint in
direction y at local system of node
n1.dof3constraint = true;//translational constraint in
direction z at local system of node
n1.dof4constraint = true;//rotational constraint in
direction x at local system of node
n1.dof5constraint = true;//rotational constraint in
direction y at local system of node
n1.dof6constraint = true;//rotational constraint in
direction z at local system of node
Model.InputNodes.Add(n1);
//Create node n2
41
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Frame3D.SuperNode n2 = new Frame3D.SuperNode(2, 5, 0, 0);
n2.dof1constraint = true;//translational constraint in
direction x at local system of node
n2.dof2constraint = true;//translational constraint in
direction y at local system of node
n2.dof3constraint = true;//translational constraint in
direction z at local system of node
n2.dof4constraint = true;//rotational constraint in
direction x at local system of node
n2.dof5constraint = true;//rotational constraint in
direction y at local system of node
n2.dof6constraint = true;//rotational constraint in
direction z at local system of node
Model.InputNodes.Add(n2);
//Create node n3
Frame3D.SuperNode n3 = new Frame3D.SuperNode(3, 0, 6, 0);
n3.dof1constraint = true;//translational constraint in
direction x at local system of node
n3.dof2constraint = true;//translational constraint in
direction y at local system of node
n3.dof3constraint = true;//translational constraint in
direction z at local system of node
n3.dof4constraint = true;//rotational constraint in
direction x at local system of node
n3.dof5constraint = true;//rotational constraint in
direction y at local system of node
n3.dof6constraint = true;//rotational constraint in
direction z at local system of node
Model.InputNodes.Add(n3);
//Create node n4
Frame3D.SuperNode n4 = new Frame3D.SuperNode(4, 5, 6, 0);
n4.dof1constraint = true;//translational constraint in
direction x at local system of node
n4.dof2constraint = true;//translational constraint in
direction y at local system of node
n4.dof3constraint = true;//translational constraint in
direction z at local system of node
n4.dof4constraint = true;//rotational constraint in
direction x at local system of node
n4.dof5constraint = true;//rotational constraint in
direction y at local system of node
n4.dof6constraint = true;//rotational constraint in
direction z at local system of node
Model.InputNodes.Add(n4);
//Create node n5
Frame3D.SuperNode n5 = new Frame3D.SuperNode(5, 0, 0, 3);
Model.InputNodes.Add(n5);
//Create node n6
Frame3D.SuperNode n6 = new Frame3D.SuperNode(6, 5, 0, 3);
Model.InputNodes.Add(n6);
//Create node n7
Frame3D.SuperNode n7 = new Frame3D.SuperNode(7, 0, 6, 3);
Model.InputNodes.Add(n7);
//Create node n8
Frame3D.SuperNode n8 = new Frame3D.SuperNode(8, 5, 6, 3);
42
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Model.InputNodes.Add(n8);
//Create node n9
Frame3D.SuperNode n9 = new Frame3D.SuperNode(9, 0, 0, 6);
Model.InputNodes.Add(n9);
43
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Model.InputFiniteElements.Add(el6);
FrameSuperElement el7 = new FrameSuperElement(7, n7, n8,
new Geometry.XYZ(0, 7, 3), matConcrete, secColumn50_50, new
MemberReleases(), new MemberReleases(), false, false);
Model.InputFiniteElements.Add(el7);
FrameSuperElement el8 = new FrameSuperElement(8, n5, n7,
new Geometry.XYZ(-1, 0, 3), matConcrete, secColumn50_50, new
MemberReleases(), new MemberReleases(), false, false);
Model.InputFiniteElements.Add(el8);
44
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
45
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
RSCase.DiaphragmEccentricityRatio = 0.05;//Specify
diaphragm eccentricity ratio (usually 5%-10%). This value will
produce a torsional about the global Z coordinate at the center of
mass of each diaphragm.
RSCase.RSFunction = RSFunction;//Assign the previously
defined response spectrum
Model.ResponseSpectrumCases.Add(RSCase);//Add to model
Model.NrOfModesToFind = 6;
//-------SOLUTION PHASE-------
Model.Solve();
//-------OBTAIN RESULTS-------
//Effective mass ratio calculation:
double Effmx = Model.TotalEffectiveMassUX;//mass excited
in x direction
double Effmy = Model.TotalEffectiveMassUY;//mass excited
in y direction
double Massmx = Model.TotalMassUX;//total lateral mass in
x direction
double Massmy = Model.TotalMassUY;//total lateral mass in
y direction
double ratio_mass_x = Effmx / Massmx;//>90% of the total
mass is excited by the response spectrum analysis
double ratio_mass_y = Effmy / Massmy;//>90% of the total
mass is excited by the response spectrum analysis
//Modal information
double[,] Modes = Model.Modes;//each rows represents each
degree of freedom, each column represents the corresponding modal
displacements
//Periods
double[] Periods = Model.Periods;//each entry represents
the period of the corresponding node
46
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Example 8: Beam under uniform and large axial load (P-Δ effect)
//-------MATERIAL DEFINITION-------
//-------SECTIONS DEFINITION-------
47
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
n2.dof3constraint = true;
n2.dof4constraint = true;
n2.dof5constraint = false;
n2.dof6constraint = true;
//Load case creation for horizontal load acting at right
node
LinearLoadCaseForSuperNode L = new
LinearLoadCaseForSuperNode("L", LoadCaseType.OTHER);
L.Px = -1000;
n2.LinearLoadCasesList.Add(L);
Model.InputNodes.Add(n2);
//-------SOLUTION PHASE-------
el1.Section.StiffnessModifiers.AMod = 0.1;
Model.Solve();
//-------OBTAIN RESULTS-------
double[] Min, Max;
for (int loadStep = 1; loadStep <= NLcase.LoadSteps;
loadStep++)
{
48
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//Get deflection at the middle of the beam at each
load step
el1.GetDisplacementsForLoadCase(2.5, "NL", out Min,
out Max, loadStep);
double Deflection = Min[2];
49
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Example 9: Column under shear and large axial load (P-Δ effect)
//-------MATERIAL DEFINITION-------
//-------SECTIONS DEFINITION-------
50
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
secCol050_50.Iz = 0.5 * 0.5 * 0.5 * 0.5 / 12;//inertia
moment about local z axis
secCol050_50.It = 4.347e-3;//torsional constant
secCol050_50.b = 0.5;//section height
secCol050_50.h = 0.5;//section height
Model.InputFiniteElements.Add(el1);
51
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
NLcase.UpdateStiffnessMethod =
GeometricNonLinearCase.UpdateStiffnessMatrixMethod.AfterEachIteration
InLoadStep;
NLcase.SaveResultsAtEachLoadStep = true;//Results will be
saved at all intermediate load steps
Model.GeometricNonLinearCases.Add(NLcase);
//-------SOLUTION PHASE-------
Model.Solve();
//-------OBTAIN RESULTS-------
double[] Min, Max;
for (int loadStep = 1; loadStep <= NLcase.LoadSteps;
loadStep++)
{
//Get horizontal displacement of top node of the
column at each load step
n2.GetNodalDisplacementsForLoadCase("NL", out Min,
out Max, loadStep);
double horDisplacement = Min[0];
52
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//-------MATERIAL DEFINITION-------
//-------SECTIONS DEFINITION-------
//Create node n1
Frame3D.SuperNode n1 = new Frame3D.SuperNode(1, 0, 0, 0);
n1.dof1constraint = true;//delete
n1.dof2constraint = true;//translational constraint in
direction y at local system of node
n1.dof3constraint = true;//translational constraint in
direction z at local system of node
n1.dof4constraint = true;//rotational constraint in
direction x at local system of node
n1.dof5constraint = true;//rotational constraint in
direction y at local system of node
Model.InputNodes.Add(n1);
//Create node n2
53
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Frame3D.SuperNode n2 = new Frame3D.SuperNode(2, 5, 0, 0);
n2.dof1constraint = true;//translational constraint in
direction x at local system of node
n2.dof2constraint = true;//translational constraint in
direction y at local system of node
n2.dof3constraint = true;//translational constraint in
direction z at local system of node
n2.dof4constraint = true;//rotational constraint in
direction x at local system of node
n2.dof5constraint = true;//rotational constraint in
direction y at local system of node
Model.InputNodes.Add(n2);
Model.InputFiniteElements.Add(el1);
//-------SOLUTION PHASE-------
Model.Solve();
//-------OBTAIN RESULTS-------
double[] Min, Max;//The combination results will be saved
in these arrays
//Note that the definition of two arrays for minimum and
maximum combination results is required
//For combination type "ADD", Min and Max values are
always equal
54
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
n2.GetNodalDisplacementsForLoadCase("lc1", out Min, out
Max, 0);
double[] n2_Disp = Max;
55
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
int i_nodes = 1;
56
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//Create foundation nodes (these nodes will be used to
create the shell elements of the foundation slab)
for (double x = 0; x <= 7; x += 1.0)
{
for (double y = 0; y <= 8; y += 1.0)
{
Frame3D.SuperNode n = new
Frame3D.SuperNode(i_nodes++, x, y, 0);
n.dof1constraint = true;
n.dof2constraint = true;
n.Kdof3 = soilStiffnessPerArea;
n.dof6constraint = true;
Model.InputNodes.Add(n);
}
}
double x14 = x - 1;
double x23 = x;
57
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
Frame3D.SuperNode ns2 = new Frame3D.SuperNode(i_nodes++,
6, 1, 3);
Model.InputNodes.Add(ns2);
58
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
ssel2 = new ShellSuperElementTriangular(i_elements++, n1,
n3, n4, matConcrete);
ssel2.Thickness = 0.25;
Model.InputFiniteElements.Add(ssel2);
Model.InputNodes.Add(n3);
n4 = new SuperNode(i_nodes++, 3, 1, 3);
Model.InputNodes.Add(n4);
ssel1 = new ShellSuperElementTriangular(i_elements++, n1,
n2, n3, matConcrete);
ssel1.Thickness = 0.25;
Model.InputFiniteElements.Add(ssel1);
ssel2 = new ShellSuperElementTriangular(i_elements++, n1,
n3, n4, matConcrete);
ssel2.Thickness = 0.25;
Model.InputFiniteElements.Add(ssel2);
Frame3D.FrameSuperElement c2 = new
FrameSuperElement(i_elements++, Model.InputNodes[55], ns2, new
Geometry.XYZ(6, 2, 0), matConcrete, ConcreteSection, new
MemberReleases(), new MemberReleases(), true, false);
Model.InputFiniteElements.Add(c2);
Frame3D.FrameSuperElement c3 = new
FrameSuperElement(i_elements++, Model.InputNodes[61], ns3, new
Geometry.XYZ(6, 8, 0), matConcrete, ConcreteSection, new
MemberReleases(), new MemberReleases(), true, false);
Model.InputFiniteElements.Add(c3);
Frame3D.FrameSuperElement c4 = new
FrameSuperElement(i_elements++, Model.InputNodes[16], ns4, new
Geometry.XYZ(1, 8, 0), matConcrete, ConcreteSection, new
MemberReleases(), new MemberReleases(), true, false);
Model.InputFiniteElements.Add(c4);
//Create beams
LinearLoadCaseForSuperFrameElement beamLoad = new
LinearLoadCaseForSuperFrameElement("lc1", LoadCaseType.DEAD);
beamLoad.UniformLoad.UniformLoadsZ.Add(new
FrameSuperUniformLoad(0, 1, -10, -10,
LoadDefinitionFromStartingNode.Relatively,
LoadCordinateSystem.Global));
59
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//Beam starts from column c1 and ends at column c2. It
also intersects the wall. Thus it is modelled using 3 parts.
Frame3D.FrameSuperElement b1a = new
FrameSuperElement(i_elements++, ns1, n3, new Geometry.XYZ(1, 2, 3),
matConcrete, ConcreteSection, new MemberReleases(), new
MemberReleases(), true, false);
b1a.LinearLoadCasesList.Add(beamLoad);
Model.InputFiniteElements.Add(b1a);
Frame3D.FrameSuperElement b1b = new
FrameSuperElement(i_elements++, n3, n4, new Geometry.XYZ(1, 2, 3),
matConcrete, ConcreteSection, new MemberReleases(), new
MemberReleases(), true, false);
b1b.LinearLoadCasesList.Add(beamLoad);
Model.InputFiniteElements.Add(b1b);
Frame3D.FrameSuperElement b1c = new
FrameSuperElement(i_elements++, n4, ns2, new Geometry.XYZ(1, 2, 3),
matConcrete, ConcreteSection, new MemberReleases(), new
MemberReleases(), true, false);
b1c.LinearLoadCasesList.Add(beamLoad);
Model.InputFiniteElements.Add(b1c);
Frame3D.FrameSuperElement b2 = new
FrameSuperElement(i_elements++, ns2, ns3, new Geometry.XYZ(5, 0, 3),
matConcrete, ConcreteSection, new MemberReleases(), new
MemberReleases(), true, false);
b2.LinearLoadCasesList.Add(beamLoad);
Model.InputFiniteElements.Add(b2);
Frame3D.FrameSuperElement b3 = new
FrameSuperElement(i_elements++, ns3, ns4, new Geometry.XYZ(6, 8, 3),
matConcrete, ConcreteSection, new MemberReleases(), new
MemberReleases(), true, false);
b3.LinearLoadCasesList.Add(beamLoad);
Model.InputFiniteElements.Add(b3);
Frame3D.FrameSuperElement b4 = new
FrameSuperElement(i_elements++, ns4, ns1, new Geometry.XYZ(0, 7, 3),
matConcrete, ConcreteSection, new MemberReleases(), new
MemberReleases(), true, false);
b4.LinearLoadCasesList.Add(beamLoad);
Model.InputFiniteElements.Add(b4);
Model.Solve();
//-------OBTAIN RESULTS-------
double[] Min, Max;
60
ENGISSOL LTD 3D Frame Analysis Library
https://www.engissol.com Technical Notes & Examples
//Beam forces
b1a.GetInternalForcesForLoadCase(0, "lc1", out Min, out
Max, 1);
((ShellSuperElementTriangular)Model.InputFiniteElements.Find(p =>
((ShellSuperElementTriangular)p).Node3.z ==
1)).GetInternalStressesForLoadCase(0, 0, 0.125,
CoordinateSystem.Local, 0, "lc1", out Min, out Max, 1);
((ShellSuperElementTriangular)Model.InputFiniteElements.Find(p =>
((ShellSuperElementTriangular)p).Node3.z ==
1)).GetInternalForcesForLoadCase(ShellTriangularResultsLocation.Point
1, CoordinateSystem.Global, "lc1", out Min, out Max, 1);
61