Opensees Command Language Manual: Open System For Earthquake Engineering Simulation (Opensees)
Opensees Command Language Manual: Open System For Earthquake Engineering Simulation (Opensees)
OpenSees Command
Language Manual
Silvia Mazzoni, Frank McKenna, Michael H. Scott, Gregory L. Fenves,
et al.
iii
Contents
Introduction
11
Notation ........................................................................................................................................11
Copyright ......................................................................................................................................13
Introduction to the Tcl command language ..................................................................................14
Tcl Commands Format.................................................................................................................15
Example Tcl Commands ..............................................................................................................16
Additional Tcl Resources .............................................................................................................18
OpenSees Interpreter...................................................................................................................19
OpenSees
20
Model-Building Objects
36
model Command
37
node Command
39
mass Command
40
Contents
constraints objects
iv
41
Single-Point Constraints...............................................................................................................41
fix Command ................................................................................................................................41
fixX Command..............................................................................................................................42
fixY Command..............................................................................................................................43
fixZ Command ..............................................................................................................................43
Multi-Point Constraints .................................................................................................................44
equalDOF Command ...................................................................................................................44
rigidDiaphragm Command ...........................................................................................................45
rigidLink Command ......................................................................................................................46
uniaxialMaterial Command
47
48
65
FatigueMaterialExample.tcl
67
77
131
145
152
157
Contents
164
170
Hysteretic Material......................................................................................................................170
173
nDMaterial Command
175
section Command
185
Elastic Section............................................................................................................................187
Uniaxial Section..........................................................................................................................187
Fiber Section ..............................................................................................................................189
Fiber Command..........................................................................................................................191
Quadrilateral Patch Command...................................................................................................192
Circular Patch Command ...........................................................................................................194
Straight Layer Command ...........................................................................................................196
Circular Layer Command ...........................................................................................................197
Section Aggregator.....................................................................................................................199
Elastic Membrane Plate Section ................................................................................................202
Plate Fiber Section .....................................................................................................................202
Bidirectional Section...................................................................................................................203
Isolator2spring Section: Model to include buckling behavior of an elastomeric bearing ..........204
element Command
213
Contents
vi
243
264
PressureDependMultiYield ..............................................................................................265
PressureDependMultiYield02 ..........................................................................................272
PressureIndependMultiYield ............................................................................................277
updateMaterialStage ........................................................................................................283
updateParameter .............................................................................................................284
FluidSolidPorousMaterial .................................................................................................285
FourNodeQuadUP ...........................................................................................................286
Nine_Four_Node_QuadUP..............................................................................................288
BrickUP ............................................................................................................................290
Twenty_Eight_Node_BrickUP..........................................................................................292
block Command
295
block2D Command.....................................................................................................................296
block3D Command.....................................................................................................................298
region Command
300
302
Time Series
311
Contents
vii
pattern Command
317
Recorder Objects
326
Analysis Objects
336
constraints Command
339
numberer Command
344
system Command
346
BandGeneral SOE......................................................................................................................347
BandSPD SOE ...........................................................................................................................347
ProfileSPD SOE .........................................................................................................................347
SparseGeneral SOE...................................................................................................................347
UmfPack SOE ............................................................................................................................348
SparseSPD SOE ........................................................................................................................348
test Command
349
algorithm Command
352
Contents
viii
integrator Command
356
Load Control...............................................................................................................................358
Displacement Control .................................................................................................................358
Minimum Unbalanced Displacement Norm................................................................................359
Arc-Length Control .....................................................................................................................360
Newmark Method .......................................................................................................................361
Hilbert-Hughes-Taylor Method ...................................................................................................362
analysis Command
363
rayleigh command
367
eigen Command
368
analyze Command
369
dataBase Commands
370
Miscellaneous Commands
372
print Command...........................................................................................................................372
reset Command..........................................................................................................................373
wipe Command ..........................................................................................................................373
wipeAnalysis Command .............................................................................................................374
loadConst Command..................................................................................................................374
getTime Command.....................................................................................................................375
nodeDisp Command...................................................................................................................375
video Command .........................................................................................................................375
play Command ...........................................................................................................................376
nodeBounds ...............................................................................................................................376
display Command.......................................................................................................................377
How To....
378
Run OpenSees...........................................................................................................................379
...Define Units & Constants ........................................................................................................382
...Generate Matlab Commands ..................................................................................................383
...Define Tcl Procedure...............................................................................................................384
...Read External files ..................................................................................................................385
Building The Model.....................................................................................................................387
...Define Variables and Parameters .................................................................................387
...Build Model and Define Nodes .....................................................................................389
...Build Model and Define Nodes using Variables............................................................390
...Define Materials ............................................................................................................391
Contents
ix
...Define Elements............................................................................................................392
Defining Output ..........................................................................................................................393
...Define Analysis-Output Generation ..............................................................................393
...Define Data-Plot During Analysis..................................................................................394
Gravity Loads .............................................................................................................................394
...Define Gravity Loads ....................................................................................................394
...Run Gravity Analysis.....................................................................................................395
Static Analysis ............................................................................................................................395
...Define Static Pushover Analysis ...................................................................................395
...Run Static Pushover Analysis.......................................................................................396
Dynamic Analysis .......................................................................................................................398
...Define Dynamic Ground-Motion Analysis .....................................................................398
...Run Dynamic Ground-Motion Analysis ...................................................................................398
...Combine Input-File Components ............................................................................................399
...Run Parameter Study..............................................................................................................400
...Run Moment-Curvature Analysis on Section ..........................................................................401
...Determine Natural Period & Frequency ..................................................................................403
404
Introduction.................................................................................................................................406
Download OpenSees .................................................................................................................407
Run OpenSees...........................................................................................................................409
Problem Definition ......................................................................................................................413
Model Builder .............................................................................................................................414
Nodes .........................................................................................................................................415
Elements ....................................................................................................................................417
Recorders ...................................................................................................................................418
Summary of Model-Building Input File .......................................................................................418
Loads and Analysis ....................................................................................................................421
1. Load definition ........................................................................................................................421
2. Analysis definition and features .............................................................................................422
3. Analysis execution..................................................................................................................423
Gravity Loads .............................................................................................................................423
Summary of Gravity Loads.........................................................................................................427
Lateral Loads -- Static Pushover................................................................................................427
Lateral Loads -- Cyclic Lateral Load ..........................................................................................428
Lateral Loads -- Dynamic ground motion ...................................................................................429
433
Analysis Components
455
456
Contents
matTest.tcl..................................................................................................................................456
RCcircSection.tcl ........................................................................................................................458
RCcircSectionFEDEAS.tcl .........................................................................................................459
RCFrameDisplay.tcl ...................................................................................................................461
MomentCurvature.tcl ..................................................................................................................462
ReadSMDFile.tcl ........................................................................................................................463
RotSpring2D...............................................................................................................................465
StFramePZLdisplay.tcl ...............................................................................................................466
Wsection.tcl ................................................................................................................................467
RigidFrame3Ddisplay.tcl ............................................................................................................468
Units&Constants.tcl ....................................................................................................................469
MatlabOutput.tcl .........................................................................................................................469
genPlaneFrame.tcl .....................................................................................................................470
References
473
Index
477
11
CHAPTER 1
Introduction
This document is intended to outline the basic commands currently available with the OpenSees
interpreter. This interpreter is an extension of the Tcl/Tk language for use with OpenSees.
OpenSees is an object-oriented framework for finite element analysis. OpenSees' intended
users are in the research community. A key feature of OpenSees is the interchangeability of
components and the ability to integrate existing libraries and new components into the
framework (not just new element classes) without the need to change the existing code. Core
components, that is the abstract base classes, define the minimal interface (minimal to make
adding new component classes easier but large enough to ensure all that is required can be
accommodated).
In This Chapter
Notation.................................................................... 11
Copyright.................................................................. 13
Introduction to the Tcl command language ............... 14
OpenSees Interpreter............................................... 19
Notation
The notation presented in this chapter is used throughout this document.
Input values are a string, unless the first character is a $, in which case an integer, floating point
number or variable is to be provided. In the Tcl language, variable references start with the $
character. Tcl expressions can also be used as input to the commands where the input value is
specified by the first character being a $.
Optional values are identified in enclosing <> braces.
When specifying a variable quantity of values, the command line contains (x $values). The
number of values required, x, and the types of values, $values, are specified in the description of
the command.
An arbitrary number of input values is indicated with the dot-dot-dot notation, i.e. $value1
$value2 ...
Chapter 1
Introduction
12
The OpenSees interpreter constructs objects in the order they are specified by the user. New
objects are often based on previously-defined objects. When specified as an object parameter, a
previously-defined object must have already been added to the Domain. This requirement is
specified in the description of the command arguments.
Also, and very important:
Do not use greek fonts ANYWHERE in your documentation, not only do they not come out in
Html, they are not allowed in tcl, which is where this is important. I recommend spelling out the
letters: alpha, beta, gamma, eps (short for epsilon), etc.
I recommend to not use them in your figures either, as you would be unable to refer to them. If
you must use them you have to do it very carefully, as it may be okey for internal variables.
Example command:
Chapter 1
Introduction
13
Copyright
Copyright 1999,2000 The Regents of the University of California. All Rights Reserved.
Permission to use, copy, modify, and distribute this software and its documentation for
educational, research and non-profit purposes, without fee, and without a written agreement is
hereby granted, provided that the above copyright notice, this paragraph and the following three
paragraphs appear in all copies.
Permission to incorporate this software into commercial products may be obtained by
contacting the University of California. [Bill Hoskins Office of Technology Licensing, 2150
Shattuck Avenue #150 Berkeley, CA 94720-1620, (510) 643-7201]
This software program and documentation are copyrighted by The Regents of the University of
California. The software program and documentation are supplied "as is", without any
accompanying services from The Regents. The Regents does not warrant that the operation of
the program will be uninterrupted or error-free. The end-user understands that the program was
developed for research purposes and is advised not to rely exclusively on the program for any
reason.
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY
DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE
UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE,
SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
Chapter 1
Introduction
14
Procedures
File manipulation
More information on Tcl commands can be found at its web site: Tcl/Tk Primer
(http://dev.scriptics.com/scripting/primer.html) (http://dev.scriptics.com/scripting/primer.html)
a book reference:
Brent Welch <welch@acm.org>, Ken Jones, and Jeff Hobbs: Practical Programming in Tcl
and Tk, (http://www.beedub.com/book/) 4th Edition ISBN: 0-13-038560-3, June, 2003
(http://www.beedub.com/book/)
Chapter 1
Introduction
15
The Tcl interpreter regards a command starting with the pond sign (#) to be a comment
statement, so it does not execute anything following the #. For example:
# this command assigns the value 5 to the variable a
set a 5
The pound sign and the semicolon can be used together to put comments on the same line as
the command. For example:
set a 5; # this command assigns the value 5 to the variable a
Chapter 1
Introduction
procedure
>set a 1
>proc sum {a b} {
puts i equals $i
>set b a
>sum 2 3
>set b $a
>set c [sum 2 3]
set sum 0
>expr 2 + 3
foreach value {1 2 3 4} {
>
>expr 2 + $a
puts $sum
10
>
>
file manipulation
anumber
global sum
>close $fileID
>type tmp
} else {
if {$value > $sum} {
hello
>
>source Example1.tcl
}
> guess 9
too low
>
16
Chapter 1
Introduction
http://www.freeprogrammingresources.com/tcl.html
(http://www.freeprogrammingresources.com/tcl.html)
(a large list of helpful resources)
http://www.tcl.tk/man/ (http://www.tcl.tk/man/)
(Tcl/Tk manual pages)
http://www.mit.edu/afs/sipb/user/golem/doc/tcltk-iap2000/TclTk1.html
(http://www.mit.edu/afs/sipb/user/golem/doc/tcltk-iap2000/TclTk1.html)
(a tutorial describing many commands by describing their implementation in a
short program)
http://www.beedub.com/book/ (http://www.beedub.com/book/)
(some sample chapters from Practical Programming in Tcl and Tk, by Welch and
Jones)
http://philip.greenspun.com/tcl/ (http://philip.greenspun.com/tcl/)
(not the most readable tutorial IMHO, but it does have Tickle-me-Elmo ;) It can be
accessed from the link below as well.)
http://www.tcl.tk/scripting/ (http://www.tcl.tk/scripting/)
17
Chapter 1
Introduction
18
http://hegel.ittc.ukans.edu/topics/tcltk/tutorial-noplugin/index.html
(http://hegel.ittc.ukans.edu/topics/tcltk/tutorial-noplugin/index.html)
(a short tutorial on the essential Tcl commands, also includes a manual of Tcl/Tk
commands at the website below)
http://hegel.ittc.ukans.edu/topics/linux/man-pages/index/index-mann.html
(http://hegel.ittc.ukans.edu/topics/linux/man-pages/index/index-mann.html)
http://pages.cpsc.ucalgary.ca/~saul/personal/archives/Tcl-Tk_stuff/tcl_examples/
(http://pages.cpsc.ucalgary.ca/~saul/personal/archives/Tcl-Tk_stuff/tcl_examples/)
(Tk widgets with screenshots)
OpenSees Interpreter
The main abstractions of OpenSees will be explained using the OpenSees interpreter. The
interpreter is an extension of the Tcl (page 15) scripting language. The OpenSees interpreter
adds commands to Tcl for finite element analysis. Each of these commands is associated
(bound) with a C++ procedure that is provided. It is this procedure that is called upon by the
interpreter to parse the command. In this document we outline only those commands which have
been added to Tcl by OpenSees.
For OpenSees we have added commands to Tcl for finite element analysis:
Output specification specify what it is you want to monitor during the analysis.
HELP
OpenSees Documentation Web Page (http://opensees.berkeley.edu/OpenSees/primer.html)
http://opensees.berkeley.edu/cgi-bin/OpenSeesCommands.pl (http://opensees.berkeley.edu/cgibin/OpenSeesCommands.pl)
19
CHAPTER 2
OpenSees
What is OpenSees?
A communication mechanism within PEER for exchanging and building upon research
accomplishments.
As open-source software, it has the potential for a community code for earthquake engineering.
Chapter 2
In This Chapter
OpenSees Features ................................................. 22
ModelBuilder Object ................................................. 31
Domain Object ......................................................... 32
Recorder Object ....................................................... 33
Analysis Object ........................................................ 34
OpenSees
20
Chapter 2
21
OpenSees Features
+ The library of materials, elements and analysis c
powerful tool for numerical simulation of nonlinea
systems
+ The OpenSees library of components is ever-gro
numerical-simulation models
+ The OpenSees interface is based on a command
enables the user to create more-versatile input files.
+ OpenSees is not a black box, making it a useful
modeling
+ You can create your own material, element or an
into OpenSees
+ NEES is supporting integration of OpenSees as
laboratory testing
WHY OPENSEES?
Chapter 2
MODELS:
+ linear & nonlinear structural and
geotechnical models
22
Chapter 2
SIMULATIONS:
+ static push-over analyses
+ static reversed-cyclic analyses
+ dynamic time-series analyses
+ uniform-support excitation
+ multi-support excitation
MODELING FEATURES:
MODEL-BUILDING CAPABILITIES:
region command
Geometric Transformation command (page 302)
23
Chapter 2
ANALYSIS CAPABILITIES
dataBase command
RECORDER/OUTPUT CAPABILITIES
EnvelopeNode Recorder
Drift Recorder
EnvelopeElement Recorder
playback Command
MODEL-BUILDING FEATURES:
UNIAXIAL MATERIALS (page 47):
24
Chapter 2
25
Parallel Material
Series Material
Hardening Material
Concrete01 Material -- Zero Tensile Strength (page 141)
BARSLIP Material
Bond_SP01 - - Strain Penetration Model for Fully Anchored Steel Reinforcing Bars
Concrete04 Material -- Popovics Concrete Material (page 61)
Fatigue Material
MULTIDIMENSIONAL/nD MATERIALS:
J2 Plasticity Material
PressureIndependMultiYield Material
PressureDependMultiYield Material
ELEMENTS:
Truss Element
Chapter 2
Zero-Length Element
Zero-Length ND Element
Zero-Length Section Element (page 225)
Quad Element
Shell Element
u-p-U element
BeamColumnJoint Element
SECTIONS:
Section Aggregator
Bidirectional Section
ANALYSIS FEATURES:
26
Chapter 2
27
Linear Equation Solvers (page 346) -- provide the solution of the linear system
of equations Ku = P. Each solver is tailored to a specific matrix topology.
Profile SPD (page 347) -- Direct profile solver for symmetric positive definite matrices
Band SPD -- Direct solver for banded symmetric positive definite matrices
Sparse General -- Direct solver for unsymmetric sparse matrices
DOF Numberers (page 344) -- number the degrees of freedom in the domain
RCM (page 345) -- Renumbers the DOF to minimize the matrix band-width using the
Reverse Cuthill-McKee algorithm
Static Integrators (page 356) -- determine the next time step for an analysis
Load Control (page 358) -- Specifies the incremental load factor to be applied to the loads in
the domain
Minimum Unbalanced Displacement Norm (page 359) -- Specifies the incremental load
factor such that the residual displacement norm in minimized
Arc Length (page 360) -- Specifies the incremental arc-length of the load-displacement path
Transient Integrators (page 356) -- determine the next time step for an analysis
including inertial effects
Newmark (page 361) -- The two parameter time-stepping method developed by Newmark
Chapter 2
28
Solution Algorithms (page 352) -- Iterate from the last time step to the current
Linear Algorithm -- Uses the solution at the first iteration and continues
Newton Algorithm (page 352) -- Uses the tangent at the current iteration to iterate to
convergence
Modified Newton Algorithm -- Uses the tangent at the first iteration to iterate to convergence
Newton with Line Search Algorithm
Krylov-Newton Algorithm
BFGS Algorithm
Broyden Algorithm
Convergence Tests (page 349) -- Accept the current state of the domain as
being on the converged solution path
Norm Unbalance -- Specifies a tolerance on the norm of the unbalanced load at the current
iteration
Energy Increment -- Specifies a tolerance on the inner product of the unbalanced load and
displacement increments at the current iteration
Relative Unbalance
Plain Constraints (page 341) -- Removes constrained degrees of freedom from the system of
equations
Lagrange Multipliers (page 342) -- Uses the method of Lagrange multipliers to enforce
constraints
Chapter 2
29
Static Analysis (page 363) -- solves the KU=R problem, without the mass or damping
matrices.
Transient Analysis (page 364) -- solves the time-dependent analysis. The time step in this
type of analysis is constant. The time step in the output is also constant.
Variable Transient Analysis (page 365) -- performs the same analysis type as the Transient
Analysis object. The time step, however, is variable. This method is used when there are
convergence problems with the Transient Analysis object at a peak or when the time step is
too small. The time step in the output is also variable.
ModelBuilder Object
The model builder constructs As in any finite element analysis, the analyst's first step is to
subdivide the body being studied into elements and nodes, to define loads acting on the
elements and nodes, and to define constraints acting on the nodes.
The ModelBuilder is the object in the program responsible for building the following objects in the
model and adding them to the domain:
Chapter 2
30
Domain Object
The Domain object is responsible for storing the objects created by the ModelBuilder (page 31)
object and for providing the Analysis (page 336) and Recorder (page 33) objects access to these
objects.
Figure 1: Domain
Object
Chapter 2
31
Recorder Object
The recorder object monitors user-defined parameters in the model during the analysis. This, for
example, could be the displacement history at a node in a transient analysis, or the entire state
of the model at each step of the solution procedure. Several Recorder (page 326) objects are
created by the analyst to monitor the analysis.
Monitors the state of a domain component (node, element, etc.) during an analysis
Writes this state to a file or to a database at selected intervals during the analysis
Analysis Object
The Analysis objects are responsible for performing the analysis. The analysis moves the model
along from state at time t to state at time t + dt. This may vary from a simple static (page 363)
linear analysis to a transient (page 364, page 365) non-linear analysis. In OpenSees each
Analysis object is composed of several component objects, which define the type of analysis
how the analysis is performed.
Chapter 2
Figure 2: Analysis
Object
32
33
CHAPTER 3
Model-Building Objects
These objects are used to create the physical model.
In This Chapter
model Command ...................................................... 37
node Command........................................................ 39
mass Command ....................................................... 40
constraints objects.................................................... 41
uniaxialMaterial Command ....................................... 47
nDMaterial Command .............................................. 175
section Command .................................................... 185
element Command ................................................... 213
Soil Models and Solid-Fluid Fully Coupled Elements 264
block Command ....................................................... 295
region Command...................................................... 300
Geometric Transformation Command....................... 302
Time Series .............................................................. 311
pattern Command..................................................... 317
34
CHAPTER 4
model Command
This command is used to construct a ModelBuilder object.
Currently there is only one type of ModelBuilder accepted.
For an example of this command, refer to the Model Building Example (page 389)
In This Chapter
Basic Model Builder.................................................. 37
build Command ........................................................ 38
$ndf
These additional commands allow for the construction of Nodes (page 39), Masses (page 40),
Materials (page 175, page 47), Sections (page 185), Elements (page 213), LoadPatterns (page
317), TimeSeries (page 311), Transformations (page 302), Blocks (page 295) and Constraints
(page 339). These additional commands are described in the subsequent chapters.
EXAMPLE:
Chapter 4
model Command
build Command
This command is used to invoke build() (????) on the ModelBuilder (page 31) object.
build
This command has no effect a BasicBuilder (page 37) object, but will on other types of
ModelBuilder (page 31) objects.
35
36
CHAPTER 5
node Command
This command is used to construct a Node object. It assigns coordinates and masses to the
Node object.
$coords
$MassValues
The optional -mass string allows analyst the option of associating nodal mass with the node
EXAMPLE:
node 1
0.0
0.0
node 2
0.0
120.
For an example of this command, refer to the Model Building Example (page 389)
37
CHAPTER 6
mass Command
This command is used to set the mass at a node.
$MassValues
EXAMPLE:
mass 2 2.5 0.0 2.5 0.0 0.0 0.0;
For an example of this command, refer to the Model Building Example (page 389)
38
CHAPTER 7
constraints objects
From Cook: " A constraint either prescribes the value of a DOF (as in imposing a support
condition) or prescribes a relationship among DOF. In common terminology, a single-point
constraint sets a single DOF to a known value (often zero) and a multi-point constraint imposes
a relationship between two or more DOF.... For example, support conditions on a three-bar truss
invoke single-point constraints, while rigid links and rigid elements each invoke a multi-point
constraint."
In This Chapter
Single-Point Constraints ........................................... 41
Multi-Point Constraints ............................................. 44
Single-Point Constraints
The following commands construct homogeneous single-point boundary constraints.
fix Command
This command is used to construct homogeneous single-point boundary constraints.
$ConstrValues
unconstrained
constrained
EXAMPLE:
fix 1 1 1 1 1 1 1;
Chapter 7
constraints objects
39
For an example of this command, refer to the Model Building Example (page 389)
fixX Command
This command is used to construct multiple homogeneous single-point boundary constraints for
all nodes whose x-coordinate lies within a specified distance from a specified coordinate.
$ConstrValues
$tol
unconstrained
constrained
EXAMPLE:
fixX 0.0 1 1 1 1 1 1 -tol 0.1; # fully restrain all nodes in y-z plane at origin (x=0.0)
fixY Command
This command is used to construct multiple homogeneous single-point boundary constraints for
all nodes whose y-coordinate lies within a specified distance from a specified coordinate.
Chapter 7
constraints objects
$yCoordinate
$ConstrValues
40
$tol
unconstrained
constrained
EXAMPLE:
fixY 0.0 1 1 1 1 1 1 -tol 0.1; # fully restrain all nodes in x-z plane at origin (y=0.0)
fixZ Command
This command is used to construct multiple homogeneous single-point boundary constraints for
all nodes whose z-coordinate lies within a specified distance from a specified coordinate.
$ConstrValues
$tol
unconstrained
constrained
EXAMPLE:
fixZ 0.0 1 1 1 1 1 1 -tol 0.1; # fully restrain all nodes in x-y plane at origin (z=0.0)
Chapter 7
constraints objects
41
Multi-Point Constraints
The following commands construct multi-point boundary constraints.
equalDOF Command
This command is used to construct a multi-point constraint between nodes.
$cNodeTag
EXAMPLE:
equalDOF 2 3 1 3 5;
rigidDiaphragm Command
This command is used to construct a number of Multi-Point Constraint (MP_Constraint) objects.
These objects will constraint certain degrees-of-freedom at the listed slave nodes to move as if
in a rigid plane with the master node.
Chapter 7
$perpDirn
constraints objects
42
$masterNodeTag
$slaveNodeTag1
$slaveNodeTag2 ...
rigidLink Command
This command is used to construct a single MP_Constraint object.
beam
$masterNodeTag
$slaveNodeTag
NOTE: The constraint object constructed for the beam option assumes small rotations
EXAMPLE:
rigidLink beam 2 3; # connect node 3 to node 2 via a rigid link-beam.
43
CHAPTER 8
uniaxialMaterial Command
This command is used to construct a UniaxialMaterial object which represents uniaxial stressstrain (or force-deformation) relationships.
The valid queries to any uniaxial material when creating an ElementRecorder (page 330) are
'strain,' 'stress,' and 'tangent.'
In This Chapter
-- Contributed Uniaxial Materials .............................. 48
Elastic Material ......................................................... 131
Elastic-Perfectly Plastic Material............................... 132
Elastic-Perfectly Plastic Gap Material ....................... 134
Elastic-No Tension Material...................................... 136
Parallel Material........................................................ 137
Series Material ......................................................... 138
Hardening Material ................................................... 140
Concrete01 Material -- Zero Tensile Strength........... 141
Concrete02 Material -- Linear Tension Softening...... 145
Concrete03 Material -- Nonlinear Tension Softening152
Steel01 Material ....................................................... 157
Steel02 Material -- Giuffr-Menegotto-Pinto Model with Isotropic
Strain Hardening ...................................................... 165
Hysteretic Material.................................................... 170
Viscous Material ....................................................... 173
44
CHAPTER 9
In This Chapter
BARSLIP Material .................................................... 48
Bond_SP01 - - Strain Penetration Model for Fully Anchored Steel
Reinforcing Bars....................................................... 50
Concrete04 Material -- Popovics Concrete Material.. 61
Fatigue Material........................................................ 65
Limit State Material................................................... 77
PINCHING4 Material ................................................ 88
PyTzQz Uniaxial Materials ....................................... 109
Reinforcing Steel Material ........................................ 117
BARSLIP Material
Contact Author:
This command is used to construct a uniaxial material that simulates the bar force versus slip
response of a reinforcing bar anchored in a beam-column joint. The model exhibits degradation
under cyclic loading. Cyclic degradation of strength and stiffness occurs in three ways: unloading
stiffness degradation, reloading stiffness degradation, strength degradation.
uniaxialMaterial BarSlip $matTag $fc $fy $Es $fu $Eh $db $ld $nb $depth
$height <$ancLratio> $bsFlag $type <$damage $unit>
$matTag
$fc
Chapter 9
$fy
$Es
$fu
$Eh
$ld
$db
$nb
$depth
$height
$ancLratio
$bsFlag
$type
$damage
$unit
NOTE:
Model Characteristics:
45
Chapter 9
46
The uniaxial material model uses the Pinching4 material (page 88) model (Ref. Pinching4
material model). The response envelope for the bar-slip springs does not represent strength
deterioration, but once the slip demand exceeds 3mm (0.12 in), strength deterioration due to
cyclic loading initiates. As a result the bond-slip springs always exhibit positive stiffness, but
strength deterioration upon reloading to a previously observed slip demand. Reloading and
Unloading Stiffness deterioration are also simulated.
The damage index for unloading and reloading stiffness degradation is evaluated the same say
as the Pinching4 material (ref. Pinching4 material doc.) but the index for strength degradation
f i is specified as
(~ )
With degradation model parameters gF*. It should be noted in here that the deterioration
parameters for unloading, reloading stiffness and strength degradation cannot be modified by
the user and are defined to represent observed behavior.
*NOTE: The model includes predefined bond strengths, so there is the necessity to include in
Units in this material model. For default one can specify units in psi (i.e. pounds/inch2) or in MPa
(i.e. N/mm2). The code detects units in psi if the compressive strength of concrete is greater than
1000 otherwise it takes it as MPa system. The optional variable $unit will help the user to specify
other different types of unit systems according to ones choice, but currently it is limited to the
unit systems as specified above. The user should also take care to specify the units of length in
the corresponding matching units. (note: Pa = N/m2; ksf = kilo-pound/ft2)
http://www.uwm.edu/~jzhao/Bond_SP01_pages/Bond_index.html
http://www.uwm.edu/~jzhao/Bond_SP01_pages/Bond_index.html
Contact Authors:
Chapter 9
47
This command is used to construct a uniaxial material object for capturing strain penetration
effects at the column-to-footing, column-to-bridge bent caps, and wall-to-footing intersections. In
these cases, the bond slip associated with strain penetration typically occurs along a portion of
the anchorage length. This model can also be applied to the beam end regions, where the strain
penetration may include slippage of the bar along the entire anchorage length, but the model
parameters should be chosen appropriately.
This model is for fully anchored steel reinforcement bars that experience bond slip along a
portion of the anchorage length due to strain penetration effects, which are usually the case for
column and wall longitudinal bars anchored into footings or bridge joints
$matTag
$Fy
$Sy
d (in ) $ Fy ( psi )
$ Sy (in ) = 0.1 b
(
2 * alpha + 1)
4000 f ' ( psi )
alpha
+ 0.013(in )
or
1
db(mm) $Fy(MPa
alpha
)
(2*alpha+1) +0.34(mm)
$Sy(mm) =2.54
8437 f '(MPa
)
c
$Su
Chapter 9
$b
$R
Pinching factor for the cyclic slip vs. bar response (0.5~1.0)
stress
NOTE:
$Fu
$bK
$Fy
$Sy
$Su slip
48
Chapter 9
49
stress
slip
K
80
$R = 1.0
$R = 0.6
40
-40
-80
-0.6
-0.4
-0.2
0
Loaded-end slip (in)
0.2
0.4
0.6
Chapter 9
50
Model background:
Capturing the structural response and associated damage require accurate modeling of
localized inelastic deformations occurring at the member end regions as identified by shaded
areas in Figure 4. These member end deformations consist of two components: 1) the flexural
deformation that causes inelastic strains in the longitudinal bars and concrete, and 2) the
member end rotation, as indicated by arrows in Figure 4, due to reinforcement slip. The slip
considered here is the result of strain penetration along a portion of the fully anchored bars into
the adjoining concrete members (e.g., footings and joints) during the elastic and inelastic
response of a structure. Ignoring the strain penetration component may appear to produce
satisfactory force-displacement response of the structural system by compromising strain
penetration effects with greater contribution of the flexural action at a given lateral load.
However, this approach will appreciably overestimate the strains and section curvatures in the
critical inelastic regions of the member, and thereby overestimate the structural damage.
Building frame
Bridge bent
Structural wall
Chapter 9
51
The zero-length section element available in OpenSees may be used to accurately model the
strain penetration effects (or the fixed end rotations shown in Figure 4). Zero-length section
elements have been generally used for section analyses to calculate the moment corresponding
to a given curvature. To model the fixed-end rotation, the zero-length section element should be
placed at the intersection between the flexural member and an adjoining member representing a
footing or joint as shown in Figure 5. A duplicate node is also required between a fiber-based
beam-column element and the adjoining concrete element as shown in Figure 5. The
translational degree-of-freedom of this new node (i.e., node j in Figure 5) should be constrained
to the other node (i.e., node i in Figure 5) to prevent sliding of the beam-column element under
lateral loads because the shear resistance is not included in the zero-length section element.
N
M
Node k
Sec. n
beamcolumn
element
.
.
.
Sec. 2
zero-length
section
element
Sec. 1
Node j
Node i
The zero-length section element in OpenSees is assumed to have a unit length such that the
element deformations (i.e., elongation and rotation) are equal to the section deformations (i.e.,
axial strain and curvature). The material model for the steel fibers in the zero-length section
element represents the bar slip instead of strain for a given bar stress. The uniaxial material
model Bond_SP01 is developed for steel fibers in the zero-length section elements.
Note on Material Model for Concrete Fibers
Chapter 9
52
Similar to the model proposed for the steel fibers, a material model describing the monotonic
response and hysteretic rules is also required for the concrete fibers. The combination of using
the zero-length section element and enforcing the plane section assumption at the end of a
flexural member impose high deformations to the extreme concrete fibers in the zero-length
element. These deformations would likely correspond to concrete compressive strains
significantly greater than the strain capacity stipulated by typical confined concrete models. Such
high compressive strains at the end of flexural members are possible because of additional
confinement effects expected from the adjoining members and because of complex localized
deformation at the member end. Without further proof, it is suggested that the concrete fibers in
the zero-length section element follow a concrete model in OpenSees (e.g., Concrete02). To
accommodate the large deformations expected to the extreme concrete fibers in the zero-length
element, this concrete model may be assumed to follow a perfectly plastic behavior once the
concrete strength reduces to 80% of the confined compressive strength. A parametric study has
indicated that the simulation results would not be very sensitive to the compressive strain
chosen to trigger the perfectly plastic behavior for the concrete fibers in the zero-length section
element.
Reference:
Zhao, J., and S. Sritharan. Modeling of strain penetration effects in fiber-based analysis of
reinforced concrete structures. ACI Structural Journal. (Accepted for publication in 2006).
example ss_ic1.tcl
# bridge T-joint
# ----------------# Units: kips, in.
# Pushover analysis multiple dispBeamColumn with strain penetration
# modeling the circular RC column in a bridge T-joint tested by
# Sri Sritharan
# "Seismic response of column/cap beam tee connections
# with cap beam prestressing" Ph.D. thesis, UCSD
# Create ModelBuilder (with two dimensions and 2 DOF/node)
model basic -ndm 2 -ndf 3
# Create nodes
# tag X
node
1 0.0
node
2 0.0
node
3 0.0
node
4 0.0
node
5 0.0
node
6 0.0
node
7 0.0
node
8 12.0
node
9 19.0
node
10 40.0
node
11 61.5
node
12 84.0
node
13 12.0
Y
-48.0
-30.0
-12.0
0.0
12.0
30.0
48.0
0.0
0.0
0.0
0.0
0.0
0.0
Chapter 9
53
tag
1
200
tag
2
tag
3
f'c
-6.38
-6.38
f'c
-4.56
E
2280
ec0
-0.004
-0.004
ec0
-0.002
tag
$a1
f'cu
-5.11
-5.11
f'cu
0.0
f'c
-5.76
$a2
5
$a3
65.0
tag
$a4
29000
62.8
29000
29000
$Tag
$sy
$fy
$su
400
0.02
65
0.7
ecu
-0.014
-0.014
ecu
-0.006
ec0
f'cu
-0.002
0.0
-0.006
$Fy
$E
$b
$R0
0.02
18.5
0.925
0.15
0.02
18.5
0.925
0.15
$fu
$Kz
$R
97.5
0.50
0.7
1.0
1.0
$la
25.0
70
22
0.0
0.0
0.0
$Rc
0.0
360.0
70
0.0
0.0
$Rc
$R
0.0
360.0
14
$As
0.0
0.0
$Rb
-90.0
244.3
70
22
0.0
0.0
0.0
$Rc
0.0
360.0
70
0.0
0.0
$Rc
$R
0.0
360.0
14
$As
0.0
0.0
$Rb
-90.0
244.3
Chapter 9
section Fiber 5 {
# core concrete fibers
patch circ
# concrete cover fibers
patch circ
# reinforcing fibers
layer circ
}
200
70
22
0.0
0.0
0.0
$Rc
0.0
360.0
70
0.0
0.0
$Rc
$R
0.0
360.0
400
14
$As
0.0
0.0
$Rb
-90.0
244.3
$aw
-$bw
$aw
secID
1
1
1
1
1
1
1
1
1
1
1
transfTag
54
-$bw
-$aw
$bw
-$aw
-$bb
$bb
$ab
$ab
-$bb
$bb
-$ab
-$ab
$bw
Chapter 9
55
Chapter 9
56
materialmodels.tcl
# load pattern test
# ----------------# Jian Zhao, Iowa State University
# June 20, 2004
# ----------------#----------Create Model (2-D 3dof problem-plane truss)
model basic -ndm 2 -ndf 3
# Create nodes
# tag X Y
node
1 0.0
node
2 1.0
node
3 1.0
0.0
0.0
1.0
RZ
1
1
1
CONCRETE
1
tag
f'c
2
CONCRETE
ft0
3
tag
-4.5
ec0
-6.0
tag
beta
-6.0
f'c
-0.002
-0.004
f'c
etu
-0.004
tag
$Fy
68.1
tag
$sy
0.022
jnode
1
1
2
A
2
3
3
ec0
0.0
f'cu
-5.0
ec0
-0.006
ecu
-0.014
f'cu
ecu
f'cu
ecu
-5.0
-0.014
0.5
0.45
0.0015
$E
$b
$R0
$cR1
$cR2
29000
0.010
22
0.925
0.15
$fy
$su
$fu
$Kz
$R
60
0.77
90
0.5
0.65
-node
-dof
$a4
1.0
$la
25.0
inode
1
2
3
#----------Create Analysis
# Create displacement command recorders
recorder Node
-file
Mattag
1
$mat
1
$mat
1
$mat
commanddisp.out -time
Chapter 9
disp
# Create reaction force recorders (for checking material models)
recorder Element -file
reaction.out
-time
-ele
57
axialForce
This command is used to construct a uniaxial Popovics concrete material object with degraded
linear unloading/reloading stiffness according to the work of Karsan-Jirsa and tensile strength
with exponential decay.
uniaxialMaterial Concrete04 $matTag $fc $ec $ecu $Ec <$ft $et> <$beta>
$matTag
$fc
$ec
$ecu
$Ec
$fct
Chapter 9
$et
$beta
58
f ci = f c ci
c
Esec =
f ci
ci
n=
n
n 1 + ci
c
Ec
Ec Esec
where subscript i refer to the stress/strain at any load step. For unloading and reloading in
compression, the Karsan-Jirsa model (1969) is used to determine the slope of the curve. For
tensile loading, an exponential curve is used to define the envelope to the stress-strain curve:
ft
Ec
f t t ft
Ec
i = ft
ft
where multiplier refers to the stress at ultimate tensile strain, generally the value considered is
0.1.
For unloading and reloading in tensile, the secant stiffness is used to define the path.
Chapter 9
59
The following figures show example stress-strain histories generated using the model.
-4
Tensile response
stress
0.4
1.5
cyclic tension
x 10
1
0.2
0.5
0
0.5
1.5
strain
500
Compressive response
stress
1500
2000
x 10
cyclic compression
0.01
2
0.005
1
0
4
strain
200
400
600
800
1000
-3
x 10
-3
Tensile-Compressive response
3
10
2
stress
1000
-4
x 10
cyclic tension-compression
1
0
0
-1
-2
4
strain
8
-3
x 10
-5
200
400
600
800
1000
1200
Chapter 9
60
2.5
stress (ksi)
1.5
0.5
-0.5
-1
3
strain
7
-3
x 10
Reference:
Mander, J. B., Priestley, M. J. N., and Park, R. (1988). "Theoretical stress-strain model for
confined concrete." Journal of Structural Engineering ASCE, 114(8), 1804-1825.
Popovics, S. (1973). " A numerical approach to the complete stress strain curve for concrete."
Cement and concrete research, 3(5), 583-599.
Karsan, I. D., and Jirsa, J. O. (1969). "Behavior of concrete under compressive loading." Journal
of Structural Division ASCE, 95(ST12).
61
CHAPTER 10
Fatigue Material
Author:
Patxi Uriz
Contact Information:
The fatigue material uses a modified rainflow cycle counting algorithm to accumulate damage in
a material using Miners Rule. Element stress/strain relationships become zero when fatigue life
is exhausted.
Chapter 10
62
The material also has the ability to trigger failure based on a maximum or minimum strain (i.e.
not related to fatigue). The default for these values is set to very large numbers.
The default values are calibrated parameters from low cycle fatigue tests of European steel
sections Ballio and Castiglioni (1995), for more information about how material was calibrated,
the user is directed to Uriz (2005).
$matTag
$tag
Unique material object integer tag for the material that is being
wrapped
$E0
$m
$min
$max
Example Command:
Example command: uniaxialMaterial Fatigue 2 1 -E0 0.191 -m -0.458
where 2 is the Fatigue material tag, and 1 is the material that is being wrapped, the -E0 and -m
values I have listed here are the default values.
Valid recorder objects for the material are stress,tangent, strain, stressStrain, and damage.
The stress, strain, and tangent recorder options must be available in the material that you are
wrapping.
Chapter 10
FatigueMaterialExample.tcl
FatigueMaterialExample.tcl
63
Chapter 10
FatigueMaterialExample.tcl
BasicBuilder -ndm 2
-ndf 2
nd
load 2
FX
1.0 0.0 0.0
}
## Recorders
recorder Element -file "Damage.out" -time -ele 1 material 1 damage
recorder Element -file "StressStrain.out" \
-time -ele 1 material 1 stressANDstrain
## Set analysis parameters
test EnergyIncr 1.0e-8 200
algorithm Newton
system UmfPack
numberer RCM
constraints Plain
analysis Static
## Source the displacement history, and initialize analysis parameters
#source RandomStrainHstory1.tcl
source RandomStrainHstory2.tcl
set LoopLength [array size disp]
set h 1
set controlNode 2
set currentDisp [nodeDisp $controlNode 1 ]
puts [format " \n STARTING DISPLACEMENT = %5.3f \n" $currentDisp]
64
Chapter 10
Figure 1. DamageExample1.jpg
FatigueMaterialExample.tcl
65
Chapter 10
Figure 2. DamageExample2.jpg
FatigueMaterialExample.tcl
66
Chapter 10
RandomStrainHistory1.tcl
FatigueMaterialExample.tcl
67
Chapter 10
FatigueMaterialExample.tcl
68
Chapter 10
FatigueMaterialExample.tcl
69
Chapter 10
RandomStrainHistory2.tcl
FatigueMaterialExample.tcl
70
Chapter 10
FatigueMaterialExample.tcl
71
Chapter 10
FatigueMaterialExample.tcl
72
References
Uriz, Patxi (2005) Towards Earthquake Resistant Design of Concentrically Braced Steel
Structures, Doctoral Dissertation, Structural Engineering, Mechanics, and Materials,
Department of Civil and Environmental Engineering, University of California, Berkeley,
December 2005
Ballio, G., and Castiglioni, C. A. (1995). "A Unified Approach for the Design of Steel Structures
under Low and/or High Cycle Fatigue." Journal of Constructional Steel Research, 34, 75-101.
73
CHAPTER 11
Ken Elwood:
http://www.civil.ubc.ca/faculty/KElwood/KElwood.html
This command is used to construct a uniaxial hysteretic material object with pinching of force
and deformation, damage due to ductility and energy, and degraded unloading stiffness based
on ductility. Failure of the material is defined by the associated limit curve.
uniaxialMaterial LimitState $matTag $s1p $e1p $s2p $e2p $s3p $e3p $s1n $e1n
$s2n $e2n $s3n $e3n $pinchX $pinchY
$damage1 $damage2 $beta $curveTag $curveType.
$matTag
$s1p
$e1p
$s2p
$e2p
$s3p
$e3p
$s1n
$e1n
$s2n
$e2n
$s3n
$e3n
$pinchX
$pinchY
$damage1
$damage2
$beta
$curveTag
$curveType
Chapter 11
74
In This Chapter
Shear Limit Curve..................................................... 78
Axial Limit Curve ...................................................... 79
Shear Limit Curve..................................................... 80
Example Files for Limit State Material ...................... 82
$eleTag
$rho
$fc
$b
$h
$d
$Fsw
$Kdeg
$Fres
Chapter 11
$defType
$forType
$ndI
$ndJ
$dof
$perpDirn
$delta
75
$eleTag
$Fsw
$Kdeg
floating point value for the slope of the third branch in the
post-failure backbone, assumed to be negative (see
Figure 4-6)
Chapter 11
$Fres
$defType
$forType
$ndI
$ndJ
$dof
$perpDirn
$delta
76
$eleTag
$rho
$fc
Chapter 11
$b
$h
$d
$Fsw
$Kdeg
$Fres
$defType
$forType
$ndI
$ndJ
$dof
$perpDirn
$delta
77
Chapter 11
78
Chapter 11
tag DX DY RZ
1 1 1 1
4 0 0 1
5 1 1 1
##############################
# Create column section
##############################
source CenterColSecFiber.tcl
#################################
# Define the beam-column element
#################################
geomTransf PDelta 1
set nint 5
element nonlinearBeamColumn $bcTag 2 3 $nint $flexSec 1 -iter 5 1e-15
####################################
# Define the zero-length end springs
####################################
#rigid material
uniaxialMaterial Elastic $rigidMatTag 9.9e9
#bottom of column slip spring
79
Chapter 11
CenterColShearSpring.tcl
# Defines Shear Spring
# Units: kip, in
# KJE, Feb 2003
# slopes of shear spring backbone
set rigidSlope 1700; #Values when using zero-length spring (G*Av/L)
set negSlope -8;
# residual shear capacity
set Vr 3.0;
# strengths for initial response
set Vi1 25.0;
set Vi2 30.0;
set Vi3 45.0;
# stiffness of unloading slope for flexural component
set kf 24.7 ;# measured off hysteresis plot from analysis
# define limit surface using shear drift model
#
tag
eleTag
# rho f'c b h d Fsw
# Kdeg Fres defType forType nodeI nodeJ dof perpDirn
limitCurve Shear $shearCurveTag $bcTag\
0.0018 3517.0 9.0 9.0 7.75 11.87\
$kf $Vr 2
0
1 4 1 2 0.0
# define HystereticMaterial
uniaxialMaterial LimitState $shearTag\
$Vi1 [expr $Vi1/$rigidSlope] $Vi2 [expr $Vi2/$rigidSlope] $Vi3 [expr $Vi3/$rigidSlope]\
[expr -$Vi1] [expr -$Vi1/$rigidSlope] [expr -$Vi2] [expr -$Vi2/$rigidSlope] [expr -$Vi3] [expr $Vi3/$rigidSlope]\
$pinchX $pinchY $damage1 $damage2 $beta $shearCurveTag 2 0
CenterColSecFiber.tcl
# Defines Center Column Section
# Units: kip, in
# KJE, Feb 2003
set h 9.0
set b $h
set beta1 100.0
set beta2 100.0
set spall nospalling
set alphaS 0.015
# Set parameters for fiber section
set nfCore 28
set nfCover 4
set c 1.0
set z [expr $h/2.0-$c]
set y [expr $b/2.0-$c]
80
Chapter 11
81
228.0
1.2e-4
set My
set Ky
set Ry
[expr $Ky*$L/6.0] ; # yield rotation
set EI
[expr $My/$Ky]
set alpha 0.05
set Ku
set Mu
set Ru
0.05
[expr $My+$alpha*$EI*($Ku-$Ky)]
0.5 ;# this assumes alpha is very small so diff between M-curv alpha and M-rot alpha is negligible
Chapter 11
-0.002 0.0
-0.0060
} else {
puts stderr "Invalid spalling option: $spall"
}
#
tag
fy E
hardening ratio
#uniaxialMaterial Steel02 $steelTag 69.5 29000 $alphaS
uniaxialMaterial Hysteretic $steelTag $fy $esy $fu $esu\
-$fy -$esy -$fu -$esu 1.0 1.0 0 0
# Define the fiber section
section Fiber $flexSec {
# Define the concrete patch with fibers for unidirectional bending
patch quadr $coreTag 1 $nfCore $ny $z $ny $nz $y $nz $y $z
# Define the four cover patches
patch quadr $coverTag 1 $nfCover $nyc $zc $nyc $nzc $ny $nz $ny $z
patch quadr $coverTag 1 $nfCover $y $z $y $nz $yc $nzc $yc $zc
patch quadr $coverTag 1 $nfCore $ny $nz $nyc $nzc $yc $nzc $y $nz
patch quadr $coverTag 1 $nfCore $nyc $zc $ny $z $y $z $yc $zc
# Define the reinforcement explicitly using fiber command
# yloc zloc area matTag
fiber -3.250 3.250 0.2 $steelTag 0
fiber -3.250 -3.250 0.2 $steelTag 0
fiber 3.250 -3.250 0.2 $steelTag 0
fiber 3.250 3.250 0.2 $steelTag 0
fiber -3.187 0.0 0.31 $steelTag 0
fiber 3.187 0.0 0.31 $steelTag 0
fiber 0.0 -3.187 0.31 $steelTag 0
fiber 0.0 3.187 0.31 $steelTag 0 }
# moment-rotation end springs for slip (assume elastic)
uniaxialMaterial Elastic $centerSlipTag $slipStiff
set Acenter $A
set Eccenter $Ec
set Iccenter $Ic
CenterColAxialSpring.tcl
# Defines Axial Spring
# Units: kip, in
# KJE, Feb 2003
set Fsw [expr 11.87/1.0]
82
Chapter 11
83
Tags.tcl
# UniaxialMaterial tags
set coreTag 1
set coverTag 2
set steelTag 3
;# core concrete
;# cover concrete
;# steel
set shearTag 4
;# shear limit state material
set momTag 5
;# mom-curv hysteretic model
set axialTag 6
;# elastic axial force-strain model
set momDegTag 7
;# degrading moment-curv hysteretic model
set axialFailTag 8
;# axial limit state material
set centerSlipTag 9 ;# elastic slip spring
set rigidMatTag 10
set softMatTag 11
# Section tags
set flexSec 1
set shearSec 2
set flexTopSec 3
set flexBotSec 4
set axialSec 5
set shearAxialSec 6
set axialOnlySec 7
set flexShearSec 8
set shearAxialOnlySec 9
# Limit Curve tags
set shearCurveTag 1
set axialCurveTag 2
# Element tags
Chapter 11
set bcTag
99
cyclic.txt
1.2557524028480316e-003
1.2557524028480316e-003
3.0608252487525078e-003
1.5641001656305775e-003
1.1015791633965932e-003
-1.8313432524451514e+000
PINCHING4 Material
Contact Author:
84
Chapter 11
85
This command is used to construct a uniaxial material that represents a pinched loaddeformation response and exhibits degradation under cyclic loading. Cyclic degradation of
strength and stiffness occurs in three ways: unloading stiffness degradation, reloading stiffness
degradation, strength degradation.
$matTag
$ePd1 $ePd2
$ePd3 $ePd4
$eNd1 $eNd2
$eNd3 $eNd4
$rDispP
$rForceP
$uForceP
$rDispN
Chapter 11
$rForceN
$uForceN
$gE
$dmgType
86
Chapter 11
87
NOTE:
Damage Models:
Stiffness and strength are assumed to deteriorate due to the imposed load history. The same
basic equations are used to describe deterioration in strength, unloading stiffness and reloading
stiffness:
k i = k 0 (1 k i )
Chapter 11
88
where ki is the unloading stiffness at time ti, ko is the initial unloading stiffness (for the case of no
damage), and
d max i = d max 0 (1 + d i )
where d max i is the deformation demand that defines the end of the reload cycle for increasing
d
deformation demand, max 0 is the maximum historic deformation demand (which would be the
deformation demand defining the end of the reload cycle if degradation of reloading stiffness is
ignored), and
(fmax )i
= (fmax )0 (1 f i )
Chapter 11
where
(fmax )i
(fmax )0
89
f
maximum strength for the case of no damage, and i (defined below) is the value of strength
value index at time ti.
k d
i and
i , may be defined to be a function of displacement history
The damage indices, i ,
only ($dmgType = cycle) or displacement history and energy accumulation ($dmgType =
energy). For either case, all of the damage indices are computed using the same basic
equation.
If the damage indices are assumed to be a function of displacement history and energy
accumulation, the unloading stiffness damage index,
~
k i = gK1 d max
gK 3
Ei
+ gK 2
E monotonic
where
d min i
d max i
~
d max = max
,
def min
def max
Ei =
dE
load history
E monotonic = gE
dE
monotonic load history
gK 4
gKLim
k i is computed as follows:
Chapter 11
90
with Emonotic equal to the energy required to achieve under monotonic loading the deformation that
defines failure, defmax and defmin the positive and negative deformations that define failure. The
i and
i , are computed using the same equations with degradation
other damage indices,
model parameters gK* replaced by gF* and gD*, as is appropriate.
The above expressions were meant for Energy type damage. The user specification of
Energy type damage implements damage due to displacement as well as energy. Other type of
damage can be activated: Cycle which implements damage due to displacement as well as
damage accrued due to load cycle counting. The expressions for the Cycle damage are given
below.
If the damage indices are assumed to be a function only of the displacement history, the
unloading stiffness damage index,
(~ )
k i = gK1 d max
gK 3
k i is computed as follows:
+ gK 2 (Cycle )
gK 4
gKLim
where
d min i
d max i
~
d max = max
,
def min
def max
with Cycle equal to the number of cycles accrued in the loading history, defmax and defmin the
i and
i,
positive and negative deformations that define failure. The other damage indices,
are computed using the same equations with degradation model parameters gK* replaced by
gF* and gD*, as is appropriate.
EXAMPLE:
main input file:
supporting files:
Chapter 11
91
Response Envelopes:
In these examples the pinching material model is demonstrated with two different loaddeformation response envelopes. Envelope 1 (Figure 2) defines a hardening-type response
while Envelope 2 (Figure 2) defines a softening-type response.
=
=
Chapter 11
92
=
=
[rDispP
rForceN
Chapter 11
93
gE
10.0
Tcl Scripts:
The following tcl script files are used to run the examples:
RCyclicPinch.tcl (page 101)
procUniaxialPinching.tcl (page 106)
procRCycDAns.tcl (page 108)
Lines should be commented out as necessary within RCyclicPinch.tcl to exercise different
degradation models of the Pinching4 uniaxial material model and different load histories.
If the structure is subjected to a monotonic load history, the load-displacement history is shown
in Figure 2 results with the actual response history depending on the envelope chosen for the
material model. If the structure is subjected to a cyclic load history (Figure 3), one of the loaddisplacement histories shown in Figure 4 results, with the exact response depending on the
strength and stiffness degradation model employed. In this case the damage type activated was
Energy. The case in which the damage type activated was Cycle is shown in Figure 5.
Figures:
Chapter 11
Figure 3: Structural
Model
Figure 1: Structural Model
94
Chapter 11
Figure 4: Response
Envelopes
Figure 2: Response Envelopes
Figure 5: Cyclic
Displacement History
Figure 3: Cyclic Displacement History
95
Chapter 11
96
Chapter 11
97
RCyclicPinch.tcl
#############################################################################################
#####################
Chapter 11
98
# Written: N.Mitra #
# Description: uniaxial material with user defined envelope (softening type used here) and damage parameters #
#############################################################################################
#####################
wipe
#create the ModelBuilder object
source procUniaxialPinching.tcl
source procRCycDAns.tcl
Chapter 11
##### Ratio of envelope force (corresponding to maximum deformation) at which reloading begins
99
Chapter 11
set gammaE 10
# material ID
set matID 1
100
Chapter 11
101
# add truss elements - command: element truss trussID node1 node2 A matID
fix 1 1 1
fix 2 0 1
load 2 1 0
system ProfileSPD
constraints Plain
Chapter 11
102
algorithm Newton
numberer RCM
set peakpts [list 0.0001 0.001 0.002 0.003 0.005 0.006 0.007 0.009 0.01 0.011 0.012 0.013 ]
set increments 10
set nodeTag 2
set dofTag 1
print node
procUniaxialPinching.tcl
#############################################################################################
########
##
# procUniaxialPinching.tcl #
# procedure for activating the pinching material given its parameters in the form of list #
Chapter 11
103
#############################################################################################
########
Chapter 11
104
procRCycDAns.tcl
#############################################################################################
########
#
procRCycDAns.tcl
# procedure for reverse cyclic displacement control analysis given the peak pts.
# analysis type used : STATIC
# Written : N.Mitra
#
#
#############################################################################################
########
proc procRCycDAns { incre nodeTag dofTag peakpts} {
Chapter 11
105
http://sokocalo.engr.ucdavis.edu/~jeremic/OpenSees/UCD_CG_OpenSees_Commands_2up.pd
f
(http://sokocalo.engr.ucdavis.edu/~jeremic/OpenSees/UCD_CG_OpenSees_Commands_2up.p
df)
http://sokocalo.engr.ucdavis.edu/~jeremic/CG/CompGeomechanicsLectureNotes.pdf
(http://sokocalo.engr.ucdavis.edu/~jeremic/CG/CompGeomechanicsLectureNotes.pdf)
PySimple1 Material
This command is used to construct a PySimple1 uniaxial material object.
$soilType
Chapter 11
$pult
$Y50
$Cd
$c
106
TzSimple1 Material
This command is used to construct a TzSimple1 uniaxial material object.
$tzType
$tult
$z50
$c
Chapter 11
107
QzSimple1 Material
This command is used to construct a QzSimple1 uniaxial material object.
$soilType
$qult
$z50
$suction
$c
Chapter 11
PyLiq1 Material
This command is used to construct a PyLiq1 uniaxial material object.
$soilType
$pult
$Y50
$Cd
$c
$pRes
$solidElem1
$solidElem2
108
Chapter 11
109
TzLiq1 Material
This command is used to construct a PyLiq1 uniaxial material object.
$tzType
Chapter 11
$tult
$z50
$c
$solidElem1
Element object integer tag for a solid element from which TzLiq1
will obtain mean effective stresses and pore pressures.
$solidElem2
Element object integer tag for a solid element from which TzLiq1
will obtain mean effective stresses and pore pressures.
110
Chapter 11
111
PySimple1Gen Command
This command is used to construct output files containing material properties for PySimple1
uniaxial materials. The PySimple1Gen command constructs PySimple1 materials (Boulanger,
2003) for pre-defined zeroLength elements.
$file2
$file3
$file4
$file5
$file6
The name of the output file to which the applied patterns are
written (optional).
The command has been structured such that $File2, $File3, $File4, $File5 and $File6 can be
sourced directly by OpenSees from within a master tcl file. Hence $File2, $File3 and $File4
serve two purposes:
1 They provide information to PySimple1Gen to create the PySimple1 materials.
2 They can be sourced directly in a master tcl file to define the nodes, zeroLength elements for
p-y materials, and pile elements, respectively.
Furthermore, $File5 and $File 6 serve the following purpose:
1
They can be sourced by OpenSees from within a master tcl file to define the PySimple1
materials and the applied patterns, respectively.
The intended use of the files is demonstrated in an example problem in the Appendix:
PySimple1GenDocumentation.pdf
(http://peer.berkeley.edu/~silvia/OpenSees/manual/documents/PyTzQzMats/PySimple1GenDoc
umentation.pdf)
Chapter 11
112
TzSimple1Gen Command
The TzSimple1Gen command constructs TzSimple1 materials (Boulanger, 2003) for pre-defined
zeroLength elements.
$file2
$file3
$file4
$file5
$file6
The name of the output file to which the applied patterns are
written (optional).
The command has been structured such that $File2, $File3, $File4, $File5 and $File6 can be
sourced directly from within a master tcl file. Hence $File2, $File3 and $File4 serve two
purposes:
1
2 They can be sourced directly in a master tcl file to define the nodes, zeroLength elements for
tz materials, and pile elements, respectively.
Furthermore, $File5 and $File6 serve the following purpose:
1
They can be sourced directly in a master tcl file to define the TzSimple1 materials and the
applied patterns.
Chapter 11
113
The dual use of the files is demonstrated in an example problem in the Appendix:
TzSimple1GenDocumentation.pdf
(http://peer.berkeley.edu/~silvia/OpenSees/manual/documents/PyTzQzMats/TzSimple1GenDoc
umentation.pdf)
This command is used to construct a ReinforcingSteel uniaxial material object. This object is
intended to be used in a reinforced concrete fiber section as the steel reinforcing material.
$matTag
$fy
$fu
$Es
$Esh
$esh
$eult
-GABuck
Chapter 11
114
$lsr
$beta
$r
$gamma
-DMBuck
$alpha
-CMFatigue
$alpha
$Cd
-IsoHard
$limit
-MPCurveParams
(default = 0.333)
$R2
(default = 18)
$R3
(default = 4)
R = R2 (1.0 R3 t ) ( y' )
R1
see Fig 6b
Chapter 11
115
NOTE: This simulation is based on the Chang and Mander(1994) uniaxial steel model. The
simulation has incorporated additional reversal memory locations to better control stress
overshooting (default is 10 branches but this can be easily modified by changing the variable
LastRule_RS within the header file ReinforcingSteel.h). The cycle counting method
implemented in the routine achieves the same result as rainflow counting. Fatigue parameters
are based on the Coffin-Manson equation for plastic strain amplitude as indicated in Figure 6a.
The buckling simulations incorporated consist of a variation on Gomes and Appleton(1997) and
Dhakal and Maekawa(2002). The buckling and fatigue portions of this simulation are still being
further enhanced and refined. Additional buckling and fatigue options should be available in the
near future.
Chapter 11
116
DIMINISHING YIELD PLATEAU: It has been observed that when a reinforcing bar is subjected
to plastic strain reversals within the yield plateau, strain hardening will initiate at a lower strain
that that of the same bar loaded monotonically. Additionally, isotropic hardening can result from
repeated strain reversals and is commonly related to accumulated plastic strain. These two
aspects of the stress-strain behavior of steel bars are somewhat related and that by shortening
the yield plateau as a function of accumulated plastic strain, the model will have some capability
to simulate both the diminishing yield plateau and isotropic hardening. The Chang and Mander
model, on which this formulation is based, models only anisotropic hardening by shifting the
backbone curves and by targeting previous reversal points on the backbone curves. By adding
a component of isotropic hardening, the model has additional capabilities and is able to more
accurately simulate test data.
Accumulated plastic strain is tracked within the material model for each branch, plateau
adjustments are made only in the outer branches for simplicity. The plastic strain due to the
backbone curve is ignored so that a monotonically loaded sample can be calibrated to a
monotonic test sample more easily.
Chapter 11
117
GOMES AND APPLETON BUCKLED CURVE: Figure 3 describes the use of the buckling
parameters modified from Gomes and Appleton(1997). is an amplification factor that allows
the user to scale the buckling curve. This is useful to adjust the location of the bifurcation point.
The r factor is used to adjust the curve between the buckled curve and the unbuckled curve.
The variable r can only be a real number between 0.0 and 1.0.
Chapter 11
118
The factor is the positive stress location about which the buckling factor is initiated. This factor
was introduced to avoid kinks in the reloading branch. The implementation of the factor is
shown in Figure 3. The basic idea is that the stress strain curves are reduced toward the
positive stress fsu. should be between 0.0 and 1.0. A of 0.0 will factor to the zero stress axis.
This will usually produce a kink in the reloading curve at the zero stress location. Good results
have been obtained using the following values for the buckling constants.
1.0
0.4
0.5
r
or
2.0
0.0
0.5
Figure 4 displays the buckling behavior due to the variation of the different constants. The
response shown on the upper left is the unbuckled case. In each of the other cases, buckling
behavior is defined by the constants shown.
Chapter 11
119
Figure 4: Effect of Sample Parameters in the Gomes and Appleton Buckling Model
DHAKAL AND MAEKAWA BUCKLED CURVE: The buckling model described in this section is
based on Dhakal and Maekawa(2002). This model takes two terms, lsr and . lsr is the
slenderness ratio as described in Figure 2 and is an amplification factor. Dhakal and Maekawa
suggest a value of =1.0 for linear strain hardening and =0.75 for elastic perfectly plastic
material behavior. The material model in this implementation is neither linear strain hardening
nor elastic perfectly plastic. However, since the material model does include strain hardening
=1.0 has been assumed as the default value. Figure 5 shows the unbuckled vs buckled stress
strain response curves.
Chapter 11
120
Figure 5: Effect of Suggested Parameters in the Dhakal and Maekawa Buckling Model
CYCLIC DEGRADATION: Cf and are factors used to relate the number of half cycles to
fracture to the half cycle plastic strain amplitude (Figure 6a). Plastic strain half cycle amplitude
is defined by Equation 1. The total half cycle strain amplitude, t , is shown in Figure 6b as the
change in strain from reversal A to reversal B. Cf and are used to define a cumulative damage
factor, D, as described in Equation 2.
Chapter 11
p = t
121
t
Es
p
D =
C
f
(1)
1
(2)
The cumulative damage factor is zero at no damage and 1.0 at fracture. Once a bar has been
determined to have fractured, the strength is rapidly degraded to zero.
Chapter 11
122
A degrade constant, K1, is used to describe loss in strength due to damage or other
phenomenon resulting in softening due to plastic reversals. The degradation is currently
assumed to have a simple linear relationship with D. This is used to correlate strength
degradation to the cumulative damage factor. This linear relationship is shown in Equation 3.
SR = K1D
(3)
Alternately this simple linear equation can be rewritten in a way that makes the strength
degradation independent of the number of half cycles to failure. Keeping the failure and
degradation terms independent is convenient for calibration. Equation 3 is rewritten below
utilizing the strength degradation constant Cd.
p
SR =
Cd
(4)
Cd =
Cf
K1
(5)
Suggested starting values have been obtained from data reported by Brown and Kunnath (2000)
for bars with a slenderness of 6. Keep in mind that this experimental data is limited and
additional calibration may be necessary to capture realistic behavior in a reinforcing bar
embedded in concrete and influenced by other factors such as confinement.
Chapter 11
0.506
Cf:
0.26
Cd:
0.389
123
Cf is the ductility constant used to adjust the number of cycles to failure. A higher value for Cf
will result in a lower damage for each cycle. A higher value Cf translates to a larger number of
cycles to failure.
Cd is the strength reduction constant. A larger value for Cd will result in a lower reduction of
strength for each cycle. The four charts shown in Figure 8 demonstrate the effect that some of
the variables have on the cyclic response.
Chapter 11
124
Chapter 11
125
In Figure 8, the upper left response contains no strength degradation by setting the Cd variable
to 0.0. The upper right response shows strength degradation due to the suggested values of Cf,
, and Cd. The response shown on the lower left demonstrates the change in the response
when the suggested values of Cf and are used with Cd=0.6. Making the value of Cd larger
results in less strength reduction due to damage. The response on the lower right once again
returns to the suggested values but Cf is changed to 0.15. This results in a more rapid
accumulation of damage causing the bar to fail sooner. Note however that the strength
degradation is unaffected by the more rapid accumulation of damage. The strength reduction
and failure are not interdependent making the model easier to calibrate.
References
1
Chang, G. and Mander, J. (1994). Seismic Energy Based Fatigue Damage Analysis of
Bridge Columns: Part I Evaluation of Seismic Capacity. NCEER Technical Report 940006.
126
CHAPTER 12
ReinforcingSteel -- Material
Behavior
Each material was subjected to a series of ten uniaxial tension and compression strain histories.
The following is the response of this material to such strain excursions. The data shown are the
normalized stresses versus strain. In the normalization, the steel stress was divided by the yield
stress Fy and the concrete stress was divided by the absolute value of compressive strength fc - to maintain positive tension and negative compression. The first figure shows all 10 load
patterns together, which are subsequently shown individually.
Elastic Material
This command is used to construct an elastic uniaxial material object.
$E
tangent
$eta
Chapter 12
Figure 8: Elastic
Material
$E
tangent
127
Chapter 12
$epsyP
$epsyN
$eps0
128
Chapter 12
129
$E
tangent stiffness
$Fy
$gap
$eta
damage
NOTE: To create a compression-only gap element, NEGATIVE values need to be specified for
$Fy and $gap.
Chapter 12
130
Chapter 12
$matTag
$E
131
Chapter 12
132
Parallel Material
This command is used to construct a parallel material object made up of an arbitrary number of
previously-constructed UniaxialMaterial (page 47) objects.
Chapter 12
133
In a parallel model, strains are equal and stresses and stiffnesses are
additive:
Series Material
This command is used to construct a series material object made up of an arbitrary number of
previously-constructed UniaxialMaterial (page 47) objects.
Chapter 12
In a series model, stresses are equal and strains and flexibilities are additive:
134
Chapter 12
135
Hardening Material
This command is used to construct a uniaxial material object with combined linear kinematic and
isotropic hardening. The model includes optional visco-plasticity using a Perzyna formulation
(REF???)
$E
tangent stiffness
$sigmaY
$H_iso
$H_kin
$eta
Chapter 12
136
$fpc
$epsc0
$fpcu
$epsU
Chapter 12
137
Chapter 12
138
Chapter 12
139
140
CHAPTER 13
$fpc
compressive strength*
$epsc0
$fpcu
crushing strength*
$epsU
$lambda
$ft
tensile strength
$Ets
Chapter 13
141
Chapter 13
142
Chapter 13
143
Chapter 13
144
Chapter 13
145
Chapter 13
146
147
CHAPTER 14
$fpc
compressive strength*
$epsc0
$fpcu
crushing strength*
$epsU
$lambda
$ft
tensile strength
$epst0
Chapter 14
$ft0
$beta
$epstu
148
Chapter 14
149
Chapter 14
150
Chapter 14
151
152
CHAPTER 15
Steel01 Material
This command is used to construct a uniaxial bilinear steel material object with kinematic
hardening and optional isotropic hardening described by a non-linear evolution equation (REF:
Fedeas).
$Fy
yield strength
$E0
$b
$a2
Chapter 15
$a3
$a4
153
Chapter 15
154
Chapter 15
155
Chapter 15
156
Chapter 15
157
Steel01 Material -- Hysteretic Behavior of Steel_1 Model with Isotropic Hardening in Tension
Chapter 15
158
159
CHAPTER 16
Chapter 16
160
uniaxialMaterial Steel02 $matTag $Fy $E $b $R0 $cR1 $cR2 $a1 $a2 $a3 $a4
$matTag
$Fy
yield strength
$E
$b
$a2
$a3
$a4
Chapter 16
161
Chapter 16
162
Chapter 16
163
Chapter 16
164
165
CHAPTER 17
Hysteretic Material
This command is used to construct a uniaxial bilinear hysteretic material object with pinching of
force and deformation, damage due to ductility and energy, and degraded unloading stiffness
based on ductility.
uniaxialMaterial Hysteretic $matTag $s1p $e1p $s2p $e2p <$s3p $e3p> $s1n
$e1n $s2n $e2n <$s3n $e3n> $pinchX $pinchY $damage1 $damage2
<$beta>
$matTag
$s1p
$e1p
stress and strain (or force & deformation) at first point of the
envelope in the positive direction
$s2p
$e2p
stress and strain (or force & deformation) at second point of the
envelope in the positive direction
$s3p
$e3p
stress and strain (or force & deformation) at third point of the
envelope in the positive direction (optional)
Chapter 17
$s1n
$e1n
stress and strain (or force & deformation) at first point of the
envelope in the negative direction*
$s2n
$e2n
stress and strain (or force & deformation) at second point of the
envelope in the negative direction*
$s3n
$e3n
stress and strain (or force & deformation) at third point of the
envelope in the negative direction (optional)*
$pinchX
$pinchY
$damage1
$damage2
$beta
166
Chapter 17
167
168
CHAPTER 18
Viscous Material
This command is used to construct a uniaxial material object with a non-linear elastic stressstrain-rate relation given by:
stress =C(strain-rate)alpha.
$C
tangent
$alpha
damping tangent
169
CHAPTER 19
nDMaterial Command
This command is used to construct an NDMaterial object which represents stress-strain
relationships at the integration points of continuum and force-deformation elements.
The valid queries to any ND material when creating an ElementRecorder (page 330) are 'strain,'
'stress,' and 'tangent.'
In This Chapter
Elastic Isotropic Material........................................... 175
J2 Plasticity Material................................................. 176
Plane Stress Material ............................................... 176
Plate Fiber Material .................................................. 177
Template Elasto-Plastic Material .............................. 177
FluidSolidPorousMaterial Material ............................ 182
$E
elastic Modulus
$v
Poisson's ratio
The material formulations for the ElasticIsotropic object are "ThreeDimensional," "PlaneStrain,"
"Plane Stress," "AxiSymmetric," and "PlateFiber." These are the valid strings that can be passed
to the continuum elements (page 231, page 227, page 228, page 226, page 227, page 229) for
the type parameter.
Chapter 19
nDMaterial Command
170
J2 Plasticity Material
This command is used to construct a J2Plasticity material object.
$K
bulk Modulus
$G
shear Modulus
$sig0
$sigInf
$delta
$H
$threeDTag
Chapter 19
nDMaterial Command
171
$threeDTag
nDMaterial Template3Dep $matTag $ElmatTag -YS $ys -PS $ps -EPS $eps <ELS1 $el> <-ELT1 $et>
$matTag
$ElmatTag
$ys
yield surface variable, previously defined in Yield Surface (page 178) object
$ps
$eps
$el
$et
Chapter 19
nDMaterial Command
172
Yield Surface
This command sets the yield surface variable ys to be the specified type. Currently these
include: Drucker-Prager yield surface, Rounded Mohr-Coulomb (Willam-Warnke) yield surface,
von Mises yield surface, Cam-Clay yield surface and Leon yield surface.
compressive strength
$ft
tensile strength
$e
$c
cohesion
Chapter 19
nDMaterial Command
173
Potential Surface
This command is used to set the potential surface variable $ps to the specific surface (or directly
to the flow directions). Currently included are: Drucker-Prager potential surface, Rounded MohrCoulomb (Willam-Warnke) potential surface, von Mises potential surface, Cam-Clay potential
surface and Leon potential surface.
compressive strength
Chapter 19
nDMaterial Command
$ft
tensile strength
$e
$c
cohesion
174
Evolution Law
This command is used to set the evolution law variable el to the specified type. There are two
types of evolutions laws implemented: scalar (isotropic) evolution and tensorial (kinemartic)
evolution. For scalar evolution law, there are linear scalar evolution law and nonlinear scalar
evolution law. For tensorial evolution law, there are linear tensorial evolution law and nonlinear
tensorial evolution law.
$a
$e_o
$lambda
Chapter 19
nDMaterial Command
175
$k
$a1
$h_a
$C_r
EPState
This command is used to set the Elasto-Plastic State, which includes two states.
To set the initial stress tensor to variable sts, if stressp $sts is used in eps:
set sts "$sigma_xx $sigma_xy $sigma_xz $sigma_yx $sigma_yy $sigma_yz
$sigma_zx $sigma_zy $sigma_zz"
To assign to the Elasto-Plastic state variable eps the specified state
parameters
set eps "<-NOD $nt> -NOS $ns $scalar1 $scalar2 ... <-stressp $sts>"
$sigma_xx $sigma_xy $sigma_xz
$sigma_yx $sigma_yy $sigma_yz
$sigma_zx $sigma_zy $sigma_zz
$nt
$ns
$sts
initial stresses
Chapter 19
nDMaterial Command
176
FluidSolidPorousMaterial Material
FluidSolidPorousMaterial couples the responses of two phases: fluid and solid. The fluid phase
response is only volumetric and linear elastic. The solid phase can be any NDMaterial (page
175). This material is developed to simulate the response of saturated porous media under fully
undrained condition.
$nd
$soilMatTag
The material number for the solid phase material (previously defined).
$combinedBulkMod
ul
Bc B f / n
where Bf is the bulk modulus of fluid phase (2.2x106 kPa for water
typically), and n the initial porosity.
NOTE:
1. Buoyant unit weight (total unit weight - fluid unit weight) should be used in definition of the
finite elements composed of a FluidSolidPorousMaterial.
2. During the application of gravity (elastic) load, the fluid phase does not contribute to the
material response.
OUTPUT INTERFACE:
The following information may be extracted for this material at given integration point, using the
OpenSees Element Recorder facility (McKenna and Fenves 2001): "stress", "strain", "tangent",
or "pressure". The "pressure" option records excess pore pressure and excess pore pressure
ratio at a given material integration point.
Chapter 19
nDMaterial Command
177
updateMaterialStage
This command is used to update a PressureDependMultiYield, a PressureIndependMultiYield, or
a FluidSolidPorous (page 182) material. To conduct a seismic analysis, two stages should be
followed. First, during the application of gravity load (and static loads if any), set material stage
to 0, and material behavior is linear elastic (with Gr and Br as elastic moduli). A FluidSolidPorous
(page 182) material does not contribute to the material response if its stage is set to 0. After the
application of gravity load, set material stage to 1 or 2. In case of stage 2, all the elastic material
properties are then internally determined at the current effective confinement, and remain
constant thereafter. In the subsequent dynamic (fast) loading phase(s), the deviatoric stressstrain response is elastic-plastic (stage 1) or linear-elastic (stage 2), and the volumetric response
remains linear-elastic.
$sNum
desired stage:
0 linear elastic,
1 plastic,
2 Linear elastic, with elasticity constants (shear modulus and bulk
modulus) as a function of initial effective confinement.
178
CHAPTER 20
section Command
This command is used to construct a SectionForceDeformation object, hereto referred to as
Section, which represents force-deformation (or resultant stress-strain) relationships at beamcolumn and plate sample points.
What is a section?
Fiber section is discretized into smaller regions for which the material stress-strain
response is integrated to give resultant behavior, e.g. reinforced concrete
The valid queries to any section when creating an ElementRecorder (page 330) are 'force' and
'deformation.'
Chapter 20
section Command
179
In This Chapter
Elastic Section.......................................................... 187
Uniaxial Section........................................................ 187
Fiber Section ............................................................ 189
Section Aggregator................................................... 199
Elastic Membrane Plate Section............................... 202
Plate Fiber Section ................................................... 202
Bidirectional Section................................................. 203
Isolator2spring Section: Model to include buckling behavior of an
elastomeric bearing .................................................. 204
Elastic Section
This command is used to construct an ElasticSection object.
$E
Young's Modulus
$A
$Iz
$Iy
second moment of area about the local y-axis (optional, used for
3D analysis)
$G
$J
This command is useful for patch tests of the nonlinear beam-column elements (page 216). It
also allows nonlinear beam-column elements to be used for elastic analysis.
EXAMPLE:
section Elastic 1 29000 100 100000 80000 20000 100000;
IDtag 1
Chapter 20
section Command
180
Uniaxial Section
This command is used to construct a UniaxialSection object which uses a previously-defined
UniaxialMaterial (page 47) object to represent a single section force-deformation response
quantity. (Formerly known as Generic1d section, which is still accepted by OpenSees)
$matTag
$string
Axial force-deformation
Mz
Vy
My
Vz
Torsion Force-Deformation
EXAMPLE:
section Uniaxial 1 1 Mz;
# create sectionID-tag 1 from UniaxialMaterialID-tag 1 for the
moment-curvature about section local z-axis.
Chapter 20
section Command
181
Fiber Section
The FiberSection object is composed of Fiber objects.
A fiber section has a general geometric configuration formed by subregions of simpler, regular
shapes (e.g. quadrilateral, circular and triangular regions) called patches. In addition, layers of
reinforcement bars can be specified. The subcommands patch (page 192) and layer (page 197,
page 196) are used to define the discretization of the section into fibers. Individual fibers,
however, can also be defined using the fiber (page 191) command (During generation, the Fiber
objects are associated with uniaxialMaterial (page 47) objects, which enforce Bernoulli beam
assumptions.
The geometric parameters are defined with respect to a planar local coordinate system (y,z).
See figures.
Chapter 20
section Command
182
Chapter 20
section Command
183
Fiber Command
This command is used to construct a UniaxialFiber object and add it to the section.
$yLoc
$zLoc
$A
area of fiber
$matTag
EXAMPLE:
fiber 0.0 0.0 1.0 1;
materialIDtag 1
# create a single fiber of area 1.0 at the origin (0,0) of the section, using
Chapter 20
section Command
184
patch quad $matTag $numSubdivIJ $numSubdivJK $yI $zI $yJ $zJ $yK $zK $yL
$zL
$matTag
$numSubdivIJ
$numSubdivJK
$yI
$zI
$yJ
$zJ
$yK
$zK
$yL
$zL
Chapter 20
section Command
EXAMPLE:
patch quad $coreMatTag 8 8 -$b -$h $b -$h $b $h -$b $h; # define core patch with 8
subdivisions within a rectange of width 2b and depth 2h
185
Chapter 20
section Command
Figure 38:
Quadrilateral Patch
$numSubdivCirc
$numSubdivRad
$yCenter
$zCenter
$intRad
internal radius
$extRad
external radius
$startAng
$endAng
186
Chapter 20
section Command
187
EXAMPLE:
patch circ $coreMatTag 8 8 0.0 0.0 0.0 $h; # define core patch with 8 subdivisions within a
whole circle of diameter 2h
Chapter 20
section Command
188
$numBars
$areaBar
$yStart
$zStart
$yEnd
$zEnd
EXAMPLE:
layer straight $steelMatTag 10 0.11 -b -h b -h; # define steel layer of 10 bars with area 0.11
at bottom of section of width 2b by 2h
Chapter 20
section Command
189
$numBar
$areaBar
Chapter 20
$yCenter
$zCenter
$radius
$startAng
section Command
190
$endAng
EXAMPLE:
layer circ $steelMatTag 10 0.11 0.0 0.0 $h 0 360; # define circular steel layer of 10 bars with
area 0.11 uniformly distributed along circumference of circle of diameter 2h
Chapter 20
section Command
191
Section Aggregator
This command is used to construct a SectionAggregator object which groups previously-defined
UniaxialMaterial (page 47) objects into a single section force-deformation model.
section Aggregator $secTag $matTag1 $string1 $matTag2 $string2 ....... <section $sectionTag>
$secTag
$matTag1,
$matTag2 ...
$string1, $string2
....
<-section
$sectionTag>
Axial force-deformation
Mz
Vy
My
Vz
Torsion Force-Deformation
specifies a previously-defined Section (page 185) object
(identified by the argument $sectionTag) to which these
UniaxialMaterial (page 47) objects may be added to recursively
define a new Section (page 185) object
NOTE: The UniaxialMaterial (page 47) objects aggregated in this Section (page 185) object are
uncoupled from each other as well as from the Section (page 185) object represented by
$sectionTag, if present.
There are two main tasks that can be performed using the Section Aggregator:
Chapter 20
section Command
192
EXAMPLE:
section Aggregator 1 2 Vy 5 Mz; #create new section with IDtag 1, taking the existing material
tag 2 to represent the shear and the existing material tag 5 to represent the moment.
Chapter 20
section Command
193
EXAMPLE:
section Aggregator 2 2 Vy -section 4; # create new section with IDtag 2, taking the existing
material tag 2 to represent the shear and adding it to the existing section tag 4, which may be a
fiber section where the interaction betweeen axial force and flexure is already considered.
Chapter 20
section Command
194
$E
Elastic Modulus
$nu
Poisson's Ratio
$h
$rho
$fiberTag
$h
Chapter 20
section Command
195
Bidirectional Section
This command is used to construct a Bidirectional section object which is the two-dimensional
generalization of a one-dimensional elasto-plastic model with linear hardening.
$E
Elastic Modulus
$sigY
yield stress
$H_iso
$H_kin
Chapter 20
section Command
196
Contact: http://www.engineering.usu.edu/cee/faculty/kryan/
This command is used to construct an Isolator2spring section object, which represents the
buckling behavior of an elastomeric bearing for two-dimensional analysis in the lateral and
vertical plane. An Isolator2spring section represents the resultant force-deformation behavior of
the bearing, and should be used with a zeroLengthSection element. The bearing should be
constrained against rotation.
section Iso2spring $matTag $tol $k1 $Fyo $k2o $kvo $hb $PE <$Po>
$matTag
$tol
$k1
$Fyo
$k2o
$kvo
$hb
$PE
$Po
Chapter 20
section Command
197
Model Characteristic:
This material model is based on a two-spring mechanical model of an elastomeric bearing,
originally developed by Koh and Kelly [1987] (Figure 1). The model yields the approximate
results as predicted by stability analysis of a multi-layer bearing. The axial flexibility of the
bearing is modeled by an additional vertical spring in series (not shown in Figure 1). The original
model included only linear material behavior. The rotational stiffness is given by
where
stiffness
, where G is the shear modulus, Ec is the compression modulus, A is the
cross-sectional area, and tr is the total height of rubber. Ec and G can be related by the bearing
shape factor S [Kelly 1997].
Chapter 20
section Command
198
In this implementation, the linear shear spring has been replaced by a bilinear spring to
represent the nonlinear behavior observed in elastomeric and lead-rubber bearings [Ryan et. al
2005] (Figure 2). The nonlinear behavior is implemented by rate-independent plasticity with
kinematic hardening [Simo and Hughes 1998]. The behavior of the nonlinear spring is controlled
by the initial stiffness k1, yield strength Fyo, and postyield stiffness k2o.
Chapter 20
section Command
199
where P is the compressive load on the bearing and Po is the axial load at which approximately
63% of the nominal strength is achieved (Figure 3). The bearing is assumed to have an acting
yield strength of zero in tension. If not specified, Po = 0, which means that the strength equals
the nominal yield strength and no strength degradation occurs.
Chapter 20
section Command
200
Not defined previously, v is the deformation due to the vertical spring and ubv is the total vertical
deformation, including the geometric effect of tilting.
Analysis of the linear two-spring model leads to the following approximate coupled lateral
force-deformation and vertical force-deformation equations:
where
That is, lateral stiffness decreases as the axial load on the bearing approaches the critical load,
and vertical flexibility increases in the laterally deformed configuration.
Example:
The following example demonstrates a simple cyclic lateral load test, and was used to produce
the lateral force deformation behavior shown in Figure 4 by variation of the parameters P/Pcr
and P/Po in the script file (page 210).
Chapter 20
section Command
201
Figure 4: Cyclic lateral force deformation behavior of a bearing as a function of axial load: (a)
postyield stiffness degrades as axial load P approaches the critical load Pcr, (b) yield strength
degrades as axial load decreases relative to Po.
References:
Ryan, Keri L., James M. Kelly and Anil K. Chopra (2005). Nonlinear model for lead-rubber
bearings including axial-load effects Journal of Engineering Mechanics, ASCE, 131(12).
Kelly, James M. (1997). Earthquake-Resistant Design with Rubber. Springer-Verlag.
Koh, C.-G. and Kelly, J. M. (1987). Effects of axial load on elastomeric isolation bearings, Rep.
No. UCB/EERC-86/12. Earthquake Engineering Research Center, University of California,
Berkeley.
Kelly, James M. (2003). Tension buckling in multilayer elastomeric bearings, Journal of
Engineering Mechanics, ASCE, 129(12):1363-1368.
Simo, J. C and T. J. R. Hughes (1998). Computational Inelasticity. New York, NY, Springer.
CyclicLoading_Iso2spring.tcl
# Test Example for ISOLATOR2SPRING material
# Written: K. Ryan
# Date: November 22, 2005
#
# Description: A Single DOF isolator supporting a rigid mass. Generates lateral force deformation through
Chapter 20
section Command
# application of a pseudo-static cyclic (sinusoidal) lateral force. Force deformation behavior varies
# as a function of the axial load P and normalized values of P/Pcr and P/Po
#
# Units: cm, dimensionless
set g 982.0
set PI [expr 2.0 * asin(1.0)]
# Define the model builder
model BasicBuilder -ndm 2 -ndf 3
# Assumed parameters which define system
# Period associated with second stiffness k2o
set Tb 2.5
# Normalized axial load parameter P/Pcr. Vary to produce data for Figure 4a
set PPcr 0.001
# Normalized axial load paramter P/Po. Vary to produce data for Figure 4b
set PPo 0.25
# Unit mass
set M 1.0
# Bearing shape factor
set S 20.0
# Yield displacement
set uy 1.0
# Strength coefficient (determines yield strength)
set mu 0.1
set tol 1.0e-10
# Parameters computed from the assumed ones
set wb [expr (2.0*$PI/$Tb)]
set k2o [expr $wb*$wb*$M]
set Fyo [expr $mu*$M*$g + $k2o*$uy]
set k1 [expr $Fyo/$uy]
set kvo [expr 6.0*$S*$S*$k2o]
set Pcr [expr $M*$g/$PPcr]
set Pe [expr 50.0*$Pcr]
set Ps [expr 1.0/50.0*$Pcr]
set hb [expr $Ps/$k2o]
set Po [expr $M*$g/$PPo]
# Define nodes
node 1 0.0 0.0
node 2 0.0 0.0
# Define single point constraints (Constrain the isolator against rotation)
fix 1 1 1 1
fix 2 0 0 1
# Create Iso2spring section
section Iso2spring 1 $tol $k1 $Fyo $k2o $kvo $hb $Pe $Po
#
id ndI ndJ mattag
element zeroLengthSection 1 1 2 1
# Apply gravity load on isolated mass
set P [expr $M*$g]
pattern Plain 1 "Linear" {
load 2 0.0 -[expr $P] 0.0
}
system BandSPD
202
Chapter 20
constraints Plain
numberer Plain
test EnergyIncr 1.0e-15 100
algorithm Newton
integrator LoadControl 0.1 1 0.1 0.1
analysis Static
initialize
analyze 10
loadConst -time 0.0
# Estimated postyield stiffness degradation
set k2oest [expr $k2o*(1.0-$PPcr*$PPcr)]
# Estimated yield strength degradation
set Fyoest [expr $Fyo*(1.0-exp(-$PPo))]
# Define amplitude of cyclic force to induce approx. 20 cm deformation
set Fu [expr $Fyoest + $k2oest*20.0]
# Apply sinusoidal lateral load
set SinePath "Trig 0.0 1.5 1.0"
pattern Plain 2 $SinePath {
load 2 $Fu 0.0 0.0
}
wipeAnalysis
recorder Node -file Node2.out -node 2 -dof 1 disp
recorder Element 1 -file Elem1.out force
system BandGeneral
constraints Plain
numberer Plain
test EnergyIncr 1.0e-15 100
algorithm Newton
integrator LoadControl 0.01 1 0.001 0.1
analysis Static
analyze 1500
print ele 1
print node 2
section Command
203
204
CHAPTER 21
element Command
This command is used to construct an Element object.
In This Chapter
Truss Element .......................................................... 213
Corotational Truss Element ...................................... 214
Elastic Beam Column Element ................................. 215
NonLinear Beam-Column Elements ......................... 216
Zero-Length Elements.............................................. 222
Quadrilateral Elements ............................................. 226
Brick Elements ......................................................... 229
FourNodeQuadUP Element...................................... 237
BeamColumnJoint Element ...................................... 238
Truss Element
This command is used to construct a truss element object. There are two ways to construct a
truss element object:
One way is to specify an area and a UniaxialMaterial (page 47) identifier:
$eleTag
$iNode $jNode
end nodes
$A
$matTag
$secTag
Chapter 21
element Command
205
When constructed with a UniaxialMaterial (page 47) object, the truss element considers strainrate effects, and is thus suitable for use as a damping element.
The valid queries to a truss element when creating an ElementRecorder (page 330) object are
'axialForce,' 'stiff,' deformations,' 'material matArg1 matArg2...,' 'section sectArg1 sectArg2...'
There will be more queries after the interface for the methods involved have been developed
further.
$eleTag
$iNode $jNode
end nodes
$A
$matTag
$secTag
NOTE: When constructed with a UniaxialMaterial (page 47) object, the truss element considers
strain-rate effects, and is thus suitable for use as a damping element.
The valid queries to a corotational truss element when creating an ElementRecorder (page 330)
object are 'axialForce,' 'stiff,' 'material $matNum matArg1 matArg2...,' 'section $secNum
sectArg1 sectArg2...'
Chapter 21
element Command
206
$eleTag
$iNode
end nodes
$A
$E
Young's Modulus
$G
Shear Modulus
$J
$Iz
$Iy
$transfTag
The valid queries to an elastic beam-column element when creating an ElementRecorder (page
330) object are 'stiffness' and 'force.'
Chapter 21
element Command
207
$eleTag
$iNode
end nodes
$numIntgrPts
$secTag
$transfTag
$massDens
element mass density (per unit length), from which a lumpedmass matrix is formed (optional, default=0.0)
$maxIters
$tol
The integration along the element is based on Gauss-Lobatto quadrature rule (two integration
points at the element ends).
Chapter 21
element Command
208
The element is prismatic, i.e. the beam is represented by the section (page 185) model identified
by $secTag at each integration point.
The -iter switch enables the iterative form of the flexibility formulation. Note that the iterative
form can improve the rate of global convergence at the expense of more local element
computation.
The valid queries to a nonlinear beam-column element when creating an ElementRecorder
(page 330) object are 'force,' 'stiffness,' and 'section $secNum secArg1 secArg2...' Where
$secNum refers to the integration point whose data is to be output.
Useful references for this element are found in the References (page 473, http://www.) chapter.
Michael H. Scott
Oregon State University
http://web.engr.oregonstate.edu/~mhscott/
This command is used to construct a beamWithHinges element object, which is based on the
non-iterative (or iterative) flexibility formulation, and considers plasticity to be concentrated over
specified hinge lengths at the element ends.
Note, the beamWithHinges element localize plastic hinging at the element ends only.
This type of element divides the element in three parts: two hinges at the ends, and a lineareleastic region in the middle. The hinges are defined by assigning to each a previously-defined
section. The length of the each hinge is also specified by the user:
Chapter 21
element Command
209
While the integration of distributed-plasticity force-base elements distributes the gauss points
along the entire element length, the beamWithHinges element localizes the integration points in
the hinge regions. Two integration points per hinge are used to be able represent the curvature
distribution accurately -- Gauss-Radau Integration:
Two integration points per hinge, however, require too much computational overhead. A
Modified Gauss-Radau Integration, developed by Scott et al., would apply the Gauss-Radau
hinge integration over 4Lp instead of Lp. Elastic properties are then applied to the interior
integration points, where a closed-form solution is used:
Chapter 21
element Command
210
There are many advantages to this formulation over the other types of beamWithHinges:
The arguments for the construction of the element depend on the dimension of the problem,
ndm (page 31).
For a two-dimensional problem:
$eleTag
$iNode
end nodes
$secTagI
$Lpi
$secTagJ
$Lpj
$E
Young's Modulus
$A
$Iz
$Iy
$G
Shear Modulus
$J
Chapter 21
element Command
$transfTag
$massDens
element mass density (per unit length), from which a lumpedmass matrix is formed (optional, default=0.0)
$maxIters
$tol
211
The -iter switch enables the iterative form of the flexibility formulation. Note that the iterative
form can improve the rate of global convergence at the expense of more local element
computation.
NOTE: The elastic properties are integrated only over the beam interior, which is considered to
be linear-elastic.
The valid queries to a beamWithHinges element when creating an ElementRecorder (page 330)
object are 'force,' 'stiffness,' 'rotation' (hinge rotation), or 'section $secNum secArg1 secArg2...'
Where $secNum refers to the integration point whose data is to be output.
NOTE: The beamWithHinges element used here has four elastic sections and two fiber section
at the end. Therefore for output in specifying $secNum:
$secNum=1: hinge at node i
$secNum=6: hinge at node j
Reference:
Scott, M.H. and G.L. Fenves. "Plastic Hinge Integration Methods for Force-Based Beam-Column
Elements", Journal of Structural Engineering, ASCE, 132(2):244-252, February 2006.
Chapter 21
$eleTag
$iNode
element Command
212
end nodes
$numIntgrPts
$secTag
$transfTag
$massDens
element mass density (per unit length), from which a lumpedmass matrix is formed (optional, default=0.0)
The integration along the element is based on the Gauss-Legendre quadrature rule (REF???).
The element is prismatic, i.e. the beam is represented by the section model identified by
$secTag at each integration point.
The valid queries to a displacement-based beam-column element when creating an
ElementRecorder (page 330) object are 'force,' 'stiffness,' and 'section $secNum secArg1
secArg2...' Where $secNum refers to the integration point whose data is to be output.
Zero-Length Elements
Zero-length elements connect two points at the same coordinate.
Zero-Length Element
This command is used to construct a zeroLength element object, which is defined by two nodes
at the same location. The nodes are connected by multiple UniaxialMaterial (page 47) objects to
represent the force-deformation relationship for the element.
element zeroLength $eleTag $iNode $jNode -mat $matTag1 $matTag2 ... -dir
$dir1 $dir2 ... <-orient $x1 $x2 $x3 $yp1 $yp2 $yp3>
$eleTag
$iNode
end nodes
$matTag1
$matTag2 ...
material directions:
1,2,3
Chapter 21
4,5,6
element Command
213
If the optional orientation vectors are not specified, the local element axes coincide with the
global axes.
The valid queries to a zero-length element when creating an ElementRecorder (page 330) object
are 'force,' 'deformation,' 'stiff,' and 'material $matNum matArg1 matArg2 ...' Where $matNum is
the tag associated with the material whose data is to be output.
Zero-Length ND Element
This command is used to construct a zeroLengthND element object, which is defined by two
nodes at the same location. The nodes are connected by a single NDMaterial (page 175) object
to represent the force-deformation relationship for the element.
end nodes
$matTag
$uniTag
Chapter 21
element Command
214
$secTag
end nodes
tag associated with previously-defined Section (page 185)
object
If the optional orientation vectors are not specified, the local element axes coincide with the
global axes.
The section (page 185) force-deformation response represented by section string P acts along
the element local x-axis, and the response for code Vy along the local y-axis. The other modes
of section response follow from this orientation.
Chapter 21
element Command
215
The valid queries to a zero-length element when creating an ElementRecorder (page 330) object
are 'force,' 'deformation,' 'stiffness,' and 'section secArg1 secArg2 ....'
NOTE: the ZeroLength section element only has 1 section therefore you do not need to identify
the section in the recorder command .. Example:
recorder Element -file Element1.out -time -ele 1 section fiber 0.10 0.10 stressStrain
Quadrilateral Elements
Quad Element
This command is used to construct a FourNodeQuad element object which uses a bilinear
isoparametric formulation.
element quad $eleTag $iNode $jNode $kNode $lNode $thick $type $matTag
<$pressure $rho $b1 $b2>
$eleTag
$iNode $jNode
$kNode $lNode
four nodes defining element boundaries, input in counterclockwise order around the element.
$thick
$type
$matTag
$pressure
$rho
$b1 $b2
Consistent nodal loads are computed from the pressure and body forces.
Chapter 21
element Command
216
The valid queries to a Quad element when creating an ElementRecorder (page 330) object are
'force,' 'stiffness,' and 'material $matNum matArg1 matArg2 ...' Where $matNum refers to the
material object at the integration point corresponding to the node numbers in the isoparametric
domain.
Shell Element
This command is used to construct a ShellMITC4 element object, which uses a bilinear
isoparametric formulation in combination with a modified shear interpolation to improve thin-plate
bending performance.
$eleTag
$iNode $jNode
$kNode $lNode
four nodes defining element boundaries, input in counterclockwise order around the element.
$secTag
Should the element be required to compute a mass matrix, a consistent translational element
mass matrix is computed. Rotational-inertia terms are ignored.
The valid queries to a shell element when creating an ElementRecorder (page 330) object are
'force,' 'stiffness,' and 'material matArg1 matArg2 ...'
Chapter 21
element Command
217
$eleTag
$iNode $jNode
$kNode $lNode
four nodes defining element boundaries, input in counterclockwise order around the element
$matTag
Should the element be required to compute a mass matrix, a consistent translational element
mass matrix is computed. Rotational-inertia terms are ignored.
$eleTag
$iNode $jNode
$kNode $lNode
four nodes defining element boundaries, input in counterclockwise order around the element.
type
$matTag
Chapter 21
element Command
218
Should the element be required to compute a mass matrix, a consistent translational element
mass matrix is computed. Rotational-inertia terms are ignored.
The valid queries to a zero-length element when creating an ElementRecorder (page 330) object
are 'force,' 'stiffness,' and 'material matArg1 matArg2 ...'
Brick Elements
Standard Brick Element
This element is used to construct an eight-node brick element object, which uses a trilinear
isoparametric formulation.
$node1 $node2
$node3 $node4
$node5 $node6
$node7 $node8
$matTag
Chapter 21
element Command
219
Should the element be required to compute a mass matrix, a consistent translational element
mass matrix is computed. Rotational-inertia terms are ignored.
Note: Node numbering for this element is different from that for the eight-node brick (page 232)
(Brick8N) element.
Chapter 21
element Command
220
$node1 $node2
$node3 $node4
$node5 $node6
$node7 $node8
$matTag
Should the element be required to compute a mass matrix, a consistent translational element
mass matrix is computed. Rotational-inertia terms are ignored
Chapter 21
element Command
221
$eletag
$node1 $node2
$node3 $node4
$node5 $node6
$node7 $node8
$matTag
$massDens
The valid queries to a Brick8N element when creating an ElementRecorder (page 330) object
are 'force,' 'stiffness,' stress', 'gausspoint' or 'plastic'. The output is given as follows:
'stress'
the six stress components from each Gauss points are output by
the order: sigma_xx, sigma_yy, sigma_zz, sigma_xy,
sigma_xz,sigma_yz
'gausspoint'
'plastic'
Chapter 21
element Command
222
Chapter 21
element Command
223
$eletag
$node1 $node2
$node3 $node4
$node5 $node6
$node7 $node8
$node9 $node10
$node11 $node12
$node13 $node14
$node15 $node16
$node17 $node18
$node19 $node20
$matTag
$massDen
The valid queries to a Brick20N element when creating an ElementRecorder (page 330) object
are 'force,' 'stiffness,' stress', 'gausspoint' or 'plastic'. The output is given as follows:
'stress'
the six stress components from each Gauss points are output by
the order: sigma_xx, sigma_yy, sigma_zz, sigma_xy,
sigma_xz,sigma_yz
'gausspoint'
'plastic'
Chapter 21
element Command
224
Chapter 21
element Command
225
u-p-U element
This command is used to construct a u-p-U element object, which include two types: eight node
element and twenty node element.
For eight-node element:
$eleTag
$node1 $node2
$node3 $node4
$node5 $node6
$node7 $node8 ....
$matTag
$n
porosity
$alpha
$soildDens
solid density
$fluidDens
fluid density
$K_fluid
$P
Chapter 21
element Command
226
the six stress components from each Gauss points are output by
the order: sigma_xx, sigma_yy, sigma_zz, sigma_xy,
sigma_xz,sigma_yz
'gausspoint'
'plastic'
FourNodeQuadUP Element
FourNodeQuadUP is a four-node plane-strain element using bilinear isoparametric formulation.
This element is implemented for simulating dynamic response of solid-fluid fully coupled
material, based on Biot's theory of porous medium. Each element node has 3 degrees-offreedom (DOF): DOF 1 and 2 for solid displacement (u) and DOF 3 for fluid pressure (p).
$iNode, $jNode,
$kNode, $lNode
$thick
Element thickness
$type
$matTag
$bulk
Bc B f / n
where Bf is the bulk modulus of fluid phase (2.2x106 kPa for water), and n the
initial porosity.
$fmass
$hPerm
$vPerm
Chapter 21
element Command
227
$b1, $b2
$t
Sand
Silty Sand
1.0x10-5 ~ 1.0x10-
1.0x10-7 ~ 1.0x10-
Silt
Clay
1.0x10-9 ~ 1.0x10-
<1.0x10-9
OUTPUT INTERFACE:
Pore pressure can be recorded at an element node using OpenSees Node Recorder (page 326):
recorder Node <-file $fileName> <-time> <-node ($node1 $node2 ...)> -dof 3 vel
Note: dof 3 is for pore pressure output.
The valid queries to a quadUP element when creating an ElementRecorder (page 330) are
'force', 'stiffness', or 'material matNum matArg1 matArg2 ...', where matNum represents the
material object at the corresponding integration point.
BeamColumnJoint Element
This command is used to construct a two-dimensional beam-column-joint element object. The
element may be used with both two-dimensional and three-dimensional structures; however,
load is transferred only in the plane of the element.
element beamColumnJoint $eleTag $Nd1 $Nd2 $Nd3 $Nd4 $Mat1 $Mat2 $Mat3
$Mat4 $Mat5 $Mat6 $Mat7 $Mat8 $Mat9 $Mat10 $Mat11 $Mat12 $Mat13
<$eleHeightFac $eleWidthFac>
$eleTag
$Nd1,$Nd2,$Nd3,$
Nd4
$Mat1
$Mat2
Chapter 21
element Command
$Mat3
$Mat4
$Mat5
$Mat6
$Mat7
$Mat8
$Mat9
$Mat10
$Mat11
$Mat12
$Mat13
$eleHeightFac
floating point value (as a ratio to the total height of the element)
to be considered for determination of the distance in between
the tension-compression couples (optional, default: 1.0)
$eleWidthFac
floating point value (as a ratio to the total width of the element)
to be considered for determination of the distance in between
the tension-compression couples (optional, default: 1.0)
228
Chapter 21
element Command
229
NOTE:
Node 3
external node
Node 4
shear panel
bar-slip
spring (typ.)
Node 2
internal node
Node 1
interface-shear
spring (typ.)
Chapter 21
element Command
230
Figure 48:
BeamColumnJoint
Element
The valid queries to a BeamColumnJoint element when creating an ElementRecorder (page
330) are as follows:
internalDisplacement
externalDisplacement
deformation - generates a four-column matrix in which the first column is the contribution to
the total joint shear deformation of all of the bar-slip components of the joint, the second is the
deformation contribution of the interface shear springs, the third is the deformation contribution
of the shear-panel and the fourth is the total shear deformation of the joint.
node1BarSlipL
the Left at node 1.
node1BarSlipR
the Right at node 1.
node3BarSlipR
the Right at node 3.
Chapter 21
element Command
231
EXAMPLE:
main input file:
supporting files:
References:
Lowes, Laura N.; Mitra, Nilanjan; Altoontash, Arash A beam-column joint model for simulating
the earthquake response of reinforced concrete frames PEER-2003/10
(http://nisee.berkeley.edu/elibrary/getdoc?id=1288878) Pacific Earthquake Engineering
Research Center, University of California, Berkeley 2003 59 pages (400/P33/2003-10)
Chapter 21
232
Chapter 21
233
Chapter 21
Figure 51:
Displacement history
for Node 10
234
Chapter 21
235
Tcl Scripts:
The following tcl script files are used to run the examples:
PR1.tcl (page 247)
procMKPC.tcl (page 257)
procUniaxialPinching.tcl (page 106)
procRC.tcl (page 259)
The p-delta response of cruciform, along with the response of each of the nonlinear joint
components is shown below. The shear panel response shows the moment-curvature
relationships whereas the bar slips at the beam top and bottom are represented by the force-slip
plots (Figure 4).
Chapter 21
PR1.tcl
############################################################################
# Test example for BEAM COLUMN ELEMENT JOINT ------- PARK RUITONG TEST SPECIMEN Unit 1
# Written: N.Mitra
# Description: 4 noded 12 dof element having 12 springs and a shear panel
# Date: Feb 16 2003
## Model consisting of a crucifix with beams and columns and a joint
236
Chapter 21
237
source procMKPC.tcl
source procUniaxialPinching.tcl
source procRC.tcl
# all dimensions are in here as MPa (conversion factors are required in certain places)
set Strfactor 145; set Lenfactor [expr 1/25.4];
## Y taken as the inplane dim. against which the bending takes place
set colY 406; set colZ 305;
set bmY 457; set bmZ 229;
# covers
set colCov 43; set bmCov1 42; set bmCov2 33; set bmCov $bmCov1;
############################################################
################# material properties of column section
############################################################
set CUnconfFc -45.9; set CUnconfEc -0.002;
set CTSspace 60; set CTSlength 1853.53; set CTSFy 282; set CTSarea 28.3;
set CFy 498.0; set CEs 196600.0; set CsHratio 0.004216; set CAs 201.06;
procMKPC $CUnconfFc $CUnconfEc $colY $colZ $colCov $CTSspace $CTSlength $CTSFy $CTSarea $Strfactor
$Lenfactor
Chapter 21
238
set CUnconfFcu [lindex $concreteProp 2]; set CUnconfEcu [lindex $concreteProp 3];
set CConfFc [lindex $concreteProp 4]; set CConfEc [lindex $concreteProp 5];
set CConfFcu [lindex $concreteProp 6]; set CConfEcu [lindex $concreteProp 7];
#########################################################
########################### material properties of beam section
#####################################################
set BUnconfFc -45.9; set BUnconfEc -0.002;
set BTSspace 80; set BTSlength 1036; set BTSFy 282; set BTSarea 28.3;
set BFy 294.0; set BEs 210400.0; set BAs 201.06; set BsHratio 0.002322;
procMKPC $BUnconfFc $BUnconfEc $bmY $bmZ $bmCov $BTSspace $BTSlength $BTSFy $BTSarea $Strfactor
$Lenfactor
set BUnconfFcu [lindex $concreteProp 2]; set BUnconfEcu [lindex $concreteProp 3];
set BConfFc [lindex $concreteProp 4]; set BConfEc [lindex $concreteProp 5];
set BConfFcu [lindex $concreteProp 6]; set BConfEcu [lindex $concreteProp 7];
####################################################################
######################### details for the material models of bar slip of the beam
####################################
set bs_fc [expr -$BUnconfFc]; set bs_fs $BFy; set bs_es $BEs; set bs_fsu 434; set bs_dbar 16; set bs_esh [expr
$BsHratio*$BEs];
set bs_wid $colZ; set bs_dep $bmY;
set bsT_nbars 5; set bsB_nbars 2;
set bs_ljoint $colY;
################################################################################
########################## details for the material models of bar slip of the column
##################################
set cs_fc [expr -$CUnconfFc]; set cs_fs $CFy; set cs_es $CEs; set cs_fsu 660; set cs_dbar 16; set cs_esh [expr
$CsHratio*$CEs];
set cs_wid $colZ; set cs_dep $colY;
set cs_nbars 3;
set cs_ljoint $bmY;
#####################################################################
############### add nodes - command: node nodeId xCrd yCrd
#######################################################
Chapter 21
node 1 0.0
0.0
node 2 0.0
$ColumnLengthClear
[expr $ColumnLengthClear+$JointHeight/2]
[expr $ColumnLengthClear+$JointHeight/2]
[expr $ColumnLengthClear+$JointHeight/2]
[expr $ColumnLengthClear+$JointHeight/2]
[expr $ColumnLengthClear+$JointHeight/2]
[expr $ColumnLengthClear+$JointHeight/2]
node 9 0.0
[expr $ColumnLengthClear+$JointHeight]
node 10 0.0
[expr 2*$ColumnLengthClear+$JointHeight]
#####################################################################
############## inelastic beam column elements
##########################################################
uniaxialMaterial Concrete01 10 $BUnconfFc $BUnconfEc $BUnconfFcu $BUnconfEcu
uniaxialMaterial Steel02 30 $BFy $BEs $BsHratio 18.5 0.925 0.15 0.0 0.4 0.0 0.5
uniaxialMaterial Steel02 60 $CFy $CEs $CsHratio 18.5 0.925 0.15 0.0 0.4 0.0 0.5
section Fiber 1 {
patch rect 50 8 1
[expr $colCov-$y]
patch rect 40 2 1
[expr -$y]
patch rect 40 2 1
[expr $y-$colCov]
239
[expr $z-$colCov]
[expr $z-$colCov]
[expr $z-$colCov]
Chapter 21
patch rect 40 8 1
[expr -$y]
[expr -$z]
patch rect 40 8 1
[expr -$y]
[expr $y-$colCov]
0.0
[expr $colCov-$y]
[expr $y]
240
[expr $colCov-$z]
[expr $z]
[expr $z-$colCov]
[expr $z-$colCov]
[expr $z-$colCov]
section Fiber 2 {
patch rect 20 8 1
[expr $bmCov1-$y]
[expr $bmCov1-$z]
patch rect 10 2 1
[expr -$y]
patch rect 10 2 1
[expr $y-$bmCov1]
patch rect 10 8 1
[expr -$y]
[expr -$z]
patch rect 10 8 1
[expr -$y]
[expr $z-$bmCov1]
[expr $bmCov1-$z]
[expr $bmCov1-$y]
[expr $bmCov1-$z]
[expr $y]
[expr $y]
[expr $y]
[expr $bmCov1-$z]
##############/////////////////////////////////////////////////////////////////////////////////////
element nonlinearBeamColumn 1 1 2 5 1 2
element nonlinearBeamColumn 2 9 10 5 1 2
[expr $z-$bmCov1]
[expr $z-$bmCov1]
[expr $z]
[expr $y-$bmCov1]
[expr $bmCov1-$z]
[expr $z-$bmCov1]
[expr $bmCov1-$z]
[expr $bmCov1-$z]
[expr $y-$bmCov1]
[expr $z -
[expr $y-$bmCov1-$bmCov2]
[expr $bmCov1-$y]
[expr $z -
Chapter 21
241
element nonlinearBeamColumn 3 3 4 3 2 1
element nonlinearBeamColumn 4 4 5 2 2 1
element nonlinearBeamColumn 5 6 7 2 2 1
element nonlinearBeamColumn 6 7 8 3 2 1
##### end element formation as well as material defination for beams and columns ######################
##########################################################################################
uniaxialMaterial BarSlip $matID1 $bs_fc $bs_fs $bs_es $bs_fsu $bs_esh $bs_dbar $bs_ljoint $bsB_nbars $bs_wid
$bs_dep strong beamBot
uniaxialMaterial BarSlip $matID2 $bs_fc $bs_fs $bs_es $bs_fsu $bs_esh $bs_dbar $bs_ljoint $bsB_nbars $bs_wid
$bs_dep strong beamBot
uniaxialMaterial BarSlip $matID3 $bs_fc $bs_fs $bs_es $bs_fsu $bs_esh $bs_dbar $bs_ljoint $bsT_nbars $bs_wid
$bs_dep strong beamTop
uniaxialMaterial BarSlip $matID4 $bs_fc $bs_fs $bs_es $bs_fsu $bs_esh $bs_dbar $bs_ljoint $bsT_nbars $bs_wid
$bs_dep strong beamTop
# for columns
set matID5 41
Chapter 21
242
set matID6 42
set matID7 43
set matID8 44
uniaxialMaterial BarSlip $matID5 $cs_fc $cs_fs $cs_es $cs_fsu $cs_esh $cs_dbar $cs_ljoint $cs_nbars $cs_wid
$cs_dep strong column
uniaxialMaterial BarSlip $matID6 $cs_fc $cs_fs $cs_es $cs_fsu $cs_esh $cs_dbar $cs_ljoint $cs_nbars $cs_wid
$cs_dep strong column
uniaxialMaterial BarSlip $matID7 $cs_fc $cs_fs $cs_es $cs_fsu $cs_esh $cs_dbar $cs_ljoint $cs_nbars $cs_wid
$cs_dep strong column
uniaxialMaterial BarSlip $matID8 $cs_fc $cs_fs $cs_es $cs_fsu $cs_esh $cs_dbar $cs_ljoint $cs_nbars $cs_wid
$cs_dep strong column
##
stress1
stress2
stress3
stress4
set pEnvStrsp [list [expr $p1*$JointVolume] [expr $p2*$JointVolume] [expr $p3*$JointVolume] [expr
$p4*$JointVolume]]
set nEnvStrsp [list [expr -$p1*$JointVolume] [expr -$p2*$JointVolume] [expr -$p3*$JointVolume] [expr $p4*$JointVolume]]
0.0269]
Chapter 21
Pos_env. Neg_env.
0.25]
Pos_env. Neg_env.
0.15]
Pos_env. Neg_env.
0.0]
0.0
0.0
0.0 0.0
0.10111033064469 0.0
0.0]
0.12
0.0
0.23
0.0
0.0
0.0
0.0
0.0
0.95]
0.0]
0.0
0.319
0.0
0.0
0.0
0.0
0.125]
0.0]
0.91652498468618]
243
Chapter 21
244
##element BeamColumnJoint tag? iNode? jNode? kNode? lNode? matTag1? matTag2? matTag3? matTag4?
##
##
## please note: the four nodes are in anticlockwise direction around the element
##
requires material tags for all 13 different components within the element.
##
the first 12 being that of spring and the last of the shear panel
element beamColumnJoint 7 2 6 9 5 41 42 1 21 31 1 43 44 1 22 32 1 5
#element beamColumnJoint 7 2 6 9 5 1 1 1 1 1 1 1 1 1 1 1 1 1
Chapter 21
fix 10 0 0 0
system ProfileSPD
constraints Plain
integrator LoadControl 0 1 0 0
test NormDispIncr 1e-8 150
algorithm Newton
numberer RCM
analysis Static
analyze 1
loadConst -time 0.0
set rbbt "_RBbt"; set rbtp "_RBtp"; set dlcbr "_DLCbr"; set sp "_Sp"; set jdf "_Jdf";
set lbbt "_LBbt"; set lbtp "_LBtp"; set drcbr "_DRCbr"; set ulcbr "_ULCbr"; set urcbr "_URCbr";
set RBbt [concat $fName$rbbt]; set RBtp [concat $fName$rbtp]; set Sp [concat $fName$sp];
set LBbt [concat $fName$lbbt]; set LBtp [concat $fName$lbtp]; set DLCbr [concat $fName$dlcbr];
set DRCbr [concat $fName$drcbr]; set URCbr [concat $fName$urcbr]; set ULCbr [concat $fName$ulcbr];
set Jdf [concat $fName$jdf];
245
Chapter 21
246
procMKPC.tcl
#############################################################################################
##########
#
#
procMKPC.tcl
## procedure for evaluating the confined concrete material envelope points based upon the modified
## kent park procedure. The procedure takes in the unconfined concrete and confining steel properties.
## created : NM (nmitra@u.washington.edu) dated: Dec. 2002
#############################################################################################
##########
proc procMKPC { CUnconfFc CUnconfEc Y Z Cov TSspace TSlength TSFy TSarea Strfactor Lenfactor } {
# ratio of volume of rectangular steel hoops to volumne of concrete core measured to outside of peripheral hoops
set rhoS [expr ($hoopLngth*$hoopArea)/(($SecWid-2*$cover)*($SecDep-2*$cover)*$hoopSpc)];
# width of concrete core measured to outside of peripheral hoop
set b [expr $SecWid - 2*$cover];
Chapter 21
247
global concreteProp;
set concreteProp [list $CUnconfFc $CUnconfEc $UFcu $CUnconfEcu $CFc $Ce0 $CFcu $Cecu];
return $concreteProp;
}
procUniaxialPinching.tcl
#############################################################################################
########
##
# procUniaxialPinching.tcl #
# procedure for activating the pinching material given its parameters in the form of list #
#############################################################################################
########
Chapter 21
248
procRC.tcl
#############################################################################################
###########
Chapter 21
249
#
#
procRC.tcl
## procedure for setting up a reversed cycle loading scheme. The input are mainly the
## peak points for the loading.
## The procedure primarily uses Displacement control for loading, if it fails uses ArcLength control
## created : NM (nmitra@u.washington.edu) dated: Sep 2002
#############################################################################################
###########
set displayTag 0;
set numTimes 150;
Chapter 21
algorithm Newton
if {$ok != 0} {
#
algorithm Linear
test NormDispIncr 1e-6 $numTimes $displayTag
#algorithm ModifiedNewton
set ok [analyze 1]
analyze 1
}
algorithm Newton
}
set t 0;
250
Chapter 21
251
if {$ok != 0} {
#
algorithm Linear
#
$dU0]
integrator DisplacementControl $nodeTag $dofTag 0.0 10 [expr -$dU0] [expr integrator ArcLength [expr $dU0] 1.0
set ok [analyze 1]
analyze 1
}
algorithm Newton
}
set t 0;
if {$ok != 0} {
#
algorithm Linear
test NormDispIncr 1e-6 $numTimes $displayTag
#algorithm ModifiedNewton
Chapter 21
set ok [analyze 1]
analyze 1
}
algorithm Newton
}
if {$ok == 0} {
puts "analysis succesful at $y mm displacement";
} else {
puts "analysis could not proceed fine beyond $y mm displacement";
}
}
}
252
253
CHAPTER 22
In This Chapter
PressureDependMultiYield ....................................... 265
PressureDependMultiYield02 ................................... 272
PressureIndependMultiYield..................................... 277
updateMaterialStage ................................................ 283
updateParameter...................................................... 284
FluidSolidPorousMaterial.......................................... 285
FourNodeQuadUP.................................................... 286
Nine_Four_Node_QuadUP ...................................... 288
BrickUP .................................................................... 290
Twenty_Eight_Node_BrickUP .................................. 292
Chapter 22
254
PressureDependMultiYield
PressureDependMultiYield material is an elastic-plastic material for simulating the essential
response characteristics of pressure sensitive soil materials under general loading conditions.
Such characteristics include dilatancy (shear-induced volume contraction or dilation) and nonflow liquefaction (cyclic mobility), typically exhibited in sands or silts during monotonic or cyclic
loading. Please visit http://cyclic.ucsd.edu/opensees (http://cyclic.ucsd.edu/opensees) for
examples.
When this material is employed in regular solid elements (e.g., FourNodeQuad, Brick), it
simulates drained soil response. To simulate soil response under fully undrained condition, this
material may be either embedded in a FluidSolidPorousMaterial (see below), or used with one
of the solid-fluid fully coupled elements (see below) with very low permeability. To simulate
partially drained soil response, this material should be used with a solid-fluid fully coupled
element with proper permeability values.
During the application of gravity load (and static loads if any), material behavior is linear elastic.
In the subsequent dynamic (fast) loading phase(s), the stress-strain response is elastic-plastic
(see MATERIAL STAGE UPDATE below). Plasticity is formulated based on the multi-surface
(nested surfaces) concept, with a non-associative flow rule to reproduce dilatancy effect. The
yield surfaces are of the Drucker-Prager type.
OUTPUT INTERFACE:
The following information may be extracted for this material at a given integration point, using
the OpenSees Element Recorder facility (McKenna and Fenves 2001): "stress", "strain",
"backbone", or "tangent".
For 2D problems, the stress output follows this order: xx, yy, zz, xy, r, where r is the ratio
between the shear (deviatoric) stress and peak shear strength at the current confinement
(0<= r<=1.0). The strain output follows this order: xx, yy, xy.
For 3D problems, the stress output follows this order: xx, yy, zz, xy, yz, zx, r, and the strain
output follows this order: xx, yy, zz, xy, yz, zx.
The "backbone" option records (secant) shear modulus reduction curves at one or more given
confinements. The specific recorder command is as follows:
recorder Element ele $eleNum -file $fName -dT $deltaT material $GaussNum backbone
$p1 <$p2 >
Chapter 22
255
where p1, p2, are the confinements at which modulus reduction curves are recorded. In the
output file, corresponding to each given confinement there are two columns: shear strain and
secant modulus Gs. The number of rows equals the number of yield surfaces.
Octahedral
shear strain
$Gr
$max
$tag
$nd
$rho
$refShearModul
(Gr)
$refBulkModul (Br)
$frictionAng (f)
Chapter 22
$peakShearStra
(gmax)
256
2
(
xx yy )2 + ( yy zz )2 + ( xx zz )2 + 6 xy2 + 6 yz2 + 6 xz2
3
1/ 2
$refPress (pr)
Reference mean effective confining pressure at which Gr, Br, and max are
defined.
$pressDependCoe
(d)
G = Gr (
p d
)
p r
B = Br (
p d
)
p r
$PTAng (PT)
$contrac
$dilat1, $dilat2
$liquefac1,
$liquefac2,
$liquefac3
$noYieldSurf
Number of yield surfaces, optional (must be less than 40, default is 20).
The surfaces are generated based on the hyperbolic relation defined in
Note 2 below.
Chapter 22
$r , $Gs
257
$e
ec = cs1 cs 2 log( p / p a )
else (Li and Wang, JGGE, 124(12)),
NOTE:
The friction angle defines the variation of peak (octahedral) shear strength f as a function of
current effective confinement p:
f =
1
2 2 sin
p
3 sin
1
( xx yy )2 + ( yy zz )2 + ( xx zz )2 + 6 xy2 + 6 yz2 + 6 xz2
3
1/ 2
Chapter 22
258
=
1+
pr
r p
f =
G r max
2 2 sin
p r =
3 sin
1 + max / r
(User defined surfaces) The user specified friction angle f is ignored. Instead, f is defined as
follows:
sin =
3 3 m / p r
6 + 3 m / p r
where sm is the product of the last modulus and strain pair in the modulus reduction curve.
Therefore, it is important to adjust the backbone curve so as to render an appropriate f. If the
resulting f is smaller than the phase transformation angle fPT, fPT is set equal to f.
Also remember that improper modulus reduction curves can result in strain softening response
(negative tangent shear modulus), which is not allowed in the current model formulation. Finally,
note that the backbone curve varies with confinement, although the variations are small within
commonly interested confinement ranges. Backbone curves at different confinements can be
obtained using the OpenSees element recorder facility (see OUTPUT INTERFACE above).
The last five optional parameters are needed when critical-state response (flow liquefaction)
is anticipated. Upon reaching the critical-state line, material dilatancy is set to zero.
Chapter 22
259
For user convenience, a table is provided below as a quick reference for selecting parameter
values. However, use of this table should be of great caution, and other information should be
incorporated wherever possible.
Loose Sand
(15%-35%)
Medium Sand
(35%-65%)
Medium-dense
Sand (65%-85%)
Dense Sand
(85%-100%)
Chapter 22
rho (ton/m3)
1.7
1.9
2.0
2.1
7.5x104
1.0x105
1.3x105
refBulkModu (kPa,
at pr=80 kPa)
1.5x105
2.0x105
3.0x105
3.9x105
frictionAng
29
33
37
40
peakShearStra (at
pr=80 kPa)
0.1
0.1
0.1
0.1
80
80
80
80
pressDependCoe
0.5
0.5
0.5
0.5
PTAng
29
27
27
27
contrac
0.21
0.07
0.05
0.03
dilat1
0.
0.4
0.6
0.8
dilat2
liquefac1 (kPa)
10
10
liquefac2
0.02
0.01
0.003
liquefac3
0.85
0.7
0.55
0.45
260
Chapter 22
261
PressureDependMultiYield02
PressureDependMultiYield02 material is modified from PressureDependMultiYield material,
with: 1) additional parameters ($contrac3 and $dilat3) to account for K effect, 2) a parameter to
account for the influence of previous dilation history on subsequent contraction phase
($contrac2), and 3) modified logic related to permanent shear strain accumulation ($liquefac1
and $liquefac2). Please visit http://cyclic.ucsd.edu/opensees
(http://cyclic.ucsd.edu/opensees) for examples.
$dilat3
$contrac2
$liquefac1
Chapter 22
262
$liquefac2
Others
Chapter 22
263
Chapter 22
264
NOTE:
The following values are suggested for the model parameters.
Dr=30%
Dr=40%
Dr=50%
Dr=60%
Dr=75%
Chapter 22
265
rho (ton/m3)
1.7
1.8
1.9
2.0
2.1
refShearModul
(kPa, at pr=80
kPa)
6x104
9x104
10x104
11x104
13x104
16x104
22x104
23.3x104
24x104
26x104
(K0=0.5)
(K0=0.47)
(K0=0.45)
(K0=0.43)
(K0=0.4)
frictionAng
31
32
33.5
35
36.5
PTAng
31
26
25.5
26
26
peakShearStra (at
pr=101 kPa)
0.1
101
pressDependCoe
0.5
Contrac1
0.087
0.067
0.045
0.028
0.013
Contrac3
0.18
0.23
0.15
0.05
0.0
dilat1
0.
0.06
0.06
0.1
0.3
dilat3
0.0
0.27
0.15
0.05
0.0
0.85
0.77
0.7
0.65
0.55
refBulkModu (kPa,
at pr=80 kPa)
Chapter 22
266
PressureIndependMultiYield
PressureIndependMultiYield material is an elastic-plastic material in which plasticity exhibits
only in the deviatoric stress-strain response. The volumetric stress-strain response is linearelastic and is independent of the deviatoric response. This material is implemented to simulate
monotonic or cyclic response of materials whose shear behavior is insensitive to the
confinement change. Such materials include, for example, organic soils or clay under fast
(undrained) loading conditions. Please visit http://cyclic.ucsd.edu/opensees
(http://cyclic.ucsd.edu/opensees) for examples.
During the application of gravity load (and static loads if any), material behavior is linear elastic.
In the subsequent dynamic (fast) loading phase(s), the stress-strain response is elastic-plastic
(see MATERIAL STAGE UPDATE below). Plasticity is formulated based on the multi-surface
(nested surfaces) concept, with an associative flow rule. The yield surfaces are of the Von Mises
type.
OUTPUT INTERFACE:
The following information may be extracted for this material at a given integration point, using
the OpenSees Element Recorder facility (McKenna and Fenves 2001): "stress", "strain",
"backbone", or "tangent".
For 2D problems, the stress output follows this order: xx, yy, zz, xy, r, where r is the ratio
between the shear (deviatoric) stress and peak shear strength at the current confinement
(0<= r<=1.0). The strain output follows this order: xx, yy, xy.
For 3D problems, the stress output follows this order: xx, yy, zz, xy, yz, zx, r, and the strain
output follows this order: xx, yy, zz, xy, yz, zx.
The "backbone" option records (secant) shear modulus reduction curves at one or more given
confinements. The specific recorder command is as follows:
recorder Element ele $eleNum -file $fName -dT $deltaT material $GaussNum backbone
$p1 <$p2 >
where p1, p2, are the confinements at which modulus reduction curves are recorded. In the
output file, corresponding to each given confinement there are two columns: shear strain and
secant modulus Gs. The number of rows equals the number of yield surfaces.
Chapter 22
267
Octahedral
shear strain
$Gr
$max
$tag
$nd
$rho
$refShearModul
(Gr)
$refBulkModul (Br)
$cohesi (c)
$peakShearStra
(gmax)
$frictionAng (f)
$refPress (pr)
Reference mean effective confining pressure at which Gr, Br, and max are
defined, optional (default is 100.).
Chapter 22
$pressDependCoe
(d)
268
G = Gr (
p i d
)
p r
B = Br (
p i d
)
p r
Number of yield surfaces, optional (must be less than 40, default is 20).
The surfaces are generated based on the hyperbolic relation defined in
Note 2 below.
$r , $Gs
NOTE:
1
The friction angle and cohesion c define the variation of peak (octahedral) shear strength f
as a function of initial effective confinement pi :
f =
1
2 2 sin
2 2
p i +
c
3 sin
3
Automatic surface generation: at a constant confinement p, the shear stress (octahedral) shear strain (octahedral) nonlinearity is defined by a hyperbolic curve (backbone curve):
=
1+
pr
r p
f =
G r max
2 2 sin
2 2
p r +
c=
3 sin
3
1 + max / r
Chapter 22
269
(User defined surfaces) If the user specifies f=0, cohesion c will be ignored. Instead, c is defined
by c=sqrt(3)*sm/2, where sm is the product of the last modulus and strain pair in the modulus
reduction curve. Therefore, it is important to adjust the backbone curve so as to render an
appropriate c.
If the user specifies f>0, this f will be ignored. Instead, f is defined as follows:
sin =
3 ( 3 m 2c) / p r
6 + ( 3 m 2c) / p r
For user convenience, a table is provided below as a quick reference for selecting parameter
values. However, use of this table should be of great caution, and other information should be
incorporated wherever possible.
Soft Clay
Medium Clay
Stiff Clay
Chapter 22
rho (ton/m3)
1.3
1.5
1.8
6.0x104
1.5x105
refBulkModu (kPa)
6.5x104
3.0x105
7.5x105
cohesi (kPa)
18
37
75
peakShearStra
0.1
0.1
0.1
frictionAng
pressDependCoe
270
Chapter 22
271
Chapter 22
272
updateMaterialStage
This command is used to update a PressureDependMultiYield,
PressureDependMultiYield02, PressureIndependMultiYield, or FluidSolidPorous material.
To conduct a seismic analysis, two stages should be followed. First, during the application of
gravity load (and static loads if any), set material stage to 0, and material behavior is linear
elastic (with Gr and Br as elastic moduli). A FluidSolidPorous material does not contribute to the
material response if its stage is set to 0. After the application of gravity load, set material stage to
1 or 2. In case of stage 2, all the elastic material properties are then internally determined at the
current effective confinement, and remain constant thereafter. In the subsequent dynamic (fast)
loading phase(s), the deviatoric stress-strain response is elastic-plastic (stage 1) or linear-elastic
(stage 2), and the volumetric response remains linear-elastic. Please visit
http://cyclic.ucsd.edu/opensees (http://cyclic.ucsd.edu/opensees) for examples.
Material number.
$sNum
desired stage:
0 - linear elastic,
1 plastic,
2 - Linear elastic, with elasticity constants (shear modulus and bulk
modulus) as a function of initial effective confinement.
Chapter 22
273
updateParameter
This command is used to update:
1. Parameters of PressureDependMultiYield or PressureIndependMultiYield material.
Currently, two material parameters, reference low-strain shear modulus Gr and reference bulk
modulus Br, can be modified during an analysis.
2. Permeability parameters of solid-fluid fully coupled elements including FourNodeQuadUP,
Nine_Four_Node_QuadUP, BrickUP, and Twenty_Eight_Node_BrickUP.
Please visit http://cyclic.ucsd.edu/opensees (http://cyclic.ucsd.edu/opensees) for examples.
Material/element number.
$newVal
Chapter 22
274
FluidSolidPorousMaterial
FluidSolidPorousMaterial couples the responses of two phases: fluid and solid. The fluid
phase response is only volumetric and linear elastic. The solid phase can be any NDMaterial.
This material is developed to simulate the response of saturated porous media under fully
undrained condition. Please visit http://cyclic.ucsd.edu/opensees
(http://cyclic.ucsd.edu/opensees) for examples.
OUTPUT INTERFACE:
The following information may be extracted for this material at given integration point, using the
OpenSees Element Recorder facility (McKenna and Fenves 2001): "stress", "strain", "tangent",
or "pressure". The "pressure" option records excess pore pressure and excess pore pressure
ratio at a given material integration point.
$nd
$soilMatTag
The material number for the solid phase material (previously defined).
$combinBulkModul
Bc B f / n
where Bf is the bulk modulus of fluid phase (2.2x106 kPa for water
typically), and n the initial porosity.
1
NOTE:
1
Buoyant unit weight (total unit weight - fluid unit weight) should be used in definition of the
finite elements composed of a FluidSolidPorousMaterial.
2 During the application of gravity (elastic) load, the fluid phase does not contribute to the
material response.
Chapter 22
275
FourNodeQuadUP
FourNodeQuadUP is a four-node plane-strain element using bilinear isoparametric formulation.
This element is implemented for simulating dynamic response of solid-fluid fully coupled
material, based on Biot's theory of porous medium. Each element node has 3 degrees-offreedom (DOF): DOF 1 and 2 for solid displacement (u) and DOF 3 for fluid pressure (p). Please
visit http://cyclic.ucsd.edu/opensees (http://cyclic.ucsd.edu/opensees) for examples.
OUTPUT INTERFACE:
Pore pressure can be recorded at an element node using OpenSees Node Recorder:
recorder Node <-file $fileName> <-time> <-node ($nod1 $nod2 )> -dof 3 vel
See OpenSees command manual (McKenna and Fenves 2001) for nodal displacement, velocity,
or acceleration recorders.
The valid queries to a quadUP element when creating an ElementRecorder are 'force', 'stiffness',
or 'material matNum matArg1 matArg2 ...', where matNum represents the material object at the
corresponding integration point.
$iNode, $jNode,
$kNode, $lNode
$thick
Element thickness
$matTag
Chapter 22
$bulk
276
Bc B f / n
where Bf is the bulk modulus of fluid phase (2.2x106 kPa for water), and n the
initial porosity.
$fmass
$hPerm
$vPerm
$b1, $b2
$t
Sand
Silty Sand
Silt
Clay
>1.0x10-1
1.0x10-3 ~ 1.0x10-1
1.0x10-5 ~ 1.0x10-3
1.0x10-7 ~ 1.0x10-5
<1.0x10-7
Chapter 22
277
Nine_Four_Node_QuadUP
Nine_Four_Node_QuadUP is a 9-node quadrilateral plane-strain element. The four corner
nodes have 3 degrees-of-freedom (DOF) each: DOF 1 and 2 for solid displacement (u) and DOF
3 for fluid pressure (p). The other five nodes have 2 DOFs each for solid displacement. This
element is implemented for simulating dynamic response of solid-fluid fully coupled material,
based on Biot's theory of porous medium. Please visit http://cyclic.ucsd.edu/opensees
(http://cyclic.ucsd.edu/opensees) for examples.
OUTPUT INTERFACE:
Pore pressure can be recorded at an element node using OpenSees Node Recorder:
recorder Node <-file $fileName> <-time> <-node ($nod1 $nod2 )> -dof 3 vel
See OpenSees command manual (McKenna and Fenves 2001) for nodal displacement, velocity,
or acceleration recorders.
$eleTag
$Node1,
$Node9
Nine element node (previously defined) numbers (see figure above for order of
numbering).
Chapter 22
278
$thick
Element thickness
$matTag
$bulk
Bc B f / n
where Bf is the bulk modulus of fluid phase (2.2x106 kPa for water), and n the
initial porosity.
$fmass
$hPerm,
$vPerm
$b1, $b2
Chapter 22
279
BrickUP
BrickUP is an 8-node hexahedral linear isoparametric element. Each node has 4 degrees-offreedom (DOF): DOFs 1 to 3 for solid displacement (u) and DOF 4 for fluid pressure (p). This
element is implemented for simulating dynamic response of solid-fluid fully coupled material,
based on Biot's theory of porous medium. Please visit http://cyclic.ucsd.edu/opensees
(http://cyclic.ucsd.edu/opensees) for examples.
OUTPUT INTERFACE:
Pore pressure can be recorded at an element node using OpenSees Node Recorder:
recorder Node <-file $fileName> <-time> <-node ($nod1 $nod2 )> -dof 3 vel
See OpenSees command manual (McKenna and Fenves 2001) for nodal displacement, velocity,
or acceleration recorders.
The valid queries to a BrickUP element when creating an ElementRecorder are 'force', 'stiffness',
or 'material matNum matArg1 matArg2 ...', where matNum represents the material object at the
corresponding integration point.
$eleTag
Chapter 22
280
$Node1,
$Node8
Eight element node (previously defined) numbers (see figure above for order of
numbering).
$matTag
$bulk
Bc B f / n
where Bf is the bulk modulus of fluid phase (2.2x106 kPa for water), and n the initial
porosity.
$fmass
$permX,
$permY,
$permZ
$bX, $bY,
$bZ
Chapter 22
281
Twenty_Eight_Node_BrickUP
Twenty_Eight_Node_BrickUP is a 20-node hexahedral isoparametric element. The eight
corner nodes have 4 degrees-of-freedom (DOF) each: DOFs 1 to 3 for solid displacement (u)
and DOF 4 for fluid pressure (p). The other nodes have 3 DOFs each for solid displacement.
This element is implemented for simulating dynamic response of solid-fluid fully coupled
material, based on Biot's theory of porous medium. Please visit
http://cyclic.ucsd.edu/opensees (http://cyclic.ucsd.edu/opensees) for examples.
OUTPUT INTERFACE:
Pore pressure can be recorded at an element node using OpenSees Node Recorder:
recorder Node <-file $fileName> <-time> <-node ($nod1 $nod2 )> -dof 3 vel
See OpenSees command manual (McKenna and Fenves 2001) for nodal displacement, velocity,
or acceleration recorders.
15
16
8
14
20
13
19
18
17
11
12
1
$eleTag
3
10
Chapter 22
282
$Node1,
$Node20
20 element node (previously defined) numbers (see figure above for order of
numbering).
$matTag
$bulk
Bc B f / n
where Bf is the bulk modulus of fluid phase (2.2x106 kPa for water), and n the initial
porosity.
$fmass
$permX,
$permY,
$permZ
$bX, $bY,
$bZ
Chapter 22
283
References
Elgamal, A., Lai, T., Yang, Z. and He, L. (2001). "Dynamic Soil Properties, Seismic Downhole
Arrays and Applications in Practice," State-of-the-art paper, Proc., 4th Intl. Conf. on Recent
Advances in Geote. E.Q. Engrg. Soil Dyn. March 26-31, San Diego, CA, S. Prakash (Ed.).
Elgamal, A., Yang, Z. and Parra, E. (2002). "Computational Modeling of Cyclic Mobility and
Post-Liquefaction Site Response," Soil Dyn. Earthquake Engrg., 22(4), 259-271.
Elgamal, A., Yang, Z., Parra, E. and Ragheb, A. (2003). "Modeling of Cyclic Mobility in
Saturated Cohesionless Soils," Int. J. Plasticity, 19(6), 883-905.
McKenna, F. and Fenves, G. (2001). "The OpenSees Command Language Manual: version
1.2," Pacific Earthquake Engineering Center, Univ. of Calif., Berkeley.
(http://opensees.berkeley.edu).
Parra, E. (1996). "Numerical Modeling of Liquefaction and Lateral Ground Deformation Including
Cyclic Mobility and Dilation Response in Soil Systems," Ph.D. Thesis, Dept. of Civil Engineering,
Rensselaer Polytechnic Institute, Troy, NY.
Yang, Z. (2000). "Numerical Modeling of Earthquake Site Response Including Dilation and
Liquefaction," Ph.D. Thesis, Dept. of Civil Engineering and Engineering Mechanics, Columbia
University, NY, New York.
Yang, Z., Elgamal, A. and Parra, E. (2003). "A Computational Model for Liquefaction and
Associated Shear Deformation," J. Geotechnical and Geoenvironmental Engineering,
ASCE, 129(12), 1119-1127.
284
CHAPTER 23
block Command
The block command is used to generate meshes of quadrilateral or brick finite element.
The block2D (page 296) command generates meshes of quadrilateral elements in two or three
dimensions. In three dimensions, a two-dimensional surface appropriate for shell analysis is
generated.
The block3D (page 298) command generates three-dimensional meshes of eight-node brick
solid element.
In This Chapter
block2D Command................................................... 296
block3D Command................................................... 298
Chapter 23
block Command
285
block2D Command
The block2D command generates meshes of quadrilateral elements in two or three dimensions.
In three dimensions, a two-dimensional surface appropriate for shell analysis is generated.
$ny
$e1
$n1
element
(element
arguments)
list of data parameters for element being used. This list may
include, but is not limited to, a $matTag number
Only the first four nodes (1-4) are required. Nodes 5-9 are used to generate curved meshes. The
user may specify any combination of nodes 5-9, omitting some of them if desired.
Chapter 23
block Command
NOTE: this command only recognizes variable substitutions when the command
arguments are placed in quotes rather than braces
EXAMPLE:
block2d $nx $ny $e1 $n1 element (element arguments) {
1 $x1 $y1 <$z1>
2 $x2 $y2 <$z2>
3 $x3 $y3 <$z3>
4 $x4 $y4 <$z4>
<5> <$x5> <$y5> <$z5>
<6> <$x6> <$y6> <$z6>
<7> <$x7> <$y7> <$z7>
<8> <$x8> <$y8> <$z8>
<9> <$x9> <$y9> <$z9>
}
286
Chapter 23
block Command
287
block3D Command
The block3D command generates three-dimensional meshes of eight-node brick solid element.
$e1
$n1
element
define which brick element (page 231, page 229) is being used
elementArgs
list of data parameters for element being used. This list may
include, but is not limited to, a $matTag number
Chapter 23
block Command
288
NOTE: this command only recognizes variable substitutions when the command
arguments are placed in quotes rather than braces
Only the first eight nodes (1-8) are required. Nodes 9-27 are used to generate curved meshes.
The user may specify any combination of nodes 9-27, omitting some of them if desired.
289
CHAPTER 24
region Command
The region command is used to label a group of nodes and elements. This command is also
used to assign rayleigh damping parameters to the nodes and elements in this region.
region $regTag <-ele ($ele1 $ele2 ...)> <-eleRange $startEle $endEle> <-ele all>
<-node ($node1 $node2 ...)> <-nodeRange $startNode $endNode> <node all> <-rayleigh $alphaM $betaK $betaKinit $betaKcomm>
The region is specified by either elements or nodes, not both. If elements are defined, the region
includes these elements and the all connected nodes. If nodes are specified, the region includes
these nodes and all elements whose external nodes are prescribed.
$regTag
$startEle $endEle
all
$alphaM $betaK
$betaKinit
$betaKcomm
OR:
$regTag
$startNode
$endNode
all
$alphaM $betaK
$betaKinit
$betaKcomm
Chapter 24
region Command
Kcurrent
Kinit
KlastCommit
290
291
CHAPTER 25
Geometric Transformation
Command
The geometric-transformation command (geomTransf) is used to construct a coordinatetransformation (CrdTransf) object, which transforms beam element stiffness and resisting force
from the basic system to the global-coordinate system. The command has at least one
argument, the transformation type. Each type is outlined below.
In This Chapter
Linear Transformation .............................................. 302
P-Delta Transformation ............................................ 308
Corotational Transformation ..................................... 309
Linear Transformation
This command is used to construct a linear coordinate transformation (LinearCrdTransf) object,
which performs a linear geometric transformation of beam stiffness and resisting force from the
basic system to the global-coordinate system.
For a two-dimensional problem:
Chapter 25
$vecxzX $vecxzY
$vecxzZ
292
Chapter 25
293
The x-axis is the axis connecting the two element nodes; the y- and z-axes are then defined
using a vector that lies on a plane parallel to the local x-z plane -- vecxz. The y-axis is defined by
taking the cross product of the x-axis and the vecxz vector. The section is attached to the
element such that the y-z coordinate system used to specify the section corresponds to the y-z
axes of the element.
Chapter 25
294
Chapter 25
The following figures should aid in understanding the vector vecxz definition:
295
Chapter 25
296
Chapter 25
297
P-Delta Transformation
This command is used to construct the P-Delta Coordinate Transformation (PDeltaCrdTransf)
object, which performs a linear geometric transformation of beam stiffness and resisting force
from the basic system to the global coordinate system, considering second-order P-Delta
effects.
For a two-dimensional problem:
$vecxzX $vecxzY
$vecxzZ
Chapter 25
298
Corotational Transformation
This command is used to construct the Corotational Coordinate Transformation
(CorotCrdTransf) object, which performs an exact geometric transformation of beam stiffness
and resisting force from the basic system to the global coordinate system.
For a two-dimensional problem:
$vecxzX $vecxzY
$vecxzZ
299
CHAPTER 26
Time Series
While there is no timeSeries command in the language, a number of commands take as the
argument a list of items which defines the TimeSeries object to be constructed as part of the
command, such as the LoadPattern (page 317) and groundMotion (page 323) objects.
Time series act differently depending on what type of object they are applied to:
LoadPattern (page 317) object:
Load factors are applied to the loads and constraints
groundMotion (page 323) object:
Load factors are applied at the DOF in a ground motion
NOTE: The TimeSeries objects are handled by the Tcl interpreter as lists. Therefore, they can
be defined a-priori within quotes "" and given a variable name. EXAMPLE:
set Gaccel "Series -dt $dt -filePath $outFile -factor $GMfatt"; # time series information
pattern UniformExcitation 2 1 -accel $Gaccel;
In This Chapter
Constant Time Series............................................... 312
Linear Time Series ................................................... 313
Rectangular Time Series .......................................... 314
Sine Time Series ...................................................... 315
Path Time Series...................................................... 316
Chapter 26
Time Series
300
The load factor to be applied to the loads and constraints in the LoadPattern object is constant
and equal to $cFactor.
Chapter 26
$cFactor
Time Series
301
The load factor to be applied to the loads and constraints in the LoadPattern or groundMotion
object is equal to $cFactor* time
$tFinish
$cFactor
Chapter 26
Time Series
302
The load factor to be applied to the loads and constraints in the LoadPattern object is constant
and equal to $cFactor during the domain time from $tStart to $tFinish
$tFinish
$period
$shift
$cFactor
The load factor applied to the loads and constraints in the LoadPattern object is equal to:
Chapter 26
Time Series
303
Chapter 26
Time Series
304
For a load path where the values are specified at non-constant time intervals:
The load factor to be applied to the loads and constraints in the LoadPattern object is equal to
$cFactor*(user-defined series)
305
CHAPTER 27
pattern Command
The pattern command is used to construct a LoadPattern object, its associated with the
TimeSeries (page 311) object and the Load (page 318) and Constraint (page 339) objects for
the pattern.
In This Chapter
plain Pattern ............................................................. 317
UniformExcitation Pattern......................................... 321
MultipleSupport Pattern ............................................ 322
plain Pattern
This command is used to construct an ordinary LoadPattern (page 317) object in the Domain
(page 32).
TimeSeriesType
arguments
load ...
sp ...
eleLoad ...
Chapter 27
pattern Command
306
NOTE: The TimeSeries object is handled by the Tcl interpreter as a list and can be defined apriori and given a variable name.
EXAMPLE
# define LoadPattern 1. impose load in a linear manner
load Command
This command is used to construct a NodalLoad object.
$LoadValues
EXAMPLE
load 3 100 0. 0. 0. 0. 20.;
Chapter 27
pattern Command
307
sp Command
This command is used to construct a single-point non-homogeneous constraint (SP_Constraint)
object.
$DOFtag
$DOFvalue
EXAMPLE
sp 3 1 0.1;
Chapter 27
pattern Command
308
eleLoad Command
The elasticBeamColumn (page 215), forceBeamColumn (nonlinearBeamColumn (page 216))
and dispBeamColumn (page 222) elements all handle ele loads.
eleLoad -ele $eleTag1 <$eleTag2 ....> -type -beamUniform $Wy $Wz <$Wx>
eleLoad -ele $eleTag1 $eleTag2 -type -beamPoint $Py $Pz $xL <$Px>
$eleTag1
previously-defined-element tags
<$eleTag2 .....>
$Wy
$Wz
Chapter 27
pattern Command
$Wx
$Py
$Pz
309
$Px
UniformExcitation Pattern
This command is used to construct a UniformExcitation load pattern object.
$dir
TimeSeriesType
arguments
$vel0
NOTE: The TimeSeries object is handled by the Tcl interpreter as a list and can be defined apriori and given a variable name.
Chapter 27
pattern Command
310
EXAMPLE:
set Gaccel "Series -dt $dt -filePath $outFile -factor $GMfatt"; # time series information
pattern UniformExcitation 2 1 -accel $Gaccel;
with IDtag 2 in direction 1
MultipleSupport Pattern
This command is used to construct a MultipleSupportExcitation load pattern object.
groundMotion ...
imposedMotion ...
groundMotion Command
The groundMotion command is used to construct a GroundMotion object used by the
ImposedMotionSP (page 324) constraints in a MultipleSupportExcitation (page 322) object.
Chapter 27
pattern Command
311
Plain GroundMotion
This command is used to construct a plain GroundMotion object. Each GroundMotion object is
associated with a number of TimeSeries (page 311) objects, which define the acceleration,
velocity and displacement records.
Chapter 27
pattern Command
312
Interpolated GroundMotion
This command is used to construct an InterpolatedGroundMotion object.
$gMotionTag
$gmTag1 $gmTag2
...
imposedMotion Command
This command is used to construct an ImposedMotionSP constraint which is used to enforce the
response of a dof at a node in the model. The response enforced at the node at any give time is
obtained from the GroundMotion (page 323) object associated with the constraint.
$dirn
$gMotionTag
NOTE: The GroundMotion (page 323) object must be added to the MultipeSupportExcitation
(page 322) pattern before the ImposedMotionSP constraint.
Chapter 27
pattern Command
313
314
CHAPTER 28
Recorder Objects
The recorder commands are used to construct a Recorder object, which is used to monitor items
of interest to the analyst at each commit().
In This Chapter
Node Recorder......................................................... 326
EnvelopeNode Recorder .......................................... 328
Drift Recorder........................................................... 329
Element Recorder .................................................... 330
EnvelopeElement Recorder...................................... 332
Display Recorder...................................................... 333
Plot Recorder ........................................................... 334
playback Command.................................................. 335
Node Recorder
The Node type records the displacement, velocity, acceleration and incremental displacement at
the nodes (translational & rotational)
recorder Node <-file $fileName> <-time> <-node ($node1 $node2 ...)> <nodeRange $startNode $endNode> <-region $RegionTag> <-node all>
-dof ($dof1 $dof2 ...) $respType
$fileName
-time
$startNode
$endNode
Chapter 28
Recorder Objects
$RegionTag
all
315
displacement*
vel
velocity*
accel
acceleration*
incrDisp
incremental displacement
"eigen i"
reaction
nodal reaction
Example:
recorder Node -file nodeDisp.out time node 1 5 -nodeRange 10 25 -dof 2 disp
recorder Node -file node34.eig -time -node 3 4 -dof 1 2 3 "eigen 2"
recorder Node -file Rnode.out -time -node 1 3 5 -dof 1 2 reaction
Chapter 28
Recorder Objects
316
EnvelopeNode Recorder
The Node type records the envelope of displacement, velocity, acceleration and incremental
displacement at the nodes (translational & rotational). The envelope consists of the following:
minimum, maximum and maximum absolute value of specified response type.
recorder EnvelopeNode <-file $fileName> <-node ($node1 $node2 ...)> <nodeRange $startNode $endNode> <-region $RegionTag> <-node all>
-dof ($dof1 $dof2 ...) $respType
$fileName
file where results are stored. Each line of the file contains the
result for a committed state of the domain (optional, default:
screen output)
$startNode
$endNode
$RegionTag
all
$respType
displacement
vel
velocity
accel
acceleration
incrDisp
incremental displacement
Chapter 28
Recorder Objects
317
Drift Recorder
The Drift type records the displacement drift between two nodes. The drift is taken as the ratio
between the prescribed relative displacement and the specified distance between the nodes.
recorder Drift -file $fileName <-time> -iNode ($inode1 $inode2 ...) -jNode
($jnode1 $jnode2 ...) -dof ($dof1 $dof2 ...) -perpDirn ($perpDirn1
$perpDirn2 ...)
$fileName
file where results are stored. Each line of the file contains the
result for a committed state of the domain
-time
this argument will place the pseudo time of the as the first entry
in the line. (optional, default: omitted)
($inode1 $inode2
...)
($jnode1 $jnode2
...)
($perpDirn1
$perpDirn2 ...)
Example:
recorder Drift -file drift.out -time -iNode 1 2 -jNode 3 4 -dof 1 -perpDirn 2
Chapter 28
Recorder Objects
318
Element Recorder
The Element type records the response of a number of elements. The response recorded is
element-dependent and depends on the arguments which are passed to the setResponse()
element method.
recorder Element <-file $fileName> <-time> <-ele ($ele1 $ele2 ...)> <-eleRange
$startEle $endEle> <-region $regTag> <-ele all> ($arg1 $arg2 ...)
$fileName
file where results are stored. Each line of the file contains the
result for a committed state of the domain (optional, default:
screen output)
-time
this argument will place the pseudo time of the as the first entry
in the line. (optional, default: omitted)
$startEle $endEle
$regTag
all
The setResponse() element method is dependent on the element type, and is described with the
element Command (page 213).
Beam-Column Elements (page 218, page 222, page 215, page 216) :
Common to all beam-column elements:
globalForce element resisting force in global coordinates (does not include inertial forces)
example:
recorder Element -file ele1global.out -time -ele 1 globalForce
localForce element resisting force in local coordinates (does not include inertial forces)
example:
recorder Element -file ele1local.out -time -ele 1 localForce
Chapter 28
Recorder Objects
319
$z
$matID
*NOTE: The recorder object will search for the fiber closest to the location ($y,$z) on the section
and record its stress-strain response
NOTE: the ZeroLength section element (page 225) only has 1 section therefore you do not need
to identify the section in the recorder command .. Example:
recorder Element -file Element1.out -time -ele 1 section 1 fiber 0.10 0.10 stressStrain
EnvelopeElement Recorder
The Element type records the response of a number of elements. The response recorded is
element-dependent and depends on the arguments which are passed to the setResponse()
element method. The envelope consists of the following: minimum, maximum and maximum
absolute value of specified response type.
Chapter 28
Recorder Objects
$fileName
file where results are stored. Each line of the file contains the
result for a committed state of the domain (optional, default:
screen output)
$startele $endele
all
$regTag
tag of region of elements whose response is being recorded -region of elements in domain (page 32) (optional)
320
The setResponse() element method is dependent on the element type, and is described with the
element Command (page 213).
Beam-Column Elements (page 218, page 222, page 215, page 216) :
Common to all beam-column elements:
globalForce element resisting force in global coordinates (does not include inertial forces)
example:
recorder EnvelopeElement -file ele1global.out -time -ele 1 globalForce
localForce element resisting force in local coordinates (does not include inertial forces)
example:
recorder EnvelopeElement -file ele1local.out -time -ele 1 localForce
Chapter 28
Recorder Objects
321
$z
*NOTE: The recorder object will search for the fiber closest to the location ($y,$z) on the section
and record its stress-strain response
NOTE: the ZeroLength section element (page 225) only has 1 section therefore you do not need
to identify the section in the recorder command .. Example:
recorder Element -file Element1.out -time -ele 1 section fiber 0.10 0.10 stressStrain
Display Recorder
This recorder opens a graphical window for displaying of graphical information.
$xLoc $yLoc
$xPixels $yPixels
$fileName
Chapter 28
Recorder Objects
322
Plot Recorder
This recorder type opens a graphical window for the plotting of the contents of the prescribed file
$windowTitle
$xLoc $yLoc
$xPixels $yPixels
$xCol0 $yCol0
$xCol1 $yCol1
$xCol2 $yCol2
playback Command
This command is used to invoke playback on all Recorder objects constructed with the recorder
command (page 326).
playback $commitTag
$commitTag
323
CHAPTER 29
Analysis Objects
The Analysis objects are responsible for performing the analysis. The analysis moves the model
along from state at time t to state at time t + dt. This may vary from a simple static (page 363)
linear analysis to a transient (page 364, page 365) non-linear analysis. In OpenSees each
Analysis object is composed of several component objects, which define the type of analysis
how the analysis is performed.
In general terms, the analysis objects are used to solve the following time-dependent
equilibrium-equation problem for a transient analysis:
-- transient equilibrium
Where FI is the acceleration-dependent inertial force vector, FR is the velocity (damping) and
displacement-dependent (stiffness) resisting-force vector. P(t) is the external applied-force
vector. The acceleration, velocity and displacement vectors are all time-dependent.
The component classes consist of the following:
ConstraintHandler (page 339) -- determines how the constraint equations are enforced in
the analysis -- how it handles the boundary conditions/imposed displacements
DOF_Numberer (page 344) -- determines the mapping between equation numbers and
degrees-of-freedom
AnalysisModel (page 363) -- defines what time of analysis is to be performed
SolutionAlgorithm (page 352) -- determines the sequence of steps taken to solve the nonlinear equation at the current time step
SystemOfEqn/Solver -- within the solution algorithm, it specifies how to store and solve the
system of equations in the analysis
Chapter 29
In This Chapter
constraints Command .............................................. 339
numberer Command ................................................ 344
system Command .................................................... 346
test Command.......................................................... 349
algorithm Command ................................................. 352
integrator Command................................................. 356
analysis Command................................................... 363
rayleigh command .................................................... 367
eigen Command....................................................... 368
analyze Command ................................................... 369
dataBase Commands............................................... 370
Analysis Objects
324
Chapter 29
Analysis Objects
325
326
CHAPTER 30
constraints Command
This command is used to construct the ConstraintHandler object. The ConstraintHandler object
determines how the constraint equations are enforced in the analysis. Constraint equations
enforce a specified value for a DOF, or a relationship between DOFs. The degrees of freedom
can be broken down into UR, the retained DOF's, and UC, the condensed DOF's:
Chapter 30
constraints Command
327
The Plain Constraints (page 341) command is used to enforce homogeneous single-point
constraints, such as the case of homogeneous boundary conditions, where all boundary
conditions are fixity, using single-point constraints (page 41, http://www.). For this case:
UC=0.0
The other constraints commands are used for ALL other cases, such as the case of nonhomogeneous single-point constraints using the sp command (page 319), multi-point constraints
(page 44), imposed motions (page 324) and multi-support excitation (page 322). For such cases,
the relationship between DOF's can be written as:UC=CRCUR. Where CRC is a matrix of constants.
The following constraints handlers are currently availble:
Penalty Method (page 341) -- consists of adding large numbers to the stiffness matrix and
the restoring-force vectors to impose a prescribed zero or nonzero DOF. This method applies
very stiff elements (numerically) at the boundary conditions. These additional stiffnesses
affect the eigenvalues/eigenvectors in a transient analysis. This is the recommended method
for a static analysis.
Lagrange Multipliers (page 342) -- apply the method of lagrange multipliers to the system
of equations, thus enlarging the size of the materices. Once Labrange Multipliers have been
applied, the resulting stiffness matrix is no longer positive definite. Therefore, this method
should be used only if there are condition-number problems with the penalty method.
Transformation Method (page 343) -- transforms the stiffness matrix by condensing out the
constrained DOF's. This method reduces the size of the system for multi-point constraints.
This is the recommended method for a transient analysis. However, this method should not
be used when nodes are constrained in series. For example, U3 is constrained to U2, which is
then constrained to U1.
Of the different methods, "the Lagrange multiplier method is more attractive than the
transformation method if there are few constraint equations that couple many DOF. However,
Lagrange multipliers are active at the structure level, but transformation equations can be
applied at either the structure level or element by element. The latter has the appeal of disposing
of constraints at an early stage, when the matrices are small and manageable". (Cook)
"In comparison with Lagrange multipliers, penalty functions have the advantage of introducing
no new variables. However, the penalty matrix may significantly increase the bandwidth of the
structural equations, depending on how DOF are numbered and what DOF are coupled by the
constraint equations. Penalty functions have the disadvantage that penalty numbers must be
chosen in an allowable range: large enough to be effective but not so large as to provoke
numerical difficulties". (Cook)
More information and examples on these methods are discussed in detail in the Cook book.
Chapter 30
constraints Command
328
In This Chapter
Plain Constraints ...................................................... 341
Penalty Method ........................................................ 341
Lagrange Multipliers ................................................. 342
Transformation Method ............................................ 343
Plain Constraints
This command creates a PlainHandler which is only capable of enforcing homogeneous singlepoint constraints. If other types of constraints exist in the domain, a different constraint handler
must be specified.
constraints Plain
Penalty Method
This command is used to construct a PenaltyConstraintHandler which will cause the constraints
to be enforced using a penalty method. The penalty method consists of adding large numbers to
the stiffness matrix and the restoring-force vectors to impose a prescribed zero or nonzero DOF.
$alphaMP
In this method the potential-energy equation which makes up the system of equations is
augmented by a penalty function {t}T[alpha]{t}/2
where [alpha] is a diagonal matrix of "penalty numbers". The resulting system of equations is of
the form:
[K + CTalphaC]U = [R+CTalphaQ]
Chapter 30
constraints Command
329
Where CTalphaC can be called the penalty matrix. C and Q are matrices containing constants, K
is the stiffness matrix, U represents the DOF and R the restoring forces. If alpha=0 the
constraints are ignored. As alpha grows, U changes in such a way that the constraint equations
are more nearly satisfied. In this case, however, the analysis becomes error prone, as the
system represents a stiff region supported by a flexible region.
NOTE: The Penalty Method affects the maximum eigenvalues of the system and may cause
problems in a Transient analysis.
The Penalty Method is discussed in detail in the Cook Book -- Concepts and Applications of
Finite Element Analysis.
"Guideline for choice of alpha: If computer words carry approximately p decimal digits,
experience has shown that alpha should not exceed 10p/2". (Cook)
Lagrange Multipliers
This command is used to construct a LagrangeConstraintHandler which will cause the
constraints to be enforced using the method of Lagrange multipliers.
$alphaMP
NOTE: Values for $alphaSP and $alphaMP other than 1.0 are permitted to offset numerical
roundoff problems.
NOTE: The system of equations is not positive definite due to the introduction of zeroes on the
diagonal by the constraint equations:
From Cook: "Lagrange's method of undetermined multipliers is used to find the maximum or
minimum of a function whose variables are not independent but have some prescribed relation.
In structural mechanics the function is the potential energy and the variables are the DOF".
Chapter 30
constraints Command
330
Transformation Method
This command is used to construct a TransofrmationConstraintHandler which will cause the
constraints to be enforced using the transformation method.
constraints Transformation
NOTE: With the current implementation, a retained node in an MP_Constraint cannot also be
specified as being a constrained node in another MP_Constraint.
The constraint equations takes the following form:
331
CHAPTER 31
numberer Command
This command is used to construct the DOF_Numberer object. The DOF_Numberer object
determines the mapping between equation numbers and degrees-of-freedom -- how degrees-offreedom are numbered.
Plain (page 344) -- nodes are assigned degrees-of-freedom arbitrarily, based on the input
file. This method is recommended for small problems or when sparse solvers are used, as
they do their own internal DOF numbering.
RCM (page 345) -- nodes are assigned degrees-of-freedom using the Reverse CuthillMcKee algorithm. This algorithm optimizes node numbering to reduce bandwidth using a
numbering graph. This method will output a warning when the structure is disconnected.
As certain system of equation and solver objects do their own mapping, i.e. SuperLU, UmfPack,
Kincho's, specifying a numberer other than plain may not be needed.
In This Chapter
Plain Numberer ........................................................ 344
RCM Numberer ........................................................ 345
Plain Numberer
This command is used to construct a PlainNumberer object.
numberer Plain
The Plain numberer assigns degrees-of-freedom to the nodes based on how the nodes are
stored in the domain. Currently, the user has no control over how nodes are stored.
Chapter 31
numberer Command
332
RCM Numberer
This command is used to construct a RCMNumberer object.
numberer RCM
The RCM numberer uses the reverse Cuthill McKee (REF?) algorithm to number the degrees of
freedom.
333
CHAPTER 32
system Command
This command is used to construct the LinearSOE and LinearSolver objects to store and solve
the system of equations in the analysis.
In This Chapter
BandGeneral SOE.................................................... 347
BandSPD SOE......................................................... 347
ProfileSPD SOE ....................................................... 347
SparseGeneral SOE................................................. 347
UmfPack SOE .......................................................... 348
SparseSPD SOE ...................................................... 348
Chapter 32
system Command
334
BandGeneral SOE
This command is used to construct an un-symmetric banded system of equations object which
will be factored and solved during the analysis using the Lapack band general solver.
system BandGeneral
BandSPD SOE
This command is used to construct a symmetric positive definite banded system of equations
object which will be factored and solved during the analysis using the Lapack band spd solver.
system BandSPD
ProfileSPD SOE
This command is used to construct symmetric positive definite profile system of equations object
which will be factored and solved during the analysis using a profile solver.
system ProfileSPD
SparseGeneral SOE
This command is used to construct a general sparse system of equations object which will be
factored and solved during the analysis using the SuperLU solver.
Chapter 32
system Command
335
UmfPack SOE
This command is used to construct a general sparse system of equations object which will be
factored and solved during the analysis using the UMFPACK solver. (REF?)
system UmfPack
SparseSPD SOE
This command is used to construct a sparse symmetric positive definite system of equations
object which will be factored and solved during the analysis using a sparse solver developed at
Stanford University by Kincho Law. (REF?)
system SparseSPD
336
CHAPTER 33
test Command
This command is used to construct a ConvergenceTest object. Certain SolutionAlgorithm (page
352) objects require a ConvergenceTest object to determine if convergence has been achieved
at the end of an iteration step. The convergence test is applied to the following equation:
Norm Unbalance
Norm Displacement
Increment
Energy Increment
In This Chapter
Norm Unbalance Test .............................................. 349
Norm Displacement Increment Test ......................... 350
Energy Increment Test ............................................. 351
convergence tolerance
$maxNumIter
$printFlag
Chapter 33
test Command
337
convergence tolerance
$maxNumIter
$printFlag
Chapter 33
test Command
338
convergence tolerance
$maxNumIter
$printFlag
339
CHAPTER 34
algorithm Command
This command is used to construct a SolutionAlgorithm object, which determines the sequence
of steps taken to solve the non-linear equation.
In This Chapter
Linear Algorithm ....................................................... 352
Newton Algorithm ..................................................... 352
Newton with Line Search Algorithm .......................... 353
Modified Newton Algorithm....................................... 354
Krylov-Newton Algorithm .......................................... 354
BFGS Algorithm ....................................................... 354
Broyden Algorithm.................................................... 355
Linear Algorithm
This command is used to construct a Linear algorithm object which takes one iteration to solve
the system of equations.
algorithm Linear
Newton Algorithm
This command is used to construct a NewtonRaphson algorithm object which uses the NewtonRaphson method to advance to the next time step.
algorithm Newton
NOTE: The tangent is updated at each iteration.
Chapter 34
algorithm Command
340
Chapter 34
algorithm Command
341
algorithm ModifiedNewton
NOTE: The tangent at the first iteration of the current time step is used to iterate on the next time
step.
Krylov-Newton Algorithm
This command is used to construct a KrylovNewton algorithm object which uses a modified
Newton method with Krylov subspace acceleration to advance to the next time step.
algorithm KrylovNewton
The accelerator is described by Carlson and Miller in "Design and Application of a 1D GWMFE
Code" from SIAM Journal of Scientific Computing (http://epubs.siam.org/sambin/dbq/toclist/SISC) (Vol. 19, No. 3, pp. 728-765, May 1998).
BFGS Algorithm
This command is used to construct a BFGS algorithm object for symmetric systems which
performs successive rank-two updates of the tangent at the first iteration of the current time step.
Chapter 34
algorithm Command
342
Broyden Algorithm
This command is used to construct a Broyden algorithm object for general unsymmetric systems
which performs successive rank-one updates of the tangent at the first iteration of the current
time step.
343
CHAPTER 35
integrator Command
This command is used to construct the Integrator object. The Integrator object determines the
meaning of the terms in the system of equation object Ax=B.
The Integrator object is used for the following:
Static analysis:
Transient analysis:
Chapter 35
integrator Command
344
The type of integrator used in the analysis is dependent on whether it is a static analysis (page
363) or transient analysis (page 364):
STATIC ANALYSIS*
LoadControl (page
358)
DisplacementControl
(page 358)
MinUnbalDispNorm
(page 359)
ArcLength (page 360)
TRANSIENT ANALYSIS
*NOTE: static integrators should only be used with a Linear TimeSeries (page 313) object with a
factor of 1.0.
In This Chapter
Load Control............................................................. 358
Displacement Control ............................................... 358
Minimum Unbalanced Displacement Norm............... 359
Arc-Length Control ................................................... 360
Newmark Method ..................................................... 361
Hilbert-Hughes-Taylor Method.................................. 362
Load Control
This command is used to construct a StaticIntegrator object of type LoadControl
Chapter 35
integrator Command
$dLambda1
$Jd
$minLambda
$maxLambda
345
The load increment at iterations i, dLambda(i), is related to the load increment at (i-1),
dLambda(i-1), and the number of iterations at (i-1), J(i-1), by the following:
dLambda(i) = dLambda(i-1)*Jd/J(i-1)
Displacement Control
This command is used to construct a StaticIntegrator object of the type DisplacementControl.
$dofTag
$dU1
$Jd
$minDu $maxDu
The displacement increment at iterations i, dU(i), is related to the displacement increment at (i1), dU(i-1), and the number of iterations at (i-1), J(i-1), by the following:
dU(i) = dU(i-1)*Jd/J(i-1)
Chapter 35
integrator Command
346
$Jd
$minLambda
$maxLambda
The load increment at iterations i, dLambda1(i), is related to the load increment at (i-1),
dLambda1(i-1), and the number of iterations at (i-1), J(i-1), by the following:
dLambda1(i) = dLambda1(i-1)*Jd/J(i-1)
Arc-Length Control
This command is used to construct a StaticIntegrator object of type ArcLength. Arc-length
methods are used to enable the solution algorithm to pass limit points, such as maximum and
minimum loads, and snap-through and snap-back responses. At these limit points, the stability of
the numerical system is dependent on whether the analysis is performed under load or
displacement control. In structural analysis, these limit points are characteristic of cracking of
reinforced concrete and of buckling of shells.
arclength value
Chapter 35
integrator Command
347
the arc-length method aims to find the intersection of the above equation with s=constant, where
s is the arc-length, defined by:
and
the scaling parameter is required because the load contribution depends on the adopted
scaling between the load and displacement terms.
for the arc-length methods, one should replace the differential form of the equation for ds with an
incremental form:
???
Newmark Method
This command is used to construct a TransientIntegrator object of type Newmark.
Newmark parameter
$beta
Newmark parameter
Chapter 35
integrator Command
348
Kcurrent
Kinit
KlastCommit
Hilbert-Hughes-Taylor Method
This command is used to construct a TransientIntegrator object of type HHT or HHT1.
Newmark parameter
mass matrix
Kcurrent
Kinit
KlastCommit
Chapter 35
integrator Command
349
350
CHAPTER 36
analysis Command
This command is used to construct the Analysis object (page 336), which defines what type of
analysis is to be performed. The following analysis types are available:
Static Analysis (page 363) -- solves the KU=R problem, without the mass or damping
matrices.
Transient Analysis (page 364) -- solves the time-dependent analysis. The time step in this
type of analysis is constant. The time step in the output is also constant.
Variable Transient Analysis (page 365) -- performs the same analysis type as the Transient
Analysis object. The time step, however, is variable. This method is used when there are
convergence problems with the Transient Analysis object at a peak or when the time step is
too small. The time step in the output is also variable.
In This Chapter
Static Analysis.......................................................... 363
Transient Analysis .................................................... 364
VariableTransient Analysis ....................................... 365
Static Analysis
This command is used to construct a StaticAnalysis object.
analysis Static
This analysis object is constructed with the component objects previously created by the analyst.
If none has been created, default objects are constructed and used:
Component Object
Default object
Chapter 36
analysis Command
SolutionAlgorithm
(page 352),
StaticIntegrator (page
358, page 356, page
358, page 359)
ConstraintHandler
(page 339)
DOF_Numberer (page
344)
Integrator
351
Transient Analysis
This command is used to construct a DirectIntegrationAnalysis object.
analysis Transient
This analysis object is constructed with the component objects previously created by the analyst.
If none has been created, default objects are constructed and used:
Component Object
Default object
SolutionAlgorithm
(page 352),
TransientIntegrator
(page 356)
ConstraintHandler
(page 339)
DOF_Numberer (page
344)
Chapter 36
Integrator
analysis Command
352
VariableTransient Analysis
This command is used to construct a VariableTimeStepDirectIntegrationAnalysis object.
analysis VariableTransient
This analysis object is constructed with the component objects previously created by the analyst.
If none has been created, default objects are constructed and used:
Component Object
Default object
SolutionAlgorithm
(page 352),
TransientIntegrator
(page 356)
ConstraintHandler
(page 339)
DOF_Numberer (page
344)
Integrator
353
CHAPTER 37
rayleigh command
This command is used to assign damping to all previously-defined elements and nodes:
Kcurrent
Kinit
KlastCommit
354
CHAPTER 38
eigen Command
This command is used to perform a generalized eigenvalue problem to determine a specified
number of eigenvalues and eigenvectors.
$numEigenvalues
solve: K- M
generalized
solve: K- M (default)
standard
solve: K- I
The eigenvectors are stored at the nodes and can be printed out using Node Recorder (page
326) or the Print command (page 372).
NOTE: The current eigensolver is able to solve only for N-1 eigenvalues, where N is the number
of interial DOFs. When running into this limitation, the user should add negligible masses to
additional unrestrained degrees of freedom.
For example, for a 3-dof/node problem, instead of:
mass 1 100 0 0
the user should input:
mass 1 100 1e-9 0
where dof-2 at node 1 is unrestrained.
355
CHAPTER 39
analyze Command
This command is invoked on the Analysis object constructed with the analysis command (page
363).
$dt
time-step increment.
Required if a transient analysis (page 364) or variable time step
transient analysis (page 365) was specified.
$dtMin
$dtMax
$Jd
successful
<0
unsuccessful
356
CHAPTER 40
dataBase Commands
This command is used to construct a FE_Datastore object.
Currently there is only one type of Datastore object available.
In This Chapter
FileDatastore Command........................................... 370
FileDatastore Command
This command is used to construct the FE_Datastore object.
$dbName
database type:
File
MySQL
BerkeleyDB
database name.
If the database type is File, the command will save the data into
a number of files, e.g. $dbName.id11 for all ID objects of size 11
that sendSelf() is invoked upon.
The invocation of this command will add the additional commands save and restore to the
OpenSees interpreter to allow users to save and restore model states.
Chapter 40
dataBase Commands
save Command
This command is used to save the state of the model in the database.
save $commitTag
$commitTag
unique identifier that can be used to restore (page 371) the state
at a later time
restore Command
This command is used to restore the state of the model from the information stored in the
database.
restore $commitTag
$commitTag
unique identifier used to restore the state at the model when the
save (page 371) command was invoked
357
358
CHAPTER 41
Miscellaneous Commands
These are a few additional miscellaneous command used in OpenSees
In This Chapter
print Command......................................................... 372
reset Command........................................................ 373
wipe Command ........................................................ 373
wipeAnalysis Command ........................................... 374
loadConst Command................................................ 374
getTime Command................................................... 375
nodeDisp Command................................................. 375
video Command ....................................................... 375
nodeBounds ............................................................. 376
display Command..................................................... 377
print Command
This command is used to print output.
To print all objects of the domain:
print <$fileName>
To print node information:
Chapter 41
Miscellaneous Commands
$flag
359
Default: all
$ele1 $ele2 ...
reset Command
This command is used to set the state of the domain to its original state.
reset
The command invokes revertToStart() on the Domain (page 32) object.
wipe Command
This command is used to destroy all constructed objects.
wipe
This command is used to start over without having to exist and restart the interpreter (page 19).
wipeAnalysis Command
This command is used to destroy all objects constructed for the analysis.
wipeAnalysis
Chapter 41
Miscellaneous Commands
360
This command is used to start a new type of analysis. This command does not destroy the
elements (page 213), nodes (page 39), materials (page 175, page 47), etc. It does destroy the
solution strategies: the algorithm (page 352), analysis (page 363), equation solver (page 346),
constraint handler (page 339), etc.
loadConst Command
This command is used to invoke setLoadConst() on all LoadPattern (page 317) objects which
have been created up to this point.
getTime Command
This command returns the time in the domain.
getTime
nodeDisp Command
Returns the displacement or rotation at specified node.
node tag
$dof
degree-of-freedom tag
Valid range is from 1 through ndf (page 37), the number of
nodal degrees-of-freedom. (???)
Chapter 41
Miscellaneous Commands
361
video Command
This command is used to construct a TclVideoPlayer object for displaying the images in a file
created by the recorder display (page 333) command.
$windowName
The images are displayed by invoking the play (page 376) command.
Chapter 41
Miscellaneous Commands
362
play Command
This command is used to play the TclVideoPlayer object created by the video (page 375)
command.
play
nodeBounds
This commands returns a 5-element list of the max and min coordinates of the nodes defined in
the domain:
nodeBounds
The command returns: "Xmin Ymin Zmin Xmax Ymax Zmax", independently of the domain
dimensions, 1D, 2D or 3D, zeros are returned for the extra dimensions.
This command is useful when setting up a display.
Example:
3D
2D
1D
Chapter 41
Miscellaneous Commands
363
display Command
This command is used to display the model defined in the domain, and is associated with the
display recorder (page 333):
Example usage:
set dAmp 10; # this amplification is dependent on the model size
if {$ShapeType == "ModeShape" } {
display -$nEigen 0 $dAmp; # display mode shape for mode $nEigen
} elseif {$ShapeType == "NodeNumbers" } {
display 1 -1 0 ;
364
CHAPTER 42
How To....
In this chapter, some examples on how to generate input for OpenSees for specific tasks will be
presented.
In This Chapter
Run OpenSees......................................................... 379
...Define Units & Constants ...................................... 382
...Generate Matlab Commands................................. 383
...Define Tcl Procedure............................................. 384
...Read External files ................................................ 385
Building The Model................................................... 387
Defining Output ........................................................ 393
Gravity Loads ........................................................... 394
Static Analysis.......................................................... 395
Dynamic Analysis ..................................................... 398
...Combine Input-File Components ........................... 399
...Run Parameter Study ............................................ 400
...Run Moment-Curvature Analysis on Section ......... 401
...Determine Natural Period & Frequency ................. 403
Chapter 42
How To....
Run OpenSees
There are three ways that OpenSees/Tcl commands can be executed:
Interactive
Commands can be input directly at the propt, as shown in the figure (Win32 version):
365
Chapter 42
How To....
366
Batch Mode
The previously-created input file containing the Tcl script commands necessary to execute the
analsis can also be executed at the MS-DOS/Unix prompt, as shown in the figure (Win32
version):
Chapter 42
How To....
367
Chapter 42
How To....
368
set in 1.;
set sec 1.;
set kip 1.;
set ksi [expr $kip/pow($in,2)];
# define constants
1.e10;
set u
[expr 1/$U];
Chapter
How To....
369
CHAPTER
# create directory
set outFileID [open $fDir/DataFrame$Xframe.m w]; # Open output file for writing
puts $outFileID "Xframe($Xframe) = $Xframe;";
# frame ID
# column diameter
# column length
# beam length
puts $outFileID
"Hbeam($Xframe) = $Hbeam;";
# beam depth
puts $outFileID
"Bbeam($Xframe) = $Bbeam;";
# beam width
# superstructure weight
close $outFileID
by Michael H. Scott
Chapter
How To....
370
# with one layer of steel evenly distributed around the perimeter and a confined core.
# Formal arguments
#
# Notes
#
The center of the reinforcing bars are placed at the inner radius
The core concrete ends at the inner radius (same as reinforcing bars)
proc RCcircSection {id ri ro cover coreID coverID steelID numBars barArea nfCoreR nfCoreT nfCoverR
nfCoverT} {
section fiberSec $id {
set rc [expr $ro-$cover];
# Core radius
# Core patch
patch circ $coverID $nfCoverT $nfCoverR 0 0 $rc $ro 0 360; # Cover patch
if {$numBars <= 0} {
return
}
set theta [expr 360.0/$numBars];
layer circ $steelID $numBars $barArea 0 0 $rc $theta 360; # Reinforcing layer
}
}
This procedure is invoked by the following commands, assuming that all arguments have been
defined previously in the input generation:
source RCcircSection.tcl;
RCcircSection $IDcolFlex $riCol $roCol $cover $IDcore $IDcover $IDsteel $NbCol $AbCol $nfCoreR
Chapter
How To....
371
NOTE: the file containing the definition of the procedure (RCcircSec.tcl) needs to be sourced
before the procedure is invoked.
Repeated Calculations
An external file may contain a series of calculations that are repeated. An example of this is a
parameter study:
set Hcolumn 66;
source analysis.tcl
set Hcolumn 78;
source analysis.tcl
The analysis.tcl file contains the commands that set up and execute the entire analysis.
} else {
foreach line [split [read $inFileID] \n] { ;
Chapter
How To....
372
} else {
set Xvalues $line;
}
}
close $inFileID; ;
MATERIAL PARAMETERS:
# -----MaterialParameters.tcl------------------------------------------------------# nominal compressive strength of concrete
# ultimate stress
# ultimate stress
Chapter
How To....
373
1.0;
set pinchY
1.0;
set damage1
0.0;
set damage2
0.0;
set G
$U;
set J
1.;
# Torsional stiffness
ELEMENT PARAMETERS:
# -----ElementParameters.tcl---------------------------------------------------set Hcol
[expr 5.*$ft];
# column diameter
set Lcol
[expr 36*$ft];
# column length
set Hbeam
[expr 8.*$ft];
# beam depth
set Lbeam
[expr 36.*$ft];
# beam length
set GrhoCol
set Weight
[expr 2000.*$kip];
set Bbeam
set Rcol
[expr $Hcol/2];
set Acol
set cover
set IgCol
[expr $PI*pow($Rcol,4)/4];
set IyCol
set IzCol
set IzBeam
set IyBeam
[expr $Hbeam*pow($Bbeam,3)/12]; # beam gross moment of inertia, about the vertical Y-axis
set Abeam
# superstructure weight
# COLUMN radius
set NbCol
20;
set AsCol
set AbCol
[expr $AsCol/$NbCol];
set riCol
0.0;
set roCol
set IDcore
1;
Chapter
set IDcover
2;
set IDsteel
3;
set nfCoreR
8;
set nfCoreT
16;
set nfCoverR
2;
set nfCoverT
16;
set IDcolFlex
2;
set IDcolTors
10;
set IDcolSec
1;
set IDcolTrans
1;
set IDbeamTrans
set np
5;
2;
How To....
374
GRAVITY PARAMETERS:
# -----GravityParameters.tcl---------------------------------------------------# define GRAVITY paramters
# gravity axial load per column
[expr $Weight/$Lbeam];
[expr $Weight/$g];
set Mnode
[expr $Mass/2];
ANALYSIS PARAMETERS:
# -----AnalysisParameters.tcl---------------------------------------------------# Displacement increment for pushover analysis
set DxPush
[expr 0.1*$in];
set DmaxPush
[expr 0.05*$Lcol];
set DtAnalysis
set DtGround
0.5;
set beta
0.25
Chapter
How To....
375
# Define nodes ------ frame is in X-Y plane (X-horizontal, Y-vertical) using the node Command (page 39)
node 1
0.
0.
node 2
360.
0.
node 3
0.
node 4
360.
120. 0.;
# Define Boundary Conditions and nodal mass using the fix Command (page 41) ! 1: restrained, 0: released
fix 1 1 1 1 1 1 1;
fix 2 1 1 1 1 1 1;
fix 3 0 1 1 1 1 0
fix 4 0 1 1 1 1 0
# define mass at node 4 using the mass Command (page 40):
mass 4 [expr 2000/2/32.2/12] 0. 0. 0. 0. 0.
# NOTE: The second command assigning the mass of a specific node will override any previous
mass assignments to that node.
# Define nodes ------ frame is in X-Y plane (X-horizontal, Y-vertical) using the node Command (page 39)
Chapter
node 1
0.
0.
0.;
node 2
$Lbeam
0.
0.;
node 3
0.
$Lcol
0.;
node 4
$Lbeam
$Lcol
0.;
How To....
376
# Define Boundary conditions using the fix Command (page 41) ! 1: restrained, 0: released
fix 1 1 1 1 1 1 1;
# fully-fixed support
fix 2 1 1 1 1 1 1;
fix 3 0 1 1 1 1 0
fix 4 0 1 1 1 1 0;
# define the mass at node 4 using the mass Command (page 40):
mass 4 $Mass 0. 0. 0. 0. 0.;
# NOTE: The second command assigning the mass of a specific node will override any previous
mass assignements to that node.
...Define Materials
The following is an example on how to define materials for reinforced-concrete structures. The
examples assume that the variables have been defined apriori. If these commands are placed
into an external file they can be used in a number of analyses without significant modifications
using the source command.
# -------MaterialsRC.tcl---------------------------------------------------------set ConcreteMaterialType "inelastic";
# options: "elastic","inelastic"
# options: "elastic","bilinear","hysteretic"
$IDsteel
$Fy
$Es
$Bs
Chapter
How To....
377
if {$SteelMaterialType == "hysteretic"} {
uniaxialMaterial Hysteretic $IDsteel $Fy $epsY $Fy1 $epsY1 $Fu $epsU -$Fy -$epsY -$Fy1 -$epsY1 $Fu -$epsU $pinchX $pinchY $damage1 $damage2 $betaMUsteel
}
...Define Elements
# -----ELEMENTS.tcl------------------------------------------------------# COLUMNS
set ColumnType "inelastic";
set np 5;
# source RCcircSection.tcl;
RCcircSection $IDcolFlex $riCol $roCol $cover $IDcore $IDcover $IDsteel $NbCol $AbCol $nfCoreR
$nfCoreT $nfCoverR $nfCoverT
# Define torsional stiffness
$IDcolTors
$IDcolTrans
-section
$IDcolFlex;
0 0 1;
if {$ColumnType == "rigid"} {
set $IyCol [expr $IyCol*$IyCol];
set $IzCol [expr $IzCol*$IzCol];
element elasticBeamColumn 1 1 3 $Acol
}
if {$ColumnType == "elastic"} {
element elasticBeamColumn 1 1 3 $Acol
}
if {$ColumnType == "inelastic"} {
element nonlinearBeamColumn 1 1 3
element nonlinearBeamColumn 2 2 4
}
# BEAM
geomTransf Linear
$IDbeamTrans
0 0 1;
$IzBeam
$IDbeamTrans;
Chapter
How To....
378
Defining Output
...Define Analysis-Output Generation
Different output may be generated depending on whether the analysis is static or dynamic. Here
is an example:
# -------Output.tcl------------------------------------------------------------------------set fDir "Data/";
# create directory
set IDctrlNode 3;
if {$ANALYSIS == "Static"} {
# Record nodal displacements -NODAL DISPLACEMENTS
set fDstatFrame DStatFrame[expr $Xframe]
set iNode "$IDctrlNode";
# end of xSEC
# end of xEL
Chapter
if {$ANALYSIS == "Dynamic"} {
set fDDynaFrame DDynaFrame[expr $Xframe]
set fGroundFile $GroundFile
set Filename $fDir$fDDynaFrame$fGroundFile
# Record nodal displacements
recorder Node $Filename.out disp -time -node $IDctrlNode -dof 1
};
Gravity Loads
...Define Gravity Loads
# ---------DefineGravity.tcl-------------------------------------------------------------------------------------set GravSteps 10
pattern Plain 1 Linear {
load 3
0. -$Pdl 0. 0. 0. -$Mdl ; # Fx Fy Fz Mx My Mz
load 4
0. -$Pdl 0. 0. 0. +$Mdl
}
system UmfPack;
How To....
379
Chapter
constraints Plain;
test NormDispIncr 1.0e-5
How To....
380
0;
algorithm Newton;
# renumber dof's to minimize band-width
numberer RCM;
Static Analysis
...Define Static Pushover Analysis
The following commands are executed once the gravity loads have been defined and applied
# ---------DefinePushover.tcl-------------------------------------------------------------------------------------------------set analysis "STATIC";
# the following settings do not need to be here if they have been defined in the gravity analysis
system UmfPack;
constraints Plain;
test NormDispIncr 1.0e-5
10
0;
algorithm Newton;
numberer RCM; analysis Static;
# -----------set PUSHOVER "DispControl";
}
if {$PUSHOVER == "LoadControl"} {
integrator LoadControl 0.2 4 0.1 2.0
set Nsteps 20
Chapter
How To....
381
No convergence issues
The following command executes the static push-over analysis when convergence is not a
problem.
# ---------RunPushover.tcl-----------------------------------------------------------------------------------analyze $Nsteps
Convergence attemps
The following Tcl script should be incorporated in the input file to run a number of attempts at
convergence:
# ---------RunPushover2Converge.tcl---------------------------------------------------------------set ok [analyze $Nsteps]
# if analysis fails, try the following, performance is slowed inside this loop
if {$ok != 0} {
set ok 0;
set maxU $DmaxPush
set controlDisp 0.0;
test NormDispIncr 1.0e-8
20
1000 1
Chapter
How To....
set ok [analyze 1]
test NormDispIncr 1.0e-8
20
algorithm Newton
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1]
algorithm Newton
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1]
algorithm Newton
}
};
};
if {$ok != 0} {
puts "DispControl Analysis FAILED"
puts "Do you wish to continue y/n ?";
gets stdin ans;
if {$ans == "n"} done;
} else {
puts "DispControl Analysis SUCCESSFUL"
}
Dynamic Analysis
...Define Dynamic Ground-Motion Analysis
# ---------DefineDynamic.tcl---------------------------------------------------------------wipeAnalysis
system UmfPack
382
Chapter
How To....
383
constraints Plain
test NormDispIncr 1.0e-8 20 0;
algorithm Newton
numberer RCM
integrator Newmark $gamma $beta $alphaM $betaK $betaKcomm $betaKinit;
analysis Transient
set Nsteps [expr int($TmaxGround/$DtAnalysis)];
# read a PEER strong motion database file, extracts dt from the header and converts the file
# to the format OpenSees expects for uniform ground motions
source ReadSMDFile.tcl;
set dir "GMfiles/"
set outFile $dir$GroundFile.g3;
Chapter
How To....
384
source GravityParameters.tcl
source AnalysisParameters.tcl
source MatlabOutput.tcl
source BuildModel&Nodesw/Variables--portal.tcl
source materialsRC.tcl
source RCcircSec.tcl
source Elements.tcl
source Output.tcl
source DefineGravity.tcl
source runGravity.tcl
source DefinePushover.tcl
source RunPushover2Converge.tcl
This method of breaking the input file into components is convenient when the size of the
problem does not permit manageability of a single input file.
Parsing in series
In this type of study, one parameter is held constant, while the others are parsed in sequence:
# -----ParameterStudySeries.tcl---------------------------------------------------source units.tcl
set iHcol "[expr 5.*$ft] [expr 6.5*$ft]";
# column diameter
Chapter
How To....
385
# column length
set Xframe 0;
foreach Hcol $iHcol {
*NOTE: The file Analysis.tcl contains all the model and analysis commands.
Parsing in parallel
In this study, the ith elements of each parameter list are considered together, resulting in fewer
study models.
# -----ParameterStudyParallel.tcl---------------------------------------------------source units.tcl
set iHcol "[expr 5.*$ft] [expr 6.5*$ft]";
# column diameter
# column length
set Xframe 0;
Chapter
How To....
386
Chapter
How To....
387
When including this procedure, ensure that the node and element numbers used by it are not
used elsewhere in the OS model.
The above procedure may be incorporated into the static pushover analysis file:
# ----MomentCurvature.tcl--------------------------------------------------------wipe
model basic -ndm 3 -ndf 6
source Units&Constants.tcl
source MaterialParameters.tcl
source ElementParameters.tcl
source GravityParameters.tcl
source materialsRC.tcl
source RCcircSec.tcl
RCcircSection $IDcolSec $riCol $roCol $cover $IDcore $IDcover $IDsteel $NbCol $AbCol $nfCoreR
$nfCoreT $nfCoverR $nfCoverT
source MPhiProc.tcl
set phiYest [expr $epsY/(0.7*$Hcol)];
[expr 2*$PI/$omega];
# period (sec.)
puts $Tperiod
set alphaM
0;
set betaK
0;
set betaKcomm
[expr 2*$xDamp/$omega];
+beatK*KCurrent
Chapter
How To....
+betaKcomm*KlastCommitt
set betaKinit
0;
+beatKinit*Kini
388
389
CHAPTER 43
Chapter 43
390
The documentation and validation examples of the Getting Started with OpenSees Manual were
supported by NEESgrid subcontract award 04-344 from the NEESgrid System Integrator (SI)
under NSF grant CMS-0117853
In This Chapter
Introduction .............................................................. 406
Download OpenSees ............................................... 407
Run OpenSees......................................................... 409
Problem Definition .................................................... 413
Model Builder ........................................................... 414
Nodes....................................................................... 415
Elements .................................................................. 417
Recorders................................................................. 418
Summary of Model-Building Input File ...................... 418
Loads and Analysis .................................................. 421
Gravity Loads ........................................................... 423
Summary of Gravity Loads ....................................... 427
Lateral Loads -- Static Pushover .............................. 427
Lateral Loads -- Cyclic Lateral Load ......................... 428
Lateral Loads -- Dynamic ground motion.................. 429
Chapter 43
391
Introduction
Modern earthquake engineering utilizes modeling and simulation to understand the behavior and
performance of systems during earthquakes. With the support of the National Science
Foundation, the Pacific Earthquake Engineering Research Center (PEER) has developed the
Open System for Earthquake Engineering Simulation, OpenSees for short, as a software
platform for research and application of simulation for structural and geotechnical systems. The
OpenSees software framework uses object-oriented methodologies to maximize modularity and
extensibility for implementing models for behavior, solution methods, and data processing and
communication procedures. The framework is a set of inter-related classes, such as domains
(data structures), models, elements (which are hierarchical), solution algorithms, integrators,
equation solvers, and databases. The classes are as independent as possible, which allows
great flexibility in combining modules to solve simulation problems for buildings and bridges,
including soil and soil-structure-foundation interaction, and most recently including reliability
computational modules. The open source software is managed and made available to users
and developers through the OpenSees website at http://opensees.berkeley.edu
(http://opensees.berkeley.edu).
The software architecture and open-source approach for OpenSees provide many benefits to
users interested in advanced simulation of structural and geotechnical systems with realistic
models of nonlinear behavior. First, the modeling approach is very flexible in that allows
selection and various combinations of a number of different element formulations and material
formulations, along with different approximations of kinematics to account for largedisplacements and P-D effects. As an open-source project, developers and researchers are
using the extensible features of the software architecture to add additional capability. A second
advantage is that there is a wide range of solution procedures and algorithms that the user can
adapt to solve difficult nonlinear problems for static and dynamic loads. Another feature is that
OpenSees has a fully programmable scripting language for defining models, solution
procedures, and post-processing that can provide simple problem solving capability, as
illustrated in this manual, or very sophisticated modeling and parameters studies of large,
complex systems. Finally, OpenSees provides a flexible interface to computer resources,
storage and databases, and network communication to take advantage of high-end computing
systems. Structural and geotechnical models can be analyzed from desktop PCs to parallel
computers within OpenSees.
As an advanced platform for computational simulation, OpenSees provides an important
resource for the National Science Foundation-sponsored George E. Brown, Jr. Network for
Earthquake Engineering Simulation (NEES (http://www.nees.org)), and it has been adopted by
NEESgrid (http://www.neesgrid.org) System Integration project as the NEES simulation
component. The NEESgrid decision to utilize OpenSees and adapt it to interface with other
NEESgrid resources provides an important capability for NEES researchers and users. The
modular design of OpenSees means that it can be customized for the integrating physical and
computation simulation through data repositories, visualization, and hybrid control for advanced
experimental methods, all of which meet important NEES objectives.
Chapter 43
392
Open source software, such as OpenSees, requires community support and participation. The
objective of this Getting Started manual is to provide an introduction so that users of OpenSees
can obtain, install, and begin using the software to solve problems.
Download OpenSees
To download and install OpenSees the user is required to download both the OpenSees and
Tcl/Tk packages. The OpenSees and Tcl/Tk packages can both be downloaded from the
OpenSees binaries webpage http://opensees.berkeley.edu/binaries.html. This page can be
found using the quick links pull down menu from any of the OpenSees web pages. The binaries
download page will be similar to that shown below.
Chapter 43
393
At this page the user is required to download two files OpenSees.X.X.X.exe and tcl/tk Y.Y.Y.
This can be done by selecting (clicking) on the links located in the box labeled DOWNLOAD
Windows Binaries.
The file downloaded by clicking on the OpenSees.X.X.X.exe link is a zip file, from which the
OpenSees.X.X.X.exe file can be extracted using your favorite extractor. The user can place this
executable anywhere they wish. It is recommended to place it in a directory near where all your
scripts will be stored.
The file downloaded by clicking the tcl/tk Y.Y.Y link is an installer for Tcl/Tk. By clicking on the
file the user is brought through a series of screens. The first screen shows the package
information for Y.Y.Y, the second screen has the license agreement, you must accept the
license to proceed with the installation. The third screen specifies the installation mode and
location. Here the user must change the default installation location from C:/Tcl to C:/Program
Files/Tcl (there is a space between Program and Files), as shown in the image below.
Chapter 43
394
This is the only change the user must make. User now just keeps selecting Next until done.
Run OpenSees
There are three ways that OpenSees/Tcl commands can be executed:
Interactive
Commands can be input directly at the propt, as shown in the figure (Win32 version):
Chapter 43
395
Chapter 43
396
Batch Mode
The previously-created input file containing the Tcl script commands necessary to execute the
analsis can also be executed at the MS-DOS/Unix prompt, as shown in the figure (Win32
version):
Chapter 43
397
Chapter 43
398
Problem Definition
A portal frame will be used to demonstrate the OpenSees commands. A structural model will be
defined first. Subsequently, a number of static and dynamic analyses will be defined and
implemented.
The structural model consists of the planar portal frame shown in the figure below:
The columns and beam will be modeled as elastic elements. At a more advanced level, these
elements can be replaced by more refined element models.
In the analysis phase, the frame will be subjected to three different load cases:
1
Chapter 43
399
In all cases, however, the frame will be subjected to constant static gravity loads:
Model Builder
Defining the model builder expands the Tcl command library to include OpenSees-specific
commands, such as node and element definition, etc. Currently, there is only one model builder
available, basic model builder (page 37), this is the model builder that includes all the commands
presented in this library.
The model builder also defines the number of dimensions (ndm) and degrees of freedom per
node (ndf):
Chapter 43
400
Nodes
At this point the user needs to decide which units will be used. In this demonstration, inches and
kips will be used for length and force. Seconds will be used for time.
The assignment of node and element numbers is defined in the figure below:
In a 2D problem only the x and y coordinates need to be defined, using the node (page 39)
command:
0
504
0
504
0
0
432
432
Chapter 43
401
The boundary conditions are defined using the fix (page 41) command:
1
1
0
0
1
1
0
0
0.
0.
The mass value was calculated by dividing the nodal weight (1/2 of the total super-structure
weight) by the gravitational constant g (32 ft/sec):
Chapter 43
402
Elements
The elastic columns and beams are defined using the elastic beam column element (page 215).
The characteristics of a 2-D elastic element depend on the material modulus and the section
area and moment of inertia. Because the elements in this frame represent reinforced-concrete
elements, the value of 4227 ksi for the elastic modulus of concrete will be used.
The following values represent the area and moment of inertia of the columns and beams:
COLUMNS
BEAM
Area
Iz
The transformation command defines how the element coordinates correlate to the global model
coordinates. In a 2D problem, element orientation does not need to be considered, and can be
the same for all elements. The linear transformation (page 302) will be used in this
demonstration:
The following commands define the two columns (element 1 and 2) and the beam (element 3):
1
2
3
3
4
4
3600
3600
5760
4227
4227
4227
1080000
1080000
4423680
1
1
1
Chapter 43
403
Recorders
The recorder command is used to define the analysis output.
The node recorder will be used to output the horizontal and vertical displacements at node 3 into
a file named Node3.out:
recorder Node <-file $fileName> <-time> <-node ($node1 $node2 ...)> <nodeRange $startNode $endNode> <-region $RegionTag> <-node all>
-dof ($dof1 $dof2 ...) $respType
recorder Node -file Node3.out -time -node 3 -dof 1 2 disp
The element recorder will be used to output the element forces. Element forces for element 1 will
be output into file Element1.out:
recorder Element <-file $fileName> <-time> <-ele ($ele1 $ele2 ...)> <-eleRange
$startEle $endEle> <-region $regTag> <-ele all> ($arg1 $arg2 ...)
recorder Element -file Element1.out -time -ele 1 force
Chapter 43
geomTransf Linear 1
# connectivity:
element elasticBeamColumn 1 1 3 3600 4227 1080000 1
element elasticBeamColumn 2 2 4 3600 4227 1080000 1
element elasticBeamColumn 3 3 4 5760 4227 4423680 1
# recorders
recorder Node -file Node3.out -time -node 3 -dof 1 2 disp
recorder Element -file Element1.out -time -ele 1 force
The above commands can be input line by line at the OpenSees command prompt:
404
Chapter 43
405
Otherwise, they can be saved into an input file called example.tcl. This file can then be sourced
in from the OpenSees command line:
Chapter 43
406
1. Load definition
Loads are defined using the pattern command. Three types of patterns are currently available:
a. plain Pattern -- this pattern is used to define the following:
i. nodal loads, such as gravity loads and lateral loads (or load-controlled nodal
displacements)
ii. single-point constraints, such as displacement control at a node (typically used
for a constant displacement at a node)
iii. element loads, such as distributed gravity loads along the element (this is a
new option, which still needs documentation).
b. UniformExcitation Pattern -- this type of pattern imposes a user-defined acceleration
record to all fixed nodes, in a specified direction.
c. MultipleSupport Pattern -- this type of pattern imposes a user-defined displacement
record at specified nodes, in a specified direction, or a ground-motion record.
Chapter 43
407
constraints
numberer
system
test
algorithm
integrator
Chapter 43
analysis
408
3. Analysis execution
The analysis is executed using the analyze (page 369) command. This command moves the
analysis forward by the specified number of steps.
Gravity Loads
Gravity loads are independent of the type of lateral loading and here they are considered part of
the structural model.
NODAL FORCES & MOMENTS
Because the beam is an elastic element, the vertical load distributed along the horizontal
member can be represented by nodal forces and moments. The nodal forces are distributed
equally to the two end nodes. The nodal bending moments are equal and opposite:
Chapter 43
409
the distributed load is calculated by dividing the total load by the beam length:
}
pattern Plain 1 Linear {
load 3 0.0 -2000 -168074
load 4 0.0 -2000 168074
}
CREATE ANALYSIS
The constraints (page 339) command is used to construct the ConstraintHandler object.
Constraints enforce a relationship between degrees-of-freedom. The ConstraintHandler object
determines how the constraint equations are enforced in the analysis.
constraints Transformation
Chapter 43
410
The numberer (page 344) command is used to construct the DOF_Numberer object. The
DOF_Numberer object determines the mapping between equation numbers and degrees-offreedom -- how degrees-of-freedom are numbered. With the RCM numberer nodes are assigned
degrees-of-freedom using the Reverse Cuthill-McKee algorithm
numberer RCM
The system (page 346) command is used to construct the LinearSOE and LinearSolver objects
to store and solve the system of equations in the analysis. The BandGeneral command is used
to construct an un-symmetric banded system of equations object which will be factored and
solved during the analysis using the Lapack band general solver
system BandGeneral
The test (page 349) command is used to construct a ConvergenceTest object. Certain
SolutionAlgorithm objects require a ConvergenceTest object to determine if convergence has
been achieved at the end of an iteration step. The convergence test is applied to the following
equation:
The algorithm (page 352) command is used to construct a SolutionAlgorithm object, which
determines the sequence of steps taken to solve the non-linear equation.
algorithm Newton
The integrator (page 356) command is used to construct the Integrator object. The Integrator
object determines the meaning of the terms in the system of equation object. The Integrator
object is used for the following:
Chapter 43
411
The type of integrator used in the analysis is dependent on whether it is a static analysis or
transient analysis:
static analysis
LoadControl (page 358)
DisplacementControl
(page 358)
MinUnbalDispNorm (page
359)
ArcLength (page 360)
The analysis (page 363) command is used to construct the Analysis object (page 336). This
analysis object is constructed with the component objects previously created by the analyst. All
currently-available analysis objects employ incremental solution strategies.
analysis Static
The analyze (page 369) command is used to apply the gravity load (in 10 steps) and all loads
that have been defined at this point, and the loadConst (page 374) command maintains the
gravity load constant for the remainder of the the analyses and resets the current time to zero.
Chapter 43
412
In this analysis, a lateral displacement of increasing amplitude is imposed at the free nodes (3
and 4). The imposed displacements are applied using a displacement-control integrator, where
the load factors are scaled to reach the desired displacement (compared to an imposeddisplacement analysis). This method is the most efficient when you have a non-strengthdegrading system.
The first step is to define the load pattern. To do so, we create a new load pattern (ID tag 2) for
the lateral loads
pattern Plain 2 Linear {
load 3 100.0 0.0 0.0
load 4 100.0 0.0 0.0
}
Most of the analysis features that were defined in the gravity analysis are still valid since this
type of analysis is also static. The loads, however, are applied differently. While gravity was
applied as a load, using the LoadControl integrator, the DisplacementControl integrator is used
in this pushover:
Chapter 43
413
In this analysis, a lateral displacement cycle (positive and negative) of a prescribed amplitude is
imposed at the free nodes (3 and 4). The imposed displacements are applied using a
displacement-control integrator, where the load factors are scaled to reach the desired
displacement (compared to an imposed-displacement analysis). This method is the most
efficient when you have a non-strength-degrading system.
The first step is to define the load pattern. To do so, we create a new load pattern (ID tag 3) for
the lateral loads
pattern Plain 3 Linear {
load 3 100.0 0.0 0.0
load 4 100.0 0.0 0.0
}
Most of the analysis features that were defined in the gravity analysis are still valid since this
type of analysis is also static. The loads, however, are applied differently. While gravity was
applied as a load, using the LoadControl integrator, the DisplacementControl integrator is used
in this pushover. Similarly, while in the pushover analysis a single load increment was used,
variable load increments are used to reverse the loading from positive to negative, and back to
positive.
The load is applied to node 3, in the direction of DOF 1, with a displacement increment of 1 for
the first rise to amplitude 1, -2 for the reversal to amplitude -1, and again positive 1 for the
reversal back to amplitude zero:
integrator DisplacementControl 3 1 0.1
analyze 10
integrator DisplacementControl 3 1 -0.2
analyze 10
integrator DisplacementControl 3 1 0.1
analyze 10
Chapter 43
414
The dynamic ground-motion analysis is a transient, rather than static, type of analysis.
Therefore, most of the analysis components should be redefined.
First of all, the load pattern needs to be defined. The load pattern here consists of defining an
acceleration time-history applied at the support nodes. The time-history is defined in a file
named BM68elc.th, taken from the PEER strong-motion database. The first lines of this file are:
PACIFIC ENGINEERING AND ANALYSIS STRONG-MOTION DATA
BORREGO MOUNTAIN 04/09/68 0230, EL CENTRO ARRAY #9, 270
ACCELERATION TIME HISTORY IN UNITS OF G
NPTS= 4000, DT= .01000 SEC
-.1368849E-02 -.1659410E-02 -.1466880E-02 -.6865326E-03 -.6491235E-03
-.6172128E-03 -.5942289E-03 -.5720329E-03 -.5517003E-03 -.5367939E-03
-.5300330E-03 -.5315104E-03 -.5389920E-03 -.5492582E-03 -.5592027E-03
-.5659958E-03 -.5672101E-03 -.5617805E-03 -.5502959E-03 -.5347288E-03
-.5176619E-03 -.5013709E-03 -.4873454E-03 -.4763228E-03 -.4683559E-03
-.4626830E-03 -.4579708E-03 -.4512405E-03 -.4376077E-03 -.4130071E-03
-.3772566E-03 -.3363394E-03 -.3030926E-03 -.2926074E-03 -.3144186E-03
-.3668375E-03 -.4373818E-03 -.5104884E-03 -.5745380E-03 -.6248976E-03
-.6621411E-03 -.6878470E-03 -.7014600E-03 -.6985488E-03 -.6737667E-03
-.6258232E-03 -.5616336E-03 -.4955459E-03 -.4432164E-03 -.4144737E-03
-.4103149E-03 -.4251781E-03 -.4493034E-03 -.4742715E-03 -.4942019E-03
-.5021476E-03 -.4907415E-03 -.4549906E-03 -.4008473E-03 -.3457893E-03
-.3076823E-03 -.2975411E-03 -.3148410E-03 -.3469618E-03 -.3746677E-03
-.3814194E-03 -.3598713E-03 -.3127679E-03 -.2503611E-03 -.1870004E-03
-.1381307E-03 -.1166398E-03 -.1296596E-03 -.1730662E-03 -.2365307E-03
-.3092055E-03 -.3795541E-03 -.4410602E-03 -.4886626E-03 -.5170590E-03
-.5252823E-03 -.5139311E-03 -.4858098E-03 -.4459504E-03 -.3992677E-03
-.3528575E-03 -.3119584E-03 -.2767747E-03 -.2493392E-03 -.2343354E-03
-.2328132E-03 -.2443271E-03 -.2710242E-03 -.3142711E-03 -.3756243E-03
-.4585760E-03 -.5641321E-03 -.6901264E-03 -.8277058E-03 -.9398496E-03
-.9604577E-03 -.8289034E-03 -.5332316E-03 -.1380318E-03 .2342108E-03
.4651973E-03 .5026886E-03 .3746881E-03 .1623773E-03 -.5159882E-04
-.2224880E-03 -.3475301E-03 -.4529523E-03 -.5485990E-03 -.5963545E-03
-.5423656E-03 -.3657646E-03 -.1048402E-03 .1563278E-03 .3291475E-03
.3576328E-03 .2409380E-03 .2377646E-04 -.2316319E-03 -.4694656E-03
-.6625028E-03 -.8119362E-03 -.9298628E-03 -.1028468E-02 -.1108383E-02
-.1131224E-02 -.1020689E-02 -.7165112E-03 -.2327270E-03 .3181869E-03
.7732246E-03 .1012043E-02 .1013671E-02 .8560355E-03 .6690806E-03
.5646968E-03 .5919845E-03 .7377345E-03 .9490117E-03 .1157766E-02
.1288701E-02 .1282487E-02 .1122759E-02 .8318915E-03 .4619941E-03
Chapter 43
.7578448E-04
-.5752344E-03
-.2406227E-03
.7517190E-03
-.4397852E-03
-.1227062E-02
-.2595554E-03
-.4995743E-03
-.1628483E-03
.9316287E-03
-.9508948E-03
-.6359309E-03
-.4939353E-03
-.4264229E-03
-.3998632E-04
.8846478E-03
-.1343749E-02
.1519731E-03
-.6127490E-03
-.3601404E-03
.1649808E-03
.5857181E-03
-.1561289E-02
.9751270E-03
415
-.6275750E-03
-.3004083E-03
.4539122E-03
.1074495E-03
-.1537678E-02
.1659683E-02
A number of tcl scripts are available to the user at the openSees web site which have been
written for specific tasks. The file ReadSMDFile.tcl is a script procedure which parses a ground
motion record from the PEER strong motion database by finding dt in the record header, then
echoing data values to the output file. This file should be saved in the same directory as the
OpenSees executable:
# -----------------------------------------------------------------------------------------------------------------------------------------# READSMDFILE.tcl
# Written: MHS
# Date: July 2000
# A procedure which parses a ground motion record from the PEER strong motion database by finding dt in the record
header, then
# echoing data values to the output file. Formal arguments
# inFilename -- file which contains PEER strong motion record
# outFilename -- file to be written in format G3 can read
# dt -- time step determined from file header
# Assumptions
# The header in the PEER record is, e.g., formatted as follows:
#
PACIFIC ENGINEERING AND ANALYSIS STRONG-MOTION DATA
#
IMPERIAL VALLEY 10/15/79 2319, EL CENTRO ARRAY 6, 230
#
ACCELERATION TIME HISTORY IN UNITS OF G
#
NPTS= 3930, DT= .00500 SEC
proc ReadSMDFile {inFilename outFilename dt} {
# Pass dt by reference
upvar $dt DT
# Open the input file and catch the error if it can't be read
if [catch {open $inFilename r} inFileID] {
puts stderr "Cannot open $inFilename for reading"
} else {
# Open output file for writing
set outFileID [open $outFilename w]
# Flag indicating dt is found and that ground motion
# values should be read -- ASSUMES dt is on last line
# of header!!!
set flag 0
# Look at each line in the file
foreach line [split [read $inFileID] \n] {
if {[llength $line] == 0} {
# Blank line --> do nothing
continue
} elseif {$flag == 1} {
# Echo ground motion values to output file
puts $outFileID $line
} else {
# Search header lines for dt
foreach word [split $line] {
# Read in the time step
if {$flag == 1} {
set DT $word
break
}
# Find the desired token and set the flag
Chapter 43
416
Once this file has been created, it can be read-in by the input file and used in the analysis
procedure, where an acceleration time-series (page 311) is defined and used in a
UniformExcitation (page 321) load pattern:
The stiffness and mass-proportional damping factors can then be defined using the rayleigh
(page 367) command:
Chapter 43
417
In a transient analysis, the analyze command also requires a time step. This time step does not
have to be the same as the input ground motion. The number of time steps is equal to the total
duration of the analysis (10 seconds) divided by the time step (0.02):
analyze [expr 10/0.02] 0.02
418
CHAPTER 44
2 Define the analysis components. Three types of analyses will be set up:
In This Chapter
Problem Definition.................................................... 434
Model Building ......................................................... 435
Recorders for Output ............................................... 454
Analysis Components .............................................. 455
Chapter 44
419
Problem Definition
The structural system that will be used in this document is the SDOF cantilever column shown in
the figure below. The column cross section consist of a reinforced-concrete fiber section with
different material properties for the confined core and the unconfined cover.
Chapter 44
420
Model Building
This chapter describes the main steps necessary to define the physical model of a structure.
Chapter 44
421
Therefore, it is recommended that the user define all material and geometric properties, as
variables:
set fc -5000;
set fy 60000;
Because OpenSees does not use internal units, the user must keep track of the types of units
being used. For example, the user must define all length units in either inches or meters, etc.,
consistently throughout.
The Tcl feature of being able to handle variables enables the user to define units as variables,
and hence use them in building the model. Here is an example:
First of all, the basic units need to be defined. The OpenSees output will be in these units:
set in
1.;
set sec 1.;
set kip 1.;
The basic units must be independent of each other. Once they have been defined, additional
units that are made up of these basic units can be defined:
set ksi
set psi
set ft
[expr $kip/pow($in,2)];
[expr $ksi/1000.];
[expr 12.*$in];
It is a good idea to define constants at the same time that units are defined:
set g
set PI
set U
set u
[expr 32.2*$ft/pow($sec,2)];
[expr 2*asin(1.0)];
1.e10;
[expr 1/$U];
# gravitational acceleration
# define constants
# a really large number
# a really small number
Once the units have been defined, model variables can be defined in terms of these units and,
hence, they don't all have to be defined in the basic units:
set fc
[expr -5500*$psi];
# CONCRETE Compressive Strength, ksi (+Tension, -Compression)
set Ec [expr 57000.*sqrt(-$fc/$psi)];# Concrete Elastic Modulus
set Fy [expr 68.*$ksi];
# STEEL yield stress
set Es [expr 29000.*$ksi];
# modulus of steel
set epsY
[expr $Fy/$Es];
# steel yield strain
It is also a good idea to use variables for IDtags of materials, sections, elements, etc. This is
done to ensure that the same ID tag is not used when defining the input. Also, it makes it easier
in writing the input to use a variable name that makes sense. Here is an example:
# set up parameters for column section and element definition
set IDcore 1;
# ID tag for core concrete
set IDcover 2;
# ID tag for cover concrete
Chapter 44
set IDsteel
3;
422
For the example structural model, the following variables need to be defined:
# define GEOMETRY variables
set Hcol
[expr 6.*$ft];
# column diameter
set Lcol
[expr 36*$ft];
# column length
set GrhoCol 0.015;
# column longitudinal-steel ratio
set Weight [expr 3000.*$kip];
# superstructure weight
set Rcol [expr $Hcol/2];
# COLUMN radius
set Acol [expr $PI*pow($Rcol,2)]; # column cross-sectional area
set cover
[expr 6*$in];
# column cover width
set G
$U;
# Torsional stiffness Modulus
set J
1.;
# Torsional stiffness of section
set GJ
[expr $G*$J];
# Torsional stiffness
# define COLUMN REINFORCEMENT variables
set NbCol
20;
# number of column longitudinal-reinforcement bars
set AsCol
[expr $GrhoCol*$Acol];
# total steel area in column section
set AbCol
[expr $AsCol/$NbCol];
# bar area of column longitudinal reinforcement
# define GRAVITY variables
set Mass
[expr $Weight/$g];
# mass of superstructure
set Mnode [expr $Mass];
# nodal mass for each column joint
# define DAMPING variables from $xDamp --SDOF system, use stiffness proportional damping only
set xDamp
0.02;
# modal damping ratio
# ------ set analysis variables
set DxPush [expr 0.1*$in];
# Displacement increment for pushover analysis
set DmaxPush
[expr 0.05*$Lcol]; # maximum displamcement for pushover analysis
set gamma 0.5;
# gamma value for newmark integration
set beta
0.25;
# beta value for newmark integration
set DtAnalysis
[expr 0.005*$sec];
# time-step Dt for lateral analysis
set DtGround
[expr 0.02*$sec]; # time-step Dt for input grond motion
set TmaxGround
[expr 50.*$sec]; # maximum duration of ground-motion analysis
Model Builder
For a 2-D problem, you really only need three degrees of freedom at each node, the two
translations in the plane and the rotation about the plane's normal:
model basic -ndm 2 -ndf 3
Chapter 44
423
the nodal mass (page 40) can also be defined using the mass command:
mass 2 $Mnode 0. 0.;
BOUNDARY CONDITIONS
The boundary conditions are defined using the fix (page 41) command. The tag 0 represents an
unconstrained (free) degree of freedom, the tag 1 represents a constrained (fixed) DOF. For the
structure under consideration, the column base is completely fixed (1-1-1) and the end is free (00-0). Three DOF's need to be defined here, the two translations and the rotation in the x-y plane:
fix 1 1 1 1;
fix 2 0 0 0;
# fixed base
# free end
Chapter 44
424
Materials
Once the nodes have been defined, the next step towards defining elements is the material
(page 175, page 47) definition. This step may not be necessary when using elastic element
(page 213) or sections (page 185), as the materials are defined with the element or section.
There are two types of materials currently available in OpenSees, uniaxial materials (page 47)
and nDmaterials (page 175). The different types of concrete and steel materials are among the
uniaxial materials. There are three types of concrete available:
1
Concrete01 (page 141): uniaxial Kent-Scott-Park concrete material object with degraded
linear unloading/reloading stiffness according to the work of Karsan-Jirsa and no tensile
strength
2 Concrete02 (page 145): uniaxial concrete material object with tensile strength and linear
tension softening
3 Concrete03 (page 152): uniaxial concrete material object with tensile strength and nonlinear
tension softening.
Concrete02 will be used for the structure under consideration, as the tensile strength of the
concrete is of interest in the elastic range, and modeling nonlinear tension softening is not
considered necessary for the purpose of the example. The cover and core concrete will be
modeled as different materials, using the same material type, but different stress and strain
characteristics and different material tags. Steel01 (page 157) will be used for the reinforcing
steel.
Because some material characteristics are dependent on others, it is recommended that the
user define the material properties using variables.
# Confined concrete:
set fc
[expr -5.5*$ksi];
# CONCRETE Compressive Strength, ksi (+Tension, -Compression)
set Ec
[expr 57*$ksi*sqrt(-$fc/$psi)]; # Concrete Elastic Modulus
set fc1C
[expr 1.26394*$fc];
# CONFINED concrete (mander model), maximum stress
set eps1C
[expr 2.*$fc1C/$Ec];
# strain at maximum stress
set fc2C
$fc;
# ultimate stress
set eps2C
[expr 5*$eps1C];
# strain at ultimate stress
# Unconfined concrete:
set fc1U
$fc;
# UNCONFINED concrete (todeschini parabolic model),
maximum stress
set eps1U
-0.003;
# strain at maximum stress
set fc2U
[expr 0.1*$fc];
# ultimate stress
set eps2U
-0.006;
# strain at ultimate stress
# Concrete02 variables:
set lambda 0.1
;
# ratio between unloading slope at $epscu and initial slope
set ftC [expr -$fc1C/10.];
# tensile strength +tension
set ftU [expr -$fc1U/10.];
# tensile strength +tension
set Ets [expr $Ec/10.];
# tension softening stiffness
# reinforcing steel
set Fy
[expr 68.*$ksi];
# STEEL yield stress
set Es
[expr 29000.*$ksi];
# modulus of steel
set epsY
[expr $Fy/$Es]; # steel yield strain
Chapter 44
425
set Fu
[expr 95.2*$ksi];
# ultimate stress of steel
set epsU
0.1;
# ultimate strain of steel
set E2 [expr ($Fu-$Fy)/($epsU-$epsY)];
# post-yield tangent stiffness
set Bs
[expr $E2/$Es];
# post-yield stiffness ratio of steel
To facilitate referencing the different material types, the user should set up material tags as
variables:
# set up parameters for column section and element definition
set IDcore 1;
# ID tag for core concrete
set IDcover 2;
# ID tag for cover concrete
set IDsteel 3;
# ID tag for steel
The materials are defined using the uniaxialMaterial (page 47) command:
uniaxialMaterial Concrete02 $IDcore
$fc1C
CONCRETE
uniaxialMaterial Concrete02 $IDcover
$fc1U
COVER CONCRETE
uniaxialMaterial Steel01 $IDsteel $Fy $Es $Bs;
$eps1C $fc2C
# CORE
$eps1U $fc2U
# REINFORCING STEEL
Chapter 44
426
The geometric transformation (page 302) is used to relate the local element, and section,
coordinates to the global system coordinates (simple here for a 2-D problem):
set IDcolTrans
geomTransf Linear $IDcolTrans;
1;
# ID tag for column transformation, defining element normal
# Linear: no second-order effects
The element, a nonlinearBeamColulmn (page 216) element, and its connectivity, are defined as
follows:
set np
5;
element nonlinearBeamColumn 1
1 2
Chapter 44
427
The above defines the gravity load (ID=1) as a load in the negative y-direction at node 2 with a
magnitude Pdl
And then applied:
# set up solution procedure
system UmfPack;
constraints Plain;
transformation
# set up convergence criteria
test NormDispIncr 1.0e-5 10
0;
algorithm Newton;
stiffness at every iteration
numberer RCM;
(optimization)
# set up load steppring
integrator LoadControl 0.1 1 0.1 0.1;
to converge, Dmax, Dmin
# set up type of analysis, static for gravity
analysis Static
initialize
# RUN GRAVITY ANALYSIS
analyze 10
loadConst -time 0.0
Chapter 44
428
set Hcol
[expr 6.*$ft];
# column diameter
set Lcol
[expr 36*$ft];
# column length
set GrhoCol 0.015;
# column longitudinal-steel ratio
set Weight [expr 3000.*$kip];
# superstructure weight
set Rcol [expr $Hcol/2];
# COLUMN radius
set Acol [expr $PI*pow($Rcol,2)]; # column cross-sectional area
set cover
[expr $Hcol/15];
# column cover width
set G
$U;
# Torsional stiffness Modulus
set J
1.;
# Torsional stiffness of section
set GJ
[expr $G*$J];
# Torsional stiffness
# define COLUMN REINFORCEMENT variables
set NbCol
20;
# number of column longitudinal-reinforcement bars
set AsCol
[expr $GrhoCol*$Acol];
# total steel area in column section
set AbCol
[expr $AsCol/$NbCol];
# bar area of column longitudinal reinforcement
# define GRAVITY variables
set Mass
[expr $Weight/$g];
# mass of superstructure
set Mnode [expr $Mass];
# nodal mass for each column joint
# define DAMPING variables from $xDamp --SDOF system, use stiffness proportional damping only
set xDamp
0.02;
# modal damping ratio
# ------ set analysis variables
set DxPush [expr 0.1*$in];
# Displacement increment for pushover analysis
set DmaxPush
[expr 0.05*$Lcol]; # maximum displamcement for pushover analysis
set gamma 0.5;
# gamma value for newmark integration
set beta
0.25;
# beta value for newmark integration
set DtAnalysis
[expr 0.005*$sec];
# time-step Dt for lateral analysis
set DtGround
[expr 0.02*$sec]; # time-step Dt for input grond motion
set TmaxGround
[expr 50.*$sec]; # maximum duration of ground-motion analysis
# define ModelBuilder
model basic -ndm 2 -ndf 3;
# basic: modelbuilder type, ndm= number of dimensions, ndf= #dof/node
# Nodal Coordinates and Nodal Masses
node 1 0. 0.;
# column base is located at the origin of the plane
node 2 0. $Lcol
-mass $Mnode 0. 0.;
# the column end has one translational mass in the x
direction, only
# Boundary Conditions
fix 1 1 1 1;
# fixed base
fix 2 0 0 0;
# free end
# Confined concrete:
set fc [expr -5.5*$ksi]; # CONCRETE Compressive Strength, ksi (+Tension, -Compression)
set Ec [expr 57*$ksi*sqrt(-$fc/$psi)]; # Concrete Elastic Modulus
set fc1C [expr 1.26394*$fc]; # CONFINED concrete (mander model), maximum stress
set eps1C [expr 2.*$fc1C/$Ec]; # strain at maximum stress
set fc2C $fc; # ultimate stress
set eps2C [expr 5*$eps1C]; # strain at ultimate stress
# Unconfined concrete:
set fc1U $fc; # UNCONFINED concrete (todeschini parabolic model), maximum stress
set eps1U -0.003; # strain at maximum stress
set fc2U [expr 0.1*$fc]; # ultimate stress
set eps2U -0.006; # strain at ultimate stress
# Concrete02 variables:
set lambda 0.1
;
# ratio between unloading slope at $epscu and initial slope
set ftC [expr -$fc1C/10.];
# tensile strength +tension
set ftU [expr -$fc1U/10.];
# tensile strength +tension
set Ets [expr $Ec/10.];
# tension softening stiffness
# reinforcing steel
set Fy [expr 68.*$ksi]; # STEEL yield stress
set Es [expr 29000.*$ksi]; # modulus of steel
set epsY [expr $Fy/$Es]; # steel yield strain
set Fu [expr 95.2*$ksi]; # ultimate stress of steel
set epsU 0.1; # ultimate strain of steel
Chapter 44
429
Chapter 44
algorithm Newton;
stiffness at every iteration
numberer RCM;
(optimization)
# set up load steppring
integrator LoadControl 0.1 1 0.1 0.1;
# set up type of analysis, static for gravity
analysis Static
initialize
# RUN GRAVITY ANALYSIS
analyze 10
loadConst -time 0.0
430
Please note the last command, it communicates to the user that all commands preceding it have
been executed. The above commands can be submitted to OpenSees one-by-one, or they can
be saved into a file, say input1.tcl.
Once the input file has been saved, it can be executed at the OpenSees command prompt:
Chapter 44
431
Of course, you will likely not get the clean response I got above.
Say you make a mistake. Likely it is a simple mistake it and you go and fix it (most errors that we
ALL commit are simple typing errors). To check it, you need to source the input file once more:
Chapter 44
432
OpenSees does not allow you to define objects with the same IDtag more than once. To solve
this problem, without exiting and re-entering OpenSees, you can use the wipe (page 373)
command:
Once you get confirmation that all the input commands have been executed correctly, you are
ready to move on to the next step. Type exit, press enter and go on.
Chapter 44
433
Chapter 44
434
node 1 0. 0.;
# column base is located at the origin of the plane
node 2 0. $Lcol
-mass $Mnode 0. 0.;
# the column end has one translational mass in the x
direction, only
# Boundary Conditions
fix 1 1 1 1;
# fixed base
fix 2 0 0 0;
# free end
puts "Nodal Coordinates, Nodal Masses, and Boundary Conditions have been defined"
puts "Begin material definition"
# Confined concrete:
set fc [expr -5.5*$ksi]; # CONCRETE Compressive Strength, ksi (+Tension, -Compression)
set Ec [expr 57*$ksi*sqrt(-$fc/$psi)]; # Concrete Elastic Modulus
set fc1C [expr 1.26394*$fc]; # CONFINED concrete (mander model), maximum stress
set eps1C [expr 2.*$fc1C/$Ec]; # strain at maximum stress
set fc2C $fc; # ultimate stress
set eps2C [expr 5*$eps1C]; # strain at ultimate stress
# Unconfined concrete:
set fc1U $fc; # UNCONFINED concrete (todeschini parabolic model), maximum stress
set eps1U -0.003; # strain at maximum stress
set fc2U [expr 0.1*$fc]; # ultimate stress
set eps2U -0.006; # strain at ultimate stress
# Concrete02 variables:
set lambda 0.1
;
# ratio between unloading slope at $epscu and initial slope
set ftC [expr -$fc1C/10.];
# tensile strength +tension
set ftU [expr -$fc1U/10.];
# tensile strength +tension
set Ets [expr $Ec/10.];
# tension softening stiffness
# reinforcing steel
set Fy [expr 68.*$ksi]; # STEEL yield stress
set Es [expr 29000.*$ksi]; # modulus of steel
set epsY [expr $Fy/$Es]; # steel yield strain
set Fu [expr 95.2*$ksi]; # ultimate stress of steel
set epsU 0.1; # ultimate strain of steel
set E2 [expr ($Fu-$Fy)/($epsU-$epsY)]; # post-yield tangent stiffness
set Bs [expr $E2/$Es]; # post-yield stiffness ratio of steel
# set up parameters for column section and element definition
set IDcore 1; # ID tag for core concrete
set IDcover 2; # ID tag for cover concrete
set IDsteel 3; # ID tag for steel
puts "All material variables have been defined"
uniaxialMaterial Concrete02 $IDcore $fc1C $eps1C $fc2C $eps2C $lambda $ftC $Ets; # CORE CONCRETE
uniaxialMaterial Concrete02 $IDcover $fc1U $eps1U $fc2U $eps2U $lambda $ftU $Ets; # COVER CONCRETE
uniaxialMaterial Steel01 $IDsteel $Fy $Es $Bs; # REINFORCING STEEL
puts "All materials have been defined"
puts "Being element cross-section definition"
# element cross-section
# Notes
# The center of the reinforcing bars are placed at the inner radius
# The core concrete ends at the inner radius (same as reinforcing bars)
# The reinforcing bars are all the same size
# The center of the section is at (0,0) in the local axis system
# Zero degrees is along section y-axis
set IDcolFlex 2; # ID tag for column section in flexure, before aggregating torsion
set riCol 0.0; # inner radius of column section
set roCol $Rcol; # outer radius of column section
set nfCoreR 8; # number of radial fibers in core (number of "rings")
set nfCoreT 16; # number of tangential fibers in core (number of "wedges")
set nfCoverR 2; # number of radial fibers in cover
set nfCoverT 16; # number of tangential fibers in cover
# cover - cover thickness, has been defined with the geometry
# IDcore - material tag for the core patch, has been defined with the materials
# IDcover - material tag for the cover patches, has been defined with the materials
Chapter 44
435
# IDsteel - material tag for the reinforcing steel, has been defined with the materials
# NbCol # number of column longitudinal-reinforcement bars, has been defined with the geometry
# AbCol # bar area of column longitudinal reinforcement, has been defined with the geometry
puts "All element-cross-section variables have been defined"
puts "Begin section definition"
section fiberSec $IDcolFlex {
set rc [expr $roCol-$cover]; # Core radius
patch circ $IDcore $nfCoreT $nfCoreR 0 0 $riCol $rc 0 360; # Define the core patch
patch circ $IDcover $nfCoverT $nfCoverR 0 0 $rc $roCol 0 360; # Define the cover patch
puts "All patches have been defined"
set theta [expr 360.0/$NbCol]; # Determine angle increment between bars
layer circ $IDsteel $NbCol $AbCol 0 0 $rc $theta 360; # Define the reinforcing layer
puts "All layers have been defined"
}
puts "End of element-cross-section definition"
puts "Begin Element Connectivity"
# element connectivity
set IDcolTors 10; # ID tag for column section in torsion
set IDcolSec 1; # ID tag for column section
uniaxialMaterial Elastic $IDcolTors $GJ; # Define torsional stiffness
section Aggregator $IDcolSec $IDcolTors T -section $IDcolFlex; # attach torsion to flexure and create a new section
IDtag
puts "All has been aggregated"
set IDcolTrans 1; # ID tag for column transformation, defining element normal
geomTransf Linear $IDcolTrans;
# Linear: no second-order effects
set np 5; # Number of integration points
element nonlinearBeamColumn 1 1 2 $np $IDcolSec $IDcolTrans
puts "End Element defintion"
puts "Begin Gravity loads"
# apply constant gravity load (and other constant loads)
set Pdl
[expr $Weight];
# gravity axial load per column
pattern Plain 1 Linear {
load 2 0.0 -$Pdl 0.0
}
puts "Gravity Load Pattern has been defined"
# set up solution procedure
system UmfPack;
# solution procedure, Super-LU, how it solves system of equations
constraints Plain;
# how it handles boundary conditions, enforce constraints through the
transformation
# set up convergence criteria
test NormDispIncr 1.0e-5 10
0;
# tolerance, max no. of iterations, and print code , 1: every iteration
algorithm Newton;
# use Newton's solution algorithm: updates tangent
stiffness at every iteration
numberer RCM;
# renumber dof's to minimize band-width
(optimization)
# set up load steppring
integrator LoadControl 0.1 1 0.1 0.1;
# variable load-stepping
# set up type of analysis, static for gravity
analysis Static
puts "Static Analysis for Gravity and Constant loads has been defined"
initialize
# RUN GRAVITY ANALYSIS
analyze 10
loadConst -time 0.0
puts "End of Gravity Analysis"
# print to screen that you are done with this step:
puts "Done with Structural Model Generation"
Chapter 44
436
Chapter 44
437
Based on the markers, the erroneous command is located within the section definition, between
the two puts commands.
puts "Begin section definition"
section fiberSec $IDcolFlex {
set rc [expr $roCol-$cover]; # Core radius
patch circ $IDcore $nfCoreT $nfCoreR 0 0 $riCol $rc 0 360; # Define the core patch
HELLO
patch circ $IDcover $nfCoverT $nfCoverR 0 0 $rc $roCol 0 360; # Define the cover patch
puts "All patches have been defined"
set theta [expr 360.0/$NbCol]; # Determine angle increment between bars
layer circ $IDsteel $NbCol $AbCol 0 0 $rc $theta 360; # Define the reinforcing layer
puts "All layers have been defined"
}
Chapter 44
438
The name $FileName0 will be appended to each filename so that the output be placed in the
data subdirectory.
The first recorder of interest on the cantilever column is a recorder to measure the horizontal and
vertical displacements of the column end, node 2, as well as the rotation. The node (page 326)
recorder is used:
set FileName1 Node2DxDyQz;
# it is very good practice to give the output file a descriptive name
set $FileName $FileName0$FileName1
recorder Node $FileName.out disp -node 2 -dof 1 2 3;
The next items of interest are the element forces and deformations, using the elemen (page
330)t recorder. For the nonlinearBeamColumn (page 216) element, you really only need the
forces at the element ends:
set FileName1 Fel1
set $FileName $FileName0$FileName1
recorder Element 1 -time -file $FileName.out localForce;
The element deformations at the cross-section level can be recorded at any integration point.
For this example, the deformation at the first integration point (the base of the column) will be
recorded:
set FileName1 Del1sec1
set $FileName $FileName0$FileName1
recorder Element -file $FileName.out -ele 1 section 1 deformations
Recorders can also be placed anywhere on a fiber section to measure fiber stresses and strains.
When more than one material may occupy the location specified (such as a steel bar at the edge
of the confined-concrete core), a preferred material can be specified. The location of the
recorder is specified using the local coordinate system. If no fiber is located at that coordinate, a
blank file will be output (very common error).
set FileName1 SSel1sec1
set $FileName $FileName0$FileName1
recorder Element -file $FileName.out -ele 1 section 1fiber $Rcol 0. $IDcore
stressStrain;
439
CHAPTER 45
Analysis Components
440
CHAPTER 46
In This Chapter
matTest.tcl................................................................ 456
RCcircSection.tcl ...................................................... 458
RCcircSectionFEDEAS.tcl........................................ 459
RCFrameDisplay.tcl ................................................. 461
MomentCurvature.tcl ................................................ 462
ReadSMDFile.tcl ...................................................... 463
RotSpring2D............................................................. 465
StFramePZLdisplay.tcl ............................................. 466
Wsection.tcl.............................................................. 467
RigidFrame3Ddisplay.tcl........................................... 468
Units&Constants.tcl .................................................. 469
MatlabOutput.tcl ....................................................... 469
genPlaneFrame.tcl ................................................... 470
matTest.tcl
A script for testing uniaxial materials with a single DOF truss.
Chapter 46
set dt 1.0
set filename pattern1.txt
sp 2 1 1.0
#}
# Record nodal displacements (same as strains since truss length is 1.0)
recorder Node truss.out disp -load -node 2 -dof 1
# Record truss force (same as stress since truss area is 1.0)
recorder Element 1 -time -file force.out force
system UmfPack
constraints Penalty 1.0e12 1.0e12
# Set increment in load factor used for integration
# Does not have to be the same as dt used to read in displacement pattern
set dl $dt
integrator LoadControl $dl 1 $dl $dl
test NormDispIncr 1.0e-6 10
algorithm Newton
numberer RCM
analysis Static
analyze 10000
441
Chapter 46
442
RCcircSection.tcl
# Define a procedure which generates a circular reinforced concrete section #
with one layer of steel evenly distributed around the perimeter and a confined
core.
# Formal arguments
#
#
# Notes
#
The center of the reinforcing bars are placed at the inner radius
The core concrete ends at the inner radius (same as reinforcing bars)
#
proc RCcircSection {id ri ro cover coreID coverID steelID numBars barArea nfCoreR nfCoreT nfCoverR nfCoverT} {
Chapter 46
443
RCcircSectionFEDEAS.tcl
# Define a procedure which generates a circular reinforced concrete section #
with one layer of steel evenly distributed around the perimeter and a confined
core.
# Writes section information in FEDEAS format to the TCL file stream fedeas
#
# Formal arguments
#
#
#
#
# Notes
Chapter 46
The center of the reinforcing bars are placed at the inner radius
The core concrete ends at the inner radius (same as reinforcing bars)
444
#
proc RCcircSectionFEDEAS {id ri ro cover coreID coverID steelID numBars barArea nfCoreR nfCoreT nfCoverR
nfCoverT fedeas} {
# fsection id
# Core radius
set rc [expr $ro-$cover]
# Define the core patch
patch circ $coreID $nfCoreT $nfCoreR 0 0 $ri $rc 0 360
puts $fedeas $coreID,2,$nfCoreR,$nfCoreT,1,1;
# matID,circular,nfRad,nfAng,propIJ,propJK
# R1,R2
# theta1,theta2
# NOT USED
Chapter 46
# Number of layers
# matID,circular,numBars,<barSize>,barArea
# RL
# theta1,theta2
RCFrameDisplay.tcl
# a window showing the displaced shape
recorder display DispShape 10 10 300 300 -wipe
# next three commmands define viewing system, all values in global coords
vrp 288.0 150.0 0
# point on the view plane in global coord, center of local viewing system
vup 0 1 0
vpn 0 0 1
# next three commands define view, all values in local coord system
prp 0 0 100
viewWindow -400 400 -400 400 # view bounds uMin, uMax, vMin, vMax in local coords
plane 0 150
projection 0
# projection mode
port -1 1 -1 1
fill 1
display 1 0 10
# fill mode
445
Chapter 46
446
MomentCurvature.tcl
# A procedure for performing section analysis (only does moment-curvature,
but can be easily modified to do any mode of section reponse.
# MHS
# October 2000
#
# Arguments
#
#
# Sets up a recorder which writes moment-curvature results to file
# section$secTag.out ... the moment is in column 1, and curvature in column 2
proc MomentCurvature {secTag axialLoad maxK {numIncr 100} } {
# Define two nodes at (0,0)
node 1 0.0 0.0
node 2 0.0 0.0
# Define element
#
# Create recorder
recorder Node section$secTag.out disp -time -node 2 -dof 3
Chapter 46
ReadSMDFile.tcl
A procedure which converts a PEER strong motion database
(http://peer.berkeley.edu/smcat/) file to OpenSees format
#
# -------READSDMFILE.TCL------------------------------------------------read gm input format
#
# Written: MHS
# Date: July 2000
#
447
Chapter 46
#
# Assumptions
#
# Open the input file and catch the error if it can't be read
if [catch {open $inFilename r} inFileID] {
puts stderr "Cannot open $inFilename for reading"
} else {
# Open output file for writing
set outFileID [open $outFilename w]
if {[llength $line] == 0} {
# Blank line --> do nothing
continue
} elseif {$flag == 1} {
448
Chapter 46
RotSpring2D
# Procedure which creates a rotational spring for a planar problem
# rotSpring2D.tcl
# SETS A MULTIPOINT CONSTRAINT ON THE TRANSLATIONAL DEGREES OF FREEDOM,
# SO DO NOT USE THIS PROCEDURE IF THERE ARE TRANSLATIONAL ZEROLENGTH
# ELEMENTS ALSO BEING USED BETWEEN THESE TWO NODES
#
# Written: MHS
# Date: Jan 2000
#
# Formal arguments
#
449
Chapter 46
equalDOF
$nodeR
$nodeC
StFramePZLdisplay.tcl
# a window to plot the nodal displacements versus load
if {$displayMode == "displayON"} {
recorder plot StFramePZL1.out Node4Xdisp 10 400 300 300 -columns 3 1
# a window showing the displaced shape
recorder display g3 10 10 300 300 -wipe
prp 288.0 150.0 100.0
vrp 288.0 150.0 0
vup 0 1 0
vpn 0 0 1
viewWindow -400 400 -400 400
plane 0 150
port -1 1 -1 1
projection 0
fill 1
display 2 0 10
}
Wsection.tcl
Procedure for creating a wide flange steel fiber section
# Wsection.tcl: tcl procedure for creating a wide flange steel fiber section
# written: Remo M. de Souza
# date: 06/99
# modified: 08/99 (according to the new general modelbuilder)
450
Chapter 46
# input parameters
# secID - section ID number
# matID - material ID number
# d = nominal depth
# tw = web thickness
# bf = flange width
# tf = flange thickness
# nfdw = number of fibers along web depth
# nftw = number of fibers along web thickness
# nfbf = number of fibers along flange width
# nftf = number of fibers along flange thickness
proc Wsection { secID matID d tw bf tf nfdw nftw nfbf nftf} {
set dw [expr $d - 2 * $tf]
set y1 [expr -$d/2]
set y2 [expr -$dw/2]
set y3 [expr $dw/2]
set y4 [expr $d/2]
set z1 [expr -$bf/2]
set z2 [expr -$tw/2]
set z3 [expr $tw/2]
set z4 [expr $bf/2]
#
section fiberSec $secID {
#
nfIJ nfJK
yI zI
yJ zJ
yK zK
yL zL
patch quadr $matID $nfbf $nftf $y1 $z4 $y1 $z1 $y2 $z1 $y2 $z4
patch quadr $matID $nftw $nfdw $y2 $z3 $y2 $z2 $y3 $z2 $y3 $z3
patch quadr $matID $nfbf $nftf $y3 $z4 $y3 $z1 $y4 $z1 $y4 $z4
}
}
RigidFrame3Ddisplay.tcl
# a window showing the displaced shape
set displayType "PLAN"
#set displayType "PERSPECTIVE"
451
Chapter 46
if {$displayType == "PERSPECTIVE"} {
prp -7500 -5000 50000
vrp 0 -500 250
vup 0 0 1
vpn 0 -1 0
viewWindow -200 400 -300 300
}
if {$displayType == "PLAN"} {
prp 0 0 1000
vrp 0 0 0
vup 0 -1 0
vpn 0 0 -1
viewWindow -200 200 -200 200
}
plane 0 1e12
port -1 1 -1 1
projection 1
fill 0
display 1 0 10
Units&Constants.tcl
Procedure to define units and constants
# ----Units&Constants.tcl--------------------------------------------------------set in 1.;
452
Chapter 46
# define constants
1.e10;
set u
[expr 1/$U];
MatlabOutput.tcl
# script to generate .m file to be read by matlab
# -------------MatlabOutput.tcl------------------------------------------------------------------# this parameter would be passed in
set Xframe 1;
set fDir "Data/";
file mkdir $fDir;
# create directory
set outFileID [open $fDir/DataFrame$Xframe.m w]; # Open output file for writing
puts $outFileID "Xframe($Xframe) = $Xframe;";
# frame ID
# column diameter
# column length
# beam length
puts $outFileID
"Hbeam($Xframe) = $Hbeam;";
# beam depth
puts $outFileID
"Bbeam($Xframe) = $Bbeam;";
# beam width
# superstructure weight
close $outFileID
genPlaneFrame.tcl
# Define a procedure which will generate nodes and elements for a plane
frame having absolute column line locations in the list
#'columnLine', absolute girder line locations in the list 'girderLine',
# section IDs for the columns and girders, 'columnID' and 'girderID', and
# 'nIntPt' integration points along every member.
#
# Notes: automatically fixes the base nodes
#
453
Chapter 46
454
#
# Formal arguments
#
The actual argument would be defined as so, set columns {0 120 240 360}
The actual argument would be defined as so, set girders {180 300 420}
columnID - an integer representing the section ID (tag) for the columns in the frame
girderID - an integer representing the section ID (tag) for the girders in the frame
nIntPt - an integer representing the number of integration points along each member in the frame
# Useful variables
set numCol [llength $columnLine]
set numGir [llength $girderLine]
set e 1; # Element number counter
# For each column line
for {set i 1} {$i <= $numCol} {incr i 1} {
Chapter 46
}; #end proc
455
456
CHAPTER 47
References
API(1993). Recommended Practice for Planning, Design, and Constructing Fixed Offshore
Platforms. API RP 2A - WSD, 20th ed., American Petroleum Institute.
Boulanger, R. W. (2003). The PySimple1 Material. http://opensees.berkeley.edu
(http://opensees.berkeley.edu/).
Cook, R. D., D. S. Malkus, M. E. Plesha. "Concepts and Applications of Finite Element
Analysis." John Wiley & Sons, 1989.
Crisfield, M. A. "Non-linear Finite Element Analysis of Solids and Structures." John Wiley &
Sons, vol. 1, 1991
Elgamal, A., Lai, T., Yang, Z. and He, L. (2001). "Dynamic Soil Properties, Seismic Downhole
Arrays and Applications in Practice," State-of-the-art paper, Proc., 4th Intl. Conf. on Recent
Advances in Geote. E.Q. Engrg. Soil Dyn. March 26-31, San Diego, CA, S. Prakash (Ed.).
Elgamal, A., Yang, Z. and Parra, E. (2002). "Computational Modeling of Cyclic Mobility and
Post-Liquefaction Site Response," Soil Dyn. Earthquake Engrg., 22(4), 259-271.
Elgamal, A., Yang, Z., Parra, E. and Ragheb, A. (2003). "Modeling of Cyclic Mobility in Saturated
Cohesionless Soils," Int. J. Plasticity, 19(6), 883-905.
Georgiadis, M. (1983). Development of p-y curves for layered soils. Proc., Geotechnical
Practice in Offshore Engineering, ASCE, pp. 536-545.
Lowes, Laura N.; Mitra, Nilanjan; Altoontash, Arash A beam-column joint model for simulating
the earthquake response of reinforced concrete frames PEER-2003/10
(http://nisee.berkeley.edu/elibrary/getdoc?id=1288878) Pacific Earthquake Engineering
Research Center, University of California, Berkeley 2003 59 pages (400/P33/2003-10)
Matlock, H. (1970). "Correlations of design of laterally loaded piles in soft clay."Proc. Offshore
Technology Conference, Houston, TX, Vol 1, No.1204, pp. 577-594.
McKenna, F. and Fenves, G. (2001). "The OpenSees Command Language Manual: version
1.2," Pacific Earthquake Engineering Center, Univ. of Calif., Berkeley.
(http://opensees.berkeley.edu (http://opensees.berkeley.edu/)).
Mosher, R. L., (1984) "Load Transfer Criteria for Numerical Analysis of Axially Loaded Piles in
Sand," US Army Engineering Waterways Experimental Station, Automatic Data Processing
Center, Vicksburg, Mississippi, January.
Chapter 47
References
457
Parra, E. (1996). "Numerical Modeling of Liquefaction and Lateral Ground Deformation Including
Cyclic Mobility and Dilation Response in Soil Systems," Ph.D. Thesis, Dept. of Civil Engineering,
Rensselaer Polytechnic Institute, Troy, NY.
Reese, L.C., and O'Neill, M. W., (1987) "Drilled Shafts: Construction Procedures and Design
Methods," Report No. FHWA-HI-88-042, U.S. Department of Transportation, Federal Highway
Administration, Office of Implementation, McLean, Virginia.
Vijayvergiya, V.N. (1977) "Load-Movement Characteristics of Piles," Proceedings, Ports 77
Conference, American Society of Civil Engineers, Long Beach, CA, March.
Yang, Z. (2000). "Numerical Modeling of Earthquake Site Response Including Dilation and
Liquefaction," Ph.D. Thesis, Dept. of Civil Engineering and Engineering Mechanics, Columbia
University, NY, New York.
Yang, Z. and Elgamal, A. (2002). "Influence of Permeability on Liquefaction-Induced Shear
Deformation," J. Engrg. Mech., ASCE, 128(7), 720-729.
Yang, Z., Elgamal, A. and Parra, E. (2003). "A Computational Model for Liquefaction and
Associated Shear Deformation," J. Geotechnical and Geoenvironmental Engineering, ASCE,
December (in press).
Chapter 47
References
458
BeamWithHinges Element:
Scott, M.H. and G.L. Fenves. "Plastic Hinge Integration Methods for Force-Based Beam-Column
Elements", Journal of Structural Engineering, ASCE, 132(2):244-252, February 2006.
ReinforcingSteel Material:
Chang, G. and Mander, J. (1994). Seismic Energy Based Fatigue Damage Analysis of Bridge
Columns: Part I Evaluation of Seismic Capacity. NCEER Technical Report 94-0006.
Dodd, L. and Restrepo-Posada, J. (1995). Model for Predicting Cyclic Behavior of Reinforcing
Steel J. Struct. Eng., 121(3), 433-445.
Gomes, A., and Appleton, J. (1997). Nonlinear Cyclic Stress-Strain Relationship of Reinforcing
Bars Including Buckling. Eng. Struct., 19(10), 822826.
Brown, J. and Kunnath, S.K. (2000). Low Cycle Fatigue Behavior of Longitudinal Reinforcement
in Reinforced Concrete Bridge Columns. NCEER Technical Report 00-0007.
Chapter 47
References
459
Concrete04 Element:
Mander, J. B., Priestley, M. J. N., and Park, R. (1988). "Theoretical stress-strain model for
confined concrete." Journal of Structural Engineering ASCE, 114(8), 1804-1825.
Popovics, S. (1973). " A numerical approach to the complete stress strain curve for concrete."
Cement and concrete research, 3(5), 583-599.
Karsan, I. D., and Jirsa, J. O. (1969). "Behavior of concrete under compressive loading." Journal
of Structural Division ASCE, 95(ST12).
Useful Resources:
National Information Service for Earthquake Engineering -- NISEE. The Earthquake Engineering
Online Archive (http://nisee.berkeley.edu/elibrary/) (full text reports, images and data).
http://nisee.berkeley.edu/elibrary/
National Information Service for Earthquake Engineering -- NISEE. Earthquake Engineering
Abstracts Database (http://nisee.berkeley.edu/eea.html): http://nisee.berkeley.edu/eea.html
American Society of Civil Engineer -- ASCE. Online Journals Program
(http://www.pubs.asce.org/journals/jrns.html). http://www.pubs.asce.org/journals/jrns.html
461
Index
Arc-Length Control 27, 345, 347, 412
Axial Limit Curve 75
-- Contributed Uniaxial Materials 44
.
...Build Model and Define Nodes 34, 35,
36, 37, 39, 375
...Build Model and Define Nodes using
Variables 376
...Combine Input-File Components 384
...Define Analysis-Output Generation 379
...Define Data-Plot During Analysis 380
...Define Dynamic Ground-Motion Analysis
383
...Define Elements 378
...Define Gravity Loads 380
...Define Materials 377
...Define Static Pushover Analysis 381
...Define Tcl Procedure 370
...Define Units & Constants 369
...Define Variables and Parameters 373
...Determine Natural Period & Frequency
388
...Generate Matlab Commands 370
...Read External files 372
...Run Dynamic Ground-Motion Analysis
384
...Run Gravity Analysis 381
...Run Moment-Curvature Analysis on
Section 387
...Run Parameter Study 385
...Run Static Pushover Analysis 382
A
Additional Tcl Resources 17
algorithm Command 24, 28, 324, 337, 340,
352, 353, 361, 411
analysis Command 24, 29, 324, 346, 347,
351, 356, 361, 409, 412
Analysis Components 440
Analysis Object 31
Analysis Objects 30, 324, 351, 412
analyze Command 356, 409, 412
B
BandGeneral SOE 27, 335
BandSPD SOE 27, 335
BARSLIP Material 25, 44
Basic Model Builder 12, 34, 35, 36, 37,
184, 186, 187, 189, 191, 316, 317, 322,
376, 400
Bbar Brick Element 26, 170, 221, 288
Bbar Plane Strain Quadrilateral Element
26, 170, 218, 286
Beam With Hinges Element 26, 208, 209,
319, 321
Beam-Column Joint Element Discussion
233
BeamColumnJoint Element 26, 228
BFGS Algorithm 28, 342
Bidirectional Section 26, 196
block Command 23, 29, 34, 285
block2D Command 285, 286
block3D Command 285, 288
Bond_SP01 - - Strain Penetration Model for
Fully Anchored Steel Reinforcing Bars
25, 46
Brick Elements 219
BrickUP 280
Broyden Algorithm 28, 343
build Command 35
Building The Model 373
C
CenterCol_basicModel.tcl 78
CenterColAxialSpring.tcl 82
CenterColSecFiber.tcl 80
CenterColShearSpring.tcl 80
Circular Layer Command 182, 190, 426
Circular Patch Command 187, 426
Concrete01 -- Material Behavior 141
Concrete01 Material -- Zero Tensile
Strength 25, 137, 425
Concrete02 -- Material Behavior 148
462
Index
E
eigen Command 24, 355, 388
Eight Node Brick Element 26, 220, 222
Elastic Beam Column Element 26, 207,
309, 319, 321, 403
Elastic Isotropic Material 25, 170, 172
Elastic Material 25, 127, 427
Elastic Membrane Plate Section 26, 195
Elastic Section 26, 180
Elastic-No Tension Material 25, 131
Elastic-Perfectly Plastic Gap Material 25,
130
Elastic-Perfectly Plastic Material 25, 128
eleLoad Command 306, 309
element Command 23, 29, 34, 205, 319,
321, 361, 425
Element Cross Section 426
G
genPlaneFrame.tcl 454
Geometric Transformation Command 23,
29, 34, 207, 208, 212, 213, 292, 427
getTime Command 361
Getting Going with OpenSees (under
development) 419
Getting Started with OpenSees 390
Gravity and other Constant Loads 428
Gravity Loads 380, 409
groundMotion Command 300, 301, 311,
312, 313
H
Hardening Material 25, 136
Index
I
imposedMotion Command 311, 313, 328
integrator Command 24, 27, 312, 344,
352, 353, 408, 411
Interpolated GroundMotion 313
Introduction 11, 392
Introduction to the Tcl command language
14
Isolator2spring Section
Model to include buckling behavior of an
elastomeric bearing 26, 197
463
OpenSees 19
OpenSees Features 21
OpenSees Interpreter 18, 360
J
J2 Plasticity Material 25, 171
K
Krylov-Newton Algorithm 28, 342
P
Parallel Material 25, 133
Path Time Series 304
pattern Command 24, 29, 34, 300, 301,
302, 303, 304, 306, 361, 410
P-Delta Transformation 298
464
Index
Q
Quad Element 26, 170, 216, 286
Quadrilateral Elements 216
Quadrilateral Patch Command 182, 185,
426
QzSimple1 Material 107
R
RandomStrainHistory1.tcl 67
RandomStrainHistory2.tcl 70
rayleigh command 24, 354, 417
RCcircSection.tcl 443
RCcircSectionFEDEAS.tcl 444
RCFrameDisplay.tcl 446
RCM Numberer 27, 332, 333, 352, 353
RCyclicPinch.tcl 90, 91, 93, 97
ReadSMDFile.tcl 448
Recorder Object 30, 31
S
save Command 358
Script Utilities Library 441
Section Aggregator 26, 192
section Command 23, 29, 34, 179, 192,
205, 206, 208, 209, 211, 213, 215, 217,
320, 321, 425, 426
Series Material 25, 134
Shear Limit Curve 74, 76
Shell Element 26, 170, 217, 286
Sine Time Series 303
Single-Point Constraints 38, 328
Soil Models and Solid-Fluid Fully Coupled
Elements 254
sp Command 306, 308, 328
SparseGeneral SOE 27, 335
SparseSPD SOE 27, 336
Standard Brick Element 26, 170, 219, 288
Static Analysis 29, 31, 324, 345, 351, 381,
409
Steel01 -- Material Behavior 160
Steel01 Material 25, 153, 425
Steel02 -- Material Behavior 166
Steel02 Material -- Giuffr-Menegotto-Pinto
Model with Isotropic Strain Hardening
25, 161
StFramePZLdisplay.tcl 451
Straight Layer Command 182, 189, 426
Summary of Defining Structural Model 428
Summary of Gravity Loads 412
Summary of Model-Building Input File 404
system Command 24, 27, 334, 337, 338,
339, 352, 353, 361, 411
Index
T
Tags.tcl 83
Tcl Commands Format 15, 18
Template Elasto-Plastic Material 25, 172
test Command 24, 28, 337, 411
Time Series 24, 29, 34, 300, 301, 302,
303, 304, 306, 310, 312, 417
Transformation Method 28, 328, 331
Transient Analysis 29, 31, 324, 345, 351,
352, 356, 409
Truss Element 25, 205
Twenty Node Brick Element 26, 224
Twenty_Eight_Node_BrickUP 282
TzLiq1 Material 109
TzSimple1 Material 106
TzSimple1Gen Command 112
U
UmfPack SOE 27, 336
Uniaxial Section 26, 181
uniaxialMaterial Command 23, 24, 29, 34,
43, 133, 134, 181, 182, 184, 185, 187,
189, 190, 192, 205, 206, 213, 214, 361,
425, 426
UniformExcitation Pattern 310, 316, 417
Units&Constants.tcl 372, 453
updateMaterialStage 178, 273
updateParameter 274
u-p-U element 26, 226
V
Variables and Units 421
VariableTransient Analysis 29, 31, 324,
351, 353, 356, 409
video Command 362, 363
Viscous Material 25, 169
W
wipe Command 360, 433
wipeAnalysis Command 360
Wsection.tcl 451
Y
Yield Surface 172, 173
Z
Zero-Length Element 26, 213
Zero-Length Elements 213
Zero-Length ND Element 26, 214
465