{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

OpenSees Examples Manual Examples for OpenSeesPy

\n", "

OpenSees Example 1b. Elastic Portal Frame -- Static Pushover

\n", "

\n", "\n", "You can find the original Examples:
\n", "https://opensees.berkeley.edu/wiki/index.php/Examples_Manual
\n", "Original Examples by By Silvia Mazzoni & Frank McKenna, 2006, in Tcl
\n", "Converted to OpenSeesPy by SilviaMazzoni, 2020
\n", "

\n", "\n", "

Simulation Process

\n", "\n", "Each example script does the following:\n", "

A. Build the model

\n", "
    \n", "
  1. model dimensions and degrees-of-freedom
  2. \n", "
  3. nodal coordinates
  4. \n", "
  5. nodal constraints -- boundary conditions
  6. \n", "
  7. nodal masses
  8. \n", "
  9. elements and element connectivity
  10. \n", "
  11. recorders for output
  12. \n", "
\n", "

B. Define & apply gravity load

\n", "
    \n", "
  1. nodal or element load
  2. \n", "
  3. static-analysis parameters (tolerances & load increments)
  4. \n", "
  5. analyze
  6. \n", "
  7. hold gravity loads constant
  8. \n", "
  9. reset time to zero
  10. \n", "
\n", "

C. Define and apply lateral load

\n", "
\n", "
  • Time Series and Load Pattern (nodal loads for static analysis, support ground motion for earthquake)
  • \n", "
  • lateral-analysis parameters (tolerances and displacement/time increments)
  • \n", "Static Lateral-Load Analysis\n", "
  • define the displacement increments and displacement path
  • \n", "Dynamic Lateral-Load Analysis\n", "
  • define the input motion and all associated parameters, such as scaling and input type
  • \n", "
  • define analysis duration and time increment
  • \n", "
  • define damping
  • \n", "
  • analyze
  • \n", "

    \n", " \n", "Introductory Examples\n", "The objective of Example 1a and Example 1b is to give an overview of input-file format in OpenSees using simple scripts.\n", "These scripts do not take advantage of the Tcl scripting capabilities shown in the later examples. However, they do provide starting a place where the input file is similar to that of more familiar Finite-Element Analysis software. Subsequent examples should be used as the basis for user input files.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

    OpenSees Example 1b.
    \n", " 2D Elastic Portal Frame -- Static Pushover

    \n", "Introduction\n", "\n", " Objectives of Example 1b \n", " - Two element types
    \n", " - Distributed element loads
    \n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Done!\n" ] } ], "source": [ "############################################################\n", "# EXAMPLE: \n", "# pyEx1b.Portal2D.Push.tcl.py\n", "# for OpenSeesPy\n", "# --------------------------------------------------------#\n", "# by: Silvia Mazzoni, 2020\n", "# silviamazzoni@yahoo.com\n", "############################################################\n", "\n", "# configure Python workspace\n", "import openseespy.opensees as ops\n", "import eSEESminiPy\n", "import os\n", "import math\n", "import numpy as numpy\n", "import matplotlib.pyplot as plt\n", "ops.wipe()\n", "# --------------------------------------------------------------------------------------------------\n", "# Example 1. portal frame in 2D\n", "# static pushover analysis of Portal Frame, with gravity.\n", "# all units are in kip, inch, second\n", "# elasticBeamColumn ELEMENT\n", "# Silvia Mazzoni and Frank McKenna, 2006\n", "#\n", "# ^Y\n", "# or\n", "# 3_________(3)________4 __\n", "# or | |\n", "# or | |\n", "# or | |\n", "# (1) (2) LCol\n", "# or | |\n", "# or | |\n", "# or | |\n", "# =1= =2= _or_ -------->X\n", "# or----------LBeam------------|\n", "#\n", "\n", "# SET UP ----------------------------------------------------------------------------\n", "ops.wipe() # clear opensees model\n", "ops.model('basic','-ndm',2,'-ndf',3) # 2 dimensions, 3 dof per node\n", "if not os.path.exists('Data'):\n", " os.mkdir('Data')\n", "\n", "# define GEOMETRY -------------------------------------------------------------\n", "# nodal coordinates:\n", "ops.node(1,0,0) # node , X Y\n", "ops.node(2,504,0)\n", "ops.node(3,0,432)\n", "ops.node(4,504,432)\n", "\n", "# Single point constraints -- Boundary Conditions\n", "ops.fix(1,1,1,1) # node DX DY RZ\n", "ops.fix(2,1,1,1) # node DX DY RZ\n", "ops.fix(3,0,0,0)\n", "ops.fix(4,0,0,0)\n", "\n", "# nodal masses:\n", "ops.mass(3,5.18,0.,0.) # node , Mx My Mz, Mass=Weight/g.\n", "ops.mass(4,5.18,0.,0.)\n", "\n", "# Define ELEMENTS -------------------------------------------------------------\n", "# define geometric transformation: performs a linear geometric transformation of beam stiffness and resisting force from the basic system to the global-coordinate system\n", "ops.geomTransf('Linear',1) # associate a tag to transformation\n", "\n", "# connectivity: (make A very large, 10e6 times its actual value)\n", "ops.element('elasticBeamColumn',1,1,3,3600000000,4227,1080000,1) # element elasticBeamColumn eleTag iNode jNode A E Iz transfTag\n", "ops.element('elasticBeamColumn',2,2,4,3600000000,4227,1080000,1)\n", "ops.element('elasticBeamColumn',3,3,4,5760000000,4227,4423680,1)\n", "\n", "# Define RECORDERS -------------------------------------------------------------\n", "ops.recorder('Node','-file','Data/DFreeEx1bPush.out','-time','-node',3,4,'-dof',1,2,3,'disp') # displacements of free nodes\n", "ops.recorder('Node','-file','Data/DBaseEx1bPush.out','-time','-node',1,2,'-dof',1,2,3,'disp') # displacements of support nodes\n", "ops.recorder('Node','-file','Data/RBaseEx1bPush.out','-time','-node',1,2,'-dof',1,2,3,'reaction') # support reaction\n", "ops.recorder('Element','-file','Data/FColEx1bPush.out','-time','-ele',1,2,'globalForce') # element forces -- column\n", "ops.recorder('Element','-file','Data/FBeamEx1bPush.out','-time','-ele',3,'globalForce') # element forces -- beam\n", "\n", "# define GRAVITY -------------------------------------------------------------\n", "ops.timeSeries('Linear',1) # timeSeries Linear 1;\n", "# define Load Pattern\n", "ops.pattern('Plain',1,1) # \n", "ops.eleLoad('-ele',3,'-type','-beamUniform',-7.94) # distributed superstructure-weight on beam\n", "\n", "ops.wipeAnalysis() # adding this to clear Analysis module \n", "ops.constraints('Plain') # how it handles boundary conditions\n", "ops.numberer('Plain') # renumber dofs to minimize band-width (optimization), if you want to\n", "ops.system('BandGeneral') # how to store and solve the system of equations in the analysis\n", "ops.test('NormDispIncr',1.0e-8,6) # determine if convergence has been achieved at the end of an iteration step\n", "ops.algorithm('Newton') # use Newtons solution algorithm: updates tangent stiffness at every iteration\n", "ops.integrator('LoadControl',0.1) # determine the next time step for an analysis, apply gravity in 10 steps\n", "ops.analysis('Static') # define type of analysis static or transient\n", "ops.analyze(10) # perform gravity analysis\n", "ops.loadConst('-time',0.0) # hold gravity constant and restart time\n", "\n", "# define LATERAL load -------------------------------------------------------------\n", "# Lateral load pattern\n", "ops.timeSeries('Linear',2) # timeSeries Linear 2;\n", "# define Load Pattern\n", "ops.pattern('Plain',2,2) # \n", "ops.load(3,2000.,0.0,0.0) # node , FX FY MZ -- representative lateral load at top nodes\n", "ops.load(4,2000.,0.0,0.0) # place 1/2 of the weight for each node to get shear coefficient\n", " \n", "# pushover: diplacement controlled static analysis\n", "ops.integrator('DisplacementControl',3,1,0.1) # switch to displacement control, for node 11, dof 1, 0.1 increment\n", "ops.analyze(100) # apply 100 steps of pushover analysis to a displacement of 10\n", "\n", "print('Done!')\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
    " ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "eSEESminiPy.drawModel()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
    " ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot deformed shape at end of analysis (it may have returned to rest)\n", "# amplify the deformtions by 5\n", "eSEESminiPy.drawDeformedShape(5)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "End of Run: pyEx1b.Portal2D.Push.tcl.py\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
    " ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ops.wipe() # the wipe command here closes all recorder files\n", "plt.close('all')\n", "fname3 = 'Data/DFreeEx1bPush.out'\n", "dataDFree = numpy.loadtxt(fname3)\n", "plt.subplot(211)\n", "plt.title('Ex1b.Portal2D.Push.tcl')\n", "plt.grid(True)\n", "plt.plot(dataDFree[:,1])\n", "plt.xlabel('Step Number')\n", "plt.ylabel('Free-Node Displacement')\n", "plt.subplot(212)\n", "plt.grid(True)\n", "plt.plot(dataDFree[:,1],dataDFree[:,0])\n", "plt.xlabel('Free-Node Disp.')\n", "plt.ylabel('Pseudo-Time (~Force)')\n", "print('End of Run: pyEx1b.Portal2D.Push.tcl.py')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" } }, "nbformat": 4, "nbformat_minor": 4 }