Hysteretic Damage Parameters

Because the C++ implementation is a straight translation of his FEDEAS subroutine written in FORTRAN, Prof. Filippou receives numerous inquires on the formulation of HystereticMaterial in OpenSees.

According to the comments in the FORTRAN files, the bilinear backbone implementation (Hyster1.f) was finalized on November 24, 1994 followed by a trilinear backbone implementation (Hyster2.f) finalized on April 21, 1995.

The comments refer to stress-strain and moment-rotation, reminding us that the use of uniaxial material models in various contexts was not new to OpenSees.

The backbone is straightforward and the pinching parameters are described in a previous post and the links therein. The hysteresis behaviors for unloading and reloading are similar to the Takeda model (thank you, Gustavo, for sending me the paper). The remaining question marks are the three degradation parameters: damfc1, damfc2, and beta.

The beta parameter, added after translating Hyster2.f to C++, is based on the Takeda unloading rule where the unloading stiffness is reduced as a function of the maximum strain/deformation ductility, \mu. In Equation 1 of the Takeda et al paper, the factor is hard coded to 0.4, but the beta parameter generalizes the unloading stiffness in OpenSees


where E_o is the initial stiffness. Hysteresis for various values of beta are shown below.

Prof. Filippou describes damfc1 and damfc2 as “somewhat ad-hoc damage parameters” he inserted into the FEDEAS model. These parameters account for degradation of the reloading stiffness, effectively strength degradation, something that was missing from the original Takeda model.

Both damfc1 and damfc2 increase the target strain on one side of the envelope when unloading from the opposite side.

The first damage factor, damfc1, increases the target strain based on maximum ductility, d=d_1(\mu-1), as shown below for three values of d_1 with d_2=0.

Likewise, the second damage factor, damfc2, increases the target strain based on dissipated energy, d=d_2(\chi_d/\chi_a), where \chi_a is the area under the backbone functions and \chi_d is the dissipated energy at the current time step. The curves below use d_1=0 and a range of d_2 values.

As shown in the cyclic responses above, both damage parameters produce in-cycle degradation.

I’ve glossed over several important, i.e., tedious, details on ductility for positive and negative strain, which conditions trigger the damage calculations, and how the dissipated energy is accumulated. For more information, take a look at the C++ source code for HystereticMaterial.cpp, which is fairly straightforward.

Dr. Silvia Mazzoni generated the response of HystereticMaterial to various strain histories with a few combinations of damage parameters for one of the OG “pre-wiki” documentation pages. Try these cyclic analyses for yourself and vary the damage parameters to see what works for your model.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.