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

OpenSees Examples Manual Examples for OpenSeesPy

\n", "

OpenSees Example 1a. 2D Elastic Cantilever Column -- 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 1a. 2D Elastic Cantilever Column -- Static Pushover

    \n", "Introduction\n", "Example 1a is a simple model of an elastic cantilever column. \n", " Objectives of Example 1b \n", " - overview of basic OpenSees input structure
    \n", " - coordinates, boundary conditions, element connectivity, nodal masses, nodal loads, etc.
    \n", " - two-node, one element\n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Done!\n" ] } ], "source": [ "############################################################\n", "# EXAMPLE: \n", "# pyEx1a.Canti2D.Push.tcl.py\n", "# for OpenSeesPy\n", "# --------------------------------------------------------#\n", "# by: Silvia Mazzoni, 2020\n", "# silviamazzoni@yahoo.com\n", "############################################################\n", "# This file was obtained from a conversion of the updated Tcl script\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. cantilever 2D\n", "# static pushover analysis 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", "# 2 __\n", "# or |\n", "# or |\n", "# or |\n", "# (1) 36'\n", "# or |\n", "# or |\n", "# or |\n", "# =1= ---- -------->X\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,0,432)\n", "\n", "# Single point constraints -- Boundary Conditions\n", "ops.fix(1,1,1,1) # node DX DY RZ\n", "\n", "# nodal masses:\n", "ops.mass(2,5.18,0.,0.) # node , Mx My Mz, Mass=Weight/g.\n", "\n", "# Define ELEMENTS -------------------------------------------------------------\n", "# define geometric transformation: performs a linear geometric transformation of beam stiffness\n", "# 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", "# element elasticBeamColumn eleTag iNode jNode A E Iz transfTag\n", "ops.element('elasticBeamColumn',1,1,2,3600000000,4227,1080000,1) # element elasticBeamColumn 1 1 2 3600000000 4227 1080000 1;\n", "\n", "# Define RECORDERS -------------------------------------------------------------\n", "ops.recorder('Node','-file','Data/DFreeEx1aPush.out','-time','-node',2,'-dof',1,2,3,'disp') # displacements of free nodes\n", "ops.recorder('Node','-file','Data/DBaseEx1aPush.out','-time','-node',1,'-dof',1,2,3,'disp') # displacements of support nodes\n", "ops.recorder('Node','-file','Data/RBaseEx1aPush.out','-time','-node',1,'-dof',1,2,3,'reaction') # support reaction\n", "ops.recorder('Element','-file','Data/FColEx1aPush.out','-time','-ele',1,'globalForce') # element forces -- column\n", "ops.recorder('Element','-file','Data/DColEx1aPush.out','-time','-ele',1,'deformation') # element deformations -- column\n", "\n", "# define GRAVITY -------------------------------------------------------------\n", "ops.timeSeries('Linear',1) # timeSeries Linear 1;\n", "# define Load Pattern\n", "ops.pattern('Plain',1,1) # \n", "ops.load(2,0.,-2000.,0.) # node , FX FY MZ -- superstructure-weight\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(2,2000.,0.0,0.0) # node , FX FY MZ -- representative lateral load at top node\n", "\n", "\n", "# pushover: diplacement controlled static analysis\n", "ops.integrator('DisplacementControl',2,1,0.1) # switch to displacement control, for node 11, dof 1, 0.1 increment\n", "ops.analyze(1000) # apply 100 steps of pushover analysis to a displacement of 10\n", "\n", "print('Done!')\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()\n" ] }, { "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": [ { "data": { "image/png": "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\n", "text/plain": [ "
    " ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "End of Run: pyEx1a.Canti2D.Push.tcl.py\n" ] } ], "source": [ "ops.wipe() # the wipe command here closes all recorder files\n", "plt.close('all')\n", "fname3 = 'Data/DFreeEx1aPush.out'\n", "dataDFree = numpy.loadtxt(fname3)\n", "plt.subplot(211)\n", "plt.title('Ex1a.Canti2D.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", "plt.show()\n", "print('End of Run: pyEx1a.Canti2D.Push.tcl.py')\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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 }