Nonlinear Structural Analysis Using OpenSees
Nonlinear Structural Analysis Using OpenSees
Nonlinear Structural Analysis Using OpenSees
Using OpenSees
Suiwen Wu
CEE 721
12:00 -1:15
03/30/2021
Email: suiwenw#@unr.edu
Outline
OpenSees
Download and installation
2. Installation
• There is no need to install the tcl/tk version 8.6.10 for the OpenSees version 3.2.2
• Install the Nodepad++ to compile the model. https://notepad-plus-
plus.org/downloads/
▪ After the analysis, remember to type “exit”, unless no results will show up in the
record file.
Method 2:
▪ Set Path Environment Variable
▪ Click “edit” and then “New” and “browse” to get the path of your OpenSees.exe
(this will be something like: C:\Users\suiwenwu\Desktop\OpenSees3.2.2-
x64.exe\bin);
▪ Click OK in every dialog to close them and save your changes.
Run OpenSees’ model in windows
Method 2: Set Path Environment Variable - Windows system
If installed correctly,
OpenSees’ information
will pop out
▪ All defined variables are called out using “$” sign before them
Material
Boundary condition
Uniaxial nD Section
fix $nodeTag (ndf $constrValues)
By default, all degrees of freedom are free
(unconstrained). The fix command is used
Elastic Elastic
ElasticPP Elastic Fiber
to provide fixity in translational or rotational
Hardening J2 DOFs at a given node (1=fixed, 0=free).
Concrete DruckerPrager
Steel TemplateElasto-Plasto For example: fix 1 1 1 1 0 0 0;
Hysteretic FluidSolidPorous
PY-TZ-QZ
Fix node 1 at ux, uy, uz.
PressureMultiYield(dependent,
Parallel independent) equalDOF $rNodeTag $cNodeTag $dof1
Series
Gap
$dof2 ...
Fatigue For example: equalDOF 1 2 3 4
Impose the displacement at dof’s 3 and 4 of
(over 250 material classes)
node 2 to be the same as those of 2.
Workflow to build a model
GeomTransformation Element
Recorder
ElementRecorder DataOutputHandler
NodeRecorder
EnvelopeNodeRecorder
EnvelopElementRecorder
DatabaseRecorder StandardStream
FileStream
XML_FileStream
TCP_Stream Database
DatabaseHandler
Two good sources for output of OpenSees
• http://opensees.berkeley.edu/wiki/images/c/c8/OpenSees%26Output. File
pdf MySQL
• https://www.youtube.com/watch?v=Tx8QszkpmpY Oracle
Workflow to build a model
Analysis
AnalysisModel
StaticAnalysis
TransientAnalysis
Unconverged
Load-displacement curve Load-displacement curve
80 80
70 70
60 60
50 50
Fi+1
Force F (kips)
Force F (kips)
40 40
30
Fi 30
20 20
10 10
0 Δi Δi+1
0
0 5 10 15 20 25 30 0 5 10 15 20 25 30
Displacement (in) Displacement (in)
x
Example 1. A cantilever beam
Material modeling
• Fy=36.0 ksi, E=29,000 ksi, and strain hardening ratio = 0.2;
• Steel01 material model was used to define the material properties.
x x
1 2
Geometric transformation
Three options
• Linear Transformation: infinitesimal deformation, equilibrium equations are
developed based on the undeformed shape, constant T in transferring the
stiffness matrix/forces from local system to global system.
• PDelta Transformation: linear geometric in transferring stiffness matrix/forces
from local system to global system. But second-order P-Delta effect is
considered in the element stiffness matrix=[K+Kg], where Kg is geometric
stiffness caused by axis load.
###Define output
##### Define boundary conditions # Record the nodal displacements at node 6
fix 1 1 1 1 recorder Node -file disp.out -time -node 6 -dof 2 disp;
Analysis results
• disp.out
Load-displacement curve
250
Force Displacement 200
150
Force (kips) 100
50
0
-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
-50
-100
-150
-200
-250
Displacement (in)
Example 2. A cantilever beam w/ geometric nonlinearity
x P=2100 kips
Example 2. A cantilever beam w/ geometric nonlinearity
Analysis cases
• Case 1: Linear material (LM) & linear transformation
• Case 2: Nonlinear material (NLM) & linear transformation
• Case 3: Nonlinear material (NLM) & PDelta transformation
• Case 4: Nonlinear material (NLM) & corotational transformation
Example 2. Input file
#### Define coordinate transformation (geometry nonlinearity)
# Create ModelBuilder # geomTransf Linear 1; ##linear, case 1 and 2
model basic -ndm 2 -ndf 3 # geomTransf PDelta 1; ## Pdelta, case 3
geomTransf Corotational 1; ##Corotational, case 4
######### Define nodes
for {set i 1} {$i<[expr 7]} {incr i 1} { #### Define elements
node $i [expr ($i-1)*24.0] 0.0;} set numIntgrPts 4; ##Define the integration points for element
set intType Lobatto; ##Define the integration type for element
for {set i 1} {$i<[expr 6]} {incr i 1} {
##### Define boundary conditions element dispBeamColumn $i [expr $i] [expr $i+1]
fix 1 1 1 1 $numIntgrPts 1 1 -integration $intType; }
Analysis results
Force F (kips)
Force F (kips)
50
600
LM_linear transf. 40
400 NLM_Linear Transf. 30
NLM_Pelta transf. 20 NLM_Pelta transf.
200
NLM_Corotational transf. 10 NLM_Corotational transf.
0 0
0 5 10 15 20 25 30 35 40 45 50 0 5 10 15 20 25 30 35 40 45 50
Displacement (in) Displacement (in)
Typical Steel Building models
Wu, S., Miah, M., and McCallen, D. (2018). “Four canonical steel moment frame buildings and
inter-code comparisons of nonlinear building response.” Report No. CCEER 19-05, Center for
Civil Engineering Earthquake Research, Department of Civil and Environmental Engineering,
University of Nevada, Reno, NV.
Building information
Define parameters
set Length [expr 30.0*12.0]; ## define bay width (unit: in) ##
set H [expr 13.0*12.0]; ## story height ##
set L [expr 30.0*12.0]; ## bay width ##
set N1 4; ## number of column elements at each story ##
set N2 [expr $N1]; ## number of beam elements at each bay ####
set L1 [expr $H/$N1]; ## define element length in column unit: in ###
set L2 [expr $L/$N2]; ## define element length in beam unit: in ###
• Model builder
model basic -ndm 2 -ndf 3 ; (planar model, will have ux, uy, and θ).
• Node
Step 1: define global coordinate system: lower left corner
Step 2: for columns, start from the lower left corner with node #1 and define
nodes using for loops. For example, for the first column, node 1 is defined at the
bottom of the column, while the top of the column is node (3*$N1+1).
Step 3: for beams, start from the left to right, and second to fourth floors.
• Boundary conditions
Fix all of the base nodes
fix $NodeTag 1 1 1
Workflow to build a model
Material
The building frame was made of steel with elastic-plastic properties.
For columns: Fy=65.0 ksi, E=29,000 ksi, and strain hardening ratio = 1/400;
For beams: Fy=50.0 ksi, E=29,000 ksi, and strain hardening ratio = 1/400;
Steel01 material model was used to define the material properties.
uniaxialMaterial Steel01 1 65.0
29000.0 [expr 1.0/400.0]; # for column
uniaxialMaterial Steel01 2 50.0
29000.0 [expr 1.0/400.0]; # for beam
Workflow to build a model
Geometric transformation
• Corotational Transformation: large-deformation, equilibrium equations are
developed based on deformed shape. Geometric transformation matrix T is not
constant.
Element
• Displacement-based beam elements with fiber sections
• each beam/bay and each column/story were both discretized into 4 elements
• A Gauss-Lobotto integration scheme with 3-point integration
• All mass was converted to line mass
Workflow to build a model
Wait for
something to
happen
• if -$i, show the ith
• If>=0, size of node
modal shape.
• If<0, show node number
• If positive, show the
transient deformed
shape
Workflow to build a model
Recorder
Also refer to
https://opensees.berkeley.edu/wiki/images/c/c8/OpenSees&Output.pdf
Recorder the displacement
recorder Node -file $dataDir/disp($N1-4ele-Lobatto-$numIntgrPts).out -time -
node $centerTag -dof 1 disp;
Eigenvalue analysis
Check mode shapes
recorder display 3storyframe 10 10 1083 1000 -wipe
prp 50 50 1
vup 0 1 0 To show mode shape, the eigenvalue analysis should be run
vpn 0 0 1 first before the display commands
display -1 0 200;
vwait state Freeze the state
Mode 1
Diagonostics: eigenvalue analysis
Mode shapes
Eigenvalue analysis
Check mode periods
Could compare with hand-calculation solution
Diagonostics: pushover analysis
Pushover analysis
Define gravity load analysis first and hold the internal force constant when
running the dynamic analysis.
Only P1, P2, w1, and w2
###Initialize gravity cause gravity load
set g 386.4
timeSeries Constant 2 -factor [expr 0.183891003*$g];
pattern UniformExcitation 2 2 -accel 2; #Define uniform excitation load pattern #2, in vertical
direction, using timeseries #2.
system BandGeneral
numberer Plain
constraints Plain
test NormUnbalance 1.0e-6 2000 0
algorithm Newton
integrator LoadControl 1
analysis Static
analyze 1
loadConst; ## Hold the internal force caused by gravity load when running dynamic analysis
Diagonostics: dynamic analysis
0.2
0.1
0
0 20 40 60 80
-0.1
-0.2
-0.3
-0.4
Time (s)
Input motion:
Taiwan052NS motion