2-Dimensional Frame Analysis - Version 04

This program performs an elastic analysis of 2-dimensional structural frames. It has the following features:

  1. Input is provided by a set of CSV files (and cell-magics exist so you can specifiy the CSV data in a notebook cell). See the example below for an, er, example.
  2. Handles concentrated forces on nodes, and concentrated forces, concentrated moments, and linearly varying distributed loads applied transversely anywhere along the member (i.e., there is as yet no way to handle longitudinal load components).
  3. It handles fixed, pinned, roller supports and member end moment releases (internal pins). The former are handled by assigning free or fixed global degrees of freedom, and the latter are handled by adjusting the member stiffness matrix.
  4. It has the ability to handle named sets of loads with factored combinations of these.
  5. The DOF #'s are assigned by the program, with the fixed DOF #'s assigned after the non-fixed. The equilibrium equation is then partitioned for solution. Among other advantages, this means that support settlement could be easily added (there is no UI for that, yet).
  6. A non-linear analysis can be performed using the P-Delta method (fake shears are computed at column ends due to the vertical load acting through horizontal displacement differences, and these shears are applied as extra loads to the nodes).
  7. A full non-linear (2nd order) elastic analysis will soon be available by forming the equilibrium equations on the deformed structure. This is very easy to add, but it hasn't been done yet. Shouldn't be too long.
  8. There is very little no documentation below, but that will improve, slowly.

In [1]:
from salib import extend, import_notebooks

from Frame2D_Base import Frame2D, ResultSet
import Frame2D_Input
import Frame2D_Output
import Frame2D_Display
import Frame2D_SolveFirstOrder


Compiling notebook 'Frame2D_Input.ipynb' to 'Frame2D_Input.py'.
Compiling notebook 'Frame2D_Output.ipynb' to 'Frame2D_Output.py'.
Compiling notebook 'Frame2D_Display.ipynb' to 'Frame2D_Display.py'.
Compiling notebook 'Frame2D_SolveFirstOrder.ipynb' to 'Frame2D_SolveFirstOrder.py'.

In [ ]: