Professional Documents
Culture Documents
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 4
Analysis and output
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: 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
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)
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
Analysis commands
ANALYSIS COMMANDS
Constraints command
This command is used to construct a transformation constraint handler, which enforces the constraints using the transformation
method.
constraints Transformation
Plain
Transformation
Penalty
Lagrange
ANALYSIS COMMANDS
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-of-freedom are numbered. An AMD (Alternative Minimum Degree)
numberer uses the approximate minimum degree scheme to order the matrix equations.
numberer AMD
Plain
RCM
AMD
ANALYSIS COMMANDS
System command
This command is used to construct the LinearSOE and LinearSolver objects to store and solve the system of equations in the
analysis.
system ProfileSPD
BandGeneral
BandSPD
SuperLU
UmfPack
FullGeneral
SparseSYM
Mumps
Cusp
ANALYSIS COMMANDS
System command
This command is used to construct the LinearSOE and LinearSolver objects to store and solve the system of equations in the
analysis.
system ProfileSPD
BandGeneral
BandSPD
SuperLU
UmfPack
FullGeneral
SparseSYM
Mumps
Cusp
ANALYSIS COMMANDS
example:
test NormUnbalance 10e-4 100
ANALYSIS COMMANDS
example:
test NormDispIncr 10e-4 100
ANALYSIS COMMANDS
example:
test EnergyIncr 10e-2 100
ANALYSIS COMMANDS
Algorithm command
This command is used to construct a SolutionAlgorithm object, which determines the sequence of steps taken to solve the non-
linear equation.
Algorithm command
This command is used to construct a SolutionAlgorithm object, which determines the sequence of steps taken to solve the non-
linear equation.
algorithm Newton
algorithm NewtonLineSearch -type InitialInterpolated
algorithm NewtonLineSearch -type Bisection
algorithm NewtonLineSearch -type Secant
algorithm NewtonLineSearch -type RegulaFalsi IMPLICIT ALGORITHMS: feasible for nonlinear analysis
algorithm KrylovNewton
algorithm SecantNewton
algorithm BFGS
algorithm Broyden
ANALYSIS COMMANDS
Algorithm command
This command is used to construct a SolutionAlgorithm object, which determines the sequence of steps taken to solve the non-
linear equation.
algorithm Newton
algorithm NewtonLineSearch -type InitialInterpolated
algorithm NewtonLineSearch -type Bisection
algorithm NewtonLineSearch -type Secant
algorithm NewtonLineSearch -type RegulaFalsi IMPLICIT ALGORITHMS: feasible for nonlinear analysis
algorithm KrylovNewton
algorithm SecantNewton
algorithm BFGS
algorithm Broyden
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.
example:
integrator LoadControl 0.10 applies the target load multiplier in 1/0.10=10 steps
ANALYSIS COMMANDS
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.
integrator DisplacementControl $node $dof $incr <$numIter $ΔUmin $ΔUmax> pushover analysis
example:
integrator DisplacementControl 10 1 1 applies the target displacement of node 10 in X global direction with steps equal to 1
ANALYSIS COMMANDS
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.
integrator DisplacementControl $node $dof $incr <$numIter $ΔUmin $ΔUmax> pushover analysis
example: Newmark, N.M. A method of computation for structural dynamics. ASCE Journal of Engineering Mechanics Division, Vol 85. No EM3, 1959.
Analysis command
This command is used to construct the Analysis object, which defines what type of analysis is to be performed.
Analyze command
This command is used to perform the analysis.
Analyze command
This command is used to perform the analysis.
example:
integrator LoadControl 0.10 gravity load analysis: the total gravity load is applied by means of 10 incremental steps
analysis Static
analyze 10
ANALYSIS COMMANDS
Analyze command
This command is used to perform the analysis.
example:
integrator LoadControl 0.10 gravity load analysis: the total gravity load is applied by means of 10 incremental steps
analysis Static
analyze 10
integrator DisplacementControl 10 1 1 pushover analysis: the target displacement of node 10 in X direction, 1000, is applied with 1000
steps with displacement increment equal to 1
analysis Static
analyze 1000
ANALYSIS COMMANDS
Analyze command
This command is used to perform the analysis.
example:
integrator LoadControl 0.10 gravity load analysis: the total gravity load is applied by means of 10 incremental steps
analysis Static
analyze 10
integrator DisplacementControl 10 1 1 pushover analysis: the target displacement of node 10 in X direction, 1000, is applied with 1000
steps with displacement increment equal to 1
analysis Static
analyze 1000
integrator Newmark 0.50 0.25 time-history analysis: the input record, constituted by 4750 acceleration values with constant time
spacing equal to 0.01 s, is applied for the analysis
analysis Transient
analyze 4750 0.01
ANALYSIS COMMANDS
eigen command
This command is used to perform the eigen analysis.
example:
eigen -fullGenLapack 6
ANALYSIS COMMANDS
LoadConst command
This command is used to set the loads constant in the domain and to also set the time in the domain. When setting the loads
constant, the procedure will invoke setLoadConst() on all LoadPattern objects which exist in the domain at the time the
command is called.
example:
loadConst -time 0
Recorder command
A recorder monitors the state of a domain component (node, element, etc.) during an analysis and writes this state to a file or to
a database at selected intervals during the analysis. Once in a file, the information can be easily post-processed.
Node recorder
recorder Node <-file $fileName> <-time> <-node $node1 $node2 ...> -dof ($dof1 $dof2 ...) $respType'
$fileName name of file to which output is sent.
-time optional, using this option places domain time in first entry of each data line, default is to have time ommitted
$node1 $node2 .. tags of nodes whose response is being recorded (optional, default: omitted)
$dof1 dof2 ... the specified dof at the nodes whose response is requested.
$respType a string indicating response required. Response types are given in table below.
disp displacement* "eigen i" eigenvector for mode i
vel velocity* reaction nodal reaction
accel acceleration* rayleighForces damping forces
incrDisp incremental displacement
example:
recorder Node –file node_displacement.out –time –node 1 2 3 4 –dof 1 3
OUTPUT COMMANDS
Recorder command
A recorder monitors the state of a domain component (node, element, etc.) during an analysis and writes this state to a file or to
a database at selected intervals during the analysis. Once in a file, the information can be easily post-processed.
Element recorder
recorder Element <-file $fileName> <-time> <-ele $ele1 $ele2 ...> $arg1 $arg2
$fileName name of file to which output is sent.
-time optional, using this option places domain time in first entry of each data line, default is to have time ommitted
$ele1 $ele2 .. tags of elements whose response is being recorded (optional, default: omitted)
$arg1 $arg2 ... arguments which are passed to the setResponse() element method
Element recorder
recorder Element <-file $fileName> <-time> <-ele $ele1 $ele2 ...> $arg1 $arg2
$fileName name of file to which output is sent.
-time optional, using this option places domain time in first entry of each data line, default is to have time ommitted
$ele1 $ele2 .. tags of elements whose response is being recorded (optional, default: omitted)
$arg1 $arg2 ... arguments which are passed to the setResponse() element method
Element recorder
recorder Element <-file $fileName> <-time> <-ele $ele1 $ele2 ...> $arg1 $arg2
$fileName name of file to which output is sent.
-time optional, using this option places domain time in first entry of each data line, default is to have time ommitted
$ele1 $ele2 .. tags of elements whose response is being recorded (optional, default: omitted)
$arg1 $arg2 ... arguments which are passed to the setResponse() element method
Element recorder
recorder Element <-file $fileName> <-time> <-ele $ele1 $ele2 ...> $arg1 $arg2
$fileName name of file to which output is sent.
-time optional, using this option places domain time in first entry of each data line, default is to have time ommitted
$ele1 $ele2 .. tags of elements whose response is being recorded (optional, default: omitted)
$arg1 $arg2 ... arguments which are passed to the setResponse() element method
Element recorder
recorder Element <-file $fileName> <-time> <-ele $ele1 $ele2 ...> $arg1 $arg2
$fileName name of file to which output is sent.
-time optional, using this option places domain time in first entry of each data line, default is to have time ommitted
$ele1 $ele2 .. tags of elements whose response is being recorded (optional, default: omitted)
$arg1 $arg2 ... arguments which are passed to the setResponse() element method
logFile command
This command saves the warning and error messages that the running script generates from the interpreter to an output file
given by $fileName. By default the file, if it exists prior to running, is overwritten with new data. If the -append option is provided
the new data is appended to the end of the existing file.