Plastic rotations are a common damage measure for frame members and frequently define limit states of structural performance under seismic loading. The calculation of plastic rotations for frame elements in OpenSees is based on a decomposition of deformations in to elastic and plastic components.

The elastic deformations are obtained by elastic unloading of the basic forces, as shown below. Then the plastic deformations can be expressed entirely in terms of the current deformations and forces of an element, i.e., , where is the elastic flexibility of the element. You can find more details in this paper.

In OpenSees, you can obtain the plastic rotation using the 'plasticDeformation' argument to an element recorder or the eleResponse command.

ops.recorder('Element','-file','plastic.out', \
'-ele',1,'plasticDeformation')
# or
ops.eleResponse(1,'plasticDeformation')

Note that the recorded response gives three values, one for each basic DOF: axial, rotation at I, and rotation at J. For 3D frame elements, there are six plastic deformations recorded: axial, z-rotation at I, z-rotation at J, y-rotation at I, y-rotation at J, and torsion.

Below is a W14x90 steel column loaded in double curvature about its strong axis. Fiber discretizations define the cross-section response for a single force-based element with four Lobatto integration points.

Using load-control, here are the load-rotation and load-plastic rotation relationships from the analysis. Although not shown here, the plastic deformation recorder works for cyclic loading as well.

With reinforced concrete, gravity loads reduce the initial stiffness. Because the plastic rotation calculation is done at the element level, the elastic unloading is based on whatever the material reports as its initial stiffness, i.e., at zero strain. This difference in initial stiffness will lead to early onset and slight over-estimation of plastic rotations. But it’s reinforced concrete–you likely have bigger problems to worry about.

I definitely attempt to stay positive all the time. I have been involved in the development, maintenance, and growth of OpenSees since its early days. Recently, I've taken an interest in learning Python and improving my academic writing.
View all posts by Michael H. Scott

What is the difference between rotations obtained at nodes vs. the element rotation (obtained using basicDeformation or plasticDeformation)? I have found that for basic problems (cantilever with a udl etc.), the nodal values of rotation gave me answers that matched the exact solution but I didn’t get the results using basicDeformation. What is the significance of using element deformation?

Dear P.D.,

Thank you for the information

LikeLiked by 1 person

Thanks a lot

LikeLiked by 1 person

Thanks a lot Prof. Scott. The explaination is clear and so helpful!

LikeLike

What is the difference between rotations obtained at nodes vs. the element rotation (obtained using basicDeformation or plasticDeformation)? I have found that for basic problems (cantilever with a udl etc.), the nodal values of rotation gave me answers that matched the exact solution but I didn’t get the results using basicDeformation. What is the significance of using element deformation?

LikeLike

The basic deformations are axial extension and end rotations relative to the rigid body displacement of the element.

LikeLike

Thanks for the reply. I’ll try to wrap my head around it.

LikeLike