Nonlinear Modeling of RC Structures Using Opensees: University of Naples Federico Ii
Nonlinear Modeling of RC Structures Using Opensees: University of Naples Federico Ii
Lecture 2
Linear modeling
part 1 - theory
▪ model
▪ node
▪ mass
▪ SP_constraint
▪ MP_constraint
▪ uniaxialMaterial
▪ section
▪ element
▪ timeSeries
▪ pattern
▪ … and others
Tcl language
To run a structural analysis in OpenSees, different types of objects shall be constructed by means of appropriate commands.
An aggregation of different types of objects constitutes a domain.
▪ model ▪ constraints
▪ node ▪ numberer
▪ mass ▪ system
▪ SP_constraint ▪ test
▪ MP_constraint ▪ algorithm
▪ uniaxialMaterial ▪ integrator
▪ section ▪ analysis
▪ element ▪ eigen
▪ timeSeries ▪ analyze
▪ pattern ▪ … and others
▪ … and others
Tcl language
To run a structural analysis in OpenSees, different types of objects shall be constructed by means of appropriate commands.
An aggregation of different types of objects constitutes a domain.
example:
uniaxialMaterial Elastic 1 25000 elastic material 1 with stiffness equal to 25000
MODELING COMMANDS
example:
uniaxialMaterial ElasticPP 1 25000 0.008 elastic-plastic material 1 with stiffness equal to 25000 and yielding at generalized deformation equal to 0.008
MODELING COMMANDS
This command is used to construct a uniaxial Kent-Scott-Park concrete material object with no tensile strength.
This command is used to construct a uniaxial Kent-Scott-Park concrete material object with no tensile strength.
This command is used to construct a uniaxial Kent-Scott-Park concrete material object with no tensile strength.
•Compressive parameters should be input as negative values (if input as positive, they will be converted to negative internally).
•The initial slope for this model is (2*$fpc/$epsc0)
MODELING COMMANDS
This command is used to construct a uniaxial Kent-Scott-Park concrete material object with no tensile strength.
•Compressive parameters should be input as negative values (if input as positive, they will be converted to negative internally).
•The initial slope for this model is (2*$fpc/$epsc0)
example:
uniaxialMaterial Concrete01 1 -200 -0.016 0 -0.032 no-tension material 1 with strength equal to 200, strain at maximum equal to 0.016, no
residual force at strain equal to 0.032
Sections and elements
Global and local axes
Global and local axes
MODELING COMMANDS
geomTransf Linear $transfTag $vecxzX $vecxzY $vecxzZ <-jntOffset $dXi $dYi $dZi $dXj $dYj $dZj>
$transfTag integer tag identifying transformation
X, Y, and Z components of vecxz, the vector used to define the local x-z plane of the local-coordinate system. The local y-axis is defined by taking the
cross product of the vecxz vector and the x-axis.
$vecxzX $vecxzY $vecxzZ These components are specified in the global-coordinate system X,Y,Z and define a vector that is in a plane parallel to the x-z plane of the local-
coordinate system.
These items need to be specified for the three-dimensional problem.
joint offset values -- offsets specified with respect to the global coordinate system for element-end node i (the number of arguments depends on the
$dXi $dYi $dZi
dimensions of the current model). The offset vector is oriented from node i to node j as shown in a figure below. (optional)
joint offset values -- offsets specified with respect to the global coordinate system for element-end node j (the number of arguments depends on the
$dXj $dYj $dZj
dimensions of the current model). The offset vector is oriented from node j to node i as shown in a figure below. (optional)
MODELING COMMANDS
geomTransf Linear $transfTag $vecxzX $vecxzY $vecxzZ <-jntOffset $dXi $dYi $dZi $dXj $dYj $dZj>
$transfTag integer tag identifying transformation
X, Y, and Z components of vecxz, the vector used to define the local x-z plane of the local-coordinate system. The local y-axis is defined by taking the
cross product of the vecxz vector and the x-axis.
$vecxzX $vecxzY $vecxzZ These components are specified in the global-coordinate system X,Y,Z and define a vector that is in a plane parallel to the x-z plane of the local-
coordinate system.
These items need to be specified for the three-dimensional problem.
example:
MODELING COMMANDS
geomTransf Linear $transfTag $vecxzX $vecxzY $vecxzZ <-jntOffset $dXi $dYi $dZi $dXj $dYj $dZj>
$transfTag integer tag identifying transformation
X, Y, and Z components of vecxz, the vector used to define the local x-z plane of the local-coordinate system. The local y-axis is defined by taking the
cross product of the vecxz vector and the x-axis.
$vecxzX $vecxzY $vecxzZ These components are specified in the global-coordinate system X,Y,Z and define a vector that is in a plane parallel to the x-z plane of the local-
coordinate system.
These items need to be specified for the three-dimensional problem.
example:
MODELING COMMANDS
geomTransf Linear $transfTag $vecxzX $vecxzY $vecxzZ <-jntOffset $dXi $dYi $dZi $dXj $dYj $dZj>
$transfTag integer tag identifying transformation
X, Y, and Z components of vecxz, the vector used to define the local x-z plane of the local-coordinate system. The local y-axis is defined by taking the
cross product of the vecxz vector and the x-axis.
$vecxzX $vecxzY $vecxzZ These components are specified in the global-coordinate system X,Y,Z and define a vector that is in a plane parallel to the x-z plane of the local-
coordinate system.
These items need to be specified for the three-dimensional problem.
example:
geomTransf Linear 1 0 0 -1
MODELING COMMANDS
geomTransf Linear $transfTag $vecxzX $vecxzY $vecxzZ <-jntOffset $dXi $dYi $dZi $dXj $dYj $dZj>
$transfTag integer tag identifying transformation
X, Y, and Z components of vecxz, the vector used to define the local x-z plane of the local-coordinate system. The local y-axis is defined by taking the
cross product of the vecxz vector and the x-axis.
$vecxzX $vecxzY $vecxzZ These components are specified in the global-coordinate system X,Y,Z and define a vector that is in a plane parallel to the x-z plane of the local-
coordinate system.
These items need to be specified for the three-dimensional problem.
example:
geomTransf Linear 1 0 0 -1
MODELING COMMANDS
geomTransf Linear $transfTag $vecxzX $vecxzY $vecxzZ <-jntOffset $dXi $dYi $dZi $dXj $dYj $dZj>
$transfTag integer tag identifying transformation
X, Y, and Z components of vecxz, the vector used to define the local x-z plane of the local-coordinate system. The local y-axis is defined by taking the
cross product of the vecxz vector and the x-axis.
$vecxzX $vecxzY $vecxzZ These components are specified in the global-coordinate system X,Y,Z and define a vector that is in a plane parallel to the x-z plane of the local-
coordinate system.
These items need to be specified for the three-dimensional problem.
example:
geomTransf Linear 2 0 1 0
MODELING COMMANDS
geomTransf Linear $transfTag $vecxzX $vecxzY $vecxzZ <-jntOffset $dXi $dYi $dZi $dXj $dYj $dZj>
joint offset values -- offsets specified with respect to the global coordinate system for element-end node i (the number of arguments depends on the
$dXi $dYi $dZi
dimensions of the current model). The offset vector is oriented from node i to node j as shown in a figure below. (optional)
joint offset values -- offsets specified with respect to the global coordinate system for element-end node j (the number of arguments depends on the
$dXj $dYj $dZj
dimensions of the current model). The offset vector is oriented from node j to node i as shown in a figure below. (optional)
example:
This command allows the user to construct an ElasticSection. The inclusion of shear deformations is optional.
example:
section Elastic 1 90000 30000 6.75e8 6.75e8 12000 1.00e12
MODELING COMMANDS
example:
section Elastic 1 90000 30000 6.75e8 6.75e8 12000 1.00e12
uniaxialMaterial ElasticPP 1 25000 0.008
uniaxialMaterial ElasticPP 2 20000 0.012
MODELING COMMANDS
example:
section Elastic 1 90000 30000 6.75e8 6.75e8 12000 1.00e12
uniaxialMaterial ElasticPP 1 25000 0.008
Section 2 is defined by elastic section 1, but it is associated with an elastic-plastic
uniaxialMaterial ElasticPP 2 20000 0.012 behavior around y local axis defined by material 1 and with an elastic-plastic behaviour
section Aggregator 2 1 My 2 Mz -section 1 around z local axis defined by material 2.
MODELING COMMANDS
element elasticBeamColumn $eleTag $iNode $jNode $A $E $G $J $Iy $Iz $transfTag <-mass $massDens> <-cMass>
$eleTag unique element object tag
$iNode $jNode end nodes
$A cross-sectional area of element
$E Young's Modulus
$G Shear Modulus
$J torsional moment of inertia of cross section
$Iz second moment of area about the local z-axis
$Iy second moment of area about the local y-axis
$transfTag identifier for previously-defined coordinate-transformation (CrdTransf) object
$massDens element mass per unit length (optional, default = 0.0)
-cMass to form consistent mass matrix (optional, default = lumped mass matrix)
example:
element elasticBeamColumn 1 1 2 90000 30000 12000 1.00e12 6.75e8 6.75e8 1
MODELING COMMANDS
element elasticBeamColumn $eleTag $iNode $jNode $A $E $G $J $Iy $Iz $transfTag <-mass $massDens> <-cMass>
$eleTag unique element object tag
$iNode $jNode end nodes
$A cross-sectional area of element
$E Young's Modulus
$G Shear Modulus
$J torsional moment of inertia of cross section
$Iz second moment of area about the local z-axis
$Iy second moment of area about the local y-axis
$transfTag identifier for previously-defined coordinate-transformation (CrdTransf) object
$massDens element mass per unit length (optional, default = 0.0)
-cMass to form consistent mass matrix (optional, default = lumped mass matrix)
example:
element elasticBeamColumn 1 1 2 90000 30000 12000 1.00e12 6.75e8 6.75e8 1
This command is used to construct a truss element object with a UniaxialMaterial identifier:
element truss $eleTag $iNode $jNode $A $matTag <-rho $rho> <-cMass $cFlag> <-doRayleigh $rFlag>
$eleTag unique element object tag
$iNode $jNode end nodes
$A cross-sectional area of element
$matTag tag associated with previously-defined UniaxialMaterial
$rho mass per unit length, optional, default = 0.0
$cFlag consistent mass flag, optional, default = 0
cFlag = 0 lumped mass matrix (default)
cFlag = 1 consistent mass matrix
$rFlag Rayleigh damping flag, optional, default = 0
rFlag = 0 NO RAYLEIGH DAMPING (default)
rFlag = 1 include Rayleigh damping
example:
element truss 1 1 2 100 1 truss element 1 between nodes 1 and 2 with Area 100 and UniaxialMaterial 1
MODELING COMMANDS
This command is used to construct a truss element object with a Section identifier:
element trussSection $eleTag $iNode $jNode $secTag <-rho $rho> <-cMass $cFlag> <-doRayleigh $rFlag>
$eleTag unique element object tag
$iNode $jNode end nodes
$secTag tag associated with previously-defined Section
$rho mass per unit length, optional, default = 0.0
$cFlag consistent mass flag, optional, default = 0
cFlag = 0 lumped mass matrix (default)
cFlag = 1 consistent mass matrix
$rFlag Rayleigh damping flag, optional, default = 0
rFlag = 0 NO RAYLEIGH DAMPING (default)
rFlag = 1 include Rayleigh damping
example:
element trussSection 1 1 2 1 truss element 1 between nodes 1 and 2 with section 1
Loads
Pattern and TimeSeries
In OpenSees, loads are always applied by means of two commands. In fact, OpenSees assumes that “loads” are always defined by
two parts/objects:
Pattern and TimeSeries
In OpenSees, loads are always applied by means of two commands. In fact, OpenSees assumes that “loads” are always defined by
two parts/objects:
Example: How to impose a linear lateral load distribution with maximum force at the top equal to 5000?
Pattern and TimeSeries
In OpenSees, loads are always applied by means of two commands. In fact, OpenSees assumes that “loads” are always defined by
two parts/objects:
Example: How to impose a linear lateral load distribution with maximum force at the top equal to 5000?
1.00 node 4
0.75 node 3
0.50 node 2
0.25 node 1
Example: How to impose a linear lateral load distribution with maximum force at the top equal to 5000?
1.00 node 4
0.75 node 3
Example: How to impose a linear lateral load distribution with maximum force at the top equal to 5000?
1. Define a linear pattern with load equal to OpenSees will apply this load up to a
0.25 applied to node 1, a load equal to 0.50 maximum value of the multiplier set
to node 2 etc. by the user (e.g., 5000) with a certain
number of steps set by the user (1 or
more than 1)
Pattern and TimeSeries
In OpenSees, loads are always applied by means of two commands. In fact, OpenSees assumes that “loads” are always defined by
two parts/objects:
Example: How to impose a linear lateral load distribution with maximum force at the top equal to 5000?
5000 0 node 4
node 2
If a Linear TimeSeries is used, each value of the load pattern multiplier is named PSEUDOTIME
node 1
Example: How to impose a linear lateral load distribution with maximum force at the top equal to 5000?
5000 0 node 4
node 2
If a Linear TimeSeries is used, each value of the load pattern multiplier is named PSEUDOTIME
node 1
OpenSees will apply this load up to a The Plain Pattern object and the Linear TimeSeries object are usually used to
maximum value of the multiplier set perform the (force-controlled) gravity load analysis and the (displacement-
by the user (e.g., 5000) with a certain
number of steps set by the user (1 or controlled) pushover analysis
more than 1)
MODELING COMMANDS
This command is used to construct a TimeSeries object in which the load factor applied is linearly proportional to the time in
the domain.
example:
timeSeries Linear 1
MODELING COMMANDS
eleLoad -ele $eleTag1 <$eleTag2 ....> -type -beamUniform $Wy $Wz <$Wx>
$eleTag1 $eleTag2 ... tag of PREVIOUSLY DEFINED element
$Wy $Wz $Wx magnitude of uniformly distributed reference load acting in direction along member length (Wx) and along y and z local axes (Wy and Wz)
MODELING COMMANDS
example:
MODELING COMMANDS
example:
pattern Plain 1 1 {
eleLoad -ele 2 -type -beamUniform 0.0 -5.0 0.0
}
Pattern and TimeSeries
In OpenSees, loads are always applied by means of two commands. In fact, OpenSees assumes that “loads” are always defined by
two parts/objects:
1.00 1.00
If a Path TimeSeries is used, each absolute time in the time-history is named PSEUDOTIME
0.05 0.05
If a Path TimeSeries is used, each absolute time in the time-history is named PSEUDOTIME
0.05 0.05
This command is used to construct a Path TimeSeries object. The relationship between load factor and time is input by the user
as a series of discrete points in the 2d space (load factor, time). The input points can come from a file or from a list in the script.
This command is used to construct a Path TimeSeries object. The relationship between load factor and time is input by the user
as a series of discrete points in the 2d space (load factor, time). The input points can come from a file or from a list in the script.
This command is used to construct a Path TimeSeries object. The relationship between load factor and time is input by the user
as a series of discrete points in the 2d space (load factor, time). The input points can come from a file or from a list in the script.
example:
set path1 GMdirectory/record1.txt
timeSeries Path 1 -dt 0.005 -filePath $path1
MODELING COMMANDS
This command is used to construct a Path TimeSeries object. The relationship between load factor and time is input by the user
as a series of discrete points in the 2d space (load factor, time). The input points can come from a file or from a list in the script.
example:
set path1 GMdirectory/record1.txt
timeSeries Path 1 -dt 0.005 -filePath $path1
set acc1 GMdirectory/acceleration1.txt
set time1 GMdirectory/time1.txt
timeSeries Path 1 -fileTime $time1 -filePath $acc1
MODELING COMMANDS
pattern UniformExcitation $patternTag $dir -accel $tsTag <-vel0 $vel0> <-fact $cFactor>
$patternTag unique tag among load patterns
$dir direction in which ground motion acts
1 - corresponds to translation along the global X axis
2 - corresponds to translation along the global Y axis
3 - corresponds to translation along the global Z axis
4 - corresponds to rotation about the global X axis
5 - corresponds to rotation about the global Y axis
6 - corresponds to rotation about the global Z axis
$tsTag tag of the TimeSeries series defining the acceleration history.
$vel0 the initial velocity (optional, default=0.0)
$cFactor constant factor (optional, default=1.0)
MODELING COMMANDS
pattern UniformExcitation $patternTag $dir -accel $tsTag <-vel0 $vel0> <-fact $cFactor>
$patternTag unique tag among load patterns
$dir direction in which ground motion acts
1 - corresponds to translation along the global X axis
2 - corresponds to translation along the global Y axis
3 - corresponds to translation along the global Z axis
4 - corresponds to rotation about the global X axis
5 - corresponds to rotation about the global Y axis
6 - corresponds to rotation about the global Z axis
$tsTag tag of the TimeSeries series defining the acceleration history.
$vel0 the initial velocity (optional, default=0.0)
$cFactor constant factor (optional, default=1.0)
example:
1.00 1.00
X
MODELING COMMANDS
pattern UniformExcitation $patternTag $dir -accel $tsTag <-vel0 $vel0> <-fact $cFactor>
$patternTag unique tag among load patterns
$dir direction in which ground motion acts
1 - corresponds to translation along the global X axis
2 - corresponds to translation along the global Y axis
3 - corresponds to translation along the global Z axis
4 - corresponds to rotation about the global X axis
5 - corresponds to rotation about the global Y axis
6 - corresponds to rotation about the global Z axis
$tsTag tag of the TimeSeries series defining the acceleration history.
$vel0 the initial velocity (optional, default=0.0)
$cFactor constant factor (optional, default=1.0)
example:
set path1 GMdirectory/record1.txt
timeSeries Path 1 -dt 0.005 -filePath $path1 1.00 1.00
X
pattern UniformExcitation 1 1 -accel 1