Previous Topic

Next Topic

Book Contents

Example 3.3

In this example the reinforced concrete portal frame which has undergone the gravity load analysis of Example 3.1 is now subjected to a uniform earthquake excitation.

Files Required

Model

After performing the gravity load analysis, the time in the domain is reset to 0.0 and the current value of all active loads is set to constant. Mass terms are added to nodes 3 and 4. A new uniform excitation load pattern is created. The excitation acts in the horizontal direction and reads the acceleration record and time interval from the file ARL360.g3. The file ARL360.g3 is created from the PEER Strong Motion Database (http://peer.berkeley.edu/smcat/) record ARL360.at2 using the Tcl procedure ReadSMDFile contained in the file ReadSMDFile.tcl.

Analysis

The static analysis object and its components are first deleted so that a new transient analysis object can be created.

A new solution Algorithm of type Newton is then created. The solution algorithm uses a ConvergenceTest which tests convergence on the norm of the displacement increment vector. The integrator for this analysis will be of type Newmark with a $\gamma$ of 0.25 and a $\beta$ of 0.5. The integrator will add some stiffness proportional damping to the system, the damping term will be based on the last committed stifness of the elements, i.e. $C = a_c K_{commit}$ with $a_c = 0.000625$. The equations are formed using a banded storage scheme, so the System is BandGeneral. The equations are numbered using an RCM (reverse Cuthill-McKee) numberer. The constraints are enforced with a Plain constraint handler.

Once all the components of an analysis are defined, the Analysis object itself is created. For this problem a Transient Analysis object is used. 2000 time steps are performed with a time step of 0.01.

In addition to the transient analysis, two eigenvalue analysis are performed on the model. The first is performed after the gravity analysis and the second after the transient analysis.

Output Specification

For this analysis the nodal displacenments at Nodes 3 and 4 will be stored in the file nodeTransient.out for post-processing. In addition the section forces and deformations for the section at the base of column 1 will also be stored in two seperate files. The results of the eigenvalue analysis will be displayed on the screen.

OpenSees Script

# OpenSees Example 3.3

# OpenSees Primer

#

# Units: kips, in, sec

# ----------------------------------------------------

# Start of Model Generation & Initial Gravity Analysis

# ----------------------------------------------------

# Do operations of Example3.1 by sourcing in the tcl file

source Example3.1.tcl

puts ``Gravity load analysis completed''

# Set the gravity loads to be constant & reset the time in the domain

loadConst -time 0.0

# ----------------------------------------------------

# End of Model Generation & Initial Gravity Analysis

# ----------------------------------------------------

# ----------------------------------------------------

# Start of additional modeling for dynamic loads

# ----------------------------------------------------

# Define nodal mass in terms of axial load on columns

set g 386.4

set m [expr $P/$g]; # expr command to evaluate an expression

# tag MX MY RZ

mass 3 $m $m 0

mass 4 $m $m 0

# Define dynamic loads

# --------------------

# Set some parameters

set outFile ARL360.g3

set accelSeries "Path -filePath $outFile -dt $dt -factor $g"

# Source in TCL proc to read a PEER Strong Motion Database record

source ReadSMDFile.tcl

# Perform the conversion from SMD record to OpenSees record and obtain dt

# inFile outFile dt

ReadSMDFile ARL360.at2 $outFile dt

# Create UniformExcitation load pattern

# tag dir

pattern UniformExcitation 2 1 -accel $accelSeries

# set the rayleigh damping factors for nodes & elements

rayleigh 0.0 0.0 0.0 0.000625

# ----------------------------------------------------

# End of additional modeling for dynamic loads

# ----------------------------------------------------

# ---------------------------------------------------------

# Start of modifications to analysis for transient analysis

# ---------------------------------------------------------

# Delete the old analysis and all its component objects

wipeAnalysis

# Create the convergence test, the norm of the residual with a tolerance of

# 1e-12 and a max number of iterations of 10

test NormDispIncr 1.0e-12 10

# Create the solution algorithm, a Newton-Raphson algorithm

algorithm Newton

# Create the integration scheme, Newmark with gamma = 0.5 and beta = 0.25

integrator Newmark 0.5 0.25

# Create the system of equation, a banded general storage scheme

system BandGeneral

# Create the constraint handler, a plain handler as homogeneous boundary conditions

constraints Plain

# Create the DOF numberer, the reverse Cuthill-McKee algorithm

numberer RCM

# Create the analysis object

analysis Transient

# ---------------------------------------------------------

# End of modifications to analysis for transient analysis

# ---------------------------------------------------------

# ------------------------------

# Start of recorder generation

# ------------------------------

# Create a recorder to monitor nodal displacements

recorder Node -time -file node33.out -node 3 4 -dof 1 2 3 disp

# Create recorders to monitor section forces and deformations

# at the base of the left column

recorder Element -time -file ele1secForce.out -ele 1 section 1 force

recorder Element -time -file ele1secDef.out -ele 1 section 1 deformation

# --------------------------------

# End of recorder generation

# ---------------------------------

# ------------------------------

# Finally perform the analysis

# ------------------------------

# Perform an eigenvalue analysis

puts "eigen values at start of transient: [eigen 2]"

# set some variables

set tFinal [expr 2000 * 0.01]

set tCurrent [getTime]

set ok 0

# Perform the transient analysis

while {$ok == 0 && $tCurrent < $tFinal} {

set ok [analyze 1 .01]

# if the analysis fails try initial tangent iteration

if {$ok != 0} {

puts "regular newton failed .. lets try an initail stiffness for this step"

test NormDispIncr 1.0e-12 100 0

algorithm ModifiedNewton -initial

set ok [analyze 1 .01]

if {$ok == 0} {puts "that worked .. back to regular newton"}

test NormDispIncr 1.0e-12 10

algorithm Newton

}

set tCurrent [getTime]

}

# Print a message to indicate if analysis succesfull or not

if {$ok == 0} {

puts "Transient analysis completed SUCCESSFULLY";

} else {

puts "Transient analysis completed FAILED";

}

# Perform an eigenvalue analysis

puts "eigen values at end of transient: [eigen 2]"

# Print state of node 3

print node 3

Results

Gravity load analysis completed

eigen values at start of transient: 2.695422e+02 1.750711e+04

Transient analysis completed SUCCESSFULLY

eigen values at start of transient: 1.578616e+02 1.658481e+04

Node: 3

Coordinates : 0 144

commitDisps: -0.0464287 -0.0246641 0.000196066

Velocities : -0.733071 1.86329e-05 0.00467983

commitAccels: -9.13525 0.277302 38.2972

unbalanced Load: -3.9475 -180 0

Mass :

0.465839 0 0

0 0.465839 0

0 0 0

Eigenvectors:

-1.03587 -0.0482103

-0.00179081 0.00612275

0.00663473 3.21404e-05

The two eigenvalues for the eigenvalue analysis are printed to the screen. The state of node 3 at the end of the analysis is also printed.

The information contains the last committed displacements, velocities and accelerations at the node, the unbalanced nodal forces and the nodal masses. In addition, the eigenvector components of the eigenvector pertaining to the node 3 is also displayed.

In addition to the contents displayed on the screen, three files have been created. Each line of nodeTransient.out contains the domain time, and DX, DY and RZ for node 3. Plotting the first and second columns of this file the lateral displacement versus time for node 3 can be obtained as shown in figure~\ref{lateral33}. Each line of the files ele1secForce.out and ele1secDef.out contain the domain time and the forces and deformations for section 1 (the base section) of element 1. These can be used to generate the moment-curvature time history of the base section of column 1 as shown in figure~\ref{element1MK}.

FIGURE HERE

FIGURE HERE

See Also

Portal Frame

Example 3.1

Example 3.2

PortalFrame.tcl