There’s a few interpretations floating around regarding the length–real or implied–of zero length elements in OpenSees. So, I made a Twitter poll to assess popular opinion.

Despite being an “easy” question, only 50% of respondents chose the correct answer. Like “When was the War of 1812?”, the question gives it away–zero length elements have zero length.

The other three options were ordered from least to most wrong. Fortunately, the distribution of responses from the other 50% followed this ranking.

1 (unitless) – I could get behind this answer. Like pass through, the unitless one simply translates the material response to the context in which the zero length element is used. A unitless one is something, and at the same time, it is nothing.

1 (length unit of model) – This answer is fundamentally incorrect. A physical length implies the zero length element integrates the material response to suit the element formulation, e.g., multiplying strain by length to get deformation. But when you change the length unit of your model, e.g., from meters to millimeters, you change the implied integration length from 1 meter to 1 millimeter. As a result, your model is conceptually subjective, i.e., not objective and difficult to justify.

Some of the confusion over a unitful one comes from bond slip models implemented in OpenSees using zero length fiber sections. The fiber constitutive models must be adjusted by an anchorage length in order to convert strain to slip. In the end, that length is just another parameter to calibrate.

Infinity – The inverse of the correct answer. I don’t see how a zero length element could have infinite length. Perhaps there is some confusion with plane strain assumptions?

Did I overlook another possible interpretation of zero length elements? Did I unfairly pick on bond slip models? Can you explain the logic behind choosing infinity as the answer? Let me know in the comments section.

I have been involved in the development, maintenance, and growth of OpenSees since its early days. I am interested in learning Python and improving my academic writing.
View all posts by Michael H. Scott

Published

6 thoughts on “Fuzzy Zero Length Logic”

From Sap2000, plastic hinges have hinge length. People may think zero length has a hinge length

Thanks for this article. I agree that the length of zeroLengthSection is zero. However, I was looking at a Paper by Jian Zhao and Sri Sritharan, titled “Modelling of strain penetration effects in fiber-based analysis of RC structures”, where they adopt a ZLS to capture strain penetration effects at column footings.

They reckon that “A zero-length section element at the end of a beam-column element can incorporate the fixed-end rotation caused by strain penetration to the beam-column element. This is because a zero-length section element is assumed to have a unit length such that the element deformation (for example, rotation) is equal to the section deformation (for example, curvature)”.

This assumption is also implemented in the ‘Bond_SP01’ uniaxialMaterial in OpenSeesPy.

Would it then be correct if I estimate rotation as the curvature of the ZLS multiplied by unitary?

That explanation by Zhao and Sritharan is circular, but it seems to have become legitimate because it made its way onto an OpenSees wiki page. If anything, the length is one. Not one meter, not one foot, just one. But however you make the assumption of “the length is one”, one must still impose units to go from curvature (rad/length) to rotation (rad). So, the model becomes dependent on your length units, which is not a good thing. The “length” become nothing more than another parameter to “calibrate” among the many others in bond-slip models. I’m also pretty sure the Bond_SP01 does not take length as an input parameter.

The short answer is No, you need a real length to go from curvature to rotation.

From Sap2000, plastic hinges have hinge length. People may think zero length has a hinge length

LikeLike

In this one, OpenSees uses zero length, most probably Sap2000 uses plastic hinges

https://opensees.berkeley.edu/wiki/index.php/Pushover_Analysis_of_2-Story_Moment_Frame

LikeLiked by 1 person

Thanks for reminding me of this example. It is also one that creates a lot of confusion and misinformation regarding hinge lengths.

LikeLike

Hi Prof. Scott,

Thanks for this article. I agree that the length of zeroLengthSection is zero. However, I was looking at a Paper by Jian Zhao and Sri Sritharan, titled “Modelling of strain penetration effects in fiber-based analysis of RC structures”, where they adopt a ZLS to capture strain penetration effects at column footings.

They reckon that “A zero-length section element at the end of a beam-column element can incorporate the fixed-end rotation caused by strain penetration to the beam-column element. This is because a zero-length section element is assumed to have a unit length such that the element deformation (for example, rotation) is equal to the section deformation (for example, curvature)”.

This assumption is also implemented in the ‘Bond_SP01’ uniaxialMaterial in OpenSeesPy.

Would it then be correct if I estimate rotation as the curvature of the ZLS multiplied by unitary?

LikeLike

That explanation by Zhao and Sritharan is circular, but it seems to have become legitimate because it made its way onto an OpenSees wiki page. If anything, the length is one. Not one meter, not one foot, just one. But however you make the assumption of “the length is one”, one must still impose units to go from curvature (rad/length) to rotation (rad). So, the model becomes dependent on your length units, which is not a good thing. The “length” become nothing more than another parameter to “calibrate” among the many others in bond-slip models. I’m also pretty sure the Bond_SP01 does not take length as an input parameter.

The short answer is No, you need a real length to go from curvature to rotation.

Take a look at this post too: https://portwooddigital.com/2022/05/01/a-complicated-equivalent/

LikeLike