OpenSees Cloud

OpenSees AMI

Hysteretic Damage Parameters

Original Post - 17 Apr 2022 - Michael H. Scott

Visit Structural Analysis Is Simple on Substack.


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.

Hyster2.f header information

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

\[E_{unl}=E_o\mu^{-\beta}\]

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

Effect of beta

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.

Reloading behavior in hysteretic material

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 d1 with d2=0.

Effect of damage 1

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 d1 and a range of d2 values.

Effect of damage 2

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.