3DFrame-py-comb

The 3DFrame-py spreadsheet has now been updated with provisions for saving multiple load cases and the associated results, and analysis with factored combinations of multiple load cases.

The new files can be downloaded from:

3DFrame-py.zip

See Installing 3DFrame-py for installation details, and details of other Python modules required. Also see Python and pyxll for details of the required pyxll package, including a coupon code for a 10% discount.

Load cases are entered and saved on the Input 2 sheet:

Factored load combinations can then be defined on the Combinations sheet:

The analysis is then run on the Output sheet:

This sheet has the following new options:

  • Calculate the current load case or any one or all of the saved load cases or load combinations.
  • Retrieve results from any saved case or combination.
  • Delete all stored cases or combinations.

Deflections and bending moments are shown below for a portal frame under very high vertical and transverse loads, including geometric non-linear results. Results are very close to Strand7 results, which are also plotted in the graphs, and display as the same line:

Posted in Beam Bending, Excel, Finite Element Analysis, Frame Analysis, Link to Python, Newton, PyXLL, Strand7, UDFs | Tagged , , , , , , , , , , | 1 Comment

What to do when download links don’t work

Many of the download links here in older posts use the format http:// rather than https://, and these links now don’t work in Windows. If you find a non-working download link, here is what you can do:

  • Leave a comment, and I will fix the link.
  • Go to the Downloads tab, where there are working links to all available downloads.
  • Right click on the link, select “copy link”, then paste it in the address bar, add the s after http, and hit enter.
Posted in Computing - general | Tagged , , | Leave a comment

3DFrame-py rel. 0.40

A new version of 3DFrame-py has been released and can be downloaded from:

3DFrame-py.zip

See Installing 3DFrame-py for installation details, and details of other Python modules required. Also see Python and pyxll for details of the required pyxll package, including a coupon code for a 10% discount.

The main changes are:

  • Beam bending moment results allowing for non-linear geometric effects have been corrected for axial load effects.
  • The moment-curvature adjustment routine has been changed to improve convergence for highly non-linear conditions.
  • The output sheet now includes a record of the number of non-linear iterations, and the maximum normalised displacement error for the last iteration.

The results have been compared with a Strand7 model of the portal frame used in previous checks, but rotated through 45 degrees in plan:

For linear-elastic analysis the spreadsheet results are near exactly equal to Strand7:

For non-linear analysis different approximations are used for both geometric and material non-linear effects, so there are very small differences in the results:

Posted in Beam Bending, Excel, Finite Element Analysis, Frame Analysis, Link to Python, Newton, PyXLL, Strand7, UDFs | Tagged , , , , , , , , , | 5 Comments

Scipy update and Linalgfuncs speed check

I have updated the Scipy code to remove repeated loading of the Numpy code, and to fix a number of other warnings from the pyxll log file. I have also updated the speed check of the various linear algebra solvers, previously reported at Speed of Scipy Linear Algebra Solvers.

The updated files can be downloaded from:

pyLinAlgfuncs3.zip

TimeLinAlg.zip

Note that the spreadsheets require pyxll to link the Python code to Excel. See Python and pyxll for details of the pyxll package, including a coupon code for a 10% discount.

The file Time Lin-Alg2.xlsx has the larger matrix and time results for both:

As before, the solver times show the time for complete solution in the first column, or where applicable the time for factorisation in the first column, and extraction of the results from a factorised matrix in the second. The results are generally similar to before, but there are significant differences in the sparse solver option results:

The pyPardiso library (which must be installed separately to Scipy) remains very much faster than the built-in Scipy options, and is the default solver called by py_Spsolve, where installed. If pyPardiso is not available, option 3 (MMD_AT_PLUS_A) is now significantly faster than the others, and has been set as the default option in that case. These times were using Python 3.12.8, Scipy 1.14.1, and Numpy 2.0.2.

The iterative solver results are similar to before, with Option 7 being significantly faster than the others, and options 4 and 10 still failing to converge.

Posted in Arrays, Excel, Frame Analysis, Link to Python, Newton, NumPy and SciPy, PyXLL, UDFs | Tagged , , , , , , | Leave a comment

Biaxial bending update 2

It was recently reported that the VBA version of the biaxial bending spreadsheet was returning incorrect results when the neutral axis was exactly parallel to the Y axis. This problem has now been fixed, and the revised spreadsheet can be downloaded from:

ULS Design Functions.zip

For more information on the spreadsheet, and discussion of options for algorithms to find the neutral axis angle, see:

Biaxial bending update

Posted in Beam Bending, Concrete, Excel, Newton, UDFs, VBA | Tagged , , , , , , , , | 5 Comments