How to extract physical (non-regularized) material strains from ASDConcrete1D / ASDSteel1D for code compliance?

Hello! In this section we'll talk about the post processing module and the data visualization.
Post Reply
magnades
Posts: 2
Joined: Mon Jun 22, 2026 3:13 pm

How to extract physical (non-regularized) material strains from ASDConcrete1D / ASDSteel1D for code compliance?

Post by magnades » Fri Jun 26, 2026 4:30 pm

Hello dear STKO team,

I am modeling a precast prestressed concrete column using ASDConcrete1D and ASDSteel1D. As expected, these materials use the characteristic length (Lch) to regularize energy dissipation and avoid strain localization issues.

The Problem:
For my research, I need to evaluate code compliance (e.g., ASCE 61, Eurocode). These standards define damage thresholds based on actual physical strains measured over a real reference length (Lgauge or Lp). However, the standard OpenSees recorders output the regularized kinematic strains (ε = Δu / Lch).

My Questions:
  • Is there an internal variable or recorder option in ASDConcrete1D / ASDSteel1D to extract the true, non-regularized strain directly for both compression on concrete ?
  • If not, what is the recommended post-processing workflow/formula to convert these regularized strains back into physical strains for a specific Lgauge?
Any guidance or Python snippets for STKO post-processing would be highly appreciated.

Thank you very much!

Pd. Attached I am sending you the strain limits that I need to control from ASCE 61
ASCE61_Strain_Limits.rar
(46.14 KiB) Downloaded 13 times

STKO Team
Posts: 3066
Joined: Tue Oct 29, 2019 8:45 am

Re: How to extract physical (non-regularized) material strains from ASDConcrete1D / ASDSteel1D for code compliance?

Post by STKO Team » Mon Aug 24, 2026 1:26 pm

Dear user,

This can be done by requesting, in the **MPCORecorder**, a custom elemental result such as:

material.crackStrain.-lchRef.XXX
for the tensile criterion,

or

material.crushStrain.-lchRef.YYY
for the compressive criterion.

Here, **XXX** is your reference length.

IMPORTANT NOTE: MPCORecorder uses the dot "." as a separator between keywords. Therefore, the dot cannot be used in the length value. In this case, you can use scientific notation to avoid using "." as the decimal separator.

For example, for the crushing strain with a reference length of **0.15 meters**:
material.crushStrain.-lchRef.15e-2
Of course, the first keyword depends on the element type:

* material for solids
* section.fiber for beams and shells

Post Reply