Download as pdf or txt
Download as pdf or txt
You are on page 1of 59

University of Naples Federico II

Department of Structures for Engineering and Architecture


PhD program in Structural Engineering Geotechnics and Seismic Risk

Nonlinear modeling of RC structures using OpenSees


prof. P. Ricci
dr. M. Di Domenico

Lecture 4
Analysis and output
part 1 - theory

June 10th, 2021


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.

COMPLETE OPENSEES MODEL


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.

COMPLETE OPENSEES MODEL

MODELING OBJECTS/DOMAIN ANALYSIS OBJECTS OUTPUT OBJECTS


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.

COMPLETE OPENSEES MODEL

MODELING OBJECTS/DOMAIN ANALYSIS OBJECTS OUTPUT OBJECTS

▪ 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.

COMPLETE OPENSEES MODEL

MODELING OBJECTS/DOMAIN ANALYSIS OBJECTS OUTPUT OBJECTS

▪ 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.

COMPLETE OPENSEES MODEL

MODELING OBJECTS/DOMAIN ANALYSIS OBJECTS OUTPUT OBJECTS

▪ model ▪ constraints ▪ recorder


▪ node ▪ numberer ▪ print
▪ mass ▪ system ▪ logFile
▪ SP_constraint ▪ test ▪ … and others
▪ 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.

COMPLETE OPENSEES MODEL

MODELING OBJECTS/DOMAIN ANALYSIS OBJECTS OUTPUT OBJECTS

▪ model ▪ constraints ▪ recorder


▪ node ▪ numberer ▪ print
▪ mass ▪ system ▪ logFile
▪ SP_constraint ▪ test ▪ … and others
▪ MP_constraint ▪ algorithm
▪ uniaxialMaterial ▪ integrator
▪ section ▪ analysis
▪ element ▪ eigen
▪ timeSeries ▪ analyze
▪ pattern ▪ … and others
▪ … and others
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:

SHAPE MULTIPLIER LOAD


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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object
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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object

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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object

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

1. Define a linear pattern with load equal to


0.25 applied to node 1, a load equal to 0.50
to node 2 etc.
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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object

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 2. Define a linear TimeSeries: The load


multiplier will vary linearly from 0 up to a
maximum value set by the user (e.g., 5000)
0.25 node 1

1. Define a linear pattern with load equal to


0.25 applied to node 1, a load equal to 0.50
to node 2 etc.
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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object

Example: How to impose a linear lateral load distribution with maximum force at the top equal to 5000?

1.00 node 4 5000 0 node 4

0.75 node 3 node 3

0.50 node 2 2. Define a linear TimeSeries: The load node 2


multiplier will vary linearly from 0 up to a
maximum value set by the user (e.g., 5000)
0.25 node 1 node 1

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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object

Example: How to impose a linear lateral load distribution with maximum force at the top equal to 5000?

5000 0 node 4

Each step represents a unit of time in OpenSees domain


node 3

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


maximum value of the multiplier set
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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object

Example: How to impose a linear lateral load distribution with maximum force at the top equal to 5000?

5000 0 node 4

Each step represents a unit of time in OpenSees domain


node 3

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

Linear TimeSeries command

This command is used to construct a TimeSeries object in which the load factor applied is linearly proportional to the time in
the domain.

timeSeries Linear $tag <-factor $cFactor>


$tag unique tag among TimeSeries objects.
$cFactor the linear factor (optional, default=1.0)

example:
timeSeries Linear 1
MODELING COMMANDS

Plain Pattern command


This command allows the user to construct a LoadPattern object. Each plain load pattern is associated with a TimeSeries object
and can contain multiple NodalLoads, ElementalLoads and SP_Constraint objects. The command to generate LoadPattern object
contains in { } the commands to generate all the loads and the single-point constraints in the pattern.
pattern Plain $patternTag $tsTag <-fact $cFactor> {
load...
eleLoad...
sp...
...
1.00 node 4
}
0.75 node 3
$patternTag unique tag among load patterns
$tsTag the tag of the time series to be used in the load pattern 0.50 node 2
$cFactor constant factor (optional, default=1.0)
load... command to nodal load 0.25 node 1

eleLoad ... command to generate elemental load


X
example:
pattern Plain 1 1 {
load 1 0.25 0 0 0 0 0
load 2 0.50 0 0 0 0 0
load 3 0.75 0 0 0 0 0
load 4 1.00 0 0 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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object

Example: How to impose an acceleration history at the building base?


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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object

Example: How to impose an acceleration history at the building base?

1.00 1.00

1. Define a uniform excitation pattern


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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object

Example: How to impose an acceleration history at the building base?

2. Define a path TimeSeries: the load


multiplier is the base acceleration (varying
with time) contained in a file reporting the
entire time-history
1.00 1.00

1. Define a uniform excitation pattern


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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object

Example: How to impose an acceleration history at the building base?

2. Define a path TimeSeries: the load


multiplier is the base acceleration (varying
with time) contained in a file reporting the
entire time-history
1.00 1.00 0.05 0.05

1. Define a uniform excitation pattern OpenSees will apply step-by-step each


value of the acceleration time-history
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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object

Example: How to impose an acceleration history at the building base?

Each step represents a unit of time in OpenSees domain

If a Path TimeSeries is used, each absolute time in the time-history is named PSEUDOTIME

0.05 0.05

OpenSees will apply step-by-step each


value of the acceleration time-history
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:

SHAPE MULTIPLIER LOAD


The load shape is defined by a Pattern object The load multiplier is defined by a TimeSeries object

Example: How to impose an acceleration history at the building base?

Each step represents a unit of time in OpenSees domain

If a Path TimeSeries is used, each absolute time in the time-history is named PSEUDOTIME

0.05 0.05

OpenSees will apply step-by-step each


value of the acceleration time-history The Uniform Excitation Pattern object and the Path TimeSeries object are
usually used to perform nonlinear time-history dynamic analysis
MODELING COMMANDS

Path TimeSeries command

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.

timeSeries Path $tag -dt $dt -filePath $filePath <-factor $cFactor>

$tag unique tag among TimeSeries objects.


$filePath file containing the load factors values (i.e., the base acceleration)
$fileTime file containing the time values for corresponding load factors
$dT time interval between specified points.
$cFactor optional, a factor to multiply load factors by (default = 1.0)
MODELING COMMANDS

Path TimeSeries command

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.

timeSeries Path $tag -dt $dt -filePath $filePath <-factor $cFactor>


timeSeries Path $tag -fileTime $fileTime -filePath $filePath <-factor $cFactor>

$tag unique tag among TimeSeries objects.


$filePath file containing the load factors values (i.e., the base acceleration)
$fileTime file containing the time values for corresponding load factors
$dT time interval between specified points.
$cFactor optional, a factor to multiply load factors by (default = 1.0)
MODELING COMMANDS

Path TimeSeries command

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.

timeSeries Path $tag -dt $dt -filePath $filePath <-factor $cFactor>


timeSeries Path $tag -fileTime $fileTime -filePath $filePath <-factor $cFactor>

$tag unique tag among TimeSeries objects.


$filePath file containing the load factors values (i.e., the base acceleration)
$fileTime file containing the time values for corresponding load factors
$dT time interval between specified points.
$cFactor optional, a factor to multiply load factors by (default = 1.0)

example:
set path1 GMdirectory/record1.txt
timeSeries Path 1 -dt 0.005 -filePath $path1
MODELING COMMANDS

Path TimeSeries command

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.

timeSeries Path $tag -dt $dt -filePath $filePath <-factor $cFactor>


timeSeries Path $tag -fileTime $fileTime -filePath $filePath <-factor $cFactor>

$tag unique tag among TimeSeries objects.


$filePath file containing the load factors values (i.e., the base acceleration)
$fileTime file containing the time values for corresponding load factors
$dT time interval between specified points.
$cFactor optional, a factor to multiply load factors by (default = 1.0)

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

Uniform Excitation Pattern command


The UniformExcitation pattern allows the user to apply a uniform excitation to a model acting in a certain direction.

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

Norm Unbalance Test command


This command is used to construct a convergence test which uses the norm of the right hand side of the matrix equation to
determine if convergence has been reached. What the right-hand-side of the matrix equation is depends on integrator and
constraint handler chosen. Usually, though not always, it is equal to the unbalanced forces in the system.

test NormUnbalance $tol $iter <$pFlag> <$nType>

$tol the tolerance criteria used to check for convergence


$iter the max number of iterations to check before returning failure condition
$pFlag optional print flag, default is 0. valid options:
0 print nothing
1 print information on norms each time test() is invoked
2 print information on norms and number of iterations at end of successful test
4 at each step it will print the norms and also the ΔU and R(U) vectors.
5 if it fails to converge at end of $numIter it will print an error message BUT RETURN A SUCEESSFULL test
$nType optional type of norm, default is 2. (0 = max-norm, 1 = 1-norm, 2 = 2-norm, ...)

example:
test NormUnbalance 10e-4 100
ANALYSIS COMMANDS

Norm Displacement Increment Test command


This command is used to construct a convergence test which uses the norm of the left hand side solution vector of the matrix
equation to determine if convergence has been reached. What the solution vector of the matrix equation is depends on
integrator and constraint handler chosen. Usually, though not always, it is equal to the displacement increments that are to be
applied to the model.
test NormDispIncr $tol $iter <$pFlag> <$nType>
$tol the tolerance criteria used to check for convergence
$iter the max number of iterations to check before returning failure condition
$pFlag optional print flag, default is 0. valid options:
0 print nothing
1 print information on norms each time test() is invoked
2 print information on norms and number of iterations at end of successful test
4 at each step it will print the norms and also the ΔU and R(U) vectors.
5 if it fails to converge at end of $numIter it will print an error message BUT RETURN A SUCEESSFULL test
$nType optional type of norm, default is 2. (0 = max-norm, 1 = 1-norm, 2 = 2-norm, ...)

example:
test NormDispIncr 10e-4 100
ANALYSIS COMMANDS

Energy Increment Test command


This command is used to construct a convergence test which uses the dot product of the solution vector and norm of the right
hand side of the matrix equation to determine if convergence has been reached. The physical meaning of this quantity depends
on the integrator and constraint handler chosen. Usually, though not always, it is equal to the energy unbalance in the system.

test EnergyIncr $tol $iter <$pFlag> <$nType>


$tol the tolerance criteria used to check for convergence
$iter the max number of iterations to check before returning failure condition
$pFlag optional print flag, default is 0. valid options:
0 print nothing
1 print information on norms each time test() is invoked
2 print information on norms and number of iterations at end of successful test
4 at each step it will print the norms and also the ΔU and R(U) vectors.
5 if it fails to converge at end of $numIter it will print an error message BUT RETURN A SUCEESSFULL test
$nType optional type of norm, default is 2. (0 = max-norm, 1 = 1-norm, 2 = 2-norm, ...)

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 Linear EXPLICIT ALGORITHM: linear analysis only


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 Linear EXPLICIT ALGORITHM: linear analysis only

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 Linear EXPLICIT ALGORITHM: linear analysis only

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

the most effective?


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 LoadControl $lambda <$numIter $minLambda $maxLambda> gravity load analysis

$lambda the load factor increment λ


$numIter the number of iterations the user would like to occur in the solution algorithm. Optional, default = 1.0.
$minLambda the min stepsize the user will allow. optional, defualt = λmin = λ
$maxLambda the max stepsize the user will allow. optional, default = λmax = λ

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 LoadControl $lambda <$numIter $minLambda $maxLambda> gravity load analysis

integrator DisplacementControl $node $dof $incr <$numIter $ΔUmin $ΔUmax> pushover analysis

$node node whose response controls solution


$dof degree of freedom at the node, valid options: 1 through ndf at node.
$incr first displacement increment ΔUdof
$numIter the number of iterations the user would like to occur in the solution algorithm. Optional, default = 1.0.
$ΔUmin the min stepsize the user will allow. optional, defualt = ΔUmin = ΔU0
$ΔUmax the max stepsize the user will allow. optional, default = ΔUmax = ΔU0

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 LoadControl $lambda <$numIter $minLambda $maxLambda> gravity load analysis

integrator DisplacementControl $node $dof $incr <$numIter $ΔUmin $ΔUmax> pushover analysis

integrator Newmark $gamma $beta time-history analysis

$gamma γ factor: commonly equal to 0.50


$beta β factor: commonly equal to 0.25 for ‘average acceleration method’, to 1/6 for ‘linear acceleration method’

γ=1/2 → no spurious damping


β:

example: Newmark, N.M. A method of computation for structural dynamics. ASCE Journal of Engineering Mechanics Division, Vol 85. No EM3, 1959.

integrator Newmark 0.50 0.25


ANALYSIS COMMANDS

Analysis command
This command is used to construct the Analysis object, which defines what type of analysis is to be performed.

analysis Static gravity load/pushover analysis

analysis Transient time-history analysis with constant time-step

analysis VariableTransient time-history analysis with variable time-step


ANALYSIS COMMANDS

Analyze command
This command is used to perform the analysis.

analyze $numIncr <$dt> <$dtMin $dtMax $Jd>


$numIncr number of analysis steps to perform.
RETURNS:
$dt time-step increment. Required if transient or variable transient analysis 0 if successful
<0 if NOT successful
$dtMin $dtMax minimum and maximum time steps. Required if a variable time step transient analysis was specified.
number of iterations user would like performed at each step. The variable transient analysis will change current time step if last analysis step took
$Jd
more or less iterations than this to converge. Required if a variable time step transient analysis was specified.
ANALYSIS COMMANDS

Analyze command
This command is used to perform the analysis.

analyze $numIncr <$dt> <$dtMin $dtMax $Jd>


$numIncr number of analysis steps to perform.
RETURNS:
$dt time-step increment. Required if transient or variable transient analysis 0 if successful
<0 if NOT successful
$dtMin $dtMax minimum and maximum time steps. Required if a variable time step transient analysis was specified.
number of iterations user would like performed at each step. The variable transient analysis will change current time step if last analysis step took
$Jd
more or less iterations than this to converge. Required if a variable time step transient analysis was specified.

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.

analyze $numIncr <$dt> <$dtMin $dtMax $Jd>


$numIncr number of analysis steps to perform.
RETURNS:
$dt time-step increment. Required if transient or variable transient analysis 0 if successful
<0 if NOT successful
$dtMin $dtMax minimum and maximum time steps. Required if a variable time step transient analysis was specified.
number of iterations user would like performed at each step. The variable transient analysis will change current time step if last analysis step took
$Jd
more or less iterations than this to converge. Required if a variable time step transient analysis was specified.

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.

analyze $numIncr <$dt> <$dtMin $dtMax $Jd>


$numIncr number of analysis steps to perform.
RETURNS:
$dt time-step increment. Required if transient or variable transient analysis 0 if successful
<0 if NOT successful
$dtMin $dtMax minimum and maximum time steps. Required if a variable time step transient analysis was specified.
number of iterations user would like performed at each step. The variable transient analysis will change current time step if last analysis step took
$Jd
more or less iterations than this to converge. Required if a variable time step transient analysis was specified.

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.

eigen <$solver> $numEigenvalues


$numEigenvalues number of eigenvalues required
$solver optional string detailing type of solver: -genBandArpack, -symmBandLapack, -fullGenLapack (default: -genBandArpack)

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.

loadConst <-time $pseudoTime>


$pseudoTime Time domain is to be set to (optional)

example:
loadConst -time 0

This command is usually used at the end of the analysis


Output commands
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.

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

The setResponse() element method is dependent on the element type


OUTPUT COMMANDS

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

The setResponse() element method is dependent on the element type


Valid queries for different elements

ElasticBeamColumn force; localForce


Truss axialForce; deformations
ZeroLength/TwoNodeLink force; deformation
OUTPUT COMMANDS

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

The setResponse() element method is dependent on the element type


Valid queries for different elements

ElasticBeamColumn force; localForce


Truss axialForce; deformations
ZeroLength/TwoNodeLink force; deformation
Section Recorder
recorder Element <-file $fileName> <-time> <-ele $ele1> section $sec $arg1 $arg2
$sec refers to the integration point whose data is to be output
$arg1 $arg2 force; deformation
OUTPUT COMMANDS

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

The setResponse() element method is dependent on the element type


Valid queries for different elements

ElasticBeamColumn force; localForce


Truss axialForce; deformations
ZeroLength/TwoNodeLink force; deformation
Section Recorder
recorder Element <-file $fileName> <-time> <-ele $ele1> section $sec $arg1 $arg2
$sec refers to the integration point whose data is to be output
$arg1 $arg2 force; deformation
Fiber Recorder
recorder Element <-file $fileName> <-time> <-ele $ele1> section $sec fiber $y $z stressStrain
$y $z local y coordinate of fiber to be monitored
OUTPUT COMMANDS

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

The setResponse() element method is dependent on the element type


Valid queries for different elements

ElasticBeamColumn force; localForce


Truss axialForce; deformations
ZeroLength/TwoNodeLink force; deformation
Section Recorder
The format of the output is typically dependent
recorder Element <-file $fileName> <-time> <-ele $ele1> section $sec $arg1 $arg2 on the element and/or section type. In general,
however, the output follows the order of the
$sec refers to the integration point whose data is to be output
degrees of freedom.
$arg1 $arg2 force; deformation
element globalForce FX FY FZ MX MY MZ
Fiber Recorder localForce Fx Fy Fz Mx My Mz
recorder Element <-file $fileName> <-time> <-ele $ele1> section $sec fiber $y $z stressStrain section force Fx Mx
deformation axial-strain curvature
$y $z local y coordinate of fiber to be monitored stressStrain stress strain
OUTPUT COMMANDS

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.

logFile $fileName <-append>


$fileName name of file to which output is sent.

You might also like