OpenSees Cloud

OpenSees AMI

Discarded Wrappers

Original Post - 24 Jul 2020 - Michael H. Scott

Visit Structural Analysis Is Simple on Substack.


In writing a previous post on material wrappers available in OpenSees, I knew there was a wrapper that never made it into cvs, svn, or GitHub. I thought it was no big deal and decided to let it go. Then, looking back at some previous work on SSI, I re-discovered a second wrapper that never made its way to source control either.

So, after some intense navel gazing, I decided that two discarded wrappers was enough waste to be recycled in to a new post.

send a love letter this week"send a love letter this week" by stevendamron is licensed under CC BY 2.0

The first discarded wrapper is PenaltyMaterial, which adds a small stiffness to its wrapped UniaxialMaterial object. This wrapper can help you avoid a singular stiffness due to perfect plasticity and is a downsized approach to putting the wrapped material in parallel with an ElasticMaterial.

I could not find the source code for PenaltyMaterial anywhere, even on this Zip disk. I did, however, find Tcl input files where I used the wrapper.

Screenshot of penalty material

To prove I’m not making this up, the class tag for PenaltyMaterial appears on line 127 in the first version of SRC/classTags.h archived on OpenSees GitHub. Furthermore, its object file appears in the first version of SRC/material/uniaxial/Makefile on line 54.

No source code, no problem–re-coding the PenaltyMaterial was easy. Below is an example with the penalty stiffness equal to 5% of the initial stiffness; although when using this wrapper you’ll want to specify a much smaller value.

Penalty material

The second discarded wrapper is MultiplierMaterial, which multiplies the stress and tangent of the wrapped UniaxialMaterial object by a factor. This wrapper can be used to apply overstrength factors to materials and p-y multipliers for shadowing effects in pile groups. An example is shown below with a multiplier of 0.8.

Multiplier material

The class tag for MultiplierMaterial first appeared on line 130 of classTags.h with this commit in January 2018. Fortunately, I located the source code for this wrapper.

I put both wrappers in GitHub for safekeeping with PR #407. If either of these wrappers sounds useful to you, please let me know and I’ll get the input commands checked in. I would do it now, but my fork of OpenSees is kinda in disarray at the moment.