Elastic Analysis of 2-D Frames, with $2^{nd}$-order effects

About Frame2D

Frame2D performs the analysis of 2-D structural frames using the matrix-stiffness methods. It can perform either a normal first order analysis, or a $2^{nd}$-order analysis using the $P-\Delta$ (or fictitous force) method. Given inputs of node and member loads, and support displacements, it computes free node displacements and member end forces (shear, axial and moment).

Input consists of tables describing:

  • node coordinates
  • node fixity (support constraints)
  • member incidence (connectivity to nodes)
  • force releases in members (hinges only, at this time)
  • member properties (moment of inertia and area)
  • node loads
  • transverse member loads
  • support displacements
  • load combinations

Output consists of:

  • node displacements
  • reaction forces
  • member end forces (shear axial and moment at each end)
  • optionally, a simple line drawing of the frame

Data input can be provided by any combination of the following:

  • CSV data directly in notebook cells using the %%Table cell magic, or
  • CSV files in a particular directory, or
  • tables computed by another program

A 'proper' geometric $2^{nd}$-order capability is planned for the not too distant future.

The Documentation

Only the examples and the source code, currently, I am afraid ... See below.

Example 05-test-frame-6b.ipynb does briefly document the input data, by example.

The Examples

Most of the examples are currently in this directory, as notebooks with names starting with a 2-digit number, e.g. 10-test-frame-6.ipynb. The number is simply an ordering technique so that the examples are listed from least to most complex.

For now, simply browse the notebooks in order and run any that look interesting. Here is a partial list of interesting examples:

  • 05-test-frame-6b.ipynb - a simple three member statically determinate frame. This example has all of the input data provided directly in notebook cells using the %%Table cell magic.
  • 10-test-frame-6.ipynb - almost the same frame as above, except it is statically indeterminate and the input data are in CSV files.
  • 30-test-Beaufait-9-4-1.ipynb - another 3-member frame that is example 9.4.1 in Beaufait's Fundamentals of Structural Analysis text. It has a sloping member with a force applied that has parallel and transverse components.
  • 40-test-KG82.ipynb - A 2 story, 3 bay frame that is example 8.3 in Kulak and Grondin's Limit States Design in Structural Steel. It shows the results of both a first order analysis and of a $2^{nd}$-order $P-\Delta$ analysis, and compares the results with those given in Kulak and Grondin.
  • 70-Generate-large-frames.ipynb - this notebook generates large, regular multi-story frames from settable parameters. It prepares the input for Frame2D directly (in tables) and relies on Frame2D to save the CSV files.

The Source Code

All of the source code is avaliable here. It is presented in a way that supposedly makes it easy to understand how it was developed; i.e. it is a teaching tool rather than a production tool.

The code makes heavy use of the numpy module for linear algebra and array manipulation, and of the pandas module for assistance in processing tabular input and output. Some use is made of matplotlib for graphics display, but that is not yet well developed.

To read the source code:


In [ ]: