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.
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.