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 in developing this modeling challenge, 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” 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.

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.

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.

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 pull request #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.

I’ve just used multiplier material today! I had several springs representing rocking at the base of a mass timber wall. Each spring needed to have the same stress-deformation relationship, but with different tributary areas. So, thanks for bringing Multiplier back. It was useful!
I wonder if a Multiplier wrapper for the deformations could come in handy as well. Say this time you have springs in series with the same stress-strain relationship, but with different lengths. One could define just one stress-strain material and then use a multiplier for the deformations. What do you think?
LikeLiked by 1 person
Good to hear the Multiplier was useful! Perhaps Multiplier can be made more general, to take two factors – one for stress/tangent and one for strain.
LikeLike
I can try to do it in the near future 😀
I need to get familiar with the source code and this could be my first personal assignment.
LikeLike