Skip to content

Commit

Permalink
Added analysis.rst
Browse files Browse the repository at this point in the history
  • Loading branch information
JWock82 committed Dec 9, 2023
1 parent ad72763 commit d9f81fd
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 5 deletions.
10 changes: 5 additions & 5 deletions PyNite/Plastic Beam.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,19 +32,19 @@

# Add a load
plastic_beam.add_node_load('N3', 'FY', -0.0001, 'D')
plastic_beam.add_node_load('N2', 'FY', -0.3*259.3, 'Push')
plastic_beam.add_node_load('N3', 'FX', -1*259.3, 'Push')
plastic_beam.add_node_load('N2', 'FY', -0.3*325.7, 'Push')
plastic_beam.add_node_load('N3', 'FX', -1*325.7, 'Push')

# Add a load combination
plastic_beam.add_load_combo('1.4D', {'D':1.4})
plastic_beam.add_load_combo('Pushover', {'Push':0.05})
plastic_beam.add_load_combo('Pushover', {'Push':0.01})

# Analyze the model
plastic_beam._not_ready_yet_analyze_pushover(log=True, check_stability=False, push_combo='Pushover', max_iter=30, tol=0.01, sparse=True, combo_tags=None)
plastic_beam._not_ready_yet_analyze_pushover(log=True, check_stability=False, push_combo='Pushover', max_iter=30, sparse=True, combo_tags=None)

# Plot the moment diagram
# plastic_beam.Members['M1'].plot_shear('Fy', '1.4D')
# plastic_beam.Members['M1'].plot_moment('Mz', '1.4D')
plastic_beam.Members['M1'].plot_moment('Mz', '1.4D')
# plastic_beam.Members['M1'].plot_deflection('dy', '1.4D')

# Render the model
Expand Down
34 changes: 34 additions & 0 deletions docs/source/analysis.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
========
Analysis
========

`Pynite` offers several analysis options you can choose from. This section will help you identify the anlysis options you want to run.

Sparse vs. Dense Solvers
========================

Each of the analysis options in Pynite allows you to use either a sparse or dense matrix solver. The dense matrix solver stores all the values in the stiffness matrix, whereas the sparse solver only stores non-zero values. Both solvers provide correct solutions, but each will perform differently depending on your model.

The sparse solver is the default solver used by Pynite. It is well suited to large models. It uses less memory and solves large models faster. It solves small models slower, but usually the difference is not noticed because the models are small anyway. In order to use it you'll need to have ``Scipy`` installed.

You can switch to the dense solver by passing `sparse=False` to the analysis method you are using. ``Scipy`` does not need to be installed to use the dense solver. The dense solver is well suited to small models. If you need to repeatedly solve a small model, the dense solver can offer some performance advantages over the sparse solver.

General Analysis
================

Use the `FEModel3D.analyze()` method to run a general analysis. This analysis is iterative if there are tension-only or compression-only elements or supports in the model.

Linear Analysis
===============

Linear analysis can be performed by using the `FEModel3D.analyze_linear()` method. This method of analysis is very fast, but is limited to models without nonlinear features such as tension-only or compression-only elements and supports, or P-:math:`\Delta` effects. This method only needs to assemble the stiffness matrix once because it uses analytical superposition of forces to generate load combinations. Superposition requires a linear model.

P-:math:`\Delta` Analysis
=========================

P-:math:`\Delta` analysis is required by many building codes for frame structures. It covered in great detail here: :doc:`PDelta`

Other Useful Options
====================

You can pass a few other parameters to each analysis. To check statics use `check_statics=True` in the analysis command. To check stability use the `check_stability=True` option. Note that this option does slow down solution speed.
1 change: 1 addition & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ This documentation is just getting started and is a little bare at the moment. K
node
member
plate
analysis
stability
PDelta
reporting
Expand Down

0 comments on commit d9f81fd

Please sign in to comment.