1. Elastic Column Pushover
This is a very simple example of an elastic column subjected to pushover. Its purpose is to provide a basic introduction to OpenSees.
To run the example download the script, start OpenSees, cd to the directory containing the example and type
cd C:\Users\fmckenna\examples\
source example.tcl
The file can be downloaded
. The contents of the downloaded file is as shown below:
1# -------------------------------------------------------------------------------------------------- 2# Example 1. cantilever 2D 3# static pushover analysis with gravity. 4# all units are in kip, inch, second 5# elasticBeamColumn ELEMENT 6# Silvia Mazzoni & Frank McKenna, 2006 7# 8# ^Y 9# | 10# 2 __ 11# | | 12# | | 13# | | 14# (1) 36' 15# | | 16# | | 17# | | 18# =1= ---- -------->X 19# 20 21# SET UP ---------------------------------------------------------------------------- 22wipe; # clear opensees model 23model basic -ndm 2 -ndf 3; # 2 dimensions, 3 dof per node 24file mkdir Data; # create data directory 25 26# define GEOMETRY ------------------------------------------------------------- 27# nodal coordinates: 28node 1 0 0; # node#, X Y 29node 2 0 432 30 31# Single point constraints -- Boundary Conditions 32fix 1 1 1 1; # node DX DY RZ 33 34# nodal masses: 35mass 2 5.18 0. 0.; # node#, Mx My Mz, Mass=Weight/g. 36 37# Define ELEMENTS ------------------------------------------------------------- 38# define geometric transformation: performs a linear geometric transformation of beam stiffness and resisting force from the basic system to the global-coordinate system 39geomTransf Linear 1; # associate a tag to transformation 40 41# connectivity: (make A very large, 10e6 times its actual value) 42element elasticBeamColumn 1 1 2 3600000000 4227 1080000 1; # element elasticBeamColumn $eleTag $iNode $jNode $A $E $Iz $transfTag 43 44# Define RECORDERS ------------------------------------------------------------- 45recorder Node -file Data/DFree.out -time -node 2 -dof 1 2 3 disp; # displacements of free nodes 46recorder Node -file Data/DBase.out -time -node 1 -dof 1 2 3 disp; # displacements of support nodes 47recorder Node -file Data/RBase.out -time -node 1 -dof 1 2 3 reaction; # support reaction 48recorder Drift -file Data/Drift.out -time -iNode 1 -jNode 2 -dof 1 -perpDirn 2 ; # lateral drift 49recorder Element -file Data/FCol.out -time -ele 1 globalForce; # element forces -- column 50recorder Element -file Data/DCol.out -time -ele 1 deformation; # element deformations -- column 51 52# define GRAVITY ------------------------------------------------------------- 53pattern Plain 1 Linear { 54 load 2 0. -2000. 0.; # node#, FX FY MZ -- superstructure-weight 55} 56constraints Plain; # how it handles boundary conditions 57numberer Plain; # renumber dof's to minimize band-width (optimization), if you want to 58system BandGeneral; # how to store and solve the system of equations in the analysis 59test NormDispIncr 1.0e-8 6 ; # determine if convergence has been achieved at the end of an iteration step 60algorithm Newton; # use Newton's solution algorithm: updates tangent stiffness at every iteration 61integrator LoadControl 0.1; # determine the next time step for an analysis, # apply gravity in 10 steps 62analysis Static # define type of analysis static or transient 63analyze 10; # perform gravity analysis 64loadConst -time 0.0; # hold gravity constant and restart time 65 66# define LATERAL load ------------------------------------------------------------- 67# Lateral load pattern 68pattern Plain 2 Linear { 69 load 2 2000. 0.0 0.0; # node#, FX FY MZ -- representative lateral load at top node 70} 71 72# pushover: diplacement controlled static analysis 73integrator DisplacementControl 2 1 0.1; # switch to displacement control, for node 11, dof 1, 0.1 increment 74analyze 1000; # apply 100 steps of pushover analysis to a displacement of 10 75 76puts "Done!" 77 78 79 80