Concrete02 with Control of the Initial Stiffness

Although they have the same compressive envelope, Concrete02 offers more features than Concrete01–tension strength, tension stiffening, and compressive unloading/reloading loops. However, one thing Concrete02 (and Concrete01) lacks is control over the initial stiffness, which is fixed at E_c=2f'_c/\varepsilon_{c0}.

To overcome this limitation with Concrete02, Dr. Nasser Marafi created Concrete02IS (Concrete02 with control of the Initial Stiffness) and merged the model in 2018 with the main OpenSees branch. Thanks, Nasser, for pushing your contribution back upstream!

Unfortunately, the Concrete02IS model is not documented, which explains some of the back and forth in this pull request from 2020. We figured out eventually that Concrete02IS was exactly what the author of the pull request wanted in the first place. That would not have been the first, or last, unnecessary duplication of an OpenSees uniaxial material.

The input initial stiffness for Concrete02IS comes at the start of the argument list, followed by the standard Concrete02 inputs.

# Input lam, ft, Ets
ops.uniaxialMaterial('Concrete02',  1,   -fc,-epsc0,-fcu,-epscu,lam,ft,Ets)
ops.uniaxialMaterial('Concrete02IS',2,Ec,-fc,-epsc0,-fcu,-epscu,lam,ft,Ets)

# With default lam, ft, Ets
ops.uniaxialMaterial('Concrete02',  3,   -fc,-epsc0,-fcu,-epscu)
ops.uniaxialMaterial('Concrete02IS',4,Ec,-fc,-epsc0,-fcu,-epscu)

The compressive stress-strain loops for Concrete02IS with f’c=4000 psi, \varepsilon_{c0}=0.002, f’cu=1000 psi, and \varepsilon_{cu}=0.006 are shown below for E_c=2f'_c/\varepsilon_{c0}=4000 ksi (the same initial stiffness as Concrete02).

Concrete02IS gives a slightly different ascending branch of the backbone because Concrete02IS uses the Popovics equation whereas Concrete02 uses the Hognestad parabola. However, the unloading and reloading behavior is the same between the two models.

Comparisons of Concrete02IS and Concrete02 are shown below using a range of initial stiffnesses for Concrete02IS:

  • E_c=57000\sqrt{f'_c}=3604 ksi – common empirical relationship for normalweight concrete
  • E_c=f'_c/\varepsilon_{c0}=2000 ksi – secant stiffness to the peak compressive strength
  • E_c = 3f'_c/\varepsilon_{c0}=6000 ksi – something overly stiff

As shown in the cyclic stress-strain response, the input initial stiffness affects the unloading/reloading loops in compression. I am not sure if this is the intended behavior, but this is the stress-strain response that the Concrete02IS model generates.

If you are screaming on the inside that the cyclic response of Concrete02IS should be different, let me know. Based on the source code, I believe it would be an easy change.

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 )

Google photo

You are commenting using your Google 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.