Overview of Frame2D

This notebook provides a brief overview of the implementation of matrix stiffness analysis of 2-Dimensional structural frames.

Processing node data input

The node table is processed and a Node object is created for each row. Initially, each object contains only the node ID and the x- and y- coordinate values. Eventually, each node object will also contain information about constraints and DOF #s - at this stage they are initialized to null values. If two nodes with the same ID are noted, and exception is raised.

Then the supports table is processed; each row contains a node id and up to 3 constraint specifications (a constraint specification is one of the indicators FX, FY, or MZ). The set of constraints maintained with each node is updated.

Processing member data input

The member table specifies the connectivity of structural members; each row contains the ID of a member and the two ID's of the nodes at either end. For each row, a Member object is created. Each object contains the member ID and the node objects for each end (the j- and the k- end). When the member object is created, the constructor computes the length and the direction cosines (using the node coordinates of course).

Each member object will eventually contain member properties ($I_x$ and $A$), a set of force releases, a member stiffness matrix in local and global coordinates, and a transformation matrix from global to local coordinates. When the object is first created, the constructor initialzes these to null values.

Note: it may be a mistake to carry the matrices along with the member object; a full second order analysis will write the equilibrium equations on the deformed structure, and these will have to be recomputed from updated node coordinates on each iteration. It may be better to maintain them in a separate data structure - perhaps a dictionary indexed by member. But for now, do as described above.

The member_releases table specifies force releases internal to members. Currently only moment releases at either end are supported (this constrain the internal moment to zero, and thus correspond to 'pins'). This table is processed, and the releases indicated are added to the force release set in the appropriate member objects. Eventually, the release information will be used to modify the local member stiffness matrices.

The properties table specifies the moment of intertia, $I_x$, and cross-sectional area, $A$, of each member. Some convenience facilities are provide: the size may be given using a structural shape designation, such as 'W310x34', and values may be left blank in the CSV data to indicate replication of values from above. There should be one row for each member; this file is processed and the propertie values of each member object are updated.

Processing node loads input

Processing constrained node displacement inputs

Processing member loads input

Processing load combination input

Numbering the degrees of freedom

Creating load, displacement and stiffness matrices