Mastan2 is a free frame analysis program based on Matlab. The linked site provides alternative downloads for those with or without Matlab installed. The site also provides a link to the book Matrix Structural Analysis, 2nd Edition, by McGuire, Gallagher, and Ziemian, which provided a theoretical and numerical basis for the analysis routines in the program. The book is available as a pdf at no cost, or US$30 for a print version.
My main reason for interest in this program is that it provides analysis of torsional warping effects in frame structures, which I am adding to my 3DFrame spreadsheet. To check the results of my spreadsheet I have analysed the small 3D frame used in previous exercises, and compared the results with and without restraint of torsional warping effects.
When comparing different 3D frame analysis programs it is important to ensure that they use the same conventions for the orientation of beam local axes, or if not to adjust the frame set-up to provide equivalent models. In 3DFrame the alignment of the beam local axes is based on the same principles as used in the Strand7 FEA program, as described in more detail here:
Local Axis 3 is aligned with the longitudinal axis of the beam, from node 1 to node 2. Axis 2 is perpendicular to Axis 3 and parallel to the X-Y plane, so the Z axis is treated as vertical. Axis 1 completes the orthogonal system, being perpendicular to both Axis 3 and Axis 2
The Strand7 version of the frame model examined in this post is shown below with local axes displayed:

In Mastan2 the principles used are not clearly stated (as far as I could see), but the program assumes that gravity loads are in the Y direction, so Y was treated as the vertical axis. The local axes are then defined as:
- The local x axis is along the longitudinal axis of the member.
- The local z axis is perpendicular to the x axis, and parallel to the global XZ plane.
- The local y axis forms the third axis of the orthogonal system.
The frame coordinates were modified for Mastan2 so that the Y axis was vertical, as shown below:

The Mastan2 x, y and z local axes are equivalent to Strand7 local axes 3, 1, 2. When entering section properties the Strand7 values I1 and I2 are equivalent to Iyy and Izz in Mastan2, but note that the values are entered in reverse order (Izz then Iyy) on the Mastan2 input screen:

Input of the 3DFrame member properties follows the same conventions as Strand7:

In Mastan2 the materials properties are entered separately, and the density value is entered in force units, rather than mass.
In Mastan2 loads must be applied as node loads or distributed loads along the full length of the member. For this exercise distributed loads were applied in the global axes directions, plus gravity loads. The loads applied in Mastan2 must be adjusted as follows:
- Vertical loads must be applied in the Y direction, rather than Z.
- The Mastan2 Z axis is equivalent to the Strand7 Y axis, but in the opposite sign, so all loads on this axis must have their sign reversed.
- The X axes in Mastan2 and Strand7 are equivalent.
The frame analyses were initially run with warping disabled. The 3DFrame Spreadsheet results are shown below, with Mastan2 results pasted below, and the % difference between the results after adjustment:
- Y and Z axis results are swapped.
- The Mastan2 Z axis results have the opposite sign to the spreadsheet Y axis.
- Spreadsheet rotations are in degrees, but Mastan2 rotations are in radians.

Enabling warping analysis in the spreadsheet resulted in large changes in deflections. Note that the warping stiffness used was much higher than the real value for rectangular concrete sections, to magnify warping effects.

Importing the Mastan2 results with warping enabled shows an excellent match for all nodes and directions:

The updated 3DFrame spreadsheet will be available for download shortly, after completion of further checking.
Pingback: 3DFrame-py update | Newton Excel Bach, not (just) an Excel Blog