Nonlinear Elements, Elastic Sections

Using nonlinear elements, particularly the forceBeamColumn element, with elastic sections is just as good as, if not better than, using the elasticBeamColumn element for many reasons. Not only do force-based elements with elastic sections make the transition to material nonlinearity easy, they also facilitate debugging your model.

Another reason I like force-based elements is you can record the section response at the integration points. But, how many integration points are required to get the correct linear-elastic solution? I will focus on Gauss-Lobatto integration, but there are many other options.

For linear-elastic, prismatic frame elements without member loads, you have to integrate the quadratic polynomials that arise from the produce of linear curvature with linear weighting functions. Gauss-Lobatto quadrature integrates simple polynomials up to order 2N_p-3. Therefore, to integrate x^2, you need 2N_p-3 \geq 2, or N_p \geq 3. (I know, the algebraic solution is N_p \geq 2.5, but you can’t have half an integration point).

Consider the indeterminate beam shown below with L=20 ft, E=29,000 ksi and I=800 in4. The applied moment is M=400 kip-ft.

And here is a snippet of code to create the element.

E = 29000
A = 10 # Not important
I = 800

ops.section('Elastic',8,E,A,I)
ops.beamIntegration('Lobatto',12,8,3)

ops.geomTransf('Linear',5)

ops.element('forceBeamColumn',1,1,2,5,12)

The exact bending moment distribution is linear and the end rotation is \theta = ML/(4EI). Using one force-based element with three Gauss-Lobatto points, we get the following bending moment and end rotation, 0.01241379 rad, which matches the exact solution.

With force-based elements, you can include member loads in the element equilibrium relationship. For the common case of a uniform distributed load, the curvature distribution will be quadratic while the weighting function is linear, so you need to integrate x^3. Fortunately, three Gauss-Lobatto points still get the job done.

Now consider the same beam but with a uniform distributed load w=1 kip/ft.

The exact bending moment distribution is quadratic and the end rotation is \theta = wL^3/(48EI). Using three Gauss-Lobatto points in a single force-based element, we obtain the following distribution of internal moment. The computed end rotation, 0.00103448, matches the exact solution.

For both examples shown in this post, you can use more Gauss-Lobatto points and get the same, exact, results.

Note that if your member loads are linearly varying, e.g. hydrostatic pressure on a vertical member, you will need to add another integration point to get the elastic solution.

Also, member loads that cause discontinuities along an element, e.g., point loads or partial distributed loads, will give an integration error no matter how many integration points you use in a linear-elastic, prismatic element. You will also always get an error for non-prismatic elements no matter what integration you throw at it.

Just remember that with material nonlinearity you will want to use more integration points to capture the spread of inelasticity, or a regularization technique to simulate localized response.

14 thoughts on “Nonlinear Elements, Elastic Sections

  1. Nice blog.
    I have one confusion. As Force Based BeamColumn assumes the linear distribution of Forces (Moments). How does it get the exact result in case of the uniformly distributed beam, where bending moment distribution is non-linear.

    Regards,
    Zeeshan

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.